Skip to content

Commit

Permalink
fix: Item tax validity comparison fixes (#34784)
Browse files Browse the repository at this point in the history
fix: Item tax validity comparison fixes (#34784)

fix: Item tax validity comparsion fixes
(cherry picked from commit 6f6928f)

Co-authored-by: Deepesh Garg <[email protected]>
  • Loading branch information
mergify[bot] and deepeshgarg007 authored Apr 10, 2023
1 parent ce151dd commit 71bafab
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 4 deletions.
16 changes: 16 additions & 0 deletions erpnext/setup/doctype/item_group/item_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,24 @@ def validate(self):

self.make_route()
self.validate_item_group_defaults()
self.check_item_tax()
ECommerceSettings.validate_field_filters(self.filter_fields, enable_field_filters=True)

def check_item_tax(self):
"""Check whether Tax Rate is not entered twice for same Tax Type"""
check_list = []
for d in self.get("taxes"):
if d.item_tax_template:
if (d.item_tax_template, d.tax_category) in check_list:
frappe.throw(
_("{0} entered twice {1} in Item Taxes").format(
frappe.bold(d.item_tax_template),
"for tax category {0}".format(frappe.bold(d.tax_category)) if d.tax_category else "",
)
)
else:
check_list.append((d.item_tax_template, d.tax_category))

def on_update(self):
NestedSet.on_update(self)
invalidate_cache_for(self)
Expand Down
11 changes: 8 additions & 3 deletions erpnext/stock/doctype/item/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,10 +354,15 @@ def check_item_tax(self):
check_list = []
for d in self.get("taxes"):
if d.item_tax_template:
if d.item_tax_template in check_list:
frappe.throw(_("{0} entered twice in Item Tax").format(d.item_tax_template))
if (d.item_tax_template, d.tax_category) in check_list:
frappe.throw(
_("{0} entered twice {1} in Item Taxes").format(
frappe.bold(d.item_tax_template),
"for tax category {0}".format(frappe.bold(d.tax_category)) if d.tax_category else "",
)
)
else:
check_list.append(d.item_tax_template)
check_list.append((d.item_tax_template, d.tax_category))

def validate_barcode(self):
from stdnum import ean
Expand Down
4 changes: 3 additions & 1 deletion erpnext/stock/get_item_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -606,7 +606,9 @@ def _get_item_tax_template(args, taxes, out=None, for_validate=False):
taxes_with_no_validity.append(tax)

if taxes_with_validity:
taxes = sorted(taxes_with_validity, key=lambda i: i.valid_from, reverse=True)
taxes = sorted(
taxes_with_validity, key=lambda i: i.valid_from or tax.maximum_net_rate, reverse=True
)
else:
taxes = taxes_with_no_validity

Expand Down

0 comments on commit 71bafab

Please sign in to comment.