From 2a349bbe7d5317433e339d873bdaa46e9d37ae17 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Wed, 18 Jun 2025 08:15:56 +0700 Subject: Add origin SO --- indoteknik_custom/models/tukar_guling.py | 15 +++++++++++++++ indoteknik_custom/views/tukar_guling.xml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py index 29670f5c..c1672b73 100644 --- a/indoteknik_custom/models/tukar_guling.py +++ b/indoteknik_custom/models/tukar_guling.py @@ -8,6 +8,8 @@ class TukarGuling(models.Model): _order = 'date desc, id desc' _rec_name = 'name' + origin = fields.Char(string='Origin SO') + real_shipping_id = fields.Many2one('res.partner', string='Shipping Address') picking_ids = fields.One2many( @@ -74,6 +76,11 @@ class TukarGuling(models.Model): def create(self, vals): if not vals.get('name') or vals['name'] == 'New': vals['name'] = self.env['ir.sequence'].next_by_code('tukar.guling') or 'New' + # Auto-fill origin from out_num + if not vals.get('origin') and vals.get('out_num'): + picking = self.env['stock.picking'].browse(vals['out_num']) + if picking.origin: + vals['origin'] = picking.origin return super(TukarGuling, self).create(vals) def copy(self, default=None): @@ -99,6 +106,14 @@ class TukarGuling(models.Model): return new_record + def write(self, vals): + if 'out_num' in vals and not vals.get('origin'): + picking = self.env['stock.picking'].browse(vals['out_num']) + if picking.origin: + vals['origin'] = picking.origin + + return super(TukarGuling, self).write(vals) + def action_view_picking(self): self.ensure_one() action = self.env.ref('stock.action_picking_tree_all').read()[0] diff --git a/indoteknik_custom/views/tukar_guling.xml b/indoteknik_custom/views/tukar_guling.xml index 6ea05939..013fdc24 100644 --- a/indoteknik_custom/views/tukar_guling.xml +++ b/indoteknik_custom/views/tukar_guling.xml @@ -89,7 +89,7 @@ - +