summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/sale_order.py
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_custom/models/sale_order.py')
-rwxr-xr-xindoteknik_custom/models/sale_order.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 992c1a5d..8a595d8e 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -404,6 +404,23 @@ class SaleOrder(models.Model):
for order in self:
order.partner_is_cbd_locked = order.partner_id.is_cbd_locked
+ @api.onchange('payment_term_id')
+ def _onchange_partner_payment_term(self):
+ cbd_term = self.env['account.payment.term'].browse(26)
+ for rec in self:
+ if rec.partner_id and rec.partner_id.is_cbd_locked and cbd_term:
+ rec.payment_term_id = cbd_term
+
+ @api.constrains('payment_term_id', 'partner_id', 'state')
+ def _check_cbd_lock_sale_order(self):
+ cbd_term = self.env['account.payment.term'].browse(26)
+ for rec in self:
+ if rec.state == 'draft' and rec.partner_id.is_cbd_locked:
+ if rec.payment_term_id and rec.payment_term_id != cbd_term:
+ raise ValidationError(
+ "Customer ini terkunci ke CBD, hanya boleh pakai Payment Term CBD."
+ )
+
@api.depends('invoice_ids.payment_state', 'invoice_ids.amount_total', 'invoice_ids.amount_residual')
def _compute_payment_state_custom(self):
for order in self: