This commit is contained in:
2026-07-14 16:51:10 +02:00
parent 3dfbb25281
commit e184da898f
6 changed files with 1045 additions and 335 deletions

View File

@@ -366,5 +366,6 @@ def register():
stock.ShipmentPackingListReport,
stock.ShipmentLinkageReport,
stock.LotReportLinkageReport,
stock.LotReportLinkageFinalReport,
module='purchase_trade', type_='report')

View File

@@ -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'

View File

@@ -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>

View File

@@ -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)

View File

@@ -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