test: single account for multiple tax categories
diff --git a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
index 8edf071..0e3acd7 100644
--- a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
+++ b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
@@ -410,7 +410,7 @@
"paid_amount_after_tax",
"base_paid_amount",
],
- "Journal Entry": ["tax_withholding_category", "total_amount"],
+ "Journal Entry": ["total_amount"],
}
entries = frappe.get_all(
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 af55ba6..7515616 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
@@ -5,8 +5,8 @@
from frappe.tests.utils import FrappeTestCase
from frappe.utils import today
-from erpnext.accounts.doctype.journal_entry.test_journal_entry import make_journal_entry
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
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
from erpnext.accounts.doctype.tax_withholding_category.test_tax_withholding_category import (
create_tax_withholding_category,
@@ -21,9 +21,10 @@
self.create_company()
self.clear_old_entries()
create_tax_accounts()
- create_tcs_category()
def test_tax_withholding_for_customers(self):
+ create_tax_category(cumulative_threshold=300)
+ frappe.db.set_value("Customer", "_Test Customer", "tax_withholding_category", "TCS")
si = create_sales_invoice(rate=1000)
pe = create_tcs_payment_entry()
jv = create_tcs_journal_entry()
@@ -40,6 +41,25 @@
]
self.check_expected_values(result, expected_values)
+ def test_single_account_for_multiple_categories(self):
+ create_tax_category("TDS - 1", rate=10, account="TDS - _TC")
+ inv_1 = make_purchase_invoice(rate=1000, do_not_submit=True)
+ inv_1.tax_withholding_category = "TDS - 1"
+ inv_1.submit()
+
+ create_tax_category("TDS - 2", rate=20, account="TDS - _TC")
+ inv_2 = make_purchase_invoice(rate=1000, do_not_submit=True)
+ inv_2.tax_withholding_category = "TDS - 2"
+ inv_2.submit()
+ result = execute(
+ frappe._dict(company="_Test Company", party_type="Supplier", from_date=today(), to_date=today())
+ )[1]
+ expected_values = [
+ [inv_1.name, "TDS - 1", 10, 5000, 500, 5500],
+ [inv_2.name, "TDS - 2", 20, 5000, 1000, 6000],
+ ]
+ 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])
@@ -73,24 +93,20 @@
).insert(ignore_if_duplicate=True)
-def create_tcs_category():
+def create_tax_category(category="TCS", rate=0.075, account="TCS - _TC", cumulative_threshold=0):
fiscal_year = get_fiscal_year(today(), company="_Test Company")
from_date = fiscal_year[1]
to_date = fiscal_year[2]
- tax_category = create_tax_withholding_category(
- category_name="TCS",
- rate=0.075,
+ create_tax_withholding_category(
+ category_name=category,
+ rate=rate,
from_date=from_date,
to_date=to_date,
- account="TCS - _TC",
- cumulative_threshold=300,
+ account=account,
+ cumulative_threshold=cumulative_threshold,
)
- customer = frappe.get_doc("Customer", "_Test Customer")
- customer.tax_withholding_category = "TCS"
- customer.save()
-
def create_tcs_payment_entry():
payment_entry = create_payment_entry(