Ejemplo n.º 1
0
def execute():
	for dn in rename_map:
		frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

	for dt, field_list in rename_map.items():
		for field in field_list:
			rename_field(dt, field[0], field[1])
def execute():
	rename_doc('DocType', 'Production Order', 'Work Order', force=True)
	frappe.reload_doc('manufacturing', 'doctype', 'work_order')

	rename_doc('DocType', 'Production Order Item', 'Work Order Item', force=True)
	frappe.reload_doc('manufacturing', 'doctype', 'work_order_item')

	rename_doc('DocType', 'Production Order Operation', 'Work Order Operation', force=True)
	frappe.reload_doc('manufacturing', 'doctype', 'work_order_operation')

	frappe.reload_doc('projects', 'doctype', 'timesheet')
	frappe.reload_doc('stock', 'doctype', 'stock_entry')
	rename_field("Timesheet", "production_order", "work_order")
	rename_field("Stock Entry", "production_order", "work_order")

	frappe.rename_doc("Report", "Production Orders in Progress", "Work Orders in Progress", force=True)
	frappe.rename_doc("Report", "Completed Production Orders", "Completed Work Orders", force=True)
	frappe.rename_doc("Report", "Open Production Orders", "Open Work Orders", force=True)
	frappe.rename_doc("Report", "Issued Items Against Production Order", "Issued Items Against Work Order", force=True)
	frappe.rename_doc("Report", "Production Order Stock Report", "Work Order Stock Report", force=True)

	frappe.db.sql("""update `tabDesktop Icon` \
		set label='Work Order', module_name='Work Order' \
		where label='Production Order'""")
	frappe.db.sql("""update `tabDesktop Icon` \
		set link='List/Work Order' \
		where link='List/Production Order'""")
Ejemplo n.º 3
0
def execute():
    for dn in rename_map:
        frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in rename_map.items():
        for field in field_list:
            rename_field(dt, field[0], field[1])
Ejemplo n.º 4
0
def execute():
    for dt in doc_rename_map:
        if frappe.db.exists('DocType', dt):
            frappe.rename_doc('DocType', dt, doc_rename_map[dt], force=True)

    for dn in field_rename_map:
        if frappe.db.exists('DocType', dn):
            frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in field_rename_map.items():
        if frappe.db.exists('DocType', dt):
            for field in field_list:
                if frappe.db.has_column(dt, field[0]):
                    rename_field(dt, field[0], field[1])

    if frappe.db.exists('DocType', 'Practitioner Service Unit Schedule'):
        if frappe.db.has_column('Practitioner Service Unit Schedule',
                                'parentfield'):
            frappe.db.sql("""
				update `tabPractitioner Service Unit Schedule` set parentfield = 'practitioner_schedules'
				where parentfield = 'physician_schedules' and parenttype = 'Healthcare Practitioner'
			""")

    if frappe.db.exists("DocType", "Healthcare Practitioner"):
        frappe.reload_doc("healthcare", "doctype", "healthcare_practitioner")
        frappe.reload_doc("healthcare", "doctype",
                          "practitioner_service_unit_schedule")
        if frappe.db.has_column('Healthcare Practitioner',
                                'physician_schedule'):
            for doc in frappe.get_all('Healthcare Practitioner'):
                _doc = frappe.get_doc('Healthcare Practitioner', doc.name)
                if _doc.physician_schedule:
                    _doc.append('practitioner_schedules',
                                {'schedule': _doc.physician_schedule})
                    _doc.save()
def execute():
	#Rename Grading Structure to Grading Scale
	frappe.rename_doc("DocType", "Grading Structure", "Grading Scale", force=True)
	frappe.rename_doc("DocType", "Grade Interval", "Grading Scale Interval", force=True)

	frappe.reload_doc("schools", "doctype", "grading_scale_interval")
	rename_field("Grading Scale Interval", "to_score", "threshold")

	frappe.rename_doc("DocType", "Assessment", "Assessment Plan", force=True)

	#Rename Assessment Results
	frappe.reload_doc("schools", "doctype", "assessment_plan")
	rename_field("Assessment Plan", "grading_structure", "grading_scale")

	frappe.reload_doc("schools", "doctype", "assessment_result")
	frappe.reload_doc("schools", "doctype", "assessment_result_detail")
	frappe.reload_doc("schools", "doctype", "assessment_criteria")


	for assessment in frappe.get_all("Assessment Plan", fields=["name", "grading_scale"], filters = [["docstatus", "!=", 2 ]]):
		print assessment
		for stud_result in frappe.db.sql("select * from `tabAssessment Result` where parent= %s", assessment.name, as_dict=True):
			if stud_result.result:
				assessment_result = frappe.new_doc("Assessment Result")
				assessment_result.student = stud_result.student
				assessment_result.student_name = stud_result.student_name
				assessment_result.assessment_plan = assessment.name
				assessment_result.grading_scale = assessment.grading_scale
				assessment_result.total_score = stud_result.result
				assessment_result.flags.ignore_validate = True
				assessment_result.flags.ignore_mandatory = True
				assessment_result.save()
	
	frappe.db.sql("""delete from `tabAssessment Result` where parent != '' or parent is not null""")
