repost stock due to incorrect packing list
This commit is contained in:
parent
18b9eccdfa
commit
ddb9f948ee
@ -0,0 +1,75 @@
|
|||||||
|
def repost_reserved_qty():
|
||||||
|
import webnotes
|
||||||
|
bins = webnotes.conn.sql("select item_code, warehouse, name, reserved_qty from `tabBin`")
|
||||||
|
for d in bins:
|
||||||
|
reserved_qty = webnotes.conn.sql("""
|
||||||
|
select sum((dnpi.qty/so_item.qty)*(so_item.qty - ifnull(so_item.delivered_qty, 0)))
|
||||||
|
|
||||||
|
from `tabDelivery Note Packing Item` dnpi, `tabSales Order Item` so_item, `tabSales Order` so
|
||||||
|
|
||||||
|
where dnpi.parent = so.name
|
||||||
|
and so_item.parent = so.name
|
||||||
|
and dnpi.parenttype = 'Sales Order'
|
||||||
|
and dnpi.parent_detail_docname = so_item.name
|
||||||
|
and dnpi.parent_item = so_item.item_code
|
||||||
|
and so.docstatus = 1
|
||||||
|
and so.status != 'Stopped'
|
||||||
|
and dnpi.item_code = %s
|
||||||
|
and dnpi.warehouse = %s
|
||||||
|
""", (d[0], d[1]))
|
||||||
|
if flt(d[3]) != reserved_qty:
|
||||||
|
print d, reserved_qty
|
||||||
|
# webnotes.conn.sql("""
|
||||||
|
# update `tabBin` set reserved_qty = %s where name = %s
|
||||||
|
# """, (reserved_qty and reserved_qty[0][0] or 0, d[2]))
|
||||||
|
|
||||||
|
|
||||||
|
def cleanup_wrong_sle():
|
||||||
|
sle = webnotes.conn.sql("""
|
||||||
|
select item_code, warehouse, voucher_no, name
|
||||||
|
from `tabStock Ledger Entry` sle
|
||||||
|
where voucher_type = 'Delivery Note'
|
||||||
|
and not exists(
|
||||||
|
select name from `tabDelivery Note Packing Item`
|
||||||
|
where item_code = sle.item_code
|
||||||
|
and qty = abs(sle.actual_qty)
|
||||||
|
and parent = sle.voucher_no
|
||||||
|
) and not exists (
|
||||||
|
select name from `tabDelivery Note Item`
|
||||||
|
where item_code = sle.item_code
|
||||||
|
and qty = abs(sle.actual_qty)
|
||||||
|
and parent = sle.voucher_no
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
if sle:
|
||||||
|
print sle
|
||||||
|
# for d in sle:
|
||||||
|
# webnotes.conn.sql("update `tabStock Ledger Entry` set is_cancelled = 'Yes' where name = %s", d[3])
|
||||||
|
# create_comment(d[3])
|
||||||
|
# repost_bin(d[0], d[1])
|
||||||
|
|
||||||
|
def create_comment(dn):
|
||||||
|
from webnotes.model.doc import Document
|
||||||
|
cmt = Document('Comment')
|
||||||
|
for arg in ['comment', 'comment_by', 'comment_by_fullname', 'comment_doctype', \
|
||||||
|
'comment_docname']:
|
||||||
|
cmt.fields[arg] = args[arg]
|
||||||
|
cmt.comment = 'Cancelled by administrator due to wrong entry in packing list'
|
||||||
|
cmt.comment_by = 'Administrator'
|
||||||
|
cmt.comment_by_fullname = 'Administrator'
|
||||||
|
cmt.comment_doctype = 'Stock Ledger Entry'
|
||||||
|
cmt.comment_docname = dn
|
||||||
|
cmt.save(1)
|
||||||
|
|
||||||
|
|
||||||
|
def repost_bin(item, wh):
|
||||||
|
from webnotes.model.code import get_obj
|
||||||
|
bin = webnotes.conn.sql("select name from `tabBin` \
|
||||||
|
where item_code = %s and warehouse = %s", (item, wh))
|
||||||
|
|
||||||
|
get_obj('Bin', bin[0][0]).update_entries_after(posting_date = '2012-07-01', posting_time = '12:05')
|
||||||
|
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
repost_reserved_qty()
|
||||||
|
cleanup_wrong_sle()
|
Loading…
x
Reference in New Issue
Block a user