summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-10-02 13:53:42 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-10-02 13:53:42 +0700
commitae360ebbe575c5ede395b0b396b9627b89b0e226 (patch)
tree71cf92d0f042067f7a61afad90a0d3859bf4e4aa
parente92f83f5938966aa6b171be3743ea853d1cffdc7 (diff)
fix bug
-rw-r--r--indoteknik_custom/models/stock_picking.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 16e235da..ae7121da 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -2552,9 +2552,22 @@ class ScanKoli(models.Model):
out_moves = self.env['stock.move.line'].search([('picking_id', '=', picking.linked_out_picking_id.id)])
for pick_move in pick_moves:
- corresponding_out_move = out_moves.filtered(lambda m: m.product_id == pick_move.product_id)
- if corresponding_out_move:
- corresponding_out_move.qty_done += pick_move.qty_done
+ corresponding_out_moves = out_moves.filtered(lambda m: m.product_id == pick_move.product_id)
+
+ if len(corresponding_out_moves) == 1:
+ corresponding_out_moves.qty_done += pick_move.qty_done
+
+ elif len(corresponding_out_moves) > 1:
+ qty_koli = pick_move.qty_done
+ for out_move in corresponding_out_moves:
+ if qty_koli <= 0:
+ break
+ # ambil sesuai kebutuhan atau sisa qty
+ qty_to_assign = min(qty_koli, out_move.product_uom_qty)
+ out_move.qty_done += qty_to_assign
+ qty_koli -= qty_to_assign
+
+
def _reset_qty_done_if_no_scan(self, picking_id):
product_bu_pick = self.env['stock.move.line'].search([('picking_id', '=', picking_id)])