brotherton-erpnext/erpnext/patches/v12_0/update_is_cancelled_field.py

37 lines
772 B
Python

import frappe
def execute():
# handle type casting for is_cancelled field
module_doctypes = (
("stock", "Stock Ledger Entry"),
("stock", "Serial No"),
("accounts", "GL Entry"),
)
for module, doctype in module_doctypes:
if (
not frappe.db.has_column(doctype, "is_cancelled")
or frappe.db.get_column_type(doctype, "is_cancelled").lower() == "int(1)"
):
continue
frappe.db.sql(
"""
UPDATE `tab{doctype}`
SET is_cancelled = 0
where is_cancelled in ('', 'No') or is_cancelled is NULL""".format(
doctype=doctype
)
)
frappe.db.sql(
"""
UPDATE `tab{doctype}`
SET is_cancelled = 1
where is_cancelled = 'Yes'""".format(
doctype=doctype
)
)
frappe.reload_doc(module, "doctype", frappe.scrub(doctype))