summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-07-17 19:15:42 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-07-17 19:15:42 +0700
commit2b55913a52b05f3f62786d7ae56070e96878178c (patch)
tree0a91e8243abd608ea16fc7b97b31c5b6cf2ba9df
parentc18b38bc03d9c260532f4a8e956b51421283fa73 (diff)
<miqdad> fix cannot retur bu pick tukar guling so
-rw-r--r--indoteknik_custom/models/tukar_guling.py42
1 files changed, 30 insertions, 12 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index 20d43e4c..d8e30006 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -539,19 +539,37 @@ class TukarGuling(models.Model):
### ======== ORT dari BU/PICK =========
ort_pickings = []
- for pick in mapping_koli.mapped('pick_id'):
+ is_retur_from_bu_pick = record.operations.picking_type_id.id == 30
+ picks_to_return = [record.operations] if is_retur_from_bu_pick else mapping_koli.mapped('pick_id') or line.product_uom_qty
+
+ for pick in picks_to_return:
ort_return_lines = []
- for mk in mapping_koli.filtered(lambda m: m.pick_id == pick):
- move = pick.move_lines.filtered(lambda m: m.product_id == mk.product_id)
- if not move:
- raise UserError(
- f"Move tidak ditemukan di BU/PICK {pick.name} untuk {mk.product_id.display_name}")
- ort_return_lines.append((0, 0, {
- 'product_id': mk.product_id.id,
- 'quantity': mk.qty_return,
- 'move_id': move.id,
- }))
- _logger.info(f"📟 ORT line: {pick.name} | {mk.product_id.display_name} | qty={mk.qty_return}")
+ if is_retur_from_bu_pick:
+ # Ambil dari tukar.guling.line
+ for line in record.line_ids:
+ move = pick.move_lines.filtered(lambda m: m.product_id == line.product_id)
+ if not move:
+ raise UserError(
+ f"Move tidak ditemukan di BU/PICK {pick.name} untuk {line.product_id.display_name}")
+ ort_return_lines.append((0, 0, {
+ 'product_id': line.product_id.id,
+ 'quantity': line.product_uom_qty,
+ 'move_id': move.id,
+ }))
+ _logger.info(f"📟 ORT (BU/PICK langsung) | {pick.name} | {line.product_id.display_name} | qty={line.product_uom_qty}")
+ else:
+ # Ambil dari mapping koli
+ for mk in mapping_koli.filtered(lambda m: m.pick_id == pick):
+ move = pick.move_lines.filtered(lambda m: m.product_id == mk.product_id)
+ if not move:
+ raise UserError(
+ f"Move tidak ditemukan di BU/PICK {pick.name} untuk {mk.product_id.display_name}")
+ ort_return_lines.append((0, 0, {
+ 'product_id': mk.product_id.id,
+ 'quantity': mk.qty_return,
+ 'move_id': move.id,
+ }))
+ _logger.info(f"📟 ORT (mapping koli) | {pick.name} | {mk.product_id.display_name} | qty={mk.qty_return}")
if ort_return_lines:
ort_wizard = self.env['stock.return.picking'].with_context({