From bee949af45ec206b94172bc21dc1ed8fbe67e5e4 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 29 Nov 2013 14:41:10 +0530 Subject: [PATCH] [minor] lock tabSeries during update --- webnotes/model/doc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webnotes/model/doc.py b/webnotes/model/doc.py index 5a081f3904..e8c31bfcdf 100755 --- a/webnotes/model/doc.py +++ b/webnotes/model/doc.py @@ -587,14 +587,15 @@ def make_autoname(key, doctype=''): def getseries(key, digits, doctype=''): # series created ? - current = webnotes.conn.get_value("Series", key, "current") - if current != None: + current = webnotes.conn.sql("select `current` from `tabSeries` where name=%s for update", key) + if current and current[0][0]: + current = current[0][0] # yes, update it webnotes.conn.sql("update tabSeries set current = current+1 where name=%s", key) current = cint(current) + 1 else: # no, create it - webnotes.conn.sql("insert into tabSeries (name, current) values ('%s', 1)" % key) + webnotes.conn.sql("insert into tabSeries (name, current) values (%s, 1)", key) current = 1 return ('%0'+str(digits)+'d') % current