Ejemplo n.º 6
0
def execute():
	# rename doctypes
	tables = frappe.db.sql_list("show tables")
	for old_dt, new_dt in [["Journal Voucher Detail", "Journal Entry Account"],
		["Journal Voucher", "Journal Entry"],
		["Budget Distribution Detail", "Monthly Distribution Percentage"],
		["Budget Distribution", "Monthly Distribution"]]:
			if "tab"+new_dt not in tables:
				frappe.rename_doc("DocType", old_dt, new_dt, force=True)

	# reload new child doctypes
	frappe.reload_doc("manufacturing", "doctype", "work_order_operation")
	frappe.reload_doc("manufacturing", "doctype", "workstation_working_hour")
	frappe.reload_doc("stock", "doctype", "item_variant")
	frappe.reload_doc("hr", "doctype", "salary_detail")
	frappe.reload_doc("accounts", "doctype", "party_account")
	frappe.reload_doc("accounts", "doctype", "fiscal_year_company")

	#rename table fieldnames
	for dn in rename_map:
		if not frappe.db.exists("DocType", dn):
			continue
		frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

	for dt, field_list in rename_map.items():
		if not frappe.db.exists("DocType", dt):
			continue
		for field in field_list:
			rename_field(dt, field[0], field[1])

	# update voucher type
	for old, new in [["Bank Voucher", "Bank Entry"], ["Cash Voucher", "Cash Entry"],
		["Credit Card Voucher", "Credit Card Entry"], ["Contra Voucher", "Contra Entry"],
		["Write Off Voucher", "Write Off Entry"], ["Excise Voucher", "Excise Entry"]]:
			frappe.db.sql("update `tabJournal Entry` set voucher_type=%s where voucher_type=%s", (new, old))
def execute():
	frappe.reload_doc("hr", "doctype", "department_approver")
	frappe.reload_doc("hr", "doctype", "employee")
	frappe.reload_doc("hr", "doctype", "department")

	if frappe.db.has_column('Department', 'leave_approver'):
		rename_field('Department', "leave_approver", "leave_approvers")

	if frappe.db.has_column('Department', 'expense_approver'):
		rename_field('Department', "expense_approver", "expense_approvers")

	if not frappe.db.table_exists("Employee Leave Approver"):
		return

	approvers = frappe.db.sql("""select distinct app.leave_approver, emp.department from
	`tabEmployee Leave Approver` app, `tabEmployee` emp
		where app.parenttype = 'Employee'
		and emp.name = app.parent
		""", as_dict=True)

	for record in approvers:
		if record.department:
			department = frappe.get_doc("Department", record.department)
			if not department:
				return
			if not len(department.leave_approvers):
				department.append("leave_approvers",{
					"approver": record.leave_approver
				}).db_insert()
Ejemplo n.º 8
0
def execute():
    doctype = "Timesheet"
    fields_dict = {"total_billing_amount": "total_billable_amount", "total_billing_hours": "total_billable_hours"}

    for old_fieldname, new_fieldname in fields_dict.items():
        if old_fieldname in frappe.db.get_table_columns(doctype):
            rename_field(doctype, old_fieldname, new_fieldname)
def execute():
    # delete custom field if exists
    for doctype, fieldname in (('Issue', 'issue_type'), ('Opportunity',
                                                         'opportunity_type')):
        custom_field = frappe.db.get_value("Custom Field", {
            "fieldname": fieldname,
            'dt': doctype
        })
        if custom_field:
            frappe.delete_doc("Custom Field",
                              custom_field,
                              ignore_permissions=True)

    frappe.reload_doc('support', 'doctype', 'issue_type')
    frappe.reload_doc('support', 'doctype', 'issue')
    frappe.reload_doc('crm', 'doctype', 'opportunity_type')
    frappe.reload_doc('crm', 'doctype', 'opportunity')

    # rename enquiry_type -> opportunity_type
    from frappe.model.utils.rename_field import rename_field
    rename_field('Opportunity', 'enquiry_type', 'opportunity_type')

    # create values if already set
    for opts in (('Issue', 'issue_type', 'Issue Type'),
                 ('Opportunity', 'opportunity_type', 'Opportunity Type')):
        for d in frappe.db.sql('select distinct {0} from `tab{1}`'.format(
                opts[1], opts[0])):
            if d[0] and not frappe.db.exists(opts[2], d[0]):
                frappe.get_doc(dict(doctype=opts[2], name=d[0])).insert()

    # fixtures
    for name in ('Hub', _('Sales'), _('Support'), _('Maintenance')):
        if not frappe.db.exists('Opportunity Type', name):
            frappe.get_doc(dict(doctype='Opportunity Type',
                                name=name)).insert()
Ejemplo n.º 10
0
def execute():
    for doctype in ['BOM Explosion Item', 'BOM Item', 'Work Order Item', 'Item']:
        if frappe.db.has_column(doctype, 'allow_transfer_for_manufacture'):
            if doctype != 'Item':
                frappe.reload_doc('manufacturing', 'doctype', frappe.scrub(doctype))
            else:
                frappe.reload_doc('stock', 'doctype', frappe.scrub(doctype))

            rename_field(doctype, "allow_transfer_for_manufacture", "include_item_in_manufacturing")

    if frappe.db.has_column('BOM', 'allow_same_item_multiple_times'):
        frappe.db.sql(""" UPDATE tabBOM
            SET
                allow_same_item_multiple_times = 0
            WHERE
                trim(coalesce(allow_same_item_multiple_times, '')) = '' """)

    for doctype in ['BOM', 'Work Order']:
        frappe.reload_doc('manufacturing', 'doctype', frappe.scrub(doctype))

        if frappe.db.has_column(doctype, 'transfer_material_against_job_card'):
            frappe.db.sql(""" UPDATE `tab%s`
                SET transfer_material_against = CASE WHEN
                    transfer_material_against_job_card = 1 then 'Job Card' Else 'Work Order' END
                WHERE docstatus < 2""" % (doctype))
        else:
            frappe.db.sql(""" UPDATE `tab%s`
                SET transfer_material_against = 'Work Order'
                WHERE docstatus < 2""" % (doctype))
