From fb0274b2495b26e8a18e65e64705a05c8e939065 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Sat, 5 Oct 2013 14:56:53 +0530 Subject: [PATCH] [patch] [minor] fix serial no status --- .../october_2013/p01_fix_serial_no_status.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 patches/october_2013/p01_fix_serial_no_status.py diff --git a/patches/october_2013/p01_fix_serial_no_status.py b/patches/october_2013/p01_fix_serial_no_status.py new file mode 100644 index 0000000000..8700290fcd --- /dev/null +++ b/patches/october_2013/p01_fix_serial_no_status.py @@ -0,0 +1,40 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import webnotes +from webnotes.utils import flt + +def execute(): + serial_nos = webnotes.conn.sql("""select name, item_code, status from `tabSerial No` + where status!='Not in Use'""", as_dict=1) + for sr in serial_nos: + last_sle = webnotes.conn.sql("""select voucher_type, voucher_no, actual_qty + from `tabStock Ledger Entry` where serial_no like %s and item_code=%s + order by name desc limit 1""", + ("%%%s%%" % sr.name, sr.item_code), as_dict=1) + + if flt(last_sle[0].actual_qty) > 0: + if last_sle[0].voucher_type == "Stock Entry" and webnotes.conn.get_value("Stock Entry", + last_sle[0].voucher_no, "purpose") == "Sales Return": + status = "Sales Returned" + else: + status = "Available" + else: + if last_sle[0].voucher_type == "Stock Entry": + purpose = webnotes.conn.get_value("Stock Entry", last_sle[0].voucher_no, "purpose") + if purpose == "Purchase Return": + status = "Purchase Returned" + else: + status = "Not Available" + else: + status = "Delivered" + if sr.status != status: + webnotes.conn.sql("""update `tabSerial No` set status=%s where name=%s""", + (status, sr.name)) + + webnotes.conn.sql("""update `tabSerial No` set warehouse='' + where status in ('Delivered', 'Purchase Returned')""") + + + \ No newline at end of file