def rename_merge_modules(): "Rename module as per users view and merge for removing confusion" rename_lst = [['CRM', 'Selling'], ['SRM', 'Buying'], ['Material Management', 'Stock'], ['Payroll', 'HR'], ['Maintenance', 'Support']] for d in rename_lst: # create new module manually and export to file??????? reload_doc(d[1].lower(), 'Module Def', d[1]) merge_lst = [['Tools', 'Utilities'], ['Application Internal', 'Utilities'], ['Settings', 'Setup']] # settings hardcoded in my_company # module hardcoded in home_control # material_management hardcoded in installation note # maintenance hardcoded in support_email_settings lst = rename_lst + merge_lst for d in lst: update_module(d[0], d[1]) try: delete_doc('Module Def', d[0]) except: pass reload_doc('Utilities', 'Module Def', 'Utilities')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'delivery_note_detail') reload_doc('stock', 'Print Format', 'Delivery Note Packing List Wise') webnotes.conn.sql("delete from `tabDocField` where fieldname in ('packed_by', 'packing_checked_by', 'pack_size') and parent = 'Delivery Note'")
def run_patches(): # update module dt_module = { 'Landed Cost Purchase Receipt': 'Stock', 'Landed Cost Item': 'Stock', 'Comment': 'Core', 'Tag': 'Core', 'Tag Detail': 'Core', 'POS Settings': 'Accounts', 'Menu Item': 'Setup', 'Menu Item Role': 'Setup' } for d in dt_module.keys(): sql("update `tabDocType` set module = '%s' where name = '%s'" % (dt_module[d], d)) delete_unwanted_mappers() delete_unwanted_doctypes() sql("start transaction") delete_unwanted_pages() delete_unwanted_search_criteria() rename_merge_modules() sync_roles() sync_mapper() delete_unwanted_modules() # landed cost wizard link in stock reload_doc('stock', 'Module Def', 'Stock') sql("commit")
def execute(): import webnotes from webnotes.modules import reload_doc sql = webnotes.conn.sql reload_doc('hr', 'doctype', 'salary_manager') sql("delete from `tabDocField` where parent = 'Salary Manager' and fieldname = 'employment_type'")
def execute(): import webnotes from webnotes.modules import reload_doc webnotes.conn.sql("delete from `tabField Mapper Detail` where from_field = 'transaction_date' and parent in ('Sales Order-Delivery Note', 'Purchase Order-Purchase Receipt')") reload_doc('stock', 'DocType Mapper', 'Sales Order-Delivery Note') reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt')
def execute(): import webnotes webnotes.conn.sql("""delete from `tabSearch Criteria` \ where name = 'customer_address_contact'""") from webnotes.modules import reload_doc reload_doc('selling', 'report', 'customer_addresses_and_contacts')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('setup', 'doctype', 'manage_account') reload_doc('stock', 'doctype', 'item') webnotes.conn.sql("delete from `tabDocField` where fieldname='minimum_inventory_level' and parent='item'") webnotes.conn.sql("update `tabItem` set re_order_level = minimum_inventory_level where ifnull(re_order_level,0) = 0 ")
def execute(): from webnotes.model import delete_doc from webnotes.modules import reload_doc delete_doc("DocType", "SSO Control") delete_doc("DocType", "WN ERP Client Control") delete_doc("DocType", "Production Tips Common") delete_doc("DocType", "DocTrigger") delete_doc("Page", "Setup Wizard") # cleanup control panel delete_doc("DocType", "Control Panel") reload_doc("core", "doctype", "control_panel") webnotes.conn.sql("""delete from tabSingles where field like 'startup_%' and doctype='Control Panel'""") webnotes.conn.sql("""delete from __SessionCache""") webnotes.conn.commit() # DDLs # ------------------- webnotes.conn.sql("drop table if exists tabDocTrigger") try: webnotes.conn.sql( """alter table `tabFile Data` drop column blob_content""") except: pass webnotes.conn.sql("""alter table __PatchLog engine=InnoDB""")
def execute(): from webnotes.model import delete_doc from webnotes.modules import reload_doc delete_doc("DocType", "SSO Control") delete_doc("DocType", "WN ERP Client Control") delete_doc("DocType", "Production Tips Common") delete_doc("DocType", "DocTrigger") delete_doc("Page", "Setup Wizard") # cleanup control panel delete_doc("DocType", "Control Panel") reload_doc("core", "doctype", "control_panel") webnotes.conn.sql("""delete from tabSingles where field like 'startup_%' and doctype='Control Panel'""") webnotes.conn.sql("""delete from __SessionCache""") webnotes.conn.commit() # DDLs # ------------------- webnotes.conn.sql("drop table if exists tabDocTrigger") try: webnotes.conn.sql("""alter table `tabFile Data` drop column blob_content""") except: pass webnotes.conn.sql("""alter table __PatchLog engine=InnoDB""")
def execute(): """ * Reload ToDo """ from webnotes.modules import reload_doc reload_doc("utilities", "doctype", "todo_item")
def walk_and_sync(start_path, force=0): """walk and sync all doctypes and pages""" import os from webnotes.modules import reload_doc modules = [] for path, folders, files in os.walk(start_path): for f in files: if f.endswith(".txt"): # great grand-parent folder is module_name module_name = path.split(os.sep)[-3] if not module_name in modules: modules.append(module_name) # grand parent folder is doctype doctype = path.split(os.sep)[-2] # parent folder is the name name = path.split(os.sep)[-1] if doctype == 'doctype': sync(module_name, name, force) elif doctype in ['page']:#, 'search_criteria', 'Print Format', 'DocType Mapper']: reload_doc(module_name, doctype, name) print module_name + ' | ' + doctype + ' | ' + name return modules
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'Search Criteria', 'Stock Ledger') from webnotes.model import delete_doc delete_doc("Report", "Stock Ledger")
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc("stock", "doctype", "item") webnotes.conn.sql("update `tabItem` set re_order_qty = min_order_qty")
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'stock_reconciliation') webnotes.conn.sql( "delete from `tabDocField` where (label in ('Validate Data', 'Attachment HTML', 'Attachment') or fieldname in ('next_step', 'company', 'fiscal_year', 'amendment_date')) and parent = 'Stock Reconciliation'" )
def execute(): from webnotes.model.doc import Document from webnotes.modules import reload_doc reload_doc('hr', 'search_criteria', 'employeewise_balance_leave_report') d = Document('Search Criteria', 'employeewise_balance_leave_report') d.criteria_name = 'Employee Leave Balance Report' d.description = 'Employeewise Balance Leave Report' d.save()
def execute(): import webnotes webnotes.conn.sql( "update `tabDocField` set options = 'BOM' where fieldname = 'bom_no' and parent = 'Stock Entry'" ) from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'stock_entry')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'stock_entry') webnotes.conn.sql( "update `tabDocField` set options = concat(options, '\nOthers') where fieldname = 'purpose' and parent = 'Stock Entry'" )
def execute(): import webnotes from webnotes.model import delete_doc delete_doc("Search Criteria", "sales_order_pending_items1") webnotes.conn.sql("update `tabSearch Criteria` set module = 'Selling' where module = 'CRM'") from webnotes.modules import reload_doc reload_doc('selling', 'search_criteria', 'sales_order_pending_items')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'landed_cost_wizard') reload_doc('stock', 'doctype', 'lc_pr_detail') webnotes.conn.sql("delete from `tabDocField` where parent ='Landed Cost Purchase Receipt' and fieldname in ('purchase_receipt_no', 'include_in_landed_cost')")
def execute(): import webnotes from webnotes.modules import reload_doc from webnotes.model.code import get_obj reload_doc('accounts', 'doctype', 'receivable_voucher') reload_doc('setup', 'doctype', 'features_setup') get_obj('Features setup').validate()
def execute(): import webnotes from webnotes.modules import reload_doc from webnotes.model import delete_doc delete_doc('DocType', 'Landed Cost Wizard') delete_doc('DocType', 'Landed Cost Purchase Receipt') reload_doc('stock', 'doctype', 'landed_cost_wizard') reload_doc('stock', 'doctype', 'lc_pr_detail')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'delivery_note_detail') reload_doc('stock', 'Print Format', 'Delivery Note Packing List Wise') webnotes.conn.sql( "delete from `tabDocField` where fieldname in ('packed_by', 'packing_checked_by', 'pack_size') and parent = 'Delivery Note'" )
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc("stock", "doctype", "stock_entry") webnotes.conn.sql( "update `tabDocField` set options = concat(options, '\nOthers') where fieldname = 'purpose' and parent = 'Stock Entry'" )
def execute(): #--------------------------------------------------- # 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]) delete_search_criteria() change_report_module() # reload custom search criteria #for d in webnotes.conn.sql("""select name, module from # `tabSearch Criteria` where ifnull(standard, 'No') = 'Yes' and ifnull(disabled, 0) = 0"""): # for path, folders, files in os.walk(conf.modules_path): if not path.endswith('search_criteria'): continue module = path.split(os.sep)[-2] for sc in folders: try: reload_doc(module, 'search_criteria', sc) print module, sc except Exception, e: print "did not reload: " + str(d)
def execute(): import webnotes from webnotes.model import delete_doc delete_doc("Search Criteria", "sales_order_pending_items1") webnotes.conn.sql( "update `tabSearch Criteria` set module = 'Selling' where module = 'CRM'" ) from webnotes.modules import reload_doc reload_doc('selling', 'search_criteria', 'sales_order_pending_items')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'landed_cost_wizard') reload_doc('stock', 'doctype', 'lc_pr_detail') webnotes.conn.sql( "delete from `tabDocField` where parent ='Landed Cost Purchase Receipt' and fieldname in ('purchase_receipt_no', 'include_in_landed_cost')" )
def execute(): """sync supplier quotatoin and create supplier quotation mappers""" webnotes.reload_doc('buying', 'doctype', 'supplier_quotation') webnotes.reload_doc('buying', 'doctype', 'supplier_quotation_item') webnotes.reload_doc('buying', 'doctype', 'purchase_order') webnotes.reload_doc('buying', 'doctype', 'purchase_order_item') from webnotes.modules import reload_doc reload_doc('buying', 'DocType Mapper', 'Material Request-Supplier Quotation') reload_doc('buying', 'DocType Mapper', 'Supplier Quotation-Purchase Order')
def execute(): """ * Change option of doclayer's doc_type field * Reload doclayer """ webnotes.conn.sql(""" UPDATE `tabDocField` SET options=NULL WHERE parent='Customize Form' AND fieldname='doc_type' """) from webnotes.modules import reload_doc reload_doc('core', 'doctype', 'doclayer')
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('setup', 'doctype', 'manage_account') reload_doc('stock', 'doctype', 'item') webnotes.conn.sql( "delete from `tabDocField` where fieldname='minimum_inventory_level' and parent='item'" ) webnotes.conn.sql( "update `tabItem` set re_order_level = minimum_inventory_level where ifnull(re_order_level,0) = 0 " )
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('accounts', 'doctype', 'receivable_voucher') reload_doc('stock', 'doctype', 'delivery_note') reload_doc('selling', 'doctype', 'sales_order') reload_doc('selling', 'doctype', 'quotation') reload_doc('setup', 'doctype', 'manage_account') for d in ['Sales Invoice', 'Delivery Note', 'Sales Order', 'Quotation']: webnotes.conn.sql("update `tab%s` set price_list_currency = currency, plc_conversion_rate = conversion_rate" % d)
def execute(): """ * Change type of mail_port field to int * reload email settings """ import webnotes webnotes.conn.sql(""" UPDATE `tabDocField` SET fieldtype='Int' WHERE parent = 'Email Settings' AND fieldname = 'mail_port' """) from webnotes.modules import reload_doc reload_doc('setup', 'doctype', 'email_settings')
def execute(): """ Install print formats """ from webnotes.modules import reload_doc reload_doc('core', 'doctype', 'print_format') #copy_doctype_to_pfs() global pf_to_install for pf in pf_to_install: # install_print_format(pf) # print "Installed PF: " + pf['name'] reload_doc(pf['module'], 'Print Format', pf['name'])
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('accounts', 'doctype', 'receivable_voucher') reload_doc('stock', 'doctype', 'delivery_note') reload_doc('selling', 'doctype', 'sales_order') reload_doc('selling', 'doctype', 'quotation') reload_doc('setup', 'doctype', 'manage_account') for d in ['Sales Invoice', 'Delivery Note', 'Sales Order', 'Quotation']: webnotes.conn.sql( "update `tab%s` set price_list_currency = currency, plc_conversion_rate = conversion_rate" % d)
def execute(): """ Remove One Get TDS button, which is appearing twice in JV """ import webnotes webnotes.conn.sql(""" DELETE from `tabDocField` WHERE parent='Journal Voucher' AND label='Get TDS' AND fieldtype='Button' """) from webnotes.modules import reload_doc reload_doc('accounts', 'doctype', 'journal_voucher')
def execute(): #--------------------------------------------------- # 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]) delete_search_criteria() change_report_module() # reload custom search criteria #for d in webnotes.conn.sql("""select name, module from # `tabSearch Criteria` where ifnull(standard, 'No') = 'Yes' and ifnull(disabled, 0) = 0"""): # for path, folders, files in os.walk(conf.modules_path): if not path.endswith('search_criteria'): continue module = path.split(os.sep)[-2] for sc in folders: try: reload_doc(module, 'search_criteria', sc) print module, sc except Exception, e: print "did not reload: " + str(d)
def execute(): """sync supplier quotatoin and create supplier quotation mappers""" from webnotes.model.sync import sync sync('buying', 'supplier_quotation') sync('buying', 'supplier_quotation_item') sync('buying', 'purchase_request') sync('buying', 'purchase_request_item') sync('buying', 'purchase_order') sync('buying', 'purchase_order_item') from webnotes.modules import reload_doc reload_doc('buying', 'DocType Mapper', 'Purchase Request-Supplier Quotation') reload_doc('buying', 'DocType Mapper', 'Supplier Quotation-Purchase Order')
def execute(): import webnotes from webnotes.model.code import get_obj from webnotes.modules import reload_doc sql = webnotes.conn.sql reload_doc('hr', 'doctype', 'appraisal') sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'") sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'") sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'") if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'Quality Inspection' and fieldtype = 'Button'")[0][0] > 1: sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'Quality Inspection' and fieldtype = 'Button' limit 1") reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt') reload_doc('accounts', 'doctype', 'cost_center') sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'") # Patch for adding packing related columns (packed by, checked by, shipping mark etc) reload_doc('stock','doctype','delivery_note') sql("update `tabDocField` set allow_on_submit = 1 where fieldname = 'page_break'") sql("update `tabDocField` set allow_on_submit = 1 where fieldname in ('indent_details', 'po_details', 'purchase_receipt_details', 'entries', 'sales_order_details', 'delivery_note_details', 'quotation_details') and fieldtype = 'Table'") from webnotes.session_cache import clear_cache clear_cache(webnotes.session['user']) # FEATURES SETUP #---------------- reload_doc('setup', 'doctype','features_setup') flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] st = "'"+"', '".join(flds)+"'" sql("delete from `tabSingles` where field in (%s) and doctype = 'Features Setup'" % st) sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) if not sql("select * from `tabDefaultValue` where defkey like 'fs_%' and parent = 'Control Panel'"): rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null") fs = get_obj('Features Setup', 'Features Setup') for d in rs: fs.doc.fields[d[0]] = 1 fs.doc.save() fs.validate()
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc("accounts", "doctype", "receivable_voucher") reload_doc("stock", "doctype", "delivery_note") reload_doc("selling", "doctype", "sales_order") reload_doc("selling", "doctype", "quotation") reload_doc("setup", "doctype", "manage_account") for d in ["Sales Invoice", "Delivery Note", "Sales Order", "Quotation"]: webnotes.conn.sql( "update `tab%s` set price_list_currency = currency, plc_conversion_rate = conversion_rate" % d )
def walk_and_sync(start_path, force=0, sync_everything=False): """walk and sync all doctypes and pages""" modules = [] document_type = ['doctype', 'page', 'report'] for path, folders, files in os.walk(start_path): # sort folders so that doctypes are synced before pages or reports folders.sort() if sync_everything or (os.path.basename(os.path.dirname(path)) in document_type): for f in files: if f.endswith(".txt"): doc_name = f.split(".txt")[0] if doc_name == os.path.basename(path): module_name = path.split(os.sep)[-3] doctype = path.split(os.sep)[-2] name = path.split(os.sep)[-1] if reload_doc(module_name, doctype, name, force): print module_name + ' | ' + doctype + ' | ' + name webnotes.conn.commit() return modules
def walk_and_sync(start_path, force=0): """walk and sync all doctypes and pages""" from webnotes.modules import reload_doc modules = [] document_type = [ 'page', 'workflow', 'module_def', 'report', 'workflow_state', 'workflow_action' ] for path, folders, files in os.walk(start_path): if os.path.basename(os.path.dirname(path)) in (['doctype'] + document_type): for f in files: if f.endswith(".txt"): # great grand-parent folder is module_name module_name = path.split(os.sep)[-3] if not module_name in modules: modules.append(module_name) # grand parent folder is doctype doctype = path.split(os.sep)[-2] # parent folder is the name name = path.split(os.sep)[-1] if doctype == 'doctype': sync(module_name, name, force) elif doctype in document_type: if reload_doc(module_name, doctype, name, force): print module_name + ' | ' + doctype + ' | ' + name return modules
def walk_and_sync(start_path, force=0): """walk and sync all doctypes and pages""" from webnotes.modules import reload_doc modules = [] document_type = ["page", "workflow", "module_def", "report", "workflow_state", "workflow_action"] for path, folders, files in os.walk(start_path): if os.path.basename(os.path.dirname(path)) in (["doctype"] + document_type): for f in files: if f.endswith(".txt"): # great grand-parent folder is module_name module_name = path.split(os.sep)[-3] if not module_name in modules: modules.append(module_name) # grand parent folder is doctype doctype = path.split(os.sep)[-2] # parent folder is the name name = path.split(os.sep)[-1] if doctype == "doctype": sync(module_name, name, force) elif doctype in document_type: if reload_doc(module_name, doctype, name, force): print module_name + " | " + doctype + " | " + name return modules
def walk_and_sync(start_path, force=0, sync_everything = False): """walk and sync all doctypes and pages""" modules = [] document_type = ['doctype', 'page', 'report'] for path, folders, files in os.walk(start_path): if sync_everything or (os.path.basename(os.path.dirname(path)) in document_type): for f in files: if f.endswith(".txt"): doc_name = f.split(".txt")[0] if doc_name == os.path.basename(path): module_name = path.split(os.sep)[-3] doctype = path.split(os.sep)[-2] name = path.split(os.sep)[-1] if doctype == 'doctype': sync_doctype(module_name, name, force) else: if reload_doc(module_name, doctype, name, force): print module_name + ' | ' + doctype + ' | ' + name return modules
def execute(): import webnotes from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'stock_reconciliation') sr = webnotes.conn.sql("select name, file_list from `tabStock Reconciliation` where docstatus = 1") for d in sr: if d[1]: filename = d[1].split(',')[1] from webnotes.utils import file_manager fn, content = file_manager.get_file(filename) if not isinstance(content, basestring) and hasattr(content, 'tostring'): content = content.tostring() webnotes.conn.sql("update `tabStock Reconciliation` set diff_info = %s where name = %s and ifnull(diff_info, '') = ''", (content, d[0]))
def execute(): import webnotes opts = webnotes.conn.sql("""\ SELECT options FROM `tabDocField` WHERE parent='Serial No' AND fieldname='status' AND fieldtype='Select'""") if opts and opts[0][0]: opt_list = opts[0][0].split("\n") if not "Purchase Returned" in opt_list: webnotes.conn.sql(""" UPDATE `tabDocField` SET options=%s WHERE parent='Serial No' AND fieldname='status' AND fieldtype='Select'""", "\n".join(opt_list + ["Purchase Returned"])) webnotes.conn.commit() webnotes.conn.begin() from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'serial_no')
def execute(): import webnotes opts = webnotes.conn.sql("""\ SELECT options FROM `tabDocField` WHERE parent='Serial No' AND fieldname='status' AND fieldtype='Select'""") if opts and opts[0][0]: opt_list = opts[0][0].split("\n") if not "Purchase Returned" in opt_list: webnotes.conn.sql( """ UPDATE `tabDocField` SET options=%s WHERE parent='Serial No' AND fieldname='status' AND fieldtype='Select'""", "\n".join(opt_list + ["Purchase Returned"])) webnotes.conn.commit() webnotes.conn.begin() from webnotes.modules import reload_doc reload_doc('stock', 'doctype', 'serial_no')