Linkage
This commit is contained in:
@@ -366,5 +366,6 @@ def register():
|
|||||||
stock.ShipmentPackingListReport,
|
stock.ShipmentPackingListReport,
|
||||||
stock.ShipmentLinkageReport,
|
stock.ShipmentLinkageReport,
|
||||||
stock.LotReportLinkageReport,
|
stock.LotReportLinkageReport,
|
||||||
|
stock.LotReportLinkageFinalReport,
|
||||||
module='purchase_trade', type_='report')
|
module='purchase_trade', type_='report')
|
||||||
|
|
||||||
|
|||||||
@@ -4440,10 +4440,11 @@ class LinkageTemplateReport(ShipmentTemplateReportMixin, BaseSupplierShipping):
|
|||||||
|
|
||||||
class LotReportLinkageRecord:
|
class LotReportLinkageRecord:
|
||||||
|
|
||||||
def __init__(self, lot, lot_report=None):
|
def __init__(self, lot, lot_report=None, linkage_status='PROVISIONAL'):
|
||||||
self.lot = lot
|
self.lot = lot
|
||||||
self.lot_report = lot_report
|
self.lot_report = lot_report
|
||||||
self.id = getattr(lot_report, 'id', None) or getattr(lot, 'id', None)
|
self.id = getattr(lot_report, 'id', None) or getattr(lot, 'id', None)
|
||||||
|
self.report_linkage_status = linkage_status
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def rec_name(self):
|
def rec_name(self):
|
||||||
@@ -4573,7 +4574,14 @@ class LotReportLinkageRecord:
|
|||||||
_get_report_linkage_fee_detail_row = (
|
_get_report_linkage_fee_detail_row = (
|
||||||
ShipmentIn._get_report_linkage_fee_detail_row)
|
ShipmentIn._get_report_linkage_fee_detail_row)
|
||||||
|
|
||||||
report_linkage_title = ShipmentIn.report_linkage_title
|
@property
|
||||||
|
def report_linkage_title(self):
|
||||||
|
title = ShipmentIn.report_linkage_title.fget(self)
|
||||||
|
status = getattr(self, 'report_linkage_status', None)
|
||||||
|
if status:
|
||||||
|
title = ' - '.join(part for part in [title, status] if part)
|
||||||
|
return title
|
||||||
|
|
||||||
report_linkage_desk = ShipmentIn.report_linkage_desk
|
report_linkage_desk = ShipmentIn.report_linkage_desk
|
||||||
report_linkage_book = ShipmentIn.report_linkage_book
|
report_linkage_book = ShipmentIn.report_linkage_book
|
||||||
report_linkage_strategy = ShipmentIn.report_linkage_strategy
|
report_linkage_strategy = ShipmentIn.report_linkage_strategy
|
||||||
@@ -4650,6 +4658,7 @@ class LotReportLinkageRecord:
|
|||||||
|
|
||||||
class LotReportLinkageReport(LinkageTemplateReport):
|
class LotReportLinkageReport(LinkageTemplateReport):
|
||||||
__name__ = 'lot.report.linkage'
|
__name__ = 'lot.report.linkage'
|
||||||
|
linkage_status = 'PROVISIONAL'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_records(cls, ids, model, data):
|
def _get_records(cls, ids, model, data):
|
||||||
@@ -4665,10 +4674,16 @@ class LotReportLinkageReport(LinkageTemplateReport):
|
|||||||
if not lot:
|
if not lot:
|
||||||
raise UserError(
|
raise UserError(
|
||||||
'Linkage report needs a physical lot on the selected line.')
|
'Linkage report needs a physical lot on the selected line.')
|
||||||
linkage_records.append(LotReportLinkageRecord(lot, record))
|
linkage_records.append(LotReportLinkageRecord(
|
||||||
|
lot, record, linkage_status=cls.linkage_status))
|
||||||
return linkage_records
|
return linkage_records
|
||||||
|
|
||||||
|
|
||||||
|
class LotReportLinkageFinalReport(LotReportLinkageReport):
|
||||||
|
__name__ = 'lot.report.linkage.final'
|
||||||
|
linkage_status = 'FINAL'
|
||||||
|
|
||||||
|
|
||||||
class ShipmentCOOReport(ShipmentTemplateReportMixin, BaseSupplierShipping):
|
class ShipmentCOOReport(ShipmentTemplateReportMixin, BaseSupplierShipping):
|
||||||
__name__ = 'stock.shipment.in.coo'
|
__name__ = 'stock.shipment.in.coo'
|
||||||
|
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.report" id="report_shipment_in_linkage">
|
<record model="ir.action.report" id="report_shipment_in_linkage">
|
||||||
<field name="name">Linkage</field>
|
<field name="name">Linkage provisional</field>
|
||||||
<field name="model">lot.report</field>
|
<field name="model">lot.report</field>
|
||||||
<field name="report_name">lot.report.linkage</field>
|
<field name="report_name">lot.report.linkage</field>
|
||||||
<field name="report">stock/linkage.fodt</field>
|
<field name="report">stock/linkage.fodt</field>
|
||||||
@@ -284,6 +284,17 @@ this repository contains the full copyright notices and license terms. -->
|
|||||||
<field name="model">lot.report,-1</field>
|
<field name="model">lot.report,-1</field>
|
||||||
<field name="action" ref="report_shipment_in_linkage"/>
|
<field name="action" ref="report_shipment_in_linkage"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.action.report" id="report_shipment_in_linkage_final">
|
||||||
|
<field name="name">Linkage final</field>
|
||||||
|
<field name="model">lot.report</field>
|
||||||
|
<field name="report_name">lot.report.linkage.final</field>
|
||||||
|
<field name="report">stock/linkage.fodt</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="report_shipment_in_linkage_final_keyword">
|
||||||
|
<field name="keyword">form_print</field>
|
||||||
|
<field name="model">lot.report,-1</field>
|
||||||
|
<field name="action" ref="report_shipment_in_linkage_final"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record model="ir.action.wizard" id="act_update_sof">
|
<record model="ir.action.wizard" id="act_update_sof">
|
||||||
<field name="name">Update with SoF PDF</field>
|
<field name="name">Update with SoF PDF</field>
|
||||||
|
|||||||
@@ -6906,7 +6906,13 @@ description</t></is></c>
|
|||||||
physical_lot, lot_report)
|
physical_lot, lot_report)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
record.report_linkage_title, 'Linkage P-10/S-20 26.0001')
|
record.report_linkage_title,
|
||||||
|
'Linkage P-10/S-20 26.0001 - PROVISIONAL')
|
||||||
|
final_record = stock_module.LotReportLinkageRecord(
|
||||||
|
physical_lot, lot_report, linkage_status='FINAL')
|
||||||
|
self.assertEqual(
|
||||||
|
final_record.report_linkage_title,
|
||||||
|
'Linkage P-10/S-20 26.0001 - FINAL')
|
||||||
self.assertEqual(record.report_linkage_bl_date, 'Thursday, April 30, 2026')
|
self.assertEqual(record.report_linkage_bl_date, 'Thursday, April 30, 2026')
|
||||||
self.assertIn('Purchases', record.report_linkage_summary_groups)
|
self.assertIn('Purchases', record.report_linkage_summary_groups)
|
||||||
self.assertIn('Sales', record.report_linkage_summary_groups)
|
self.assertIn('Sales', record.report_linkage_summary_groups)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
,PC_LO/baron,PC_LO,14.07.2026 15:18,file:///C:/Users/baron/AppData/Roaming/LibreOffice/4;
|
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user