def execute():
	frappe.reload_doc("automation", "doctype", "auto_repeat")

	doctypes_to_rename = {
		"accounts": ["Journal Entry", "Payment Entry", "Purchase Invoice", "Sales Invoice"],
		"buying": ["Purchase Order", "Supplier Quotation"],
		"selling": ["Quotation", "Sales Order"],
		"stock": ["Delivery Note", "Purchase Receipt"],
	}

	for module, doctypes in doctypes_to_rename.items():
		for doctype in doctypes:
			frappe.reload_doc(module, "doctype", frappe.scrub(doctype))

			if frappe.db.has_column(doctype, "subscription"):
				rename_field(doctype, "subscription", "auto_repeat")

	subscriptions = frappe.db.sql("select * from `tabSubscription`", as_dict=1)

	for doc in subscriptions:
		doc["doctype"] = "Auto Repeat"
		auto_repeat = frappe.get_doc(doc)
		auto_repeat.db_insert()

	frappe.db.sql("delete from `tabSubscription`")
	frappe.db.commit()
	drop_columns_from_subscription()
def execute():
	# delete custom field if exists
	for doctype, fieldname in (('Issue', 'issue_type'), ('Opportunity', 'opportunity_type')):
		custom_field = frappe.db.get_value("Custom Field", {"fieldname": fieldname, 'dt': doctype})
		if custom_field:
			frappe.delete_doc("Custom Field", custom_field, ignore_permissions=True)

	frappe.reload_doc('support', 'doctype', 'issue_type')
	frappe.reload_doc('support', 'doctype', 'issue')
	frappe.reload_doc('crm', 'doctype', 'opportunity_type')
	frappe.reload_doc('crm', 'doctype', 'opportunity')

	# rename enquiry_type -> opportunity_type
	from frappe.model.utils.rename_field import rename_field
	rename_field('Opportunity', 'enquiry_type', 'opportunity_type')

	# create values if already set
	for opts in (('Issue', 'issue_type', 'Issue Type'),
		('Opportunity', 'opportunity_type', 'Opportunity Type')):
		for d in frappe.db.sql('select distinct {0} from `tab{1}`'.format(opts[1], opts[0])):
			if d[0] and not frappe.db.exists(opts[2], d[0]):
				frappe.get_doc(dict(doctype = opts[2], name=d[0])).insert()

	# fixtures
	for name in ('Hub', _('Sales'), _('Support'), _('Maintenance')):
		if not frappe.db.exists('Opportunity Type', name):
			frappe.get_doc(dict(doctype = 'Opportunity Type', name=name)).insert()
Ejemplo n.º 13
0
def execute():
    #Rename Grading Structure to Grading Scale
    if not frappe.db.exists("DocType", "Grading Scale"):
        frappe.rename_doc("DocType",
                          "Grading Structure",
                          "Grading Scale",
                          force=True)
    if not frappe.db.exists("DocType", "Grading Scale Interval"):
        frappe.rename_doc("DocType",
                          "Grade Interval",
                          "Grading Scale Interval",
                          force=True)

    # frappe.reload_doc("schools", "doctype", "grading_scale_interval")
    frappe.reload_doc("education", "doctype", "grading_scale_interval")
    if "to_score" in frappe.db.get_table_columns("Grading Scale Interval"):
        rename_field("Grading Scale Interval", "to_score", "threshold")

    if not frappe.db.exists("DocType", "Assessment Plan"):
        frappe.rename_doc("DocType",
                          "Assessment",
                          "Assessment Plan",
                          force=True)

    # 'Schools' module changed to the 'Education'
    # frappe.reload_doc("schools", "doctype", "assessment_plan")

    #Rename Assessment Results
    frappe.reload_doc("education", "doctype", "assessment_plan")
    if "grading_structure" in frappe.db.get_table_columns("Assessment Plan"):
        rename_field("Assessment Plan", "grading_structure", "grading_scale")

    # frappe.reload_doc("schools", "doctype", "assessment_result")
    # frappe.reload_doc("schools", "doctype", "assessment_result_detail")
    # frappe.reload_doc("schools", "doctype", "assessment_criteria")
    frappe.reload_doc("education", "doctype", "assessment_result")
    frappe.reload_doc("education", "doctype", "assessment_result_detail")
    frappe.reload_doc("education", "doctype", "assessment_criteria")

    for assessment in frappe.get_all("Assessment Plan",
                                     fields=["name", "grading_scale"],
                                     filters=[["docstatus", "!=", 2]]):
        for stud_result in frappe.db.sql(
                "select * from `tabAssessment Result` where parent= %s",
                assessment.name,
                as_dict=True):
            if stud_result.result:
                assessment_result = frappe.new_doc("Assessment Result")
                assessment_result.student = stud_result.student
                assessment_result.student_name = stud_result.student_name
                assessment_result.assessment_plan = assessment.name
                assessment_result.grading_scale = assessment.grading_scale
                assessment_result.total_score = stud_result.result
                assessment_result.flags.ignore_validate = True
                assessment_result.flags.ignore_mandatory = True
                assessment_result.save()

    frappe.db.sql(
        """delete from `tabAssessment Result` where parent != '' or parent is not null"""
    )
Ejemplo n.º 14
0
def execute():
    frappe.reload_doc('automation', 'doctype', 'auto_repeat')

    doctypes_to_rename = {
        'accounts': [
            'Journal Entry', 'Payment Entry', 'Purchase Invoice',
            'Sales Invoice'
        ],
        'buying': ['Purchase Order', 'Supplier Quotation'],
        'selling': ['Quotation', 'Sales Order'],
        'stock': ['Delivery Note', 'Purchase Receipt']
    }

    for module, doctypes in doctypes_to_rename.items():
        for doctype in doctypes:
            frappe.reload_doc(module, 'doctype', frappe.scrub(doctype))

            if frappe.db.has_column(doctype, 'subscription'):
                rename_field(doctype, 'subscription', 'auto_repeat')

    subscriptions = frappe.db.sql('select * from `tabSubscription`', as_dict=1)

    for doc in subscriptions:
        doc['doctype'] = 'Auto Repeat'
        auto_repeat = frappe.get_doc(doc)
        auto_repeat.db_insert()

    frappe.db.sql('delete from `tabSubscription`')
    frappe.db.commit()
    drop_columns_from_subscription()
