diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py index ccdb8ca8b3..5fcc74a734 100644 --- a/frappe/model/delete_doc.py +++ b/frappe/model/delete_doc.py @@ -157,10 +157,10 @@ def update_naming_series(doc): if doc.meta.autoname: if doc.meta.autoname.startswith("naming_series:") \ and getattr(doc, "naming_series", None): - revert_series_if_last(doc.naming_series, doc.name) + revert_series_if_last(doc.naming_series, doc.name, doc) elif doc.meta.autoname.split(":")[0] not in ("Prompt", "field", "hash"): - revert_series_if_last(doc.meta.autoname, doc.name) + revert_series_if_last(doc.meta.autoname, doc.name, doc) def delete_from_table(doctype, name, ignore_doctypes, doc): if doctype!="DocType" and doctype==name: diff --git a/frappe/model/naming.py b/frappe/model/naming.py index e954debe6f..1a3f90da37 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -198,7 +198,7 @@ def getseries(key, digits): return ('%0'+str(digits)+'d') % current -def revert_series_if_last(key, name): +def revert_series_if_last(key, name, doc=None): if ".#" in key: prefix, hashes = key.rsplit(".", 1) if "#" not in hashes: @@ -207,7 +207,7 @@ def revert_series_if_last(key, name): prefix = key if '.' in prefix: - prefix = parse_naming_series(prefix.split('.')) + prefix = parse_naming_series(prefix.split('.'), doc=doc) count = cint(name.replace(prefix, "")) current = frappe.db.sql("SELECT `current` FROM `tabSeries` WHERE `name`=%s FOR UPDATE", (prefix,))