Added SAC codes and 2/4 digit HSN codes, regional setup can be called multiple times (#9820)
This commit is contained in:
parent
8f507a984e
commit
1a60931435
@ -416,4 +416,5 @@ erpnext.patches.v8_1.gst_fixes #2017-07-06
|
|||||||
erpnext.patches.v8_0.update_production_orders
|
erpnext.patches.v8_0.update_production_orders
|
||||||
erpnext.patches.v8_1.remove_sales_invoice_from_returned_serial_no
|
erpnext.patches.v8_1.remove_sales_invoice_from_returned_serial_no
|
||||||
erpnext.patches.v8_1.allow_invoice_copy_to_edit_after_submit
|
erpnext.patches.v8_1.allow_invoice_copy_to_edit_after_submit
|
||||||
erpnext.patches.v8_1.update_gst_state
|
erpnext.patches.v8_1.update_gst_state
|
||||||
|
erpnext.patches.v8_1.add_hsn_sac_codes
|
||||||
10
erpnext/patches/v8_1/add_hsn_sac_codes.py
Normal file
10
erpnext/patches/v8_1/add_hsn_sac_codes.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import frappe
|
||||||
|
from erpnext.regional.india.setup import setup
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
company = frappe.get_all('Company', filters = {'country': 'India'})
|
||||||
|
if not company:
|
||||||
|
return
|
||||||
|
|
||||||
|
# call setup for india
|
||||||
|
setup(patch=True)
|
||||||
File diff suppressed because it is too large
Load Diff
2398
erpnext/regional/india/sac_code_data.json
Normal file
2398
erpnext/regional/india/sac_code_data.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -12,10 +12,10 @@ def setup(company=None, patch=True):
|
|||||||
make_custom_fields()
|
make_custom_fields()
|
||||||
add_permissions()
|
add_permissions()
|
||||||
add_custom_roles_for_reports()
|
add_custom_roles_for_reports()
|
||||||
add_hsn_codes()
|
add_hsn_sac_codes()
|
||||||
update_address_template()
|
|
||||||
add_print_formats()
|
add_print_formats()
|
||||||
if not patch:
|
if not patch:
|
||||||
|
update_address_template()
|
||||||
make_fixtures()
|
make_fixtures()
|
||||||
|
|
||||||
def update_address_template():
|
def update_address_template():
|
||||||
@ -33,21 +33,26 @@ def update_address_template():
|
|||||||
template=html
|
template=html
|
||||||
)).insert()
|
)).insert()
|
||||||
|
|
||||||
def add_hsn_codes():
|
def add_hsn_sac_codes():
|
||||||
if frappe.db.count('GST HSN Code') > 100:
|
# HSN codes
|
||||||
return
|
|
||||||
|
|
||||||
with open(os.path.join(os.path.dirname(__file__), 'hsn_code_data.json'), 'r') as f:
|
with open(os.path.join(os.path.dirname(__file__), 'hsn_code_data.json'), 'r') as f:
|
||||||
hsn_codes = json.loads(f.read())
|
hsn_codes = json.loads(f.read())
|
||||||
|
|
||||||
frappe.db.commit()
|
create_hsn_codes(hsn_codes, code_field="hsn_code")
|
||||||
frappe.db.sql('truncate `tabGST HSN Code`')
|
|
||||||
|
# SAC Codes
|
||||||
for d in hsn_codes:
|
with open(os.path.join(os.path.dirname(__file__), 'sac_code_data.json'), 'r') as f:
|
||||||
hsn_code = frappe.new_doc('GST HSN Code')
|
sac_codes = json.loads(f.read())
|
||||||
hsn_code.update(d)
|
create_hsn_codes(sac_codes, code_field="sac_code")
|
||||||
hsn_code.name = hsn_code.hsn_code
|
|
||||||
hsn_code.db_insert()
|
def create_hsn_codes(data, code_field):
|
||||||
|
for d in data:
|
||||||
|
if not frappe.db.exists("GST HSN Code", d[code_field]):
|
||||||
|
hsn_code = frappe.new_doc('GST HSN Code')
|
||||||
|
hsn_code.description = d["description"]
|
||||||
|
hsn_code.hsn_code = d[code_field]
|
||||||
|
hsn_code.name = d[code_field]
|
||||||
|
hsn_code.db_insert()
|
||||||
|
|
||||||
frappe.db.commit()
|
frappe.db.commit()
|
||||||
|
|
||||||
@ -119,7 +124,13 @@ def make_custom_fields():
|
|||||||
|
|
||||||
for doctype, fields in custom_fields.items():
|
for doctype, fields in custom_fields.items():
|
||||||
for df in fields:
|
for df in fields:
|
||||||
create_custom_field(doctype, df)
|
field = frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": df["fieldname"]})
|
||||||
|
if not field:
|
||||||
|
create_custom_field(doctype, df)
|
||||||
|
else:
|
||||||
|
custom_field = frappe.get_doc("Custom Field", field)
|
||||||
|
custom_field.update(df)
|
||||||
|
custom_field.save()
|
||||||
|
|
||||||
def make_fixtures():
|
def make_fixtures():
|
||||||
docs = [
|
docs = [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user