summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-05-02 08:12:53 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-05-02 08:12:53 +0000
commit34d969de4618e0ef3c930ba24e78dac1e2b36500 (patch)
treed2e269d4822db19e72b771e485c25005cb04f340
parentda5754b2be5996cdffbe0ba778ed3b1fa6cf7d73 (diff)
parentc4dbf79115f0a468be9ff6e63f5c0dd4a7cf1718 (diff)
Merged in tax-afp (pull request #290)
(andri) add validasi taxes pada SO harus seragam
-rwxr-xr-xindoteknik_custom/models/sale_order.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 569219f7..b0e17a3a 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -248,6 +248,16 @@ class SaleOrder(models.Model):
nomor_so_pengganti = fields.Char(string='Nomor SO Pengganti', copy=False, tracking=3)
shipping_option_id = fields.Many2one("shipping.option", string="Selected Shipping Option", domain="['|', ('sale_order_id', '=', False), ('sale_order_id', '=', id)]")
+ def _validate_uniform_taxes(self):
+ for order in self:
+ tax_sets = set()
+ for line in order.order_line:
+ tax_ids = tuple(sorted(line.tax_id.ids))
+ if tax_ids:
+ tax_sets.add(tax_ids)
+ if len(tax_sets) > 1:
+ raise ValidationError("Semua produk dalam Sales Order harus memiliki kombinasi pajak yang sama.")
+
@api.constrains('fee_third_party', 'delivery_amt', 'biaya_lain_lain')
def _check_total_margin_excl_third_party(self):
for rec in self:
@@ -1036,6 +1046,7 @@ class SaleOrder(models.Model):
self._validate_order()
for order in self:
+ order._validate_uniform_taxes()
order.order_line.validate_line()
term_days = 0
@@ -1088,6 +1099,7 @@ class SaleOrder(models.Model):
self._validate_order()
for order in self:
+ order._validate_uniform_taxes()
order.order_line.validate_line()
order.check_data_real_delivery_address()
order._validate_order()
@@ -1319,6 +1331,7 @@ class SaleOrder(models.Model):
def action_confirm(self):
for order in self:
+ order._validate_uniform_taxes()
order.check_duplicate_product()
order.check_product_bom()
order.check_credit_limit()