Merge pull request #1775 from nabinhait/v4-hotfix
create custom fields for india specific fields
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index fba0554..4d69a0f 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -39,7 +39,6 @@
execute:frappe.delete_doc("DocType", "Stock Ledger")
execute:frappe.db.sql("update `tabJournal Voucher` set voucher_type='Journal Entry' where ifnull(voucher_type, '')=''")
execute:frappe.delete_doc("DocType", "Grade")
-erpnext.patches.v4_0.remove_india_specific_fields
execute:frappe.db.sql("delete from `tabWebsite Item Group` where ifnull(item_group, '')=''")
execute:frappe.delete_doc("Print Format", "SalesInvoice")
execute:import frappe.defaults;frappe.defaults.clear_default("price_list_currency")
@@ -56,3 +55,4 @@
erpnext.patches.v4_0.update_tax_amount_after_discount
execute:frappe.reset_perms("GL Entry") #2014-06-09
execute:frappe.reset_perms("Stock Ledger Entry") #2014-06-09
+erpnext.patches.v4_0.create_custom_fields_for_india_specific_fields
diff --git a/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py b/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py
new file mode 100644
index 0000000..eeb0f5b
--- /dev/null
+++ b/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py
@@ -0,0 +1,63 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.core.doctype.custom_field.custom_field import create_custom_field_if_values_exist
+
+def execute():
+ frappe.reload_doc("stock", "doctype", "purchase_receipt")
+ frappe.reload_doc("hr", "doctype", "employee")
+ frappe.reload_doc("hr", "doctype", "salary_slip")
+
+ india_specific_fields = {
+ "Purchase Receipt": [{
+ "label": "Supplier Shipment No",
+ "fieldname": "challan_no",
+ "fieldtype": "Data",
+ "insert_after": "is_subcontracted"
+ }, {
+ "label": "Supplier Shipment Date",
+ "fieldname": "challan_date",
+ "fieldtype": "Date",
+ "insert_after": "challan_no"
+ }],
+ "Employee": [{
+ "label": "PAN Number",
+ "fieldname": "pan_number",
+ "fieldtype": "Data",
+ "insert_after": "company_email"
+ }, {
+ "label": "Gratuity LIC Id",
+ "fieldname": "gratuity_lic_id",
+ "fieldtype": "Data",
+ "insert_after": "pan_number"
+ }, {
+ "label": "Esic Card No",
+ "fieldname": "esic_card_no",
+ "fieldtype": "Data",
+ "insert_after": "bank_ac_no"
+ }, {
+ "label": "PF Number",
+ "fieldname": "pf_number",
+ "fieldtype": "Data",
+ "insert_after": "esic_card_no"
+ }],
+ "Salary Slip": [{
+ "label": "Esic No",
+ "fieldname": "esic_no",
+ "fieldtype": "Data",
+ "insert_after": "letter_head",
+ "permlevel": 1
+ }, {
+ "label": "PF Number",
+ "fieldname": "pf_no",
+ "fieldtype": "Data",
+ "insert_after": "esic_no",
+ "permlevel": 1
+ }]
+ }
+
+ for dt, docfields in india_specific_fields.items():
+ for df in docfields:
+ create_custom_field_if_values_exist(dt, df)
diff --git a/erpnext/patches/v4_0/remove_india_specific_fields.py b/erpnext/patches/v4_0/remove_india_specific_fields.py
deleted file mode 100644
index 3070959..0000000
--- a/erpnext/patches/v4_0/remove_india_specific_fields.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.core.doctype.custom_field.custom_field import create_custom_field_if_values_exist
-
-def execute():
- frappe.db.sql("delete from tabDocField where parent='Salary Slip' and options='Grade'")
- docfields = {
- ("Purchase Receipt", "challan_no"): frappe.get_meta("Purchase Receipt").get_field("challan_no"),
- ("Purchase Receipt", "challan_date"): frappe.get_meta("Purchase Receipt").get_field("challan_date"),
- ("Employee", "pf_number"): frappe.get_meta("Employee").get_field("pf_number"),
- ("Employee", "pan_number"): frappe.get_meta("Employee").get_field("pan_number"),
- ("Employee", "gratuity_lic_id"): frappe.get_meta("Employee").get_field("gratuity_lic_id"),
- ("Employee", "esic_card_no"): frappe.get_meta("Employee").get_field("esic_card_no"),
- ("Salary Slip", "esic_no"): frappe.get_meta("Salary Slip").get_field("esic_no"),
- ("Salary Slip", "pf_no"): frappe.get_meta("Salary Slip").get_field("pf_no")
- }
-
- for (doctype, fieldname), df in docfields.items():
- if not df:
- continue
- opts = df.as_dict()
- if df.idx >= 2:
- opts["insert_after"] = frappe.get_meta(doctype).get("fields")[df.idx - 2].fieldname
-
- frappe.delete_doc("DocField", df.name)
- frappe.clear_cache(doctype=doctype)
- create_custom_field_if_values_exist(doctype, opts)