summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-06-18 09:33:37 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-06-18 09:33:37 +0700
commit968d9987eb53670f0d96209e77debb1196f9b939 (patch)
treef5f723fd58deebcd57d24ceb754c5b1753c6258f
parent2a349bbe7d5317433e339d873bdaa46e9d37ae17 (diff)
<miqdad> tukar guling so done
-rw-r--r--indoteknik_custom/models/tukar_guling.py23
-rw-r--r--indoteknik_custom/views/tukar_guling.xml2
2 files changed, 21 insertions, 4 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index c1672b73..7ed6e10f 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -1,6 +1,8 @@
from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError
+import logging
+_logger = logging.getLogger(__name__)
class TukarGuling(models.Model):
_name = 'tukar.guling'
@@ -178,7 +180,19 @@ class TukarGuling(models.Model):
if not self.out_num:
raise UserError("BU/Out harus diisi terlebih dahulu.")
- group_id = self.out_num.group_id.id if self.out_num.group_id else False
+ origin_so = self.out_num.origin
+ if not origin_so:
+ raise UserError("BU/OUT tidak memiliki origin (SO), tidak bisa cari BU/PICK.")
+
+ # Cari DO dari SO
+ get_group_id = self.env['stock.picking'].search([
+ ('origin', '=', origin_so),
+ ], limit=1)
+
+ if not get_group_id:
+ raise UserError(f"Delivery Order dari SO {origin_so} tidak ditemukan.")
+
+ group_id = get_group_id.group_id.id if get_group_id.group_id else False
Picking = self.env['stock.picking']
srt_type = self.env['stock.picking.type'].search([
@@ -191,6 +205,7 @@ class TukarGuling(models.Model):
# Lokasi
location_dest_id = srt_type.default_location_dest_id.id
+ location_dest_id_ort = ort_type.default_location_dest_id.id
location_customer = self.out_num.location_dest_id
# 1. BU/SRT: retur dari out_num
@@ -210,6 +225,7 @@ class TukarGuling(models.Model):
'product_uom': line.product_uom.id,
'location_id': location_customer.id,
'location_dest_id': location_dest_id,
+ 'group_id': group_id,
}) for line in self.line_ids
]
})
@@ -233,7 +249,7 @@ class TukarGuling(models.Model):
'partner_id': self.out_num.partner_id.id,
'picking_type_id': ort_type.id,
'location_id': location_dest_id,
- 'location_dest_id': location_customer.id,
+ 'location_dest_id': location_dest_id_ort,
'origin': f"Retur {pick.name}",
'tukar_guling_id': self.id,
'group_id': group_id,
@@ -244,7 +260,8 @@ class TukarGuling(models.Model):
'product_uom_qty': line.product_uom_qty,
'product_uom': line.product_uom.id,
'location_id': location_dest_id,
- 'location_dest_id': location_customer.id,
+ 'location_dest_id': location_dest_id_ort,
+ 'group_id': group_id,
}) for line in self.line_ids
]
})
diff --git a/indoteknik_custom/views/tukar_guling.xml b/indoteknik_custom/views/tukar_guling.xml
index 013fdc24..9f8a6ff6 100644
--- a/indoteknik_custom/views/tukar_guling.xml
+++ b/indoteknik_custom/views/tukar_guling.xml
@@ -89,7 +89,6 @@
<group>
<field name="date" string="Date" readonly="1"/>
<field name="return_type"/>
- <field name="origin" readonly="1"/>
<!-- <field name="ort_num" readonly="1"/>-->
<!-- <field name="srt_num" readonly="1"/>-->
<field name="out_num" string="BU/Out"
@@ -97,6 +96,7 @@
'invisible': [('return_type', 'not in', ['revisi_so', 'credit_memo', 'tukar_guling'])],
'required': [('return_type', 'in', ['revisi_so', 'credit_memo'])]
}"/>
+ <field name="origin" readonly="1"/>
</group>
<group>
<field name="ba_num" string="Nomor BA"/>