Serial no status fix: patch to set status not available where no sle exists

This commit is contained in:
Nabin Hait 2014-01-27 12:46:18 +05:30
parent efa9a7ed5b
commit fa9fabaa49
3 changed files with 25 additions and 4 deletions

View File

@ -0,0 +1,17 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import webnotes
def execute():
serial_nos = webnotes.conn.sql("""select name from `tabSerial No` where docstatus=0
and status in ('Available', 'Sales Returned') and ifnull(warehouse, '') = ''""")
for sr in serial_nos:
try:
sr_bean = webnotes.bean("Serial No", sr[0])
sr_bean.make_controller().via_stock_ledger = True
sr_bean.save()
webnotes.conn.commit()
except:
pass

View File

@ -267,4 +267,5 @@ patch_list = [
"patches.1401.p01_make_buying_selling_as_check_box_in_price_list",
"patches.1401.update_billing_status_for_zero_value_order",
"patches.1401.enable_all_price_list",
"patches.1401.fix_serial_no_status_and_warehouse",
]

View File

@ -87,6 +87,8 @@ class DocType(StockController):
self.doc.status = "Sales Returned"
else:
self.doc.status = "Available"
if not self.doc.warehouse:
self.doc.warehouse = last_sle.warehouse
else:
if document_type == "Purchase Return":
self.doc.status = "Purchase Returned"
@ -94,6 +96,8 @@ class DocType(StockController):
self.doc.status = "Delivered"
else:
self.doc.status = "Not Available"
else:
self.doc.status = "Not Available"
def set_purchase_details(self, purchase_sle):
if purchase_sle:
@ -185,10 +189,9 @@ class DocType(StockController):
def on_stock_ledger_entry(self):
if self.via_stock_ledger and not self.doc.fields.get("__islocal"):
last_sle = self.get_last_sle()
if last_sle:
self.set_status(last_sle.get("last_sle"))
self.set_purchase_details(last_sle.get("purchase_sle"))
self.set_sales_details(last_sle.get("delivery_sle"))
self.set_status(last_sle.get("last_sle"))
self.set_purchase_details(last_sle.get("purchase_sle"))
self.set_sales_details(last_sle.get("delivery_sle"))
def on_communication(self):
return