[fix] Can't update naming series if format has year,month (#8836)

This commit is contained in:
rohitwaghchaure 2017-05-16 12:47:34 +05:30 committed by Nabin Hait
parent 3da400b532
commit a689432a6e

View File

@ -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: