summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-04-22 09:35:32 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-04-22 09:35:32 +0700
commitb1f520b1b3b100deea99980b5781744411fe6936 (patch)
tree4cbf38778aa986ebe6941b1b0f887aa39da8718b
parent758ce73a0f2bf8cf347d8e655954677d76349027 (diff)
push
-rw-r--r--indoteknik_custom/models/stock_picking.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 977b79c0..a860dd5d 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -249,11 +249,12 @@ 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')
approval_invoice_date_id = fields.Many2one('approval.invoice.date', string='Approval Invoice Date')
+ last_update_date_doc_kirim = fields.Datetime(string='Last Update Tanggal Kirim')
def _check_date_doc_kirim_modification(self):
for record in self:
- if record.date_doc_kirim:
- kirim_date = fields.Datetime.from_string(record.date_doc_kirim)
+ if record.last_update_date_doc_kirim:
+ kirim_date = fields.Datetime.from_string(record.last_update_date_doc_kirim)
now = fields.Datetime.now()
deadline = kirim_date + timedelta(days=1)
@@ -269,9 +270,9 @@ class StockPicking(models.Model):
for rec in self:
rec.calculate_line_no()
- invoice = self.env['account.move'].search([('sale_id', '=', rec.sale_id.id)], limit=1, order='create_date desc')
+ invoice = self.env['account.move'].search([('sale_id', '=', rec.sale_id.id), ('move_type', '=', 'out_invoice'), ('state', '=', 'posted')], limit=1, order='create_date desc')
- if invoice:
+ if invoice and not self.env.context.get('active_model') == 'stock.picking':
rec._check_date_doc_kirim_modification()
if rec.date_doc_kirim != invoice.invoice_date:
get_approval_invoice_date = self.env['approval.invoice.date'].search([('picking_id', '=', rec.id),('state', '=', 'draft')], limit=1)
@@ -296,6 +297,8 @@ class StockPicking(models.Model):
'tag': 'display_notification',
'params': { 'title': 'Notification', 'message': 'Invoice Date Tidak Sesuai, Document Approval Invoice Date Terbuat', 'next': {'type': 'ir.actions.act_window_close'} },
}
+
+ rec.last_update_date_doc_kirim = fields.Datetime.now()
@api.constrains('scan_koli_lines')
@@ -1180,18 +1183,16 @@ class StockPicking(models.Model):
def check_invoice_date(self):
for picking in self:
if picking.picking_type_code != 'outgoing' or 'BU/OUT/' not in picking.name:
- continue # Skip non-relevant pickings
+ continue
invoice = self.env['account.move'].search([('sale_id', '=', picking.sale_id.id)], limit=1)
if not invoice:
- continue # Skip if no invoice found
+ continue
- # Check if both dates exist
if not picking.date_doc_kirim or not invoice.invoice_date:
raise UserError("Tanggal Kirim atau Tanggal Invoice belum diisi!")
- # Convert to date objects for comparison
picking_date = fields.Date.to_date(picking.date_doc_kirim)
invoice_date = fields.Date.to_date(invoice.invoice_date)