summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-02-11 09:48:55 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-02-11 09:48:55 +0700
commitc99bf4c49859450ce4cb081c920edda2077b3b1a (patch)
tree05e6a26967a175f3670313668ddc5938eede261b
parent8c87a6c35b2242ee1804e1955bbb216c8c86de4d (diff)
push
-rw-r--r--indoteknik_custom/models/stock_picking.py34
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv2
-rw-r--r--indoteknik_custom/views/stock_picking.xml28
3 files changed, 63 insertions, 1 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index ec761900..3f888b02 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -16,6 +16,8 @@ _logger = logging.getLogger(__name__)
class StockPicking(models.Model):
_inherit = 'stock.picking'
+ 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)
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)
is_internal_use = fields.Boolean('Internal Use', help='flag which is internal use or not')
@@ -122,6 +124,8 @@ class StockPicking(models.Model):
('cancel', 'Cancelled'),
], string='Status Reserve', readonly=True, tracking=True, help="The current state of the stock picking.")
notee = fields.Text(string="Note")
+ quantity_koli = fields.Float(string="Quantity Koli")
+ source_koli_id = fields.Many2one('stock.picking', string="Source Koli")
@api.model
def _compute_dokumen_tanda_terima(self):
@@ -166,6 +170,14 @@ class StockPicking(models.Model):
lalamove_image_url = fields.Char(string="Lalamove Image URL")
lalamove_image_html = fields.Html(string="Lalamove Image", compute="_compute_lalamove_image_html")
+ @api.onchange('quantity_koli')
+ def _onchange_quantity_koli(self):
+ self.check_koli_lines = [(5, 0, 0)]
+ self.check_koli_lines = [(0, 0, {
+ 'koli': f"{self.name}/{str(i+1).zfill(3)}",
+ 'picking_id': self.id,
+ }) for i in range(int(self.quantity_koli))]
+
def _compute_lalamove_image_html(self):
for record in self:
if record.lalamove_image_url:
@@ -1223,6 +1235,7 @@ class CheckKoli(models.Model):
_name = 'check.koli'
_description = 'Check Koli'
_order = 'picking_id, id'
+ _rec_name = 'koli'
picking_id = fields.Many2one(
'stock.picking',
@@ -1232,4 +1245,23 @@ class CheckKoli(models.Model):
index=True,
copy=False,
)
- product_id = fields.(string='Koli') \ No newline at end of file
+ koli = fields.Char(string='Koli')
+
+class ScanKoli(models.Model):
+ _name = 'scan.koli'
+ _description = 'Scan Koli'
+ _order = 'picking_id, id'
+
+ picking_id = fields.Many2one(
+ 'stock.picking',
+ string='Picking Reference',
+ required=True,
+ ondelete='cascade',
+ index=True,
+ copy=False,
+ )
+ koli_id = fields.Many2one('check.koli', string='Koli')
+
+ @api.constrains('koli_id')
+ def _constrains_koli_id(self):
+ self.picking_id.source_koli_id = self.koli_id.picking_id.id \ No newline at end of file
diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv
index 73877052..fa126492 100755
--- a/indoteknik_custom/security/ir.model.access.csv
+++ b/indoteknik_custom/security/ir.model.access.csv
@@ -150,6 +150,8 @@ access_v_move_outstanding,access.v.move.outstanding,model_v_move_outstanding,,1,
access_va_multi_approve,access.va.multi.approve,model_va_multi_approve,,1,1,1,1
access_va_multi_reject,access.va.multi.reject,model_va_multi_reject,,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_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 1c6ae8f7..42fa481d 100644
--- a/indoteknik_custom/views/stock_picking.xml
+++ b/indoteknik_custom/views/stock_picking.xml
@@ -72,6 +72,8 @@
<field name="count_line_detail"/>
<field name="dokumen_tanda_terima"/>
<field name="dokumen_pengiriman"/>
+ <field name="quantity_koli" attrs="{'invisible': [('location_dest_id', '!=', 60)]}"/>
+ <field name="source_koli_id" attrs="{'invisible': [('picking_type_code', '!=', 'outgoing')]}"/>
</field>
<field name="weight_uom_name" position="after">
<group>
@@ -198,11 +200,37 @@
<page string="Barcode Product" name="barcode_product" attrs="{'invisible': [('picking_type_code', '!=', 'incoming')]}">
<field name="barcode_product_lines"/>
</page>
+ <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')]}">
+ <field name="scan_koli_lines"/>
+ </page>
</page>
</field>
</record>
+ <record id="scan_koli_tree" model="ir.ui.view">
+ <field name="name">scan.koli.tree</field>
+ <field name="model">scan.koli</field>
+ <field name="arch" type="xml">
+ <tree editable="bottom">
+ <field name="koli_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>
+ <field name="arch" type="xml">
+ <tree editable="bottom">
+ <field name="koli"/>
+ </tree>
+ </field>
+ </record>
+
<record id="check_product_tree" model="ir.ui.view">
<field name="name">check.product.tree</field>
<field name="model">check.product</field>