custom fields creation patch - not to be executed automatically
This commit is contained in:
parent
ece64fa908
commit
e68fe505b9
@ -151,7 +151,11 @@ def rename_in_db(ren_data, data_type, is_doctype):
|
|||||||
def update_dt_in_records(rendt):
|
def update_dt_in_records(rendt):
|
||||||
for d in rendt:
|
for d in rendt:
|
||||||
# Feed, property setter, search criteria, gl mapper, form 16A, naming series options, doclayer - dodtype is not mentioed in options
|
# Feed, property setter, search criteria, gl mapper, form 16A, naming series options, doclayer - dodtype is not mentioed in options
|
||||||
dt_list = webnotes.conn.sql("select t1.parent, t1.fieldname from tabDocField t1, tabDocType t2 where t1.parent = t2.name and t1.fieldname in ('dt', 'doctype', 'doc_type', 'dt_type') and ifnull(t1.options, '') = '' and ifnull(t2.issingle, 0) = 0 and t1.parent in ('Custom Field', 'Custom Script')")
|
dt_list = webnotes.conn.sql("""select t1.parent, t1.fieldname from
|
||||||
|
tabDocField t1, tabDocType t2 where t1.parent = t2.name and
|
||||||
|
t1.fieldname in ('dt', 'doctype', 'doc_type', 'dt_type') and
|
||||||
|
ifnull(t1.options, '') = '' and ifnull(t2.issingle, 0) = 0 and
|
||||||
|
t1.parent in ('Custom Field', 'Custom Script', 'Property Setter')""")
|
||||||
for dt in dt_list:
|
for dt in dt_list:
|
||||||
webnotes.conn.sql("update `tab%s` set %s = replace(%s, '%s', '%s') where %s = '%s'" % (dt[0], dt[1], dt[1], d, rendt[d], dt[1], d))
|
webnotes.conn.sql("update `tab%s` set %s = replace(%s, '%s', '%s') where %s = '%s'" % (dt[0], dt[1], dt[1], d, rendt[d], dt[1], d))
|
||||||
|
|
||||||
|
@ -6,9 +6,35 @@ def execute():
|
|||||||
* Remove docfield property setters if fieldname doesn't exist
|
* Remove docfield property setters if fieldname doesn't exist
|
||||||
* Remove prev_field properties if value fieldname doesn't exist
|
* Remove prev_field properties if value fieldname doesn't exist
|
||||||
"""
|
"""
|
||||||
|
change_property_setter_fieldnames()
|
||||||
clean_doctype_properties()
|
clean_doctype_properties()
|
||||||
clean_docfield_properties()
|
clean_docfield_properties()
|
||||||
|
|
||||||
|
def change_property_setter_fieldnames():
|
||||||
|
import webnotes.model.sync
|
||||||
|
webnotes.model.sync.sync('core', 'property_setter')
|
||||||
|
docfield_list = webnotes.conn.sql("""\
|
||||||
|
SELECT name, fieldname FROM `tabDocField`""", as_list=1)
|
||||||
|
custom_field_list = webnotes.conn.sql("""\
|
||||||
|
SELECT name, fieldname FROM `tabCustom Field`""", as_list=1)
|
||||||
|
field_list = docfield_list + custom_field_list
|
||||||
|
property_setter_list = webnotes.conn.sql("""\
|
||||||
|
SELECT name, doc_name, value, property
|
||||||
|
FROM `tabProperty Setter`
|
||||||
|
WHERE doctype_or_field='DocField'""")
|
||||||
|
field_dict = dict(field_list)
|
||||||
|
for name, doc_name, value, prop in property_setter_list:
|
||||||
|
if doc_name in field_dict:
|
||||||
|
webnotes.conn.sql("""\
|
||||||
|
UPDATE `tabProperty Setter`
|
||||||
|
SET field_name = %s
|
||||||
|
WHERE name = %s""", (field_dict.get(doc_name), name))
|
||||||
|
if value in field_dict and prop=='previous_field':
|
||||||
|
webnotes.conn.sql("""\
|
||||||
|
UPDATE `tabProperty Setter`
|
||||||
|
SET value = %s
|
||||||
|
WHERE name = %s""", (field_dict.get(value), name))
|
||||||
|
|
||||||
def clean_doctype_properties():
|
def clean_doctype_properties():
|
||||||
desc = webnotes.conn.sql("DESC `tabDocType`", as_dict=1)
|
desc = webnotes.conn.sql("DESC `tabDocType`", as_dict=1)
|
||||||
property_list = '", "'.join([d.get('Field') for d in desc])
|
property_list = '", "'.join([d.get('Field') for d in desc])
|
||||||
|
115
erpnext/patches/mar_2012/create_custom_fields.py
Normal file
115
erpnext/patches/mar_2012/create_custom_fields.py
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
# do not run this patch
|
||||||
|
field_list = [
|
||||||
|
['Contact', 'notes'],
|
||||||
|
['Contact', 'birthday'],
|
||||||
|
['Contact', 'anniversary'],
|
||||||
|
['Customer', 'state_tax_type'],
|
||||||
|
['Customer', 'tin_no'],
|
||||||
|
['Customer', 'excise_registration_number'],
|
||||||
|
['Customer', 'customer_discount_details'],
|
||||||
|
['Customer', 'notes'],
|
||||||
|
['Customer', 'follow_up_section'],
|
||||||
|
['Customer', 'follow_up'],
|
||||||
|
['Delivery Note', 'shipping_contact_no'],
|
||||||
|
['Delivery Note', 'shipping_tin_no'],
|
||||||
|
['Delivery Note', 'shipping_excise_no'],
|
||||||
|
['Delivery Note', 'tin_no'],
|
||||||
|
['Delivery Note', 'excise_no'],
|
||||||
|
['Delivery Note Detail', 'cetsh_number'],
|
||||||
|
['Item', 'base_material'],
|
||||||
|
['Item', 'tool_type'],
|
||||||
|
['Item', 'no_of_flutes'],
|
||||||
|
['Item', 'special_treatment'],
|
||||||
|
['Item', 'length'],
|
||||||
|
['Item', 'width'],
|
||||||
|
['Item', 'height_dia'],
|
||||||
|
['Item', 'pl_item'],
|
||||||
|
['Item', 'cetsh_number'],
|
||||||
|
['Item', 'stock_maintained'],
|
||||||
|
['Item', 'is_rm'],
|
||||||
|
['Journal Voucher Detail', 'line_remarks'],
|
||||||
|
['Lead', 'designation'],
|
||||||
|
['Purchase Order', 'challan_number'],
|
||||||
|
['Quotation', 'cust_enq_no'],
|
||||||
|
['Quotation', 'enq_date'],
|
||||||
|
['Quotation', 'quote_valid'],
|
||||||
|
['Quotation', 'due_date'],
|
||||||
|
['Receivable Voucher', 'voucher_time'],
|
||||||
|
['Receivable Voucher', 'removal_time'],
|
||||||
|
['Receivable Voucher', 'removal_date'],
|
||||||
|
['Receivable Voucher', 'shipping_address'],
|
||||||
|
['Receivable Voucher', 'shipping_location'],
|
||||||
|
['Receivable Voucher', 'ship_to'],
|
||||||
|
['Receivable Voucher', 'shipping_contact_no'],
|
||||||
|
['Receivable Voucher', 'shipping_excise_no'],
|
||||||
|
['Receivable Voucher', 'shipping_tin_no'],
|
||||||
|
['Receivable Voucher', 'po_no'],
|
||||||
|
['Receivable Voucher', 'po_date'],
|
||||||
|
['Receivable Voucher', 'lr_no'],
|
||||||
|
['Receivable Voucher', 'transporters'],
|
||||||
|
['Receivable Voucher', 'ship_terms'],
|
||||||
|
['Receivable Voucher', 'tin_no'],
|
||||||
|
['Receivable Voucher', 'excise_no'],
|
||||||
|
['RV Detail', 'cetsh_number'],
|
||||||
|
['Sales Order', 'shipping_contact_no'],
|
||||||
|
['Sales Order', 'shipping_tin_no'],
|
||||||
|
['Sales Order', 'shipping_excise_no'],
|
||||||
|
['Sales Order', 'tin_no'],
|
||||||
|
['Sales Order', 'excise_number'],
|
||||||
|
['Sales Order Detail', 'cetsh_number'],
|
||||||
|
['Sales Order Detail', 'prd_notes'],
|
||||||
|
['Shipping Address', 'phone_no'],
|
||||||
|
['Shipping Address', 'tin_no'],
|
||||||
|
['Shipping Address', 'excise_no'],
|
||||||
|
['Stock Entry', 'process_custom'],
|
||||||
|
['Stock Entry', 'city'],
|
||||||
|
['Stock Entry', 'address_line_2'],
|
||||||
|
['Stock Entry', 'address_line_1'],
|
||||||
|
['Stock Entry', 'comp_other'],
|
||||||
|
['Stock Entry', 'mobile_no'],
|
||||||
|
['Stock Entry', 'phone_no'],
|
||||||
|
['Stock Entry', 'country'],
|
||||||
|
['Stock Entry', 'state'],
|
||||||
|
['Stock Entry', 'challan_number'],
|
||||||
|
['Stock Entry Detail', 'machine'],
|
||||||
|
['Stock Entry Detail', 'worker'],
|
||||||
|
['Supplier', 'notes'],
|
||||||
|
['Supplier', 'purchase_other_charges'],
|
||||||
|
['Supplier', 'tax_details'],
|
||||||
|
['Supplier', 'tin_number'],
|
||||||
|
['Supplier', 'excise_regd_number'],
|
||||||
|
['Supplier', 'service_tax_regd_number'],
|
||||||
|
['Warehouse', 'comp_other'],
|
||||||
|
['Warehouse', 'process'],
|
||||||
|
['Warehouse', 'country'],
|
||||||
|
['Warehouse', 'tax_registration_number'],
|
||||||
|
['Warehouse Type', 'process'],
|
||||||
|
['Workstation', 'maintenance_data'],
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
import webnotes
|
||||||
|
from webnotes.model.code import get_obj
|
||||||
|
from webnotes.model.doc import Document
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
import webnotes.model.sync
|
||||||
|
webnotes.model.sync.sync('core', 'custom_field')
|
||||||
|
for f in field_list:
|
||||||
|
res = webnotes.conn.sql("""SELECT name FROM `tabCustom Field`
|
||||||
|
WHERE dt=%s AND fieldname=%s""", (f[0], f[1]))
|
||||||
|
if res: continue
|
||||||
|
docfield = webnotes.conn.sql("""SELECT * FROM `tabDocField`
|
||||||
|
WHERE parent=%s AND fieldname=%s""", (f[0], f[1]), as_dict=1)
|
||||||
|
if not docfield: continue
|
||||||
|
custom_field = docfield[0]
|
||||||
|
|
||||||
|
# scrub custom field dict
|
||||||
|
custom_field['dt'] = custom_field['parent']
|
||||||
|
del custom_field['parent']
|
||||||
|
|
||||||
|
d = Document('Custom Field', fielddata=custom_field)
|
||||||
|
d.name = custom_field['dt'] + '-' + custom_field['fieldname']
|
||||||
|
d.save(1, ignore_fields=1)
|
||||||
|
#obj = get_obj(doc=d)
|
||||||
|
#obj.on_update()
|
@ -8,8 +8,6 @@ def execute():
|
|||||||
* Remove 'no_column' from DocField
|
* Remove 'no_column' from DocField
|
||||||
* Drop table DocFormat
|
* Drop table DocFormat
|
||||||
"""
|
"""
|
||||||
change_property_setter_fieldnames()
|
|
||||||
|
|
||||||
import webnotes.model.sync
|
import webnotes.model.sync
|
||||||
webnotes.model.sync.sync_all(force=1)
|
webnotes.model.sync.sync_all(force=1)
|
||||||
|
|
||||||
@ -19,33 +17,6 @@ def execute():
|
|||||||
# do at last - needs commit due to DDL statements
|
# do at last - needs commit due to DDL statements
|
||||||
change_to_decimal()
|
change_to_decimal()
|
||||||
|
|
||||||
def change_property_setter_fieldnames():
|
|
||||||
import webnotes.model.sync
|
|
||||||
webnotes.model.sync.sync('core', 'property_setter')
|
|
||||||
docfield_list = webnotes.conn.sql("""\
|
|
||||||
SELECT name, fieldname FROM `tabDocField`""", as_list=1)
|
|
||||||
custom_field_list = webnotes.conn.sql("""\
|
|
||||||
SELECT name, fieldname FROM `tabCustom Field`""", as_list=1)
|
|
||||||
field_list = docfield_list + custom_field_list
|
|
||||||
property_setter_list = webnotes.conn.sql("""\
|
|
||||||
SELECT name, doc_name, value, property
|
|
||||||
FROM `tabProperty Setter`
|
|
||||||
WHERE doctype_or_field='DocField'""")
|
|
||||||
field_dict = dict(field_list)
|
|
||||||
for name, doc_name, value, prop in property_setter_list:
|
|
||||||
if doc_name in field_dict:
|
|
||||||
webnotes.conn.sql("""\
|
|
||||||
UPDATE `tabProperty Setter`
|
|
||||||
SET field_name = %s
|
|
||||||
WHERE name = %s""", (field_dict.get(doc_name), name))
|
|
||||||
if value in field_dict and prop=='previous_field':
|
|
||||||
webnotes.conn.sql("""\
|
|
||||||
UPDATE `tabProperty Setter`
|
|
||||||
SET value = %s
|
|
||||||
WHERE name = %s""", (field_dict.get(value), name))
|
|
||||||
import patches.mar_2012.clean_property_setter
|
|
||||||
patches.mar_2012.clean_property_setter.execute()
|
|
||||||
|
|
||||||
def handle_custom_fields():
|
def handle_custom_fields():
|
||||||
"""
|
"""
|
||||||
* Assign idx to custom fields
|
* Assign idx to custom fields
|
||||||
|
@ -232,6 +232,11 @@ patch_list = [
|
|||||||
'patch_file': 'sync_ref_db',
|
'patch_file': 'sync_ref_db',
|
||||||
'description': 'Deletes non required doctypes'
|
'description': 'Deletes non required doctypes'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'patch_module': 'patches.mar_2012',
|
||||||
|
'patch_file': 'clean_property_setter',
|
||||||
|
'description': 'Patch related to property setter cleanup'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'patch_module': 'patches.jan_mar_2012',
|
'patch_module': 'patches.jan_mar_2012',
|
||||||
'patch_file': 'rename_dt',
|
'patch_file': 'rename_dt',
|
||||||
|
@ -466,14 +466,14 @@ cur_frm.cscript.calc_other_charges = function(doc , tname , fname , other_fname)
|
|||||||
doc = locals[doc.doctype][doc.name];
|
doc = locals[doc.doctype][doc.name];
|
||||||
|
|
||||||
// Make Display Area
|
// Make Display Area
|
||||||
cur_frm.fields_dict['Taxes and Charges Calculation'].disp_area.innerHTML =
|
cur_frm.fields_dict['other_charges_calculation'].disp_area.innerHTML =
|
||||||
'<b style="padding: 8px 0px;">Calculation Details for Taxes and Charges:</b>';
|
'<b style="padding: 8px 0px;">Calculation Details for Taxes and Charges:</b>';
|
||||||
|
|
||||||
var cl = getchildren(tname, doc.name, fname);
|
var cl = getchildren(tname, doc.name, fname);
|
||||||
var tax = getchildren('Sales Taxes and Charges', doc.name, other_fname,doc.doctype);
|
var tax = getchildren('Sales Taxes and Charges', doc.name, other_fname,doc.doctype);
|
||||||
|
|
||||||
// Make display table
|
// Make display table
|
||||||
var otc = make_table(cur_frm.fields_dict['Taxes and Charges Calculation'].disp_area,
|
var otc = make_table(cur_frm.fields_dict['other_charges_calculation'].disp_area,
|
||||||
cl.length + 1, tax.length + 1, '90%', [], { border:'1px solid #AAA', padding:'2px' });
|
cl.length + 1, tax.length + 1, '90%', [], { border:'1px solid #AAA', padding:'2px' });
|
||||||
$y(otc,{marginTop:'8px'});
|
$y(otc,{marginTop:'8px'});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user