diff options
| author | Miqdad <ahmadmiqdad27@gmail.com> | 2025-06-18 09:33:37 +0700 |
|---|---|---|
| committer | Miqdad <ahmadmiqdad27@gmail.com> | 2025-06-18 09:33:37 +0700 |
| commit | 968d9987eb53670f0d96209e77debb1196f9b939 (patch) | |
| tree | f5f723fd58deebcd57d24ceb754c5b1753c6258f | |
| parent | 2a349bbe7d5317433e339d873bdaa46e9d37ae17 (diff) | |
<miqdad> tukar guling so done
| -rw-r--r-- | indoteknik_custom/models/tukar_guling.py | 23 | ||||
| -rw-r--r-- | indoteknik_custom/views/tukar_guling.xml | 2 |
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"/> |
