[fix] Can't update naming series if format has year,month (#8836)
This commit is contained in:
parent
3da400b532
commit
a689432a6e
@ -8,6 +8,7 @@ from frappe.utils import cstr
|
|||||||
from frappe import msgprint, throw, _
|
from frappe import msgprint, throw, _
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
from frappe.model.naming import parse_naming_series
|
||||||
from frappe.permissions import get_doctypes_with_read
|
from frappe.permissions import get_doctypes_with_read
|
||||||
|
|
||||||
class NamingSeriesNotSetError(frappe.ValidationError): pass
|
class NamingSeriesNotSetError(frappe.ValidationError): pass
|
||||||
@ -136,8 +137,9 @@ class NamingSeries(Document):
|
|||||||
def get_current(self, arg=None):
|
def get_current(self, arg=None):
|
||||||
"""get series current"""
|
"""get series current"""
|
||||||
if self.prefix:
|
if self.prefix:
|
||||||
|
prefix = self.parse_naming_series()
|
||||||
self.current_value = frappe.db.get_value("Series",
|
self.current_value = frappe.db.get_value("Series",
|
||||||
self.prefix.split('.')[0], "current", order_by = "name")
|
prefix, "current", order_by = "name")
|
||||||
|
|
||||||
def insert_series(self, series):
|
def insert_series(self, series):
|
||||||
"""insert series if missing"""
|
"""insert series if missing"""
|
||||||
@ -146,7 +148,7 @@ class NamingSeries(Document):
|
|||||||
|
|
||||||
def update_series_start(self):
|
def update_series_start(self):
|
||||||
if self.prefix:
|
if self.prefix:
|
||||||
prefix = self.prefix.split('.')[0]
|
prefix = self.parse_naming_series()
|
||||||
self.insert_series(prefix)
|
self.insert_series(prefix)
|
||||||
frappe.db.sql("update `tabSeries` set current = %s where name = %s",
|
frappe.db.sql("update `tabSeries` set current = %s where name = %s",
|
||||||
(self.current_value, prefix))
|
(self.current_value, prefix))
|
||||||
@ -154,6 +156,17 @@ class NamingSeries(Document):
|
|||||||
else:
|
else:
|
||||||
msgprint(_("Please select prefix first"))
|
msgprint(_("Please select prefix first"))
|
||||||
|
|
||||||
|
def parse_naming_series(self):
|
||||||
|
parts = self.prefix.split('.')
|
||||||
|
# If series contain date format like INV.YYYY.MM.#####
|
||||||
|
if len(parts) > 2:
|
||||||
|
del parts[-1] # Removed ### from the series
|
||||||
|
prefix = parse_naming_series(parts)
|
||||||
|
else:
|
||||||
|
prefix = parts[0]
|
||||||
|
|
||||||
|
return prefix
|
||||||
|
|
||||||
def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True):
|
def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True):
|
||||||
from frappe.custom.doctype.property_setter.property_setter import make_property_setter
|
from frappe.custom.doctype.property_setter.property_setter import make_property_setter
|
||||||
if naming_series:
|
if naming_series:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user