From c97a0d985c0cb559294d8a21f421e4d47d962b77 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Thu, 4 Jun 2026 15:12:50 -0400 Subject: [PATCH] feat(reports): packing slip for local deliveries (fusion.plating.delivery) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The packing slip report only existed for stock.picking (Delivery Orders), but this shop ships via fusion.plating.delivery and has no pickings — so packing slips never rendered for their flow, and the prior auto-generate + email-notification paths pointed the stock.picking report at a delivery (wrong model -> blank PDF). Add a delivery-native variant: report_fp_packing_slip_delivery_portrait + action_report_fp_packing_slip_delivery_portrait (bound to fusion.plating.delivery -> shows in the delivery Print menu), resolving the SO + lines from the delivery job_ref (same pattern as the BoL report) and reusing the shared styles / address / signoff bits + a sale.order.line items table. Repoint _fp_generate_packing_slip (dispatch auto-gen) and the notification attachment to the new report. Verified on entech: real content (customer, PO, items, PS#) for DLV-30102 — 142KB PDF vs prior blank 12.8KB. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../models/fp_delivery.py | 2 +- .../models/fp_notification_template.py | 2 +- .../report/report_fp_packing_slip.xml | 210 ++++++++++++++++++ 3 files changed, 212 insertions(+), 2 deletions(-) diff --git a/fusion_plating/fusion_plating_logistics/models/fp_delivery.py b/fusion_plating/fusion_plating_logistics/models/fp_delivery.py index c4a7149d..48e7674b 100644 --- a/fusion_plating/fusion_plating_logistics/models/fp_delivery.py +++ b/fusion_plating/fusion_plating_logistics/models/fp_delivery.py @@ -501,7 +501,7 @@ class FpDelivery(models.Model): fusion_plating_reports. """ report_xmlid = ( - 'fusion_plating_reports.action_report_fp_packing_slip_portrait' + 'fusion_plating_reports.action_report_fp_packing_slip_delivery_portrait' ) report = self.env.ref(report_xmlid, raise_if_not_found=False) if not report: diff --git a/fusion_plating/fusion_plating_notifications/models/fp_notification_template.py b/fusion_plating/fusion_plating_notifications/models/fp_notification_template.py index 127fb7c5..4482b216 100644 --- a/fusion_plating/fusion_plating_notifications/models/fp_notification_template.py +++ b/fusion_plating/fusion_plating_notifications/models/fp_notification_template.py @@ -377,7 +377,7 @@ class FpNotificationTemplate(models.Model): # Packing slip — gated by customer preference (default True) if self.attach_packing_list and delivery and _customer_wants('x_fc_send_packing_slip'): att = _render_report( - 'fusion_plating_reports.action_report_fp_packing_slip_portrait', delivery, + 'fusion_plating_reports.action_report_fp_packing_slip_delivery_portrait', delivery, ) if att: ids.append(att) diff --git a/fusion_plating/fusion_plating_reports/report/report_fp_packing_slip.xml b/fusion_plating/fusion_plating_reports/report/report_fp_packing_slip.xml index 8d4fce69..98fd9bb7 100644 --- a/fusion_plating/fusion_plating_reports/report/report_fp_packing_slip.xml +++ b/fusion_plating/fusion_plating_reports/report/report_fp_packing_slip.xml @@ -461,4 +461,214 @@ + + + + + + + + + + + + + + + + + Packing Slip + fusion.plating.delivery + qweb-pdf + fusion_plating_reports.report_fp_packing_slip_delivery_portrait + fusion_plating_reports.report_fp_packing_slip_delivery_portrait + 'Packing Slip - %s' % (object.name or '') + + report + + +