From 452649ccd4abbcde06760b4214b769d2dd329b06 Mon Sep 17 00:00:00 2001 From: Mqdd Date: Fri, 2 Jan 2026 20:47:58 +0700 Subject: add log when already in dispatch --- fixco_custom/models/shipment_group.py | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/fixco_custom/models/shipment_group.py b/fixco_custom/models/shipment_group.py index b4ed27b..d83130d 100644 --- a/fixco_custom/models/shipment_group.py +++ b/fixco_custom/models/shipment_group.py @@ -52,12 +52,26 @@ class ShipmentGroup(models.Model): raise UserError(f"Pickings berikut telah dibatalkan:{cancelled_names}") for picking_line in shipment.picking_lines: + if picking_line.picking_id: + # set shipment group ke stock.picking + picking_line.picking_id.write({ + 'shipment_group_id': shipment.id + }) + picking_line.picking_id.message_post( + body=_( + "📦 Dispatched
" + "Picking ini telah di-dispatch melalui " + "Shipment Group %s." + ) % shipment.number + ) + shipment_lines = self.env['shipment.group.line'].search([ ('shipment_id', '=', shipment.id), ('invoice_marketplace', '=', picking_line.invoice_marketplace), ('picking_id', '=', picking_line.picking_id.id) ]) + # reset product shipment picking_line.product_shipment_lines.unlink() for sl in shipment_lines: @@ -70,6 +84,35 @@ class ShipmentGroup(models.Model): 'order_reference': sl.order_reference, }) + + # def sync_product_to_picking_line(self): + # for shipment in self: + # cancelled_picking = shipment.picking_lines.filtered( + # lambda picking: picking.status == 'CANCELLED' + # ) + # if cancelled_picking: + # cancelled_names = "\n - " + "\n - ".join(cancelled_picking.mapped("name")) + # raise UserError(f"Pickings berikut telah dibatalkan:{cancelled_names}") + + # for picking_line in shipment.picking_lines: + # shipment_lines = self.env['shipment.group.line'].search([ + # ('shipment_id', '=', shipment.id), + # ('invoice_marketplace', '=', picking_line.invoice_marketplace), + # ('picking_id', '=', picking_line.picking_id.id) + # ]) + + # picking_line.product_shipment_lines.unlink() + + # for sl in shipment_lines: + # self.env['product.shipment.line'].create({ + # 'picking_line_id': picking_line.id, + # 'product_id': sl.product_id.id, + # 'carrier': sl.carrier or picking_line.carrier, + # 'invoice_marketplace': sl.invoice_marketplace, + # 'picking_id': sl.picking_id.id, + # 'order_reference': sl.order_reference, + # }) + def _compute_related_count(self): for record in self: record.related_count = len(record.picking_lines) -- cgit v1.2.3