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