From 1f8fce253dd2415dec5b4f1994967a0e539d60df Mon Sep 17 00:00:00 2001 From: ljain112 Date: Fri, 18 Apr 2025 13:25:42 +0530 Subject: [PATCH] chore: added test case for date period in multiple tax withholding rules (cherry picked from commit 515fe340a86663553bf4cdc7817b133ee4590037) # Conflicts: # erpnext/accounts/report/tax_withholding_details/test_tax_withholding_details.py --- .../test_tax_withholding_details.py | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/report/tax_withholding_details/test_tax_withholding_details.py b/erpnext/accounts/report/tax_withholding_details/test_tax_withholding_details.py index 7515616b0b8..6eff81e7f42 100644 --- a/erpnext/accounts/report/tax_withholding_details/test_tax_withholding_details.py +++ b/erpnext/accounts/report/tax_withholding_details/test_tax_withholding_details.py @@ -3,7 +3,7 @@ import frappe from frappe.tests.utils import FrappeTestCase -from frappe.utils import today +from frappe.utils import add_to_date, today from erpnext.accounts.doctype.payment_entry.test_payment_entry import create_payment_entry from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice @@ -60,6 +60,56 @@ class TestTaxWithholdingDetails(AccountsTestMixin, FrappeTestCase): ] self.check_expected_values(result, expected_values) + def test_date_filters_in_multiple_tax_withholding_rules(self): + create_tax_category("TDS - 3", rate=10, account="TDS - _TC", cumulative_threshold=1) + # insert new rate in same fiscal year + fiscal_year = get_fiscal_year(today(), company="_Test Company") + mid_year = add_to_date(fiscal_year[1], months=6) + tds_doc = frappe.get_doc("Tax Withholding Category", "TDS - 3") + tds_doc.rates[0].to_date = mid_year + tds_doc.append( + "rates", + { + "tax_withholding_rate": 20, + "from_date": add_to_date(mid_year, days=1), + "to_date": fiscal_year[2], + "single_threshold": 1, + "cumulative_threshold": 1, + }, + ) + + tds_doc.save() + + inv_1 = make_purchase_invoice(rate=1000, do_not_submit=True) + inv_1.apply_tds = 1 + inv_1.tax_withholding_category = "TDS - 3" + inv_1.submit() + + inv_2 = make_purchase_invoice( + rate=1000, do_not_submit=True, posting_date=add_to_date(mid_year, days=1), do_not_save=True + ) + inv_2.set_posting_time = 1 + + inv_1.apply_tds = 1 + inv_2.tax_withholding_category = "TDS - 3" + inv_2.save() + inv_2.submit() + + result = execute( + frappe._dict( + company="_Test Company", + party_type="Supplier", + from_date=fiscal_year[1], + to_date=fiscal_year[2], + ) + )[1] + + expected_values = [ + [inv_1.name, "TDS - 3", 10.0, 5000, 500, 4500], + [inv_2.name, "TDS - 3", 20.0, 5000, 1000, 4000], + ] + self.check_expected_values(result, expected_values) + def check_expected_values(self, result, expected_values): for i in range(len(result)): voucher = frappe._dict(result[i])