Ejemplo n.º 15
0
def execute():
    to_rename = [
        'Purchase Order', 'Journal Entry', 'Sales Invoice', 'Payment Entry',
        'Delivery Note', 'Purchase Invoice', 'Quotation', 'Sales Order',
        'Purchase Receipt', 'Supplier Quotation'
    ]

    frappe.reload_doc('accounts', 'doctype', 'sales_invoice')
    frappe.reload_doc('accounts', 'doctype', 'purchase_invoice')
    frappe.reload_doc('accounts', 'doctype', 'payment_entry')
    frappe.reload_doc('accounts', 'doctype', 'journal_entry')
    frappe.reload_doc('buying', 'doctype', 'purchase_order')
    frappe.reload_doc('buying', 'doctype', 'supplier_quotation')
    frappe.reload_doc('desk', 'doctype', 'auto_repeat')
    frappe.reload_doc('selling', 'doctype', 'quotation')
    frappe.reload_doc('selling', 'doctype', 'sales_order')
    frappe.reload_doc('stock', 'doctype', 'purchase_receipt')
    frappe.reload_doc('stock', 'doctype', 'delivery_note')

    for doctype in to_rename:
        rename_field(doctype, 'subscription', 'auto_repeat')

    subscriptions = frappe.db.sql('select * from `tabSubscription`', as_dict=1)

    for doc in subscriptions:
        doc['doctype'] = 'Auto Repeat'
        auto_repeat = frappe.get_doc(doc)
        auto_repeat.db_insert()
Ejemplo n.º 16
0
def execute():
    # updating column value to handle field change from Data to Currency
    changed_field = "base_scrap_material_cost"
    frappe.db.sql(f"update `tabBOM` set {changed_field} = '0' where trim(coalesce({changed_field}, ''))= ''")

    for doctype in ['BOM Explosion Item', 'BOM Item', 'Work Order Item', 'Item']:
        if frappe.db.has_column(doctype, 'allow_transfer_for_manufacture'):
            if doctype != 'Item':
                frappe.reload_doc('manufacturing', 'doctype', frappe.scrub(doctype))
            else:
                frappe.reload_doc('stock', 'doctype', frappe.scrub(doctype))

            rename_field(doctype, "allow_transfer_for_manufacture", "include_item_in_manufacturing")

    for doctype in ['BOM', 'Work Order']:
        frappe.reload_doc('manufacturing', 'doctype', frappe.scrub(doctype))

        if frappe.db.has_column(doctype, 'transfer_material_against_job_card'):
            frappe.db.sql(""" UPDATE `tab%s`
                SET transfer_material_against = CASE WHEN
                    transfer_material_against_job_card = 1 then 'Job Card' Else 'Work Order' END
                WHERE docstatus < 2""" % (doctype))
        else:
            frappe.db.sql(""" UPDATE `tab%s`
                SET transfer_material_against = 'Work Order'
                WHERE docstatus < 2""" % (doctype))
def execute():
	frappe.reload_doc('stock', 'doctype', 'material_request_item')
	rename_field("Material Request Item", "sales_order_no", "sales_order")
	
	frappe.reload_doc('support', 'doctype', 'maintenance_schedule_item')
	rename_field("Maintenance Schedule Item", "prevdoc_docname", "sales_order")
	
def execute():
	frappe.reload_doc('desk', 'doctype', 'auto_repeat')

	doctypes_to_rename = {
		'accounts': ['Journal Entry', 'Payment Entry', 'Purchase Invoice', 'Sales Invoice'],
		'buying': ['Purchase Order', 'Supplier Quotation'],
		'selling': ['Quotation', 'Sales Order'],
		'stock': ['Delivery Note', 'Purchase Receipt']
	}

	for module, doctypes in doctypes_to_rename.items():
		for doctype in doctypes:
			frappe.reload_doc(module, 'doctype', frappe.scrub(doctype))

			if frappe.db.has_column(doctype, 'subscription'):
				rename_field(doctype, 'subscription', 'auto_repeat')

	subscriptions = frappe.db.sql('select * from `tabSubscription`', as_dict=1)

	for doc in subscriptions:
		doc['doctype'] = 'Auto Repeat'
		auto_repeat = frappe.get_doc(doc)
		auto_repeat.db_insert()

	frappe.db.sql('delete from `tabSubscription`')
	frappe.db.commit()
	drop_columns_from_subscription()
def execute():
    frappe.reload_doc("manufacturing", "doctype", "manufacturing_settings")
    rename_field(
        "Manufacturing Settings",
        "over_production_allowance_percentage",
        "overproduction_percentage_for_sales_order",
    )
Ejemplo n.º 20
0
def execute():
    company = frappe.get_all("Company", filters={"country": "Saudi Arabia"})
    if not company:
        return

    if frappe.db.exists("DocType", "Sales Invoice"):
        frappe.reload_doc("accounts", "doctype", "sales_invoice", force=True)

        # rename_field method assumes that the field already exists or the doc is synced
        if not frappe.db.has_column("Sales Invoice", "ksa_einv_qr"):
            create_custom_fields({
                "Sales Invoice": [
                    dict(
                        fieldname="ksa_einv_qr",
                        label="KSA E-Invoicing QR",
                        fieldtype="Attach Image",
                        read_only=1,
                        no_copy=1,
                        hidden=1,
                    )
                ]
            })

        if frappe.db.has_column("Sales Invoice", "qr_code"):
            rename_field("Sales Invoice", "qr_code", "ksa_einv_qr")
            frappe.delete_doc_if_exists("Custom Field",
                                        "Sales Invoice-qr_code")
