fix: Apply single transaction threshold on net_total instead of supplier credit amount (#25243)
* fix: Apply single transaction threshold on net_total instead of supplier credit amount
* fix: Apply single transaction threshold on net_total instead of supplier credit amount
* fix: test
Co-authored-by: Nabin Hait <nabinhait@gmail.com>
diff --git a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
index 961bdb1..09db7fe 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
@@ -251,7 +251,7 @@
threshold = tax_details.get('threshold', 0)
cumulative_threshold = tax_details.get('cumulative_threshold', 0)
- if ((threshold and supp_credit_amt >= threshold) or (cumulative_threshold and supp_credit_amt >= cumulative_threshold)):
+ if ((threshold and inv.net_total >= threshold) or (cumulative_threshold and supp_credit_amt >= cumulative_threshold)):
if ldc and is_valid_certificate(
ldc.valid_from, ldc.valid_upto,
inv.posting_date, tax_deducted,
diff --git a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
index dd3b49a..0cea761 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
@@ -87,50 +87,6 @@
for d in invoices:
d.cancel()
- def test_single_threshold_tds_with_previous_vouchers(self):
- invoices = []
- frappe.db.set_value("Supplier", "Test TDS Supplier2", "tax_withholding_category", "Single Threshold TDS")
- pi = create_purchase_invoice(supplier="Test TDS Supplier2")
- pi.submit()
- invoices.append(pi)
-
- pi = create_purchase_invoice(supplier="Test TDS Supplier2")
- pi.submit()
- invoices.append(pi)
-
- self.assertEqual(pi.taxes_and_charges_deducted, 2000)
- self.assertEqual(pi.grand_total, 8000)
-
- # delete invoices to avoid clashing
- for d in invoices:
- d.cancel()
-
- def test_single_threshold_tds_with_previous_vouchers_and_no_tds(self):
- invoices = []
- doc = create_supplier(supplier_name = "Test TDS Supplier ABC",
- tax_withholding_category="Single Threshold TDS")
- supplier = doc.name
-
- pi = create_purchase_invoice(supplier=supplier)
- pi.submit()
- invoices.append(pi)
-
- # TDS not applied
- pi = create_purchase_invoice(supplier=supplier, do_not_apply_tds=True)
- pi.submit()
- invoices.append(pi)
-
- pi = create_purchase_invoice(supplier=supplier)
- pi.submit()
- invoices.append(pi)
-
- self.assertEqual(pi.taxes_and_charges_deducted, 2000)
- self.assertEqual(pi.grand_total, 8000)
-
- # delete invoices to avoid clashing
- for d in invoices:
- d.cancel()
-
def test_cumulative_threshold_tcs(self):
frappe.db.set_value("Customer", "Test TCS Customer", "tax_withholding_category", "Cumulative Threshold TCS")
invoices = []