diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-07 10:03:04 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-07-07 10:03:04 +0700 |
| commit | 9b47eeef16249db9ba0950e54398c0c0373e350d (patch) | |
| tree | b2e5edc7dc61aa7afe2fc42dd17e8efc0994dc36 | |
| parent | b410789a86fe2a608c3d18d91456a3318bb214f9 (diff) | |
fix validation duplicate receipt and receipt not found
| -rw-r--r-- | fixco_custom/models/shipment_group.py | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/fixco_custom/models/shipment_group.py b/fixco_custom/models/shipment_group.py index 019c995..75a0f2d 100644 --- a/fixco_custom/models/shipment_group.py +++ b/fixco_custom/models/shipment_group.py @@ -193,32 +193,23 @@ class PickingLine(models.Model): def _onchange_scan_receipt(self): for line in self: if line.scan_receipt: - duplicate_receipt = self.search([ - ('scan_receipt', '=', line.scan_receipt) - ], limit=1) - if len(duplicate_receipt) > 0: - line.scan_receipt = False - raise UserError(f'Scan Receipt sudah digunakan di {duplicate_receipt.mapped("shipment_id").number} lain!') + lines = line.shipment_id.picking_lines.filtered( + lambda p_lines: p_lines.scan_receipt == line.scan_receipt + ) + if lines: + raise UserError(( + "Receipt '%s' already exists. " + ) % line.scan_receipt) + picking = self.env['stock.picking'].search([ ('tracking_number', '=', line.scan_receipt) ], limit=1) - + if not picking: - line.scan_receipt = False - return { - 'warning': { - 'title': "Data Tidak Ditemukan", - 'message': "Tidak ditemukan Picking dengan Tracking Number tersebut!" - } - } - - duplicate_picking = self.search([ - ('picking_id', '=', picking.id) - ]) - if len(duplicate_picking) > 0: - line.scan_receipt = False - raise UserError(f'Picking ini sudah digunakan di {duplicate_picking.mapped("shipment_id").number} lain!') + raise UserError(( + "Receipt '%s' not found. " + ) % line.scan_receipt) line.picking_id = picking line.carrier = picking.carrier |
