summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-03-24 09:37:33 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-03-24 09:37:33 +0700
commitbeb653de0340d270f2d56dd7b7145c3552e91ab4 (patch)
tree3e88f5a01a0152a1caa46f98430fecf276c1ee2e /indoteknik_custom/models
parentffcad6c52773063a05a91721b1203975a5a6359e (diff)
push
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/stock_picking.py42
1 files changed, 41 insertions, 1 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index c5b6387d..c3febc02 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -23,9 +23,10 @@ _biteship_api_key = "biteship_live.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1l
class StockPicking(models.Model):
_inherit = 'stock.picking'
+ _order = 'final_seq ASC'
+ konfirm_koli_lines = fields.One2many('konfirm.koli', 'picking_id', string='Konfirm Koli', auto_join=True)
scan_koli_lines = fields.One2many('scan.koli', 'picking_id', string='Scan Koli', auto_join=True)
check_koli_lines = fields.One2many('check.koli', 'picking_id', string='Check Koli', auto_join=True)
- _order = 'final_seq ASC'
check_product_lines = fields.One2many('check.product', 'picking_id', string='Check Product', auto_join=True)
barcode_product_lines = fields.One2many('barcode.product', 'picking_id', string='Barcode Product', auto_join=True)
@@ -1585,6 +1586,29 @@ class ScanKoli(models.Model):
compute="_compute_scan_koli_progress"
)
+ @api.onchange('koli_id')
+ def _onchange_koli_compare_with_konfirm_koli(self):
+ if not self.koli_id:
+ return
+
+ # Pastikan konfirm_koli_lines tidak kosong
+ if not self.picking_id.konfirm_koli_lines:
+ raise UserError(_('Konfirm Koli Harus Diisi!'))
+
+ # Ambil origin picking dari koli yang dipilih
+ koli_picking = self.koli_id.picking_id._origin
+
+ # Kumpulkan semua origin picking dari konfirm koli lines
+ konfirm_pick_ids = [
+ line.pick_id._origin
+ for line in self.picking_id.konfirm_koli_lines
+ if line.pick_id
+ ]
+
+ # Validasi apakah koli_picking ada dalam daftar konfirmasi
+ if koli_picking not in konfirm_pick_ids:
+ raise UserError(_('Koli tidak sesuai, pastikan picking terkait benar!'))
+
@api.constrains('picking_id', 'koli_id')
def _check_duplicate_koli(self):
for record in self:
@@ -1713,6 +1737,22 @@ class ScanKoli(models.Model):
# return remaining_scans
+class KonfirmKoli(models.Model):
+ _name = 'konfirm.koli'
+ _description = 'Konfirm Koli'
+ _order = 'picking_id, id'
+ _rec_name = 'pick_id'
+
+ picking_id = fields.Many2one(
+ 'stock.picking',
+ string='Picking Reference',
+ required=True,
+ ondelete='cascade',
+ index=True,
+ copy=False,
+ )
+ pick_id = fields.Many2one('stock.picking', string='Pick')
+
class WarningModalWizard(models.TransientModel):
_name = 'warning.modal.wizard'
_description = 'Peringatan Koli Belum Diperiksa'