Ejemplo n.º 21
0
def execute():
    frappe.reload_doc("hr", "doctype", "department_approver")
    frappe.reload_doc("hr", "doctype", "employee")
    frappe.reload_doc("hr", "doctype", "department")

    if frappe.db.has_column('Department', 'leave_approver'):
        rename_field('Department', "leave_approver", "leave_approvers")

    if frappe.db.has_column('Department', 'expense_approver'):
        rename_field('Department', "expense_approver", "expense_approvers")

    if not frappe.db.table_exists("Employee Leave Approver"):
        return

    approvers = frappe.db.sql(
        """select distinct app.leave_approver, emp.department from
	`tabEmployee Leave Approver` app, `tabEmployee` emp
		where app.parenttype = 'Employee'
		and emp.name = app.parent
		""",
        as_dict=True)

    for record in approvers:
        if record.department:
            department = frappe.get_doc("Department", record.department)
            if not department:
                return
            if not len(department.leave_approvers):
                department.append("leave_approvers", {
                    "approver": record.leave_approver
                }).db_insert()
def execute():
    if frappe.db.table_exists(
            "Employee Loan Application"
    ) and not frappe.db.table_exists("Loan Application"):
        frappe.rename_doc("DocType",
                          "Employee Loan Application",
                          "Loan Application",
                          force=True)

    if frappe.db.table_exists(
            "Employee Loan") and not frappe.db.table_exists("Loan"):
        frappe.rename_doc("DocType", "Employee Loan", "Loan", force=True)

    frappe.reload_doc("hr", "doctype", "loan_application")
    frappe.reload_doc("hr", "doctype", "loan")
    frappe.reload_doc("hr", "doctype", "salary_slip_loan")

    for doctype in ['Loan', 'Salary Slip Loan']:
        if frappe.db.has_column(doctype, 'employee_loan_account'):
            rename_field(doctype, "employee_loan_account", "loan_account")

    columns = {'employee': 'applicant', 'employee_name': 'applicant_name'}
    for doctype in ['Loan Application', 'Loan']:
        frappe.db.sql(
            """ update `tab{doctype}` set applicant_type = 'Employee' """.
            format(doctype=doctype))
        for column, new_column in columns.items():
            if frappe.db.has_column(doctype, column):
                rename_field(doctype, column, new_column)

        frappe.delete_doc('DocType', doctype)
def execute():
	for dt in ("Sales Invoice Advance", "Purchase Invoice Advance"):
		frappe.reload_doctype(dt)
		
		frappe.db.sql("update `tab{0}` set reference_type = 'Journal Entry'".format(dt))
		
		rename_field(dt, "journal_entry", "reference_name")
		rename_field(dt, "jv_detail_no", "reference_row")
def execute():
	
	doc_list = ["Purchase Invoice Item", "Stock Entry Detail", "Delivery Note Item", 
		"Purchase Receipt Item", "Sales Invoice Item"]
	
	for doctype in doc_list:
		frappe.reload_doctype(doctype)
		rename_field(doctype, "is_sample_item", "allow_zero_valuation_rate")
def execute():
	if frappe.db.exists("DocType", "Examination"):
		frappe.rename_doc("DocType", "Examination", "Assessment")
		frappe.reload_doctype("Assessment")
		rename_field("Assessment", "exam_name", "assessment_name")
		rename_field("Assessment", "exam_code", "assessment_code")
	
		frappe.db.sql("delete from `tabPortal Menu Item` where route = '/examination'")
def execute():
	if "Healthcare" not in frappe.get_active_domains():
		return

	if frappe.db.exists('DocType', 'Healthcare Service Unit'):
		frappe.reload_doc('healthcare', 'doctype', 'healthcare_service_unit')
		if frappe.db.has_column('Healthcare Service Unit', 'occupancy_status'):
			rename_field('Healthcare Service Unit', 'occupancy_status', 'status')
Ejemplo n.º 27
0
def execute():
    if not frappe.db.table_exists('Dashboard Chart'):
        return

    frappe.reload_doc('desk', 'doctype', 'dashboard_chart')

    if frappe.db.has_column('Dashboard Chart', 'is_custom'):
        rename_field('Dashboard Chart', 'is_custom', 'use_report_chart')
def execute():
    if not frappe.db.table_exists("Dashboard Chart"):
        return

    frappe.reload_doc("desk", "doctype", "dashboard_chart")

    if frappe.db.has_column("Dashboard Chart", "is_custom"):
        rename_field("Dashboard Chart", "is_custom", "use_report_chart")
Ejemplo n.º 29
0
def execute():
	frappe.reload_doc("custom", "doctype", "customize_form")
	frappe.reload_doc("email", "doctype", "notification")
	frappe.reload_doc("desk", "doctype", "event")
	frappe.reload_doc("workflow", "doctype", "workflow")

	for dt, field_list in rename_map.items():
		for field in field_list:
			rename_field(dt, field[0], field[1])
Ejemplo n.º 30
0
def execute():
	
	doc_list = ["Production Order", "BOM", "Purchase Invoice Item", "Sales Invoice", 
		"Purchase Order Item", "Stock Entry", "Delivery Note", "Sales Order", 
		"Purchase Receipt Item", "Supplier Quotation Item"]
	
	for doctype in doc_list:
		frappe.reload_doctype(doctype)
		rename_field(doctype, "project_name", "project")
def execute():
	frappe.db.sql("""
		UPDATE `tabLeave Type`
		SET max_days_allowed = '0'
		WHERE trim(coalesce(max_days_allowed, '')) = ''
	""")
	frappe.db.sql_ddl("""ALTER table `tabLeave Type` modify max_days_allowed int(8) NOT NULL""")
	frappe.reload_doc("hr", "doctype", "leave_type")
	rename_field("Leave Type", "max_days_allowed", "max_continuous_days_allowed")
