Skip to content

Commit

Permalink
fix: TaxJar update - nexus, selective api call
Browse files Browse the repository at this point in the history
  • Loading branch information
nemesis189 committed Sep 14, 2021
1 parent df3e4ce commit b01fe1c
Show file tree
Hide file tree
Showing 7 changed files with 114 additions and 5 deletions.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"actions": [],
"allow_rename": 1,
"creation": "2021-09-11 05:09:53.773838",
"doctype": "DocType",
"engine": "InnoDB",
"field_order": [
"region",
"region_code",
"country",
"country_code"
],
"fields": [
{
"fieldname": "region",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Region"
},
{
"fieldname": "region_code",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Region Code"
},
{
"fieldname": "country",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Country"
},
{
"fieldname": "country_code",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Country Code"
}
],
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2021-09-14 05:33:06.444710",
"modified_by": "Administrator",
"module": "ERPNext Integrations",
"name": "TaxJar Nexus List",
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt

# import frappe
from frappe.model.document import Document


class TaxJarNexusList(Document):
pass
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,17 @@ frappe.ui.form.on('TaxJar Settings', {
is_sandbox: (frm) => {
frm.toggle_reqd("api_key", !frm.doc.is_sandbox);
frm.toggle_reqd("sandbox_api_key", frm.doc.is_sandbox);
}
},

refresh: (frm) => {

frm.add_custom_button(__('Update Nexus List'), function(){
frm.call({
doc: frm.doc,
method: 'update_nexus_list'
});
});
},


});
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@
"configuration",
"tax_account_head",
"configuration_cb",
"shipping_account_head"
"shipping_account_head",
"section_break_12",
"nexus_address",
"nexus"
],
"fields": [
{
Expand Down Expand Up @@ -82,11 +85,28 @@
{
"fieldname": "cb_keys",
"fieldtype": "Column Break"
},
{
"fieldname": "section_break_12",
"fieldtype": "Section Break",
"label": "Nexus List"
},
{
"fieldname": "nexus_address",
"fieldtype": "HTML",
"label": "Nexus Address"
},
{
"fieldname": "nexus",
"fieldtype": "Table",
"label": "Nexus",
"options": "TaxJar Nexus List",
"read_only": 1
}
],
"issingle": 1,
"links": [],
"modified": "2020-04-30 04:38:03.311089",
"modified": "2021-09-14 01:41:55.871028",
"modified_by": "Administrator",
"module": "ERPNext Integrations",
"name": "TaxJar Settings",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@

from __future__ import unicode_literals

# import frappe
import frappe
from frappe.model.document import Document

from erpnext.erpnext_integrations.taxjar_integration import get_client


class TaxJarSettings(Document):
pass

@frappe.whitelist()
def update_nexus_list(self):
client = get_client()
nexus = client.nexus_regions()

new_nexus_list = [frappe._dict(address) for address in nexus]

self.set('nexus',[])
self.set('nexus',new_nexus_list)
self.save()
5 changes: 5 additions & 0 deletions erpnext/erpnext_integrations/taxjar_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,11 @@ def set_sales_tax(doc, method):
setattr(doc, "taxes", [tax for tax in doc.taxes if tax.account_head != TAX_ACCOUNT_HEAD])
return

# check if delivering within a nexus
nexus_list = frappe.get_doc('TaxJar Settings').get("nexus")
if tax_dict["to_state"] not in [nex.region_code for nex in nexus_list]:
return

tax_data = validate_tax_request(tax_dict)
if tax_data is not None:
if not tax_data.amount_to_collect:
Expand Down

0 comments on commit b01fe1c

Please sign in to comment.