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')
예제 #2
0
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")
예제 #4
0
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'")
예제 #5
0
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')
예제 #7
0
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 ")
예제 #8
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""")
예제 #9
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""")
예제 #10
0
파일: todo_item.py 프로젝트: nijil/erpnext
def execute():
    """
		* Reload ToDo
	"""
    from webnotes.modules import reload_doc

    reload_doc("utilities", "doctype", "todo_item")
예제 #11
0
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
예제 #12
0
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")
예제 #13
0
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')
예제 #14
0
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'")
예제 #15
0
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
    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')
예제 #17
0
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():
	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()
예제 #20
0
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')
예제 #21
0
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')
예제 #23
0
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')")
예제 #24
0
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()
예제 #25
0
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')
예제 #26
0
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')
예제 #27
0
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'"
    )
예제 #28
0
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'"
    )
예제 #29
0
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()
예제 #30
0
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)
예제 #31
0
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')
예제 #32
0
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')"
    )
예제 #33
0
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')
	
예제 #34
0
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')
예제 #35
0
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')
예제 #36
0
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 "
    )
예제 #37
0
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')
예제 #38
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)
예제 #39
0
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')
예제 #40
0
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'])
예제 #41
0
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'])
예제 #42
0
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')
예제 #43
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)
예제 #44
0
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')
예제 #45
0
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)
예제 #46
0
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')
	
예제 #47
0
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()
예제 #48
0
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')
예제 #49
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
        )
예제 #50
0
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
예제 #51
0
파일: sync.py 프로젝트: masums/wnframework
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
예제 #52
0
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
예제 #53
0
파일: sync.py 프로젝트: jacara/erpclone
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
예제 #54
0
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]))
예제 #55
0
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]))
예제 #56
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')
예제 #57
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')