def execute():
	
	doc_list = ["Work Order", "BOM", "Purchase Invoice Item", "Sales Invoice", 
		"Purchase Order Item", "Stock Entry", "Delivery Note", "Sales Order", 
		"Purchase Receipt Item", "Supplier Quotation Item"]
	
	for doctype in doc_list:
		frappe.reload_doctype(doctype)
		rename_field(doctype, "project_name", "project")
Ejemplo n.º 33
0
def execute():
	tables = frappe.db.sql_list("show tables")
	if "tabUser" not in tables:
		frappe.rename_doc("DocType", "Profile", "User", force=True)

	frappe.reload_doc("website", "doctype", "blogger")

	if "profile" in get_table_columns("Blogger"):
		rename_field("Blogger", "profile", "user")
Ejemplo n.º 34
0
def execute():
    for dt in ("Sales Invoice Advance", "Purchase Invoice Advance"):
        frappe.reload_doctype(dt)

        frappe.db.sql(
            "update `tab{0}` set reference_type = 'Journal Entry'".format(dt))

        rename_field(dt, "journal_entry", "reference_name")
        rename_field(dt, "jv_detail_no", "reference_row")
Ejemplo n.º 35
0
def execute():
    if "Healthcare" not in frappe.get_active_domains():
        return

    if frappe.db.exists('DocType', 'Healthcare Service Unit'):
        frappe.reload_doc('healthcare', 'doctype', 'healthcare_service_unit')
        if frappe.db.has_column('Healthcare Service Unit', 'occupancy_status'):
            rename_field('Healthcare Service Unit', 'occupancy_status',
                         'status')
Ejemplo n.º 36
0
def execute():
    frappe.reload_doc("custom", "doctype", "customize_form")
    frappe.reload_doc("email", "doctype", "email_alert")
    frappe.reload_doc("desk", "doctype", "event")
    frappe.reload_doc("workflow", "doctype", "workflow")

    for dt, field_list in rename_map.items():
        for field in field_list:
            rename_field(dt, field[0], field[1])
Ejemplo n.º 37
0
def execute():
	"""
	Change notification recipient fields from email to receiver fields
	"""
	frappe.reload_doc("Email", "doctype", "Notification Recipient")
	frappe.reload_doc("Email", "doctype", "Notification")

	rename_field("Notification Recipient", "email_by_document_field", "receiver_by_document_field")
	rename_field("Notification Recipient", "email_by_role", "receiver_by_role")
def execute():
    """ copy data from old fields to new """
    frappe.reload_doc("projects", "doctype", "project")

    if frappe.db.has_column('Project', 'total_sales_cost'):
        rename_field('Project', "total_sales_cost", "total_sales_amount")

    if frappe.db.has_column('Project', 'total_billing_amount'):
        rename_field('Project', "total_billing_amount", "total_billable_amount")
def execute():
    """ copy data from old fields to new """
    frappe.reload_doc("projects", "doctype", "project")

    if frappe.db.has_column('Project', 'total_sales_cost'):
        rename_field('Project', "total_sales_cost", "total_sales_amount")

    if frappe.db.has_column('Project', 'total_billing_amount'):
        rename_field('Project', "total_billing_amount", "total_billable_amount")
def execute():
	frappe.reload_doc("accounts", "doctype", "pricing_rule")

	try:
		rename_field("Pricing Rule", "price_or_discount", "rate_or_discount")
		rename_field("Pricing Rule", "price", "rate")

	except Exception as e:
		if e.args[0]!=1054:
			raise
Ejemplo n.º 41
0
def execute():
	if frappe.db.exists("DocType", "Examination"):
		frappe.rename_doc("DocType", "Examination", "Assessment")
		frappe.rename_doc("DocType", "Examination Result", "Assessment Result")
		frappe.reload_doc("schools", "doctype", "assessment")
		frappe.reload_doc("schools", "doctype", "assessment_result")
		rename_field("Assessment", "exam_name", "assessment_name")
		rename_field("Assessment", "exam_code", "assessment_code")
	
		frappe.db.sql("delete from `tabPortal Menu Item` where route = '/examination'")
Ejemplo n.º 42
0
def execute():
    doctype = 'Timesheet'
    fields_dict = {
        'total_billing_amount': 'total_billable_amount',
        'total_billing_hours': 'total_billable_hours'
    }

    for old_fieldname, new_fieldname in fields_dict.items():
        if old_fieldname in frappe.db.get_table_columns(doctype):
            rename_field(doctype, old_fieldname, new_fieldname)
def execute():
    frappe.reload_doc("accounts", "doctype", "pricing_rule")

    try:
        rename_field("Pricing Rule", "price_or_discount", "rate_or_discount")
        rename_field("Pricing Rule", "price", "rate")

    except Exception as e:
        if e.args[0] != 1054:
            raise
def execute():

    doc_list = [
        "Purchase Invoice Item", "Stock Entry Detail", "Delivery Note Item",
        "Purchase Receipt Item", "Sales Invoice Item"
    ]

    for doctype in doc_list:
        frappe.reload_doctype(doctype)
        rename_field(doctype, "is_sample_item", "allow_zero_valuation_rate")
