| 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 |
| ) |
| ) |