summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-05-14 15:09:46 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-05-14 15:09:46 +0700
commit1d7a2902b1b97e6fb7951252cf851695d6a8ee8e (patch)
tree4f54154c2742927b7f2a21a7ff1192202a85fbbb
parent2217e86706fcaf03da2c05761b4f837e90374ec2 (diff)
shipment group
-rw-r--r--indoteknik_custom/models/account_move_due_extension.py2
-rwxr-xr-xindoteknik_custom/models/sale_order.py47
-rw-r--r--indoteknik_custom/models/shipment_group.py3
-rw-r--r--indoteknik_custom/models/stock_picking.py2
4 files changed, 29 insertions, 25 deletions
diff --git a/indoteknik_custom/models/account_move_due_extension.py b/indoteknik_custom/models/account_move_due_extension.py
index c48c2372..4a3f40e2 100644
--- a/indoteknik_custom/models/account_move_due_extension.py
+++ b/indoteknik_custom/models/account_move_due_extension.py
@@ -96,7 +96,7 @@ class DueExtension(models.Model):
sales = self.env['sale.order'].browse(self.order_id.id)
- sales.action_confirm()
+ sales.with_context({'due_approve': True}).action_confirm()
self.order_id.due_id = self.id
self.approve_by = self.env.user.id
self.date_approve = datetime.utcnow()
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 99aa8053..8aff6b3a 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -1264,9 +1264,10 @@ class SaleOrder(models.Model):
if not order.real_shipping_id:
UserError('Real Delivery Address harus di isi')
- if order.validate_partner_invoice_due():
- return self._create_notification_action('Notification',
- 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
+ if self.env.context.get('due_approve', []) == False:
+ if order.validate_partner_invoice_due():
+ return self._create_notification_action('Notification',
+ 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
term_days = 0
for term_line in order.payment_term_id.line_ids:
@@ -1289,9 +1290,9 @@ class SaleOrder(models.Model):
if not order.user_id.active:
raise UserError("Salesperson sudah tidak aktif, mohon diisi yang benar pada data SO dan Contact")
- if order.validate_partner_invoice_due():
- return self._create_notification_action('Notification',
- 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
+ # if order.validate_partner_invoice_due():
+ # return self._create_notification_action('Notification',
+ # 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
if order._requires_approval_margin_leader():
order.approval_status = 'pengajuan2'
@@ -1511,10 +1512,11 @@ class SaleOrder(models.Model):
if not order.real_shipping_id:
UserError('Real Delivery Address harus di isi')
-
- if order.validate_partner_invoice_due():
- return self._create_notification_action('Notification',
- 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
+
+ if self.env.context.get('due_approve', []) == False:
+ if order.validate_partner_invoice_due():
+ return self._create_notification_action('Notification',
+ 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
if order._requires_approval_margin_leader():
order.approval_status = 'pengajuan2'
@@ -1605,19 +1607,18 @@ class SaleOrder(models.Model):
invoices = self.env['account.move'].search(query, order='invoice_date')
if invoices:
- if not self.env.user.is_leader and not self.env.user.is_sales_manager:
- due_extension = self.env['due.extension'].create([{
- 'partner_id': parent_id,
- 'day_extension': '3',
- 'order_id': self.id,
- }])
- due_extension.generate_due_line()
- self.due_id = due_extension.id
- if len(self.due_id.due_line) > 0:
- return True
- else:
- due_extension.unlink()
- return False
+ due_extension = self.env['due.extension'].create([{
+ 'partner_id': parent_id,
+ 'day_extension': '3',
+ 'order_id': self.id,
+ }])
+ due_extension.generate_due_line()
+ self.due_id = due_extension.id
+ if len(self.due_id.due_line) > 0:
+ return True
+ else:
+ due_extension.unlink()
+ return False
def _requires_approval_margin_leader(self):
return self.total_percent_margin <= 15 and not self.env.user.is_leader
diff --git a/indoteknik_custom/models/shipment_group.py b/indoteknik_custom/models/shipment_group.py
index b7d7ac12..a4bea9c4 100644
--- a/indoteknik_custom/models/shipment_group.py
+++ b/indoteknik_custom/models/shipment_group.py
@@ -93,6 +93,9 @@ class ShipmentGroupLine(models.Model):
if self.shipment_id.carrier_id and self.shipment_id.carrier_id != picking.carrier_id:
raise UserError('carrier must be same as shipment group')
+ if picking.total_mapping_koli == 0:
+ raise UserError(f'Picking {picking.name} tidak memiliki mapping koli')
+
self.partner_id = picking.partner_id
self.shipping_paid_by = picking.sale_id.shipping_paid_by
self.carrier_id = picking.carrier_id.id
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 6a6fe352..ac812a32 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -280,7 +280,7 @@ class StockPicking(models.Model):
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')
+ last_update_date_doc_kirim = fields.Datetime(string='Last Update Tanggal Kirim', copy=False)
update_date_doc_kirim_add = fields.Boolean(string='Update Tanggal Kirim Lewat ADD')
def _get_kgx_awb_number(self):