From 5c18654113d58363aa52dde30be3b65621747363 Mon Sep 17 00:00:00 2001 From: Subin Tom Date: Fri, 17 Sep 2021 00:10:41 +0530 Subject: [PATCH] fix: Renamed child table doctype, delete taxes for non nexus state --- .../__init__.py | 0 .../taxjar_nexus.json} | 2 +- .../taxjar_nexus.py} | 2 +- .../doctype/taxjar_settings/taxjar_settings.json | 4 ++-- .../erpnext_integrations/taxjar_integration.py | 16 +++++++++++++--- 5 files changed, 17 insertions(+), 7 deletions(-) rename erpnext/erpnext_integrations/doctype/{taxjar_nexus_list => taxjar_nexus}/__init__.py (100%) rename erpnext/erpnext_integrations/doctype/{taxjar_nexus_list/taxjar_nexus_list.json => taxjar_nexus/taxjar_nexus.json} (96%) rename erpnext/erpnext_integrations/doctype/{taxjar_nexus_list/taxjar_nexus_list.py => taxjar_nexus/taxjar_nexus.py} (85%) diff --git a/erpnext/erpnext_integrations/doctype/taxjar_nexus_list/__init__.py b/erpnext/erpnext_integrations/doctype/taxjar_nexus/__init__.py similarity index 100% rename from erpnext/erpnext_integrations/doctype/taxjar_nexus_list/__init__.py rename to erpnext/erpnext_integrations/doctype/taxjar_nexus/__init__.py diff --git a/erpnext/erpnext_integrations/doctype/taxjar_nexus_list/taxjar_nexus_list.json b/erpnext/erpnext_integrations/doctype/taxjar_nexus/taxjar_nexus.json similarity index 96% rename from erpnext/erpnext_integrations/doctype/taxjar_nexus_list/taxjar_nexus_list.json rename to erpnext/erpnext_integrations/doctype/taxjar_nexus/taxjar_nexus.json index d543403ef9b..d4d4a512b58 100644 --- a/erpnext/erpnext_integrations/doctype/taxjar_nexus_list/taxjar_nexus_list.json +++ b/erpnext/erpnext_integrations/doctype/taxjar_nexus/taxjar_nexus.json @@ -42,7 +42,7 @@ "modified": "2021-09-14 05:33:06.444710", "modified_by": "Administrator", "module": "ERPNext Integrations", - "name": "TaxJar Nexus List", + "name": "TaxJar Nexus", "owner": "Administrator", "permissions": [], "sort_field": "modified", diff --git a/erpnext/erpnext_integrations/doctype/taxjar_nexus_list/taxjar_nexus_list.py b/erpnext/erpnext_integrations/doctype/taxjar_nexus/taxjar_nexus.py similarity index 85% rename from erpnext/erpnext_integrations/doctype/taxjar_nexus_list/taxjar_nexus_list.py rename to erpnext/erpnext_integrations/doctype/taxjar_nexus/taxjar_nexus.py index b93be5190fd..c24aa8ca7d4 100644 --- a/erpnext/erpnext_integrations/doctype/taxjar_nexus_list/taxjar_nexus_list.py +++ b/erpnext/erpnext_integrations/doctype/taxjar_nexus/taxjar_nexus.py @@ -5,5 +5,5 @@ from frappe.model.document import Document -class TaxJarNexusList(Document): +class TaxJarNexus(Document): pass diff --git a/erpnext/erpnext_integrations/doctype/taxjar_settings/taxjar_settings.json b/erpnext/erpnext_integrations/doctype/taxjar_settings/taxjar_settings.json index da8e77f7833..ccbac2c18a7 100644 --- a/erpnext/erpnext_integrations/doctype/taxjar_settings/taxjar_settings.json +++ b/erpnext/erpnext_integrations/doctype/taxjar_settings/taxjar_settings.json @@ -100,13 +100,13 @@ "fieldname": "nexus", "fieldtype": "Table", "label": "Nexus", - "options": "TaxJar Nexus List", + "options": "TaxJar Nexus", "read_only": 1 } ], "issingle": 1, "links": [], - "modified": "2021-09-14 01:41:55.871028", + "modified": "2021-09-16 08:54:48.444487", "modified_by": "Administrator", "module": "ERPNext Integrations", "name": "TaxJar Settings", diff --git a/erpnext/erpnext_integrations/taxjar_integration.py b/erpnext/erpnext_integrations/taxjar_integration.py index bd09557f78e..2a7243c2430 100644 --- a/erpnext/erpnext_integrations/taxjar_integration.py +++ b/erpnext/erpnext_integrations/taxjar_integration.py @@ -4,7 +4,7 @@ import frappe import taxjar from frappe import _ from frappe.contacts.doctype.address.address import get_company_address -from frappe.utils import cint +from frappe.utils import cint, flt from erpnext import get_default_company @@ -172,8 +172,7 @@ def set_sales_tax(doc, method): return # check if delivering within a nexus - if not frappe.db.get_value('TaxJar Nexus List', {'region_code': tax_dict["to_state"]}) - return + check_for_nexus(doc, tax_dict) tax_data = validate_tax_request(tax_dict) if tax_data is not None: @@ -202,6 +201,17 @@ def set_sales_tax(doc, method): doc.run_method("calculate_taxes_and_totals") +def check_for_nexus(doc, tax_dict): + if not frappe.db.get_value('TaxJar Nexus', {'region_code': tax_dict["to_state"]}): + for item in doc.get("items"): + item.tax_collectable = flt(0) + item.taxable_amount = flt(0) + + for tax in doc.taxes: + if tax.account_head == TAX_ACCOUNT_HEAD: + doc.taxes.remove(tax) + return + def check_sales_tax_exemption(doc): # if the party is exempt from sales tax, then set all tax account heads to zero sales_tax_exempted = hasattr(doc, "exempt_from_sales_tax") and doc.exempt_from_sales_tax \