diff --git a/frappe/model/naming.py b/frappe/model/naming.py index 8818572eb2..f6a947cf4b 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -187,19 +187,19 @@ def _set_amended_name(doc): doc.name = am_prefix + '-' + str(am_id) return doc.name -def append_number_if_name_exists(doctype, name, fieldname='name'): +def append_number_if_name_exists(doctype, name, fieldname='name', separator='-'): if frappe.db.exists(doctype, name): last = frappe.db.sql("""select name from `tab{doctype}` - where {fieldname} regexp '^{name}-[[:digit:]]+' + where {fieldname} regexp '^{name}{separator}[[:digit:]]+' order by length({fieldname}) desc, {fieldname} desc limit 1""".format(doctype=doctype, - name=name, fieldname=fieldname)) + name=name, fieldname=fieldname, separator=separator)) if last: count = str(cint(last[0][0].rsplit("-", 1)[1]) + 1) else: count = "1" - name = "{0}-{1}".format(name, count) + name = "{0}{1}{2}".format(name, separator, count) return name