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>
This commit is contained in:
parent
1e0d22a38f
commit
e782531529
@ -251,7 +251,7 @@ def get_tds_amount(ldc, parties, inv, tax_details, fiscal_year_details, tax_dedu
|
|||||||
threshold = tax_details.get('threshold', 0)
|
threshold = tax_details.get('threshold', 0)
|
||||||
cumulative_threshold = tax_details.get('cumulative_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(
|
if ldc and is_valid_certificate(
|
||||||
ldc.valid_from, ldc.valid_upto,
|
ldc.valid_from, ldc.valid_upto,
|
||||||
inv.posting_date, tax_deducted,
|
inv.posting_date, tax_deducted,
|
||||||
|
|||||||
@ -87,50 +87,6 @@ class TestTaxWithholdingCategory(unittest.TestCase):
|
|||||||
for d in invoices:
|
for d in invoices:
|
||||||
d.cancel()
|
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):
|
def test_cumulative_threshold_tcs(self):
|
||||||
frappe.db.set_value("Customer", "Test TCS Customer", "tax_withholding_category", "Cumulative Threshold TCS")
|
frappe.db.set_value("Customer", "Test TCS Customer", "tax_withholding_category", "Cumulative Threshold TCS")
|
||||||
invoices = []
|
invoices = []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user