summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/stock_picking.py42
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv1
-rw-r--r--indoteknik_custom/views/stock_picking.xml15
3 files changed, 56 insertions, 2 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'
diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv
index 57e02363..d3905d41 100755
--- a/indoteknik_custom/security/ir.model.access.csv
+++ b/indoteknik_custom/security/ir.model.access.csv
@@ -155,6 +155,7 @@ access_vendor_sla,access.vendor_sla,model_vendor_sla,,1,1,1,1
access_check_product,access.check.product,model_check_product,,1,1,1,1
access_check_koli,access.check.koli,model_check_koli,,1,1,1,1
access_scan_koli,access.scan.koli,model_scan_koli,,1,1,1,1
+access_konfirm_koli,access.konfirm.koli,model_konfirm_koli,,1,1,1,1
access_stock_immediate_transfer,access.stock.immediate.transfer,model_stock_immediate_transfer,,1,1,1,1
access_coretax_faktur,access.coretax.faktur,model_coretax_faktur,,1,1,1,1
access_purchase_order_unlock_wizard,access.purchase.order.unlock.wizard,model_purchase_order_unlock_wizard,,1,1,1,1
diff --git a/indoteknik_custom/views/stock_picking.xml b/indoteknik_custom/views/stock_picking.xml
index 144ed820..67593b5b 100644
--- a/indoteknik_custom/views/stock_picking.xml
+++ b/indoteknik_custom/views/stock_picking.xml
@@ -208,7 +208,10 @@
<page string="Check Koli" name="check_koli" attrs="{'invisible': [('location_dest_id', '!=', 60)]}">
<field name="check_koli_lines"/>
</page>
- <page string="Scan Koli" name="scan_koli" attrs="{'invisible': [('picking_type_code', '!=', 'outgoing')]}">
+ <page string="Mapping Koli" name="konfirm_koli" attrs="{'invisible': [('picking_type_code', '!=', 'outgoing')]}">
+ <field name="konfirm_koli_lines"/>
+ </page>
+ <page string="Konfirm Koli" name="scan_koli" attrs="{'invisible': [('picking_type_code', '!=', 'outgoing')]}">
<field name="scan_koli_lines"/>
</page>
</page>
@@ -227,6 +230,16 @@
</field>
</record>
+ <record id="konfirm_koli_tree" model="ir.ui.view">
+ <field name="name">konfirm.koli.tree</field>
+ <field name="model">konfirm.koli</field>
+ <field name="arch" type="xml">
+ <tree editable="bottom">
+ <field name="pick_id" options="{'no_create': True}" required="1" domain="[('picking_type_code', '=', 'internal'), ('group_id', '=', parent.group_id)]"/>
+ </tree>
+ </field>
+ </record>
+
<record id="check_koli_tree" model="ir.ui.view">
<field name="name">check.koli.tree</field>
<field name="model">check.koli</field>