summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-07-18 17:29:14 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-07-18 17:29:14 +0700
commitbe0e6d6e04c85f0c2f77a490074dbeb7de98be0f (patch)
tree32fbf548f7586b14ac8bf13db0c3d5e49bf39be2
parent2c39fffe188f44b93b73d8f5470fb228225cb631 (diff)
<miqdad> validasi qty barang tidak sesuai
-rw-r--r--indoteknik_custom/models/tukar_guling.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index d8e30006..a08d29bd 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -413,6 +413,14 @@ class TukarGuling(models.Model):
raise UserError("❌ Tidak bisa retur BU/PICK karena BU/OUT suda Done!")
if self._is_already_returned(self.operations):
raise UserError("BU ini sudah pernah diretur oleh dokumen lain.")
+
+ for line in self.line_ids:
+ mapping_lines = self.mapping_koli_ids.filtered(lambda x: x.product_id == line.product_id)
+ total_qty = sum(l.qty_return for l in mapping_lines)
+ if total_qty != line.product_uom_qty:
+ raise UserError(
+ _("Qty di Koli tidak sesuai dengan qty retur untuk produk %s") % line.product_id.display_name)
+
self._check_invoice_on_revisi_so()
self._validate_product_lines()
@@ -429,6 +437,13 @@ class TukarGuling(models.Model):
operasi = self.operations.picking_type_id.id
tipe = self.return_type
+ for line in self.line_ids:
+ mapping_lines = self.mapping_koli_ids.filtered(lambda x: x.product_id == line.product_id)
+ total_qty = sum(l.qty_return for l in mapping_lines)
+ if total_qty != line.product_uom_qty:
+ raise UserError(
+ _("Qty di Koli tidak sesuai dengan qty retur untuk produk %s") % line.product_id.display_name)
+
if operasi == 30 and self.operations.linked_manual_bu_out.state == 'done':
raise UserError("❌ Tidak bisa retur BU/PICK karena BU/OUT sudah done")
if operasi == 30 and tipe == 'tukar_guling':