Ejemplo n.º 45
0
def execute():
	# Rename and reload the Land Unit and Linked Land Unit doctypes
	if frappe.db.table_exists("Land Unit") and not frappe.db.table_exists("Location"):
		frappe.rename_doc("DocType", "Land Unit", "Location", force=True)

	frappe.reload_doc("assets", "doctype", "location")

	if frappe.db.table_exists("Linked Land Unit") and not frappe.db.table_exists("Linked Location"):
		frappe.rename_doc("DocType", "Linked Land Unit", "Linked Location", force=True)

	frappe.reload_doc("assets", "doctype", "linked_location")

	if not frappe.db.table_exists("Crop Cycle"):
		frappe.reload_doc("agriculture", "doctype", "crop_cycle")

	# Rename the fields in related doctypes
	if "linked_land_unit" in frappe.db.get_table_columns("Crop Cycle"):
		rename_field("Crop Cycle", "linked_land_unit", "linked_location")

	if "land_unit" in frappe.db.get_table_columns("Linked Location"):
		rename_field("Linked Location", "land_unit", "location")

	if not frappe.db.exists("Location", "All Land Units"):
		frappe.get_doc(
			{"doctype": "Location", "is_group": True, "location_name": "All Land Units"}
		).insert(ignore_permissions=True)

	if frappe.db.table_exists("Land Unit"):
		land_units = frappe.get_all("Land Unit", fields=["*"], order_by="lft")

		for land_unit in land_units:
			if not frappe.db.exists("Location", land_unit.get("land_unit_name")):
				frappe.get_doc(
					{
						"doctype": "Location",
						"location_name": land_unit.get("land_unit_name"),
						"parent_location": land_unit.get("parent_land_unit") or "All Land Units",
						"is_container": land_unit.get("is_container"),
						"is_group": land_unit.get("is_group"),
						"latitude": land_unit.get("latitude"),
						"longitude": land_unit.get("longitude"),
						"area": land_unit.get("area"),
						"location": land_unit.get("location"),
						"lft": land_unit.get("lft"),
						"rgt": land_unit.get("rgt"),
					}
				).insert(ignore_permissions=True)

	# Delete the Land Unit and Linked Land Unit doctypes
	if frappe.db.table_exists("Land Unit"):
		frappe.delete_doc("DocType", "Land Unit", force=1)

	if frappe.db.table_exists("Linked Land Unit"):
		frappe.delete_doc("DocType", "Linked Land Unit", force=1)
Ejemplo n.º 46
0
def execute():
	frappe.reload_doc("setup", "doctype", "company")
	if frappe.db.has_column('Company', 'default_terms'):
		rename_field('Company', "default_terms", "default_selling_terms")

		for company in frappe.get_all("Company", ["name", "default_selling_terms", "default_buying_terms"]):
			if company.default_selling_terms and not company.default_buying_terms:
				frappe.db.set_value("Company", company.name, "default_buying_terms", company.default_selling_terms)

	frappe.reload_doc("setup", "doctype", "terms_and_conditions")
	frappe.db.sql("update `tabTerms and Conditions` set selling=1, buying=1, hr=1")
def execute():
	# Rename and reload the Land Unit and Linked Land Unit doctypes
	if frappe.db.table_exists('Land Unit') and not frappe.db.table_exists('Location'):
		rename_doc('DocType', 'Land Unit', 'Location', force=True)

	frappe.reload_doc('assets', 'doctype', 'location')

	if frappe.db.table_exists('Linked Land Unit') and not frappe.db.table_exists('Linked Location'):
		rename_doc('DocType', 'Linked Land Unit', 'Linked Location', force=True)

	frappe.reload_doc('assets', 'doctype', 'linked_location')

	if not frappe.db.table_exists('Crop Cycle'):
		frappe.reload_doc('agriculture', 'doctype', 'crop_cycle')

	# Rename the fields in related doctypes
	if 'linked_land_unit' in frappe.db.get_table_columns('Crop Cycle'):
		rename_field('Crop Cycle', 'linked_land_unit', 'linked_location')

	if 'land_unit' in frappe.db.get_table_columns('Linked Location'):
		rename_field('Linked Location', 'land_unit', 'location')
	
	if not frappe.db.exists("Location", "All Land Units"):
		frappe.get_doc({"doctype": "Location", "is_group": True, "location_name": "All Land Units"}).insert(ignore_permissions=True)

	if frappe.db.table_exists('Land Unit'):
		land_units = frappe.get_all('Land Unit', fields=['*'], order_by='lft')

		for land_unit in land_units:
			if not frappe.db.exists('Location', land_unit.get('land_unit_name')):
				frappe.get_doc({
					'doctype': 'Location',
					'location_name': land_unit.get('land_unit_name'),
					'parent_location': land_unit.get('parent_land_unit') or "All Land Units",
					'is_container': land_unit.get('is_container'),
					'is_group': land_unit.get('is_group'),
					'latitude': land_unit.get('latitude'),
					'longitude': land_unit.get('longitude'),
					'area': land_unit.get('area'),
					'location': land_unit.get('location'),
					'lft': land_unit.get('lft'),
					'rgt': land_unit.get('rgt')
				}).insert(ignore_permissions=True)

	# frappe.db.sql("""update `tabDesktop Icon` set label='Location', module_name='Location' where label='Land Unit'""")
	frappe.db.sql("""update `tabDesktop Icon` set link='List/Location' where link='List/Land Unit'""")

	# Delete the Land Unit and Linked Land Unit doctypes
	if frappe.db.table_exists('Land Unit'):
		frappe.delete_doc('DocType', 'Land Unit', force=1)

	if frappe.db.table_exists('Linked Land Unit'):
		frappe.delete_doc('DocType', 'Linked Land Unit', force=1)
Ejemplo n.º 48
0
def execute():
	frappe.reload_doc("stock", "doctype", "item")
	frappe.reload_doc("stock", "doctype", "stock_settings")
	frappe.reload_doc("accounts", "doctype", "accounts_settings")

	rename_field('Stock Settings', "tolerance", "over_delivery_receipt_allowance")
	rename_field('Item', "tolerance", "over_delivery_receipt_allowance")

	qty_allowance = frappe.db.get_single_value("Stock Settings", "over_delivery_receipt_allowance")
	frappe.db.set_value("Accounts Settings", None, "over_delivery_receipt_allowance", qty_allowance)

	frappe.db.sql("update tabItem set over_billing_allowance=over_delivery_receipt_allowance")
