diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-04 16:05:22 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-04 16:05:22 +0700 |
| commit | 2cde7371a41c14363e9dfb4cd7c78aae1f859fd5 (patch) | |
| tree | c38cd743515bc33d8392670826b7fb996c6fff57 /fixco_custom/models | |
| parent | f03b307ea4242a308adc027e7aa53b992c12abb8 (diff) | |
validation duplicate shipment group
Diffstat (limited to 'fixco_custom/models')
| -rw-r--r-- | fixco_custom/models/shipment_group.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/fixco_custom/models/shipment_group.py b/fixco_custom/models/shipment_group.py index f4461ed..705c13e 100644 --- a/fixco_custom/models/shipment_group.py +++ b/fixco_custom/models/shipment_group.py @@ -193,8 +193,31 @@ class PickingLine(models.Model): def _onchange_scan_receipt(self): for line in self: if line.scan_receipt: - picking = self.env['stock.picking'].search([('tracking_number', '=', line.scan_receipt)], limit=1) - line.picking_id = picking.id + duplicate_receipt = self.search([ + ('scan_receipt', '=', line.scan_receipt), + ('id', '!=', line.id) + ], limit=1) + if duplicate_receipt: + line.scan_receipt = False + raise UserError(f'Scan Receipt {line.scan_receipt} sudah digunakan di Shipment Group {duplicate_receipt.shipment_id.name}') + + picking = self.env['stock.picking'].search([ + ('tracking_number', '=', line.scan_receipt) + ], limit=1) + + if not picking: + line.scan_receipt = False + raise UserError(f'Picking dengan Tracking Number {line.scan_receipt} tidak ditemukan') + + duplicate_picking = self.search([ + ('picking_id', '=', picking.id), + ('id', '!=', line.id) + ], limit=1) + if duplicate_picking: + line.scan_receipt = False + raise UserError(f'Picking dengan Tracking Number {line.scan_receipt} sudah digunakan di Shipment Group {duplicate_picking.shipment_id.name}') + + line.picking_id = picking line.carrier = picking.carrier line.order_reference = picking.order_reference line.invoice_marketplace = picking.invoice_mp |
