packing list cleanup and serial no status update
This commit is contained in:
parent
de293e51fc
commit
52fd9de425
@ -0,0 +1,43 @@
|
||||
def execute():
|
||||
import webnotes
|
||||
wrong_plist = webnotes.conn.sql("""
|
||||
select dnpi.name, dnpi.parent, dnpi.docstatus, dnpi.serial_no
|
||||
from `tabDelivery Note Packing Item` dnpi
|
||||
where ifnull(dnpi.parent, '') != ''
|
||||
and ifnull(dnpi.parent, '') not like 'old_par%'
|
||||
and dnpi.parenttype = 'Delivery Note'
|
||||
and not exists (
|
||||
select * from `tabDelivery Note Item` dni
|
||||
where dni.item_code = dnpi.parent_item and
|
||||
dni.name = dnpi.parent_detail_docname and
|
||||
dni.parent = dnpi.parent
|
||||
)
|
||||
""", as_dict=1)
|
||||
|
||||
for d in wrong_plist:
|
||||
if d['docstatus'] == 2 and d['serial_no']:
|
||||
for s in d['serial_no'].splitlines():
|
||||
sle = webnotes.conn.sql("""
|
||||
select actual_qty, warehouse, voucher_no
|
||||
from `tabStock Ledger Entry`
|
||||
where (
|
||||
serial_no like '%s\n%%'
|
||||
or serial_no like '%%\n%s'
|
||||
or serial_no like '%%\n%s\n%%'
|
||||
or serial_no = '%s'
|
||||
)
|
||||
and voucher_no != '%s'
|
||||
and ifnull(is_cancelled, 'No') = 'No'
|
||||
order by name desc
|
||||
limit 1
|
||||
"""% (s, s, s, s, d['parent']), as_dict=1)
|
||||
|
||||
status = 'Not in Use'
|
||||
if sle and flt(sle[0]['actual_qty']) > 0:
|
||||
status = 'In Store'
|
||||
elif sle and flt(sle[0]['actual_qty']) < 0:
|
||||
status = 'Delivered'
|
||||
|
||||
webnotes.conn.sql("update `tabSerial No` set status = %s, warehouse = %s where name = %s", (status, sle[0]['warehouse'], s))
|
||||
|
||||
webnotes.conn.sql("delete from `tabDelivery Note Packing Item` where name = %s", d['name'])
|
Loading…
x
Reference in New Issue
Block a user