Ejemplo n.º 49
0
def execute():
	for doctypes, fields in [[selling_doctypes, selling_renamed_fields], [buying_doctypes, buying_renamed_fields]]:
		for dt in doctypes:
			frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
			table_columns = frappe.db.get_table_columns(dt)
			base_net_total = frappe.db.sql("select sum(ifnull({0}, 0)) from `tab{1}`".format(fields[0][1], dt))[0][0]
			if not base_net_total:
				for f in fields:
					if f[0] in table_columns:
						rename_field(dt, f[0], f[1])

				# Added new field "total_taxes_and_charges" in buying cycle, updating value
				if dt in ("Supplier Quotation", "Purchase Order", "Purchase Receipt", "Purchase Invoice"):
					frappe.db.sql("""update `tab{0}` set total_taxes_and_charges =
						round(base_total_taxes_and_charges/conversion_rate, 2)""".format(dt))
def execute():
	if frappe.db.exists("DocType", "Examination"):
		frappe.rename_doc("DocType", "Examination", "Assessment")
		frappe.rename_doc("DocType", "Examination Result", "Assessment Result")

		# 'Schools' module changed to the 'Education'
		# frappe.reload_doc("schools", "doctype", "assessment")
		# frappe.reload_doc("schools", "doctype", "assessment_result")

		frappe.reload_doc("education", "doctype", "assessment")
		frappe.reload_doc("education", "doctype", "assessment_result")

		rename_field("Assessment", "exam_name", "assessment_name")
		rename_field("Assessment", "exam_code", "assessment_code")
	
		frappe.db.sql("delete from `tabPortal Menu Item` where route = '/examination'")
def execute():
	if frappe.db.table_exists("Supplier Group"):
		frappe.reload_doc('setup', 'doctype', 'supplier_group')
	elif frappe.db.table_exists("Supplier Type"):
		rename_doc("DocType", "Supplier Type", "Supplier Group", force=True)
		frappe.reload_doc('setup', 'doctype', 'supplier_group')
		frappe.reload_doc("accounts", "doctype", "pricing_rule")
		frappe.reload_doc("accounts", "doctype", "tax_rule")
		frappe.reload_doc("buying", "doctype", "buying_settings")
		frappe.reload_doc("buying", "doctype", "supplier")
		rename_field("Supplier Group", "supplier_type", "supplier_group_name")
		rename_field("Supplier", "supplier_type", "supplier_group")
		rename_field("Buying Settings", "supplier_type", "supplier_group")
		rename_field("Pricing Rule", "supplier_type", "supplier_group")
		rename_field("Tax Rule", "supplier_type", "supplier_group")

	build_tree()
Ejemplo n.º 52
0
def execute():
	for dt, field_list in field_rename_map.items():
		if frappe.db.exists('DocType', dt):
			frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
			for field in field_list:
				if frappe.db.has_column(dt, field[0]):
					rename_field(dt, field[0], field[1])

	if frappe.db.exists('DocType', 'Lab Prescription'):
		if frappe.db.has_column('Lab Prescription', 'parentfield'):
			frappe.db.sql("""
				update `tabLab Prescription` set parentfield = 'lab_test_prescription'
				where parentfield = 'test_prescription'
			""")

	if frappe.db.exists('DocType', 'Lab Test Groups'):
		if frappe.db.has_column('Lab Test Groups', 'parentfield'):
			frappe.db.sql("""
				update `tabLab Test Groups` set parentfield = 'lab_test_groups'
				where parentfield = 'test_groups'
			""")
def execute():
	if frappe.db.table_exists("Employee Loan Application") and not frappe.db.table_exists("Loan Application"):
		frappe.rename_doc("DocType", "Employee Loan Application", "Loan Application", force=True)

	if frappe.db.table_exists("Employee Loan") and not frappe.db.table_exists("Loan"):
		frappe.rename_doc("DocType", "Employee Loan", "Loan", force=True)

	frappe.reload_doc("hr", "doctype", "loan_application")
	frappe.reload_doc("hr", "doctype", "loan")
	frappe.reload_doc("hr", "doctype", "salary_slip_loan")

	for doctype in ['Loan', 'Salary Slip Loan']:
		if frappe.db.has_column(doctype, 'employee_loan_account'):
			rename_field(doctype, "employee_loan_account", "loan_account")

	columns = {'employee': 'applicant', 'employee_name': 'applicant_name'}
	for doctype in ['Loan Application', 'Loan']:
		frappe.db.sql(""" update `tab{doctype}` set applicant_type = 'Employee' """
			.format(doctype=doctype))
		for column, new_column in columns.items():
			if frappe.db.has_column(doctype, column):
				rename_field(doctype, column, new_column)

		frappe.delete_doc('DocType', doctype)
def execute():
	frappe.reload_doc("stock", "doctype", "item")
	if frappe.db.has_column('Item', 'net_weight'):
		rename_field("Item", "net_weight", "weight_per_unit")
def execute():
    frappe.reload_doc('projects', 'doctype', 'project')

    if frappe.db.has_column('Project', 'from'):
        rename_field('Project', 'from', 'from_time')
        rename_field('Project', 'to', 'to_time')
Ejemplo n.º 56
0
def rename_pr_fields():
	rename_field("Purchase Receipt Item", "prevdoc_docname", "purchase_order")
	rename_field("Purchase Receipt Item", "prevdoc_detail_docname", "purchase_order_item")
def rename_field_if_exists(doctype, old_fieldname, new_fieldname):
	try:
		rename_field(doctype, old_fieldname, new_fieldname)
	except Exception, e:
		if e.args[0] != 1054:
			raise