diff --git a/erpnext/accounts/doctype/tax_category/test_records.json b/erpnext/accounts/doctype/tax_category/test_records.json index 056b2f3e7b..1bb7f5ed87 100644 --- a/erpnext/accounts/doctype/tax_category/test_records.json +++ b/erpnext/accounts/doctype/tax_category/test_records.json @@ -6,5 +6,9 @@ { "doctype": "Tax Category", "title": "_Test Tax Category 2" + }, + { + "doctype": "Tax Category", + "title": "_Test Tax Category 3" } ] diff --git a/erpnext/buying/doctype/supplier/test_records.json b/erpnext/buying/doctype/supplier/test_records.json index 9c019898cb..1aa63fb5ba 100644 --- a/erpnext/buying/doctype/supplier/test_records.json +++ b/erpnext/buying/doctype/supplier/test_records.json @@ -39,5 +39,11 @@ "company": "_Test Company", "account": "_Test Payable USD - _TC" }] + }, + { + "doctype": "Supplier", + "supplier_name": "_Test Supplier With Tax Category", + "supplier_group": "_Test Supplier Group", + "tax_category": "_Test Tax Category 1" } ] diff --git a/erpnext/buying/doctype/supplier/test_supplier.py b/erpnext/buying/doctype/supplier/test_supplier.py index 2211db7e0d..a377ec90f8 100644 --- a/erpnext/buying/doctype/supplier/test_supplier.py +++ b/erpnext/buying/doctype/supplier/test_supplier.py @@ -90,3 +90,33 @@ class TestSupplier(unittest.TestCase): supplier.country = 'Greece' supplier.save() self.assertEqual(supplier.country, "Greece") + + def test_party_details_tax_category(self): + from erpnext.accounts.party import get_party_details + + frappe.delete_doc_if_exists("Address", "_Test Address With Tax Category-Billing") + + # Tax Category without Address + details = get_party_details("_Test Supplier With Tax Category", party_type="Supplier") + self.assertEqual(details.tax_category, "_Test Tax Category 1") + + address = frappe.get_doc(dict( + doctype='Address', + address_title='_Test Address With Tax Category', + tax_category='_Test Tax Category 2', + address_type='Billing', + address_line1='Station Road', + city='_Test City', + country='India', + links=[dict( + link_doctype='Supplier', + link_name='_Test Supplier With Tax Category' + )] + )).insert() + + # Tax Category with Address + details = get_party_details("_Test Supplier With Tax Category", party_type="Supplier") + self.assertEqual(details.tax_category, "_Test Tax Category 2") + + # Rollback + address.delete() diff --git a/erpnext/selling/doctype/customer/test_customer.py b/erpnext/selling/doctype/customer/test_customer.py index cc2fc59f41..bf2bdf144a 100644 --- a/erpnext/selling/doctype/customer/test_customer.py +++ b/erpnext/selling/doctype/customer/test_customer.py @@ -56,6 +56,64 @@ class TestCustomer(unittest.TestCase): for key, value in iteritems(to_check): self.assertEqual(value, details.get(key)) + def test_party_details_tax_category(self): + from erpnext.accounts.party import get_party_details + + frappe.delete_doc_if_exists("Address", "_Test Address With Tax Category-Billing") + frappe.delete_doc_if_exists("Address", "_Test Address With Tax Category-Shipping") + + # Tax Category without Address + details = get_party_details("_Test Customer With Tax Category") + self.assertEqual(details.tax_category, "_Test Tax Category 1") + + billing_address = frappe.get_doc(dict( + doctype='Address', + address_title='_Test Address With Tax Category', + tax_category='_Test Tax Category 2', + address_type='Billing', + address_line1='Station Road', + city='_Test City', + country='India', + links=[dict( + link_doctype='Customer', + link_name='_Test Customer With Tax Category' + )] + )).insert() + shipping_address = frappe.get_doc(dict( + doctype='Address', + address_title='_Test Address With Tax Category', + tax_category='_Test Tax Category 3', + address_type='Shipping', + address_line1='Station Road', + city='_Test City', + country='India', + links=[dict( + link_doctype='Customer', + link_name='_Test Customer With Tax Category' + )] + )).insert() + + settings = frappe.get_single("Accounts Settings") + rollback_setting = settings.determine_address_tax_category_from + + # Tax Category from Billing Address + settings.determine_address_tax_category_from = "Billing Address" + settings.save() + details = get_party_details("_Test Customer With Tax Category") + self.assertEqual(details.tax_category, "_Test Tax Category 2") + + # Tax Category from Shipping Address + settings.determine_address_tax_category_from = "Shipping Address" + settings.save() + details = get_party_details("_Test Customer With Tax Category") + self.assertEqual(details.tax_category, "_Test Tax Category 3") + + # Rollback + settings.determine_address_tax_category_from = rollback_setting + settings.save() + billing_address.delete() + shipping_address.delete() + def test_rename(self): # delete communication linked to these 2 customers for name in ("_Test Customer 1", "_Test Customer 1 Renamed"): diff --git a/erpnext/selling/doctype/customer/test_records.json b/erpnext/selling/doctype/customer/test_records.json index a012c1ba38..61cb36b0fa 100644 --- a/erpnext/selling/doctype/customer/test_records.json +++ b/erpnext/selling/doctype/customer/test_records.json @@ -51,5 +51,13 @@ "company": "_Test Company", "account": "_Test Receivable USD - _TC" }] + }, + { + "customer_group": "_Test Customer Group", + "customer_name": "_Test Customer With Tax Category", + "customer_type": "Individual", + "doctype": "Customer", + "territory": "_Test Territory", + "tax_category": "_Test Tax Category 1" } ]