From be0e6d6e04c85f0c2f77a490074dbeb7de98be0f Mon Sep 17 00:00:00 2001 From: Miqdad Date: Fri, 18 Jul 2025 17:29:14 +0700 Subject: validasi qty barang tidak sesuai --- indoteknik_custom/models/tukar_guling.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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': -- cgit v1.2.3