summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-04-10 13:36:30 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-04-10 13:36:30 +0700
commit00c69ce93bdb0071cd563be855857d2137115868 (patch)
tree839739ecc98fcb14168a9c674cb662712ad1ff8e
parentccd98307c3b48b25bbbb053caa2dba0cce5117d1 (diff)
push
-rw-r--r--indoteknik_custom/models/stock_picking.py35
-rw-r--r--indoteknik_custom/views/stock_picking.xml3
2 files changed, 34 insertions, 4 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index be033b39..3aa18233 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -195,6 +195,12 @@ class StockPicking(models.Model):
# countdown_ready_to_ship = fields.Char(string='Countdown Ready to Ship', compute='_callculate_sequance', store=False, compute_sudo=False)
final_seq = fields.Float(string='Remaining Time')
+ @api.constrains('scan_koli_lines')
+ def _constrains_scan_koli_lines(self):
+ now = datetime.datetime.utcnow()
+ for picking in self:
+ if len(picking.scan_koli_lines) > 0:
+ picking.driver_departure_date = now
@api.depends('total_so_koli')
def _compute_total_so_koli(self):
@@ -1568,6 +1574,19 @@ class CheckKoli(models.Model):
)
koli = fields.Char(string='Koli')
reserved_id = fields.Many2one('stock.picking', string='Reserved Picking')
+ check_koli_progress = fields.Char(
+ string="Progress Check Koli"
+ )
+
+ @api.constrains('koli')
+ def _check_koli_progress(self):
+ for check in self:
+ if check.picking_id:
+ all_checks = self.env['check.koli'].search([('picking_id', '=', check.picking_id.id)], order='id')
+ if all_checks:
+ check_index = list(all_checks).index(check) + 1 # Nomor urut check
+ total_so_koli = len(all_checks)
+ check.check_koli_progress = f"{check_index}/{total_so_koli}" if total_so_koli else "0/0"
class ScanKoli(models.Model):
_name = 'scan.koli'
@@ -1589,6 +1608,15 @@ class ScanKoli(models.Model):
compute="_compute_scan_koli_progress"
)
+ def _compute_scan_koli_progress(self):
+ for scan in self:
+ if scan.picking_id:
+ all_scans = self.env['scan.koli'].search([('picking_id', '=', scan.picking_id.id)], order='id')
+ if all_scans:
+ scan_index = list(all_scans).index(scan) + 1 # Nomor urut scan
+ total_so_koli = scan.picking_id.total_so_koli
+ scan.scan_koli_progress = f"{scan_index}/{total_so_koli}" if total_so_koli else "0/0"
+
@api.onchange('koli_id')
def _onchange_koli_compare_with_konfirm_koli(self):
if not self.koli_id:
@@ -1661,9 +1689,10 @@ class ScanKoli(models.Model):
for scan in self:
if scan.picking_id:
all_scans = self.env['scan.koli'].search([('picking_id', '=', scan.picking_id.id)], order='id')
- scan_index = list(all_scans).index(scan) + 1 # Nomor urut scan
- total_so_koli = scan.picking_id.total_so_koli
- scan.scan_koli_progress = f"{scan_index}/{total_so_koli}" if total_so_koli else "0/0"
+ if all_scans:
+ scan_index = list(all_scans).index(scan) + 1 # Nomor urut scan
+ total_so_koli = scan.picking_id.total_so_koli
+ scan.scan_koli_progress = f"{scan_index}/{total_so_koli}" if total_so_koli else "0/0"
@api.constrains('picking_id', 'picking_id.total_so_koli')
def _check_koli_validation(self):
diff --git a/indoteknik_custom/views/stock_picking.xml b/indoteknik_custom/views/stock_picking.xml
index 67593b5b..d6850b2f 100644
--- a/indoteknik_custom/views/stock_picking.xml
+++ b/indoteknik_custom/views/stock_picking.xml
@@ -244,9 +244,10 @@
<field name="name">check.koli.tree</field>
<field name="model">check.koli</field>
<field name="arch" type="xml">
- <tree editable="bottom">
+ <tree editable="bottom">
<field name="koli"/>
<field name="reserved_id"/>
+ <field name="check_koli_progress"/>
</tree>
</field>
</record>