summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/sale_order.py
diff options
context:
space:
mode:
authorAndriFP <andrifebriyadiputra@gmail.com>2025-09-06 14:04:27 +0700
committerAndriFP <andrifebriyadiputra@gmail.com>2025-09-06 14:04:27 +0700
commit4cdb3a7b89d5e93449fadafec015e80dad1cf47f (patch)
tree2564c2dca5de37e24c9871d411c111fad5c05aa3 /indoteknik_custom/models/sale_order.py
parent70dfadc9aa8274e8f9aafa4ec594af0b5a37343b (diff)
(andri) add validasi di SO dan respartner
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: