blob: 84079efa2d77b856ad660433f512e6d8cbc1b621 [file] [log] [blame]
import frappe
from frappe.model.naming import get_default_naming_series
class NamingSeriesNotSetError(frappe.ValidationError):
pass
def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True, make_mandatory=1):
"""Change a doctype's naming to user naming series"""
from frappe.custom.doctype.property_setter.property_setter import make_property_setter
if naming_series:
make_property_setter(
doctype, "naming_series", "hidden", 0, "Check", validate_fields_for_doctype=False
)
make_property_setter(
doctype, "naming_series", "reqd", make_mandatory, "Check", validate_fields_for_doctype=False
)
# set values for mandatory
try:
frappe.db.sql(
"""update `tab{doctype}` set naming_series={s} where
ifnull(naming_series, '')=''""".format(doctype=doctype, s="%s"),
get_default_naming_series(doctype),
)
except NamingSeriesNotSetError:
pass
if hide_name_field:
make_property_setter(doctype, fieldname, "reqd", 0, "Check", validate_fields_for_doctype=False)
make_property_setter(doctype, fieldname, "hidden", 1, "Check", validate_fields_for_doctype=False)
else:
make_property_setter(doctype, "naming_series", "reqd", 0, "Check", validate_fields_for_doctype=False)
make_property_setter(
doctype, "naming_series", "hidden", 1, "Check", validate_fields_for_doctype=False
)
if hide_name_field:
make_property_setter(doctype, fieldname, "hidden", 0, "Check", validate_fields_for_doctype=False)
make_property_setter(doctype, fieldname, "reqd", 1, "Check", validate_fields_for_doctype=False)
# set values for mandatory
frappe.db.sql(
f"""update `tab{doctype}` set `{fieldname}`=`name` where
ifnull({fieldname}, '')=''"""
)