[minor] fixes after merge with master
diff --git a/stock/doctype/delivery_note/test_delivery_note.py b/stock/doctype/delivery_note/test_delivery_note.py
index 7c52550..ca95a50 100644
--- a/stock/doctype/delivery_note/test_delivery_note.py
+++ b/stock/doctype/delivery_note/test_delivery_note.py
@@ -160,7 +160,7 @@
def test_serialized(self):
from stock.doctype.stock_entry.test_stock_entry import make_serialized_item
- from stock.doctype.stock_ledger_entry.stock_ledger_entry import get_serial_nos
+ from stock.doctype.serial_no.serial_no import get_serial_nos
se = make_serialized_item()
serial_nos = get_serial_nos(se.doclist[1].serial_no)
@@ -180,7 +180,7 @@
return dn
def test_serialized_cancel(self):
- from stock.doctype.stock_ledger_entry.stock_ledger_entry import get_serial_nos
+ from stock.doctype.serial_no.serial_no import get_serial_nos
dn = self.test_serialized()
dn.cancel()
@@ -192,7 +192,7 @@
"delivery_document_no"))
def test_serialize_status(self):
- from stock.doctype.stock_ledger_entry.stock_ledger_entry import SerialNoStatusError, get_serial_nos
+ from stock.doctype.serial_no.serial_no import SerialNoStatusError, get_serial_nos
from stock.doctype.stock_entry.test_stock_entry import make_serialized_item
se = make_serialized_item()
diff --git a/stock/doctype/material_request/test_material_request.py b/stock/doctype/material_request/test_material_request.py
index 8ebad15..13fdd02 100644
--- a/stock/doctype/material_request/test_material_request.py
+++ b/stock/doctype/material_request/test_material_request.py
@@ -315,10 +315,10 @@
self.assertRaises(webnotes.MappingMismatchError, se.insert)
def test_warehouse_company_validation(self):
- from controllers.buying_controller import WrongWarehouseCompany
+ from stock.utils import InvalidWarehouseCompany
mr = webnotes.bean(copy=test_records[0])
mr.doc.company = "_Test Company 1"
- self.assertRaises(WrongWarehouseCompany, mr.insert)
+ self.assertRaises(InvalidWarehouseCompany, mr.insert)
test_dependencies = ["Currency Exchange"]
test_records = [
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 2dd450f..537d75d 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -242,7 +242,7 @@
self.update_stock()
from stock.doctype.serial_no.serial_no import update_serial_nos_after_submit
- update_serial_nos_after_submit(self, "Purchase Receipt", "purchase_receipt_details")
+ update_serial_nos_after_submit(self, "purchase_receipt_details")
purchase_controller.update_last_purchase_rate(self, 1)
diff --git a/stock/doctype/purchase_receipt/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
index 010c29b..613dfbc 100644
--- a/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -104,6 +104,7 @@
pr.doclist[1].received_qty = 1
pr.insert()
pr.submit()
+
self.assertEquals(webnotes.conn.get_value("Serial No", pr.doclist[1].serial_no,
"supplier"), pr.doc.supplier)
@@ -112,7 +113,7 @@
def test_serial_no_cancel(self):
pr = self.test_serial_no_supplier()
pr.cancel()
-
+
self.assertFalse(webnotes.conn.get_value("Serial No", pr.doclist[1].serial_no,
"warehouse"))
diff --git a/stock/doctype/serial_no/serial_no.py b/stock/doctype/serial_no/serial_no.py
index 93836d6..61b2841 100644
--- a/stock/doctype/serial_no/serial_no.py
+++ b/stock/doctype/serial_no/serial_no.py
@@ -37,11 +37,8 @@
self.validate_warehouse()
self.validate_item()
- if self.via_stock_ledger:
- self.set_status()
- self.set_purchase_details()
- self.set_sales_details()
-
+ self.on_stock_ledger_entry()
+
def validate_amc_status(self):
"""
validate amc status
@@ -118,7 +115,7 @@
and ifnull(is_cancelled, 'No')='No' order by name asc limit 1""",
("%%%s%%" % (self.doc.name+"\n"), "%%%s%%" % ("\n"+self.doc.name), self.doc.name,
self.doc.item_code), as_dict=1)
-
+
if purchase_sle:
self.doc.purchase_document_type = purchase_sle[0].voucher_type
self.doc.purchase_document_no = purchase_sle[0].voucher_no
@@ -181,6 +178,12 @@
webnotes.conn.sql("""update `tab%s` set serial_no = %s
where name=%s""" % (dt[0], '%s', '%s'),
('\n'.join(serial_nos), item[0]))
+
+ def on_stock_ledger_entry(self):
+ if self.via_stock_ledger and not self.doc.fields.get("__islocal"):
+ self.set_status()
+ self.set_purchase_details()
+ self.set_sales_details()
def process_serial_no(sle):
item_det = get_item_details(sle.item_code)
@@ -233,6 +236,14 @@
+ sle.item_code), SerialNoRequiredError)
def update_serial_nos(sle, item_det):
+ if not sle.serial_no and sle.actual_qty > 0 and item_det.serial_no_series:
+ from webnotes.model.doc import make_autoname
+ serial_nos = []
+ for i in xrange(cint(sle.actual_qty)):
+ serial_nos.append(make_autoname(item_det.serial_no_series))
+
+ webnotes.conn.set(sle, "serial_no", "\n".join(serial_nos))
+
if sle.serial_no:
serial_nos = get_serial_nos(sle.serial_no)
for serial_no in serial_nos:
@@ -243,12 +254,6 @@
sr.save()
elif sle.actual_qty > 0:
make_serial_no(serial_no, sle)
- elif sle.actual_qty > 0 and item_det.serial_no_series:
- from webnotes.model.doc import make_autoname
- serial_nos = []
- for i in xrange(cint(sle.actual_qty)):
- serial_nos.append(make_serial_no(make_autoname(item_det.serial_no_series), sle))
- sle.serial_no = "\n".join(serial_nos)
def get_item_details(item_code):
return webnotes.conn.sql("""select name, has_batch_no, docstatus,
@@ -270,13 +275,16 @@
webnotes.msgprint(_("Serial No created") + ": " + sr.doc.name)
return sr.doc.name
-def update_serial_nos_after_submit(controller, parenttype, parentfield):
- if not hasattr(webnotes, "new_stock_ledger_entries"):
- return
+def update_serial_nos_after_submit(controller, parentfield):
+ stock_ledger_entries = webnotes.conn.sql("""select voucher_detail_no, serial_no
+ from `tabStock Ledger Entry` where voucher_type=%s and voucher_no=%s""",
+ (controller.doc.doctype, controller.doc.name), as_dict=True)
+ if not stock_ledger_entries: return
+
for d in controller.doclist.get({"parentfield": parentfield}):
serial_no = None
- for sle in webnotes.new_stock_ledger_entries:
+ for sle in stock_ledger_entries:
if sle.voucher_detail_no==d.name:
serial_no = sle.serial_no
break
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 0117864..63cfd2b 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -53,7 +53,7 @@
self.update_stock_ledger()
from stock.doctype.serial_no.serial_no import update_serial_nos_after_submit
- update_serial_nos_after_submit(self, "Stock Entry", "mtn_details")
+ update_serial_nos_after_submit(self, "mtn_details")
self.update_production_order(1)
self.make_gl_entries()
diff --git a/stock/doctype/stock_entry/test_stock_entry.py b/stock/doctype/stock_entry/test_stock_entry.py
index b41a626..f01a83b 100644
--- a/stock/doctype/stock_entry/test_stock_entry.py
+++ b/stock/doctype/stock_entry/test_stock_entry.py
@@ -44,9 +44,10 @@
def test_warehouse_company_validation(self):
self._clear_stock_account_balance()
- webnotes.session.user = "test2@example.com"
webnotes.bean("Profile", "test2@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
+
+ webnotes.session.user = "test2@example.com"
from stock.utils import InvalidWarehouseCompany
st1 = webnotes.bean(copy=test_records[0])
@@ -59,13 +60,13 @@
def test_warehouse_user(self):
from stock.utils import UserNotAllowedForWarehouse
- webnotes.session.user = "test@example.com"
webnotes.bean("Profile", "test@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
webnotes.bean("Profile", "test2@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
-
+
+ webnotes.session.user = "test@example.com"
st1 = webnotes.bean(copy=test_records[0])
st1.doc.company = "_Test Company 1"
st1.doclist[1].t_warehouse="_Test Warehouse 2 - _TC1"
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index 8fef889..c7703ed 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -14,10 +14,6 @@
def validate(self):
from stock.utils import validate_warehouse_user, validate_warehouse_company
- if not hasattr(webnotes, "new_stock_ledger_entries"):
- webnotes.new_stock_ledger_entries = []
-
- webnotes.new_stock_ledger_entries.append(self.doc)
self.validate_mandatory()
self.validate_item()
validate_warehouse_user(self.doc.warehouse)
@@ -52,7 +48,7 @@
<b>%(item_code)s</b> at Warehouse <b>%(warehouse)s</b> \
as on %(posting_date)s %(posting_time)s""" % self.doc.fields)
- sself.doc.fields.pop('batch_bal')
+ self.doc.fields.pop('batch_bal')
def validate_mandatory(self):
mandatory = ['warehouse','posting_date','voucher_type','voucher_no','actual_qty','company']
diff --git a/stock/utils.py b/stock/utils.py
index 1f50164..95b9bff 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -252,10 +252,10 @@
def reorder_item():
""" Reorder item if stock reaches reorder level"""
- if not hasattr(webnotes, "auto_indent"):
- webnotes.auto_indent = cint(webnotes.conn.get_value('Stock Settings', None, 'auto_indent'))
+ if getattr(webnotes.local, "auto_indent", None) is None:
+ webnotes.local.auto_indent = cint(webnotes.conn.get_value('Stock Settings', None, 'auto_indent'))
- if webnotes.auto_indent:
+ if webnotes.local.auto_indent:
material_requests = {}
bin_list = webnotes.conn.sql("""select item_code, warehouse, projected_qty
from tabBin where ifnull(item_code, '') != '' and ifnull(warehouse, '') != ''
@@ -340,18 +340,18 @@
mr_list.append(mr_bean)
except:
- if webnotes.message_log:
- exceptions_list.append([] + webnotes.message_log)
- webnotes.message_log = []
+ if webnotes.local.message_log:
+ exceptions_list.append([] + webnotes.local.message_log)
+ webnotes.local.message_log = []
else:
exceptions_list.append(webnotes.getTraceback())
if mr_list:
- if not hasattr(webnotes, "reorder_email_notify"):
- webnotes.reorder_email_notify = cint(webnotes.conn.get_value('Stock Settings', None,
+ if getattr(webnotes.local, "reorder_email_notify", None) is None:
+ webnotes.local.reorder_email_notify = cint(webnotes.conn.get_value('Stock Settings', None,
'reorder_email_notify'))
- if(webnotes.reorder_email_notify):
+ if(webnotes.local.reorder_email_notify):
send_email_notification(mr_list)
if exceptions_list: