diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2025-07-31 11:01:23 +0000 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2025-07-31 11:01:23 +0000 |
| commit | 4ad7f4cb0ff3a1072d14531dfe9e5e0e8ac5ef14 (patch) | |
| tree | 3f20f373c919fe7b3f079ef6ab669af0ec6305b7 | |
| parent | 6c12652fd713483b3f5af6106a00695eedba46f3 (diff) | |
| parent | a05a1dc3f4c936c0162f66a24f69ca8b236acfea (diff) | |
Merged in payment_term_so (pull request #373)
<miqdad> add validation when changing not matched payment term
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 18 | ||||
| -rwxr-xr-x | indoteknik_custom/views/sale_order.xml | 5 |
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> |
