summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-04-15 11:23:52 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-04-15 11:23:52 +0700
commit3176f8497009169294e25f7f461f1a81c6bd0c59 (patch)
tree26e437fa7dde0b868a5f07c67c9e6b7965c64de0
parent3e22bea62b4c57268ce777d34ec6d19aede8b0c1 (diff)
push
-rw-r--r--indoteknik_custom/models/delivery_order.py4
-rw-r--r--indoteknik_custom/models/stock_picking.py47
-rw-r--r--indoteknik_custom/views/stock_picking.xml1
3 files changed, 40 insertions, 12 deletions
diff --git a/indoteknik_custom/models/delivery_order.py b/indoteknik_custom/models/delivery_order.py
index 3473197b..2fc574c4 100644
--- a/indoteknik_custom/models/delivery_order.py
+++ b/indoteknik_custom/models/delivery_order.py
@@ -24,7 +24,7 @@ class DeliveryOrder(models.TransientModel):
for delivery_order_line in vals['delivery_order_line_ids']:
picking = False
if delivery_order_line[2]['name']:
- picking = self.env['stock.picking'].search([('picking_code', '=', delivery_order_line[2]['name'])], limit=1)
+ picking = self.env['stock.picking'].search([('out_code', '=', delivery_order_line[2]['name'])], limit=1)
if picking:
line_tracking_no = delivery_order_line[2]['tracking_no']
@@ -85,7 +85,7 @@ class DeliveryOrderLine(models.TransientModel):
if self.name:
if len(self.name) == 13:
self.name = self.name[:-1]
- picking = self.env['stock.picking'].search([('picking_code', '=', self.name)], limit=1)
+ picking = self.env['stock.picking'].search([('out_code', '=', self.name)], limit=1)
if picking:
if picking.driver_id:
self.driver_id = picking.driver_id
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 8755a1f3..ae17b5d1 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -155,7 +155,32 @@ class StockPicking(models.Model):
quantity_koli = fields.Float(string="Quantity Koli", copy=False)
total_mapping_koli = fields.Float(string="Total Mapping Koli", compute='_compute_total_mapping_koli')
so_lama = fields.Boolean('SO LAMA')
-
+ linked_manual_bu_out = fields.Many2one('stock.picking', string='BU Out')
+
+ # def write(self, vals):
+ # if 'linked_manual_bu_out' in vals:
+ # for record in self:
+ # if (record.picking_type_code == 'internal'
+ # and 'BU/PICK/' in record.name):
+ # # Jika menghapus referensi (nilai di-set False/None)
+ # if record.linked_manual_bu_out and not vals['linked_manual_bu_out']:
+ # record.linked_manual_bu_out.state_packing = 'not_packing'
+ # # Jika menambahkan referensi baru
+ # elif vals['linked_manual_bu_out']:
+ # new_picking = self.env['stock.picking'].browse(vals['linked_manual_bu_out'])
+ # new_picking.state_packing = 'packing_done'
+ # return super().write(vals)
+
+ # @api.model
+ # def create(self, vals):
+ # record = super().create(vals)
+ # if (record.picking_type_code == 'internal'
+ # and 'BU/PICK/' in record.name
+ # and vals.get('linked_manual_bu_out')):
+ # picking = self.env['stock.picking'].browse(vals['linked_manual_bu_out'])
+ # picking.state_packing = 'packing_done'
+ # return record
+
@api.depends('konfirm_koli_lines', 'konfirm_koli_lines.pick_id', 'konfirm_koli_lines.pick_id.quantity_koli')
def _compute_total_mapping_koli(self):
for record in self:
@@ -224,15 +249,6 @@ class StockPicking(models.Model):
shipping_method_so_id = fields.Many2one('delivery.carrier', string='Shipping Method SO', related='sale_id.carrier_id')
state_packing = fields.Selection([('not_packing', 'Belum Packing'), ('packing_done', 'Sudah Packing')], string='Packing Status')
- @api.constrains('konfirm_koli_lines')
- def _constrains_konfirm_koli_lines(self):
- now = datetime.datetime.utcnow()
- for picking in self:
- if len(picking.konfirm_koli_lines) > 0:
- picking.state_packing = 'packing_done'
- else:
- picking.state_packing = 'not_packing'
-
@api.constrains('scan_koli_lines')
def _constrains_scan_koli_lines(self):
now = datetime.datetime.utcnow()
@@ -1265,6 +1281,17 @@ class StockPicking(models.Model):
line.sale_line_id = sale_line.id
def write(self, vals):
+ if 'linked_manual_bu_out' in vals:
+ for record in self:
+ if (record.picking_type_code == 'internal'
+ and 'BU/PICK/' in record.name):
+ # Jika menghapus referensi (nilai di-set False/None)
+ if record.linked_manual_bu_out and not vals['linked_manual_bu_out']:
+ record.linked_manual_bu_out.state_packing = 'not_packing'
+ # Jika menambahkan referensi baru
+ elif vals['linked_manual_bu_out']:
+ new_picking = self.env['stock.picking'].browse(vals['linked_manual_bu_out'])
+ new_picking.state_packing = 'packing_done'
self._use_faktur(vals)
self.sync_sale_line(vals)
for picking in self:
diff --git a/indoteknik_custom/views/stock_picking.xml b/indoteknik_custom/views/stock_picking.xml
index 4c60a496..4832a1fc 100644
--- a/indoteknik_custom/views/stock_picking.xml
+++ b/indoteknik_custom/views/stock_picking.xml
@@ -123,6 +123,7 @@
<field name="date_doc_kirim" attrs="{'readonly':[('invoice_status', '=', 'invoiced')]}"/>
<field name="summary_qty_operation"/>
<field name="count_line_operation"/>
+ <field name="linked_manual_bu_out" domain="[('picking_type_code', '=', 'outgoing'), ('group_id', '=', group_id)]"/>
<field name="account_id"
attrs="{
'readonly': [['state', 'in', ['done', 'cancel']]],