61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
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(
|
|
"""update `tab{doctype}` set `{fieldname}`=`name` where
|
|
ifnull({fieldname}, '')=''""".format(
|
|
doctype=doctype, fieldname=fieldname
|
|
)
|
|
)
|