diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-04-22 09:35:32 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-04-22 09:35:32 +0700 |
| commit | b1f520b1b3b100deea99980b5781744411fe6936 (patch) | |
| tree | 4cbf38778aa986ebe6941b1b0f887aa39da8718b | |
| parent | 758ce73a0f2bf8cf347d8e655954677d76349027 (diff) | |
push
| -rw-r--r-- | indoteknik_custom/models/stock_picking.py | 17 |
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) |
