rename dt patch updated
This commit is contained in:
parent
4af2c094cc
commit
3ffca32ace
@ -1,14 +1,74 @@
|
||||
def execute():
|
||||
import webnotes
|
||||
from webnotes.model import rename, delete_doc
|
||||
from webnotes.model.code import get_obj
|
||||
from wnf import replace_code
|
||||
import os
|
||||
|
||||
import webnotes
|
||||
from webnotes.model import rename, delete_doc
|
||||
from webnotes.model.code import get_obj
|
||||
from wnf import replace_code
|
||||
from termcolor import colored
|
||||
from webnotes.modules.module_manager import reload_doc
|
||||
from webnotes.utils import make_esc
|
||||
import os
|
||||
|
||||
# delete dt
|
||||
#-------------
|
||||
del_mapper = ['Production Forecast-Production Planning Tool', 'Production Forecast-Production Plan']
|
||||
|
||||
|
||||
def execute():
|
||||
# delete dt, mapper
|
||||
delete_dt_and_mapper()
|
||||
|
||||
#---------------------------------------------------
|
||||
# doctype renaming
|
||||
rendt = get_dt_to_be_renamed()
|
||||
# Rename dt in db
|
||||
rename_in_db(rendt, 'DocType', 1)
|
||||
# Upadte dt in records
|
||||
update_dt_in_records(rendt)
|
||||
|
||||
#---------------------------------------------------
|
||||
# Dt Mapper renaming
|
||||
ren_mapper = get_mapper_to_be_renamed()
|
||||
# Rename mapper in db
|
||||
rename_in_db(ren_mapper, 'DocType Mapper', 0)
|
||||
|
||||
#---------------------------------------------------
|
||||
# GL Mapper renaming
|
||||
gl_mapper = {'Receivable Voucher': 'Sales Invoice', 'Payable Voucher': 'Purchase Invoice'}
|
||||
rename_in_db(gl_mapper, 'GL Mapper', 0)
|
||||
|
||||
|
||||
#---------------------------------------------------
|
||||
# remove dt label
|
||||
webnotes.conn.sql("""delete from `tabDocType Label` where name in ('Ticket', 'Receivable Voucher',
|
||||
'QA Inspection Report', 'Payable Voucher', 'Manage Account', 'Indent', 'DocLayer')""")
|
||||
|
||||
#---------------------------------------------------
|
||||
# Reload mapper from file
|
||||
for d in ren_mapper:
|
||||
mod = '_'.join(webnotes.conn.sql("select module from `tabDocType Mapper` where name = %s", ren_mapper[d])[0][0].lower().split())
|
||||
reload_doc(mod, 'DocType Mapper', ren_mapper[d])
|
||||
|
||||
# reload custom search criteria
|
||||
for d in webnotes.conn.sql("""select name, module from `tabSearch Criteria` where ifnull(standard, 'Yes') = 'Yes' and ifnull(disabled, 0) = 0"""):
|
||||
reload_doc(d[1], 'search_criteria', d[0])
|
||||
|
||||
# reload custom print format
|
||||
for d in webnotes.conn.sql("select name, module from `tabPrint Format` where ifnull(standard, 'Yes') = 'Yes'"):
|
||||
reload_doc(d[1], 'Print Format', d[0])
|
||||
|
||||
# Reload GL Mapper
|
||||
for d in webnotes.conn.sql("select name from `tabGL Mapper`"):
|
||||
reload_doc('accounts', 'GL Mapper', d[0])
|
||||
|
||||
#gl entry, stock ledger entry,
|
||||
webnotes.conn.sql("update `tabDocField` set options =replace(options, %s, %s) where fieldtype = 'Select' and ")
|
||||
select parent, fieldname from tabDocField where options like '%Receivable Voucher%' and fieldtype = 'Select'
|
||||
|
||||
|
||||
|
||||
# T0-do-list
|
||||
# gl mapper name
|
||||
|
||||
|
||||
|
||||
def delete_dt_and_mapper():
|
||||
del_mapper = ['Production Forecast-Production Planning Tool', 'Production Forecast-Production Plan', 'Sales Order-Production Plan']
|
||||
for d in del_mapper:
|
||||
delete_doc('DocType Mapper', d)
|
||||
|
||||
@ -17,12 +77,78 @@ def execute():
|
||||
for d in del_dt:
|
||||
delete_doc('DocType', d)
|
||||
|
||||
|
||||
# Rename dt
|
||||
#-------------
|
||||
|
||||
def rename_in_db(ren_data, data_type, is_doctype):
|
||||
for d in ren_data:
|
||||
print colored('Renaming... ' + d + ' --> '+ ren_data[d], 'yellow')
|
||||
#rename
|
||||
try:
|
||||
rename(data_type, d, ren_data[d], is_doctype)
|
||||
except Exception, e:
|
||||
print e
|
||||
pass
|
||||
|
||||
|
||||
def update_dt_in_records(rendt):
|
||||
for d in rendt:
|
||||
# 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 parent, fieldname from tabDocField where fieldname in ('dt', 'doctype', 'doc_type', 'dt_type') and ifnull(options, '') = ''")
|
||||
for dt in record_dt:
|
||||
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))
|
||||
|
||||
# gl mapper, gl entry
|
||||
webnotes.conn.sql("update `tabGL Mapper Detail` set against_voucher_type = replace(against_voucher_type, %s, %s) where against_voucher_type like '%%%s%%'" % (d, rendt[d], d))
|
||||
webnotes.conn.sql("update `tabGL Entry` set against_voucher_type = replace(against_voucher_type, %s, %s) where against_voucher_type = '%s'" % (d, rendt[d], d))
|
||||
webnotes.conn.sql("update `tabGL Entry` set voucher_type = replace(voucher_type, %s, %s) where voucher_type = '%s'" % (d, rendt[d], d))
|
||||
|
||||
# Stock ledger entry
|
||||
|
||||
# Custom fld: options
|
||||
webnotes.conn.sql("update `tabCustom Field` set options = replace(options, %s, %s) where fieldtype in ('Link', 'Select')", (d, rendt[d]))
|
||||
|
||||
#Property Setter: value (if property=options)
|
||||
webnotes.conn.sql("update `tabProperty Setter` set value = replace(value, %s, %s) where property = 'Options'", (d, rendt[d]))
|
||||
|
||||
# custom script: script
|
||||
webnotes.conn.sql("update `tabCustom Script` set script = replace(script, %s, %s)", (d, rendt[d]))
|
||||
|
||||
# print format: html
|
||||
webnotes.conn.sql("update `tabPrint Format` set html = replace(html, %s, %s) where ifnull(standard, 'Yes') = 'No'", (d, rendt[d]))
|
||||
|
||||
# custom report: doc_type, filters, columns, parent_doc_type, add_cond, add_col, add_tab,
|
||||
# dis_filters, group_by, sort_by, report_script, server_script, custom_query
|
||||
webnotes.conn.sql("""
|
||||
update
|
||||
`tabSearch Criteria`
|
||||
set
|
||||
doc_type = replace(doc_type, %s, %s),
|
||||
filters = replace(filters, %s, %s),
|
||||
columns = replace(columns, %s, %s),
|
||||
parent_doc_type = replace(parent_doc_type, %s, %s),
|
||||
add_cond = replace(add_cond, %s, %s),
|
||||
add_col = replace(add_col, %s, %s),
|
||||
add_tab = replace(add_tab, %s, %s),
|
||||
dis_filters = replace(dis_filters, %s, %s),
|
||||
group_by = replace(group_by, %s, %s),
|
||||
sort_by = replace(sort_by, %s, %s),
|
||||
report_script = replace(report_script, %s, %s),
|
||||
server_script = replace(server_script, %s, %s),
|
||||
custom_query = replace(custom_query, %s, %s)
|
||||
where
|
||||
ifnull(standard, 'Yes') = 'No'
|
||||
""", (d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d],
|
||||
d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], d, rendt[d], ))
|
||||
|
||||
|
||||
|
||||
|
||||
def get_dt_to_be_renamed():
|
||||
rendt = {
|
||||
'KRA Sheet' : 'Appraisal Template Goal'
|
||||
}
|
||||
'Receivable Voucher' : 'Sales Invoice',
|
||||
'RV Detail' : 'Sales Invoice Item',
|
||||
'RV Tax Detail' : 'Sales Taxes and Charges',
|
||||
'Advance Adjustment Detail' : 'Sales Invoice Advance',
|
||||
}
|
||||
|
||||
new = {
|
||||
'Receivable Voucher' : 'Sales Invoice',
|
||||
@ -100,36 +226,94 @@ def execute():
|
||||
'Professional Training Details' : 'Employee Training',
|
||||
'Previous Experience Detail' : 'Employee External Work History',
|
||||
}
|
||||
|
||||
for d in rendt:
|
||||
print d + ' --------> '+ rendt[d]
|
||||
|
||||
#rename
|
||||
rename('DocType', d, rendt[d], 1)
|
||||
|
||||
# update txt
|
||||
obj = get_obj('DocType', rendt[d])
|
||||
obj.doc.save()
|
||||
return rendt
|
||||
|
||||
|
||||
# RUN ONLY IN LOCAL
|
||||
######################
|
||||
def get_mapper_to_be_renamed():
|
||||
ren_mapper = {
|
||||
'Sales Order-Receivable Voucher' : 'Sales Order-Sales Invoice',
|
||||
'Receivable Voucher-Delivery Note' : 'Sales Invoice-Delivery Note',
|
||||
'Delivery Note-Receivable Voucher' : 'Delivery Note-Sales Invoice'
|
||||
}
|
||||
|
||||
|
||||
# replace dt in js/py file
|
||||
for extn in ['js', 'py', 'txt']:
|
||||
replace_code('/var/www/erpnext/', d, rendt[d], extn)
|
||||
|
||||
|
||||
ren_map = {
|
||||
'Sales Order-Receivable Voucher' : 'Sales Order-Sales Invoice',
|
||||
'Sales Order-Indent' : 'Sales Order-Purchase Request',
|
||||
'Receivable Voucher-Delivery Note' : 'Sales Invoice-Delivery Note',
|
||||
'Purchase Receipt-Payable Voucher' : 'Purchase Receipt-Purchase Invoice',
|
||||
'Purchase Order-Payable Voucher' : 'Purchase Order-Purchase Invoice',
|
||||
'Project-Receivable Voucher' : 'Project-Sales Invoice',
|
||||
'Lead-Enquiry' : 'Lead-Opportunity',
|
||||
'KRA Template-Appraisal' : 'Appraisal Template-Appraisal',
|
||||
'Indent-Purchase Order' : 'Purchase Request-Purchase Order',
|
||||
'Enquiry-Quotation' : 'Opportunity-Quotation',
|
||||
'Delivery Note-Receivable Voucher' : 'Delivery Note-Sales Invoice'
|
||||
}
|
||||
return ren_mapper
|
||||
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def update_local_file_system():
|
||||
""" RUN ONLY IN LOCAL"""
|
||||
|
||||
# doctype renaming
|
||||
rendt = get_dt_to_be_renamed()
|
||||
|
||||
# replace dt in js/py file
|
||||
update_file_content(rendt)
|
||||
# git mv
|
||||
rename_dt_files(rendt)
|
||||
|
||||
|
||||
# Mapper renaming
|
||||
ren_mapper = get_mapper_to_be_renamed()
|
||||
|
||||
rename_mapper_files(ren_mapper)
|
||||
|
||||
|
||||
#------TO-DO--------
|
||||
# remove dir
|
||||
# git remove
|
||||
# dt mapper rename
|
||||
# change in gl mapper
|
||||
# git rm production dt mapper
|
||||
os.system('git rm -r erpnext/production/DocType\ Mapper/')
|
||||
|
||||
|
||||
|
||||
def update_file_content(rendt):
|
||||
for d in rendt:
|
||||
for extn in ['js', 'py', 'txt']:
|
||||
replace_code('/var/www/erpnext/', d, rendt[d], extn)
|
||||
|
||||
|
||||
def rename_dt_files(rendt):
|
||||
for d in rendt:
|
||||
mod = webnotes.conn.sql("select module from tabDocType where name = %s", rendt[d])[0][0]
|
||||
path = 'erpnext/' + '_'.join(mod.lower().split()) + '/doctype/'
|
||||
old = '_'.join(d.lower().split())
|
||||
new = '_'.join(rendt[d].lower().split())
|
||||
|
||||
# rename old dir
|
||||
os.system('git mv ' + path + old + ' ' + path + new)
|
||||
print 'git mv ' + path + old + ' ' + path + new
|
||||
|
||||
# rename all files in that dir
|
||||
for extn in ['js', 'py', 'txt']:
|
||||
if os.path.exists(path + new + '/'+ old + '.' +extn):
|
||||
os.system('git mv ' + path + new + '/'+ old + '.' +extn + ' ' + path + new + '/' + new + '.' +extn)
|
||||
print 'git mv ' + path + new + '/'+ old + '.' +extn + ' ' + path + new + '/' + new + '.' +extn
|
||||
|
||||
|
||||
def rename_mapper_files(ren_mapper):
|
||||
for d in ren_mapper:
|
||||
# module
|
||||
mod = '_'.join(webnotes.conn.sql("select module from `tabDocType Mapper` where name = %s", ren_mapper[d])[0][0].lower().split())
|
||||
path = 'erpnext/' + mod + '/DocType Mapper/'
|
||||
|
||||
# rename old dir
|
||||
esc = make_esc('$ ')
|
||||
os.system('git mv ' + esc(path + d) + ' ' + esc(path + ren_mapper[d]))
|
||||
print 'git mv ' + esc(path + d) + ' ' + esc(path + ren_mapper[d])
|
||||
os.system('git mv ' + esc(path + ren_mapper[d] + '/'+ d + '.' +extn) + ' ' + esc(path + ren_mapper[d] + '/' + ren_mapper[d] + '.' +extn))
|
||||
print 'git mv ' + esc(path + ren_mapper[d] + '/'+ d + '.txt') + ' ' + esc(path + ren_mapper[d] + '/' + ren_mapper[d] + '.txt')
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user