summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fixco_custom/models/shipment_group.py33
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