summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-07-31 11:01:23 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-07-31 11:01:23 +0000
commit4ad7f4cb0ff3a1072d14531dfe9e5e0e8ac5ef14 (patch)
tree3f20f373c919fe7b3f079ef6ab669af0ec6305b7
parent6c12652fd713483b3f5af6106a00695eedba46f3 (diff)
parenta05a1dc3f4c936c0162f66a24f69ca8b236acfea (diff)
Merged in payment_term_so (pull request #373)
<miqdad> add validation when changing not matched payment term
-rwxr-xr-xindoteknik_custom/models/sale_order.py18
-rwxr-xr-xindoteknik_custom/views/sale_order.xml5
2 files changed, 21 insertions, 2 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 4e36a9fb..47018f52 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -3088,6 +3088,24 @@ class SaleOrder(models.Model):
except:
pass
+ #payment term vals
+ if 'payment_term_id' in vals and any(
+ order.approval_status in ['pengajuan1', 'pengajuan2', 'approved'] for order in self):
+ raise UserError(
+ "Payment Term tidak dapat diubah karena Sales Order sedang dalam proses approval atau sudah diapprove.")
+
+ if 'payment_term_id' in vals:
+ for order in self:
+ partner = order.partner_id.parent_id or order.partner_id
+ customer_payment_term = partner.property_payment_term_id
+ if vals['payment_term_id'] != customer_payment_term.id:
+ raise UserError(
+ f"Payment Term berbeda pada Master Data Customer. "
+ f"Harap ganti ke '{customer_payment_term.name}' "
+ f"sesuai dengan payment term yang terdaftar pada customer."
+ )
+
+
res = super(SaleOrder, self).write(vals)
# Update before margin setelah write
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index e8f41ca3..868bce7b 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -355,8 +355,9 @@
</field>
<field name="payment_term_id" position="attributes">
<attribute name="attrs">
- {'readonly': [('approval_status', '=', 'approved'), ('state', 'not in',
- ['cancel', 'draft'])]}
+ {'readonly': ['|', ('approval_status', 'in', ['pengajuan1', 'pengajuan2', 'approved']),
+ ('state', 'not in',
+ ['cancel', 'draft'])]}
</attribute>
</field>