fix: Add tax categories on company setup
diff --git a/erpnext/setup/setup_wizard/data/country_wise_tax.json b/erpnext/setup/setup_wizard/data/country_wise_tax.json
index 7822096..14215f0 100644
--- a/erpnext/setup/setup_wizard/data/country_wise_tax.json
+++ b/erpnext/setup/setup_wizard/data/country_wise_tax.json
@@ -1166,6 +1166,28 @@
"India": {
"chart_of_accounts": {
"*": {
+ "tax_categories": [
+ {
+ "title": "In-Sate",
+ "is_inter_state": 0,
+ "gst_state": ""
+ },
+ {
+ "title": "Out-Sate",
+ "is_inter_state": 1,
+ "gst_state": ""
+ },
+ {
+ "title": "Reverse Charge",
+ "is_inter_state": 0,
+ "gst_state": ""
+ },
+ {
+ "title": "Registered Composition",
+ "is_inter_state": 0,
+ "gst_state": ""
+ }
+ ],
"item_tax_templates": [
{
"title": "GST 9%",
diff --git a/erpnext/setup/setup_wizard/operations/taxes_setup.py b/erpnext/setup/setup_wizard/operations/taxes_setup.py
index f4fe18e..974ef5e 100644
--- a/erpnext/setup/setup_wizard/operations/taxes_setup.py
+++ b/erpnext/setup/setup_wizard/operations/taxes_setup.py
@@ -77,16 +77,11 @@
def from_detailed_data(company_name, data):
"""Create Taxes and Charges Templates from detailed data."""
coa_name = frappe.db.get_value('Company', company_name, 'chart_of_accounts')
- coa_data = data.get('chart_of_accounts', {})
- tax_templates = coa_data.get(coa_name) or coa_data.get('*', {})
- tax_categories = data.get('tax_categories')
- sales_tax_templates = tax_templates.get('sales_tax_templates') or tax_templates.get('*', {})
- purchase_tax_templates = tax_templates.get('purchase_tax_templates') or tax_templates.get('*', {})
- item_tax_templates = tax_templates.get('item_tax_templates') or tax_templates.get('*', {})
-
- if tax_categories:
- for tax_category in tax_categories:
- make_tax_catgory(tax_category)
+ tax_templates = data.get(coa_name) or data.get('*')
+ sales_tax_templates = tax_templates.get('sales_tax_templates') or tax_templates.get('*')
+ purchase_tax_templates = tax_templates.get('purchase_tax_templates') or tax_templates.get('*')
+ item_tax_templates = tax_templates.get('item_tax_templates') or tax_templates.get('*')
+ tax_categories = tax_templates.get('tax_categories')
if sales_tax_templates:
for template in sales_tax_templates:
@@ -100,6 +95,10 @@
for template in item_tax_templates:
make_item_tax_template(company_name, template)
+ if tax_categories:
+ for tax_category in tax_categories:
+ make_tax_category(tax_category)
+
def make_taxes_and_charges_template(company_name, doctype, template):
template['company'] = company_name
@@ -158,6 +157,11 @@
return frappe.get_doc(template).insert(ignore_permissions=True)
+def make_tax_category(tax_category):
+ """ Make tax category based on title if not already created """
+ doctype = 'Tax Category'
+ if not frappe.db.exists(doctype, tax_category)
+ frappe.get_doc(tax_category).insert(ignore_permissions=True)
def get_or_create_account(company_name, account):
"""