Linkage
This commit is contained in:
@@ -366,5 +366,6 @@ def register():
|
||||
stock.ShipmentPackingListReport,
|
||||
stock.ShipmentLinkageReport,
|
||||
stock.LotReportLinkageReport,
|
||||
stock.LotReportLinkageFinalReport,
|
||||
module='purchase_trade', type_='report')
|
||||
|
||||
|
||||
@@ -4440,10 +4440,11 @@ class LinkageTemplateReport(ShipmentTemplateReportMixin, BaseSupplierShipping):
|
||||
|
||||
class LotReportLinkageRecord:
|
||||
|
||||
def __init__(self, lot, lot_report=None):
|
||||
def __init__(self, lot, lot_report=None, linkage_status='PROVISIONAL'):
|
||||
self.lot = lot
|
||||
self.lot_report = lot_report
|
||||
self.id = getattr(lot_report, 'id', None) or getattr(lot, 'id', None)
|
||||
self.report_linkage_status = linkage_status
|
||||
|
||||
@property
|
||||
def rec_name(self):
|
||||
@@ -4573,7 +4574,14 @@ class LotReportLinkageRecord:
|
||||
_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_book = ShipmentIn.report_linkage_book
|
||||
report_linkage_strategy = ShipmentIn.report_linkage_strategy
|
||||
@@ -4650,6 +4658,7 @@ class LotReportLinkageRecord:
|
||||
|
||||
class LotReportLinkageReport(LinkageTemplateReport):
|
||||
__name__ = 'lot.report.linkage'
|
||||
linkage_status = 'PROVISIONAL'
|
||||
|
||||
@classmethod
|
||||
def _get_records(cls, ids, model, data):
|
||||
@@ -4665,10 +4674,16 @@ class LotReportLinkageReport(LinkageTemplateReport):
|
||||
if not lot:
|
||||
raise UserError(
|
||||
'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
|
||||
|
||||
|
||||
class LotReportLinkageFinalReport(LotReportLinkageReport):
|
||||
__name__ = 'lot.report.linkage.final'
|
||||
linkage_status = 'FINAL'
|
||||
|
||||
|
||||
class ShipmentCOOReport(ShipmentTemplateReportMixin, BaseSupplierShipping):
|
||||
__name__ = 'stock.shipment.in.coo'
|
||||
|
||||
|
||||
@@ -274,7 +274,7 @@ this repository contains the full copyright notices and license terms. -->
|
||||
</record>
|
||||
|
||||
<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="report_name">lot.report.linkage</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="action" ref="report_shipment_in_linkage"/>
|
||||
</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">
|
||||
<field name="name">Update with SoF PDF</field>
|
||||
|
||||
@@ -6906,7 +6906,13 @@ description</t></is></c>
|
||||
physical_lot, lot_report)
|
||||
|
||||
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.assertIn('Purchases', 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