mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-13 18:21:22 +00:00
[production] update planned and produced ty
This commit is contained in:
@@ -3,19 +3,9 @@
|
||||
|
||||
def execute():
|
||||
import webnotes
|
||||
from webnotes.utils import flt
|
||||
|
||||
for d in webnotes.conn.sql("select name, item_code, warehouse, ordered_qty from tabBin",
|
||||
as_dict=1):
|
||||
ordered_qty = webnotes.conn.sql("""
|
||||
select sum((po_item.qty - po_item.received_qty)*po_item.conversion_factor)
|
||||
from `tabPurchase Order Item` po_item, `tabPurchase Order` po
|
||||
where po_item.item_code=%s and po_item.warehouse=%s
|
||||
and po_item.qty > po_item.received_qty and po_item.parent=po.name
|
||||
and po.status!='Stopped' and po.docstatus=1""", (d.item_code, d.warehouse))
|
||||
from utilities.repost_stock import get_ordered_qty, update_bin
|
||||
|
||||
if flt(d.ordered_qty) != flt(ordered_qty[0][0]):
|
||||
webnotes.conn.set_value("Bin", d.name, "ordered_qty", flt(ordered_qty[0][0]))
|
||||
|
||||
webnotes.conn.sql("""update tabBin set projected_qty = actual_qty + planned_qty +
|
||||
indented_qty + ordered_qty - reserved_qty where name = %s""", d.name)
|
||||
for d in webnotes.conn.sql("select item_code, warehouse from tabBin"):
|
||||
update_bin(d[0], d[1], {
|
||||
"ordered_qty": get_ordered_qty(d[0], d[1])
|
||||
})
|
||||
@@ -4,54 +4,10 @@
|
||||
import webnotes
|
||||
def execute():
|
||||
webnotes.conn.auto_commit_on_many_writes = 1
|
||||
repost_reserved_qty()
|
||||
webnotes.conn.auto_commit_on_many_writes = 0
|
||||
from utilities.repost_stock import get_reserved_qty, update_bin
|
||||
|
||||
def repost_reserved_qty():
|
||||
from webnotes.utils import flt
|
||||
bins = webnotes.conn.sql("select item_code, warehouse, name, reserved_qty from `tabBin`")
|
||||
i = 0
|
||||
for d in bins:
|
||||
i += 1
|
||||
reserved_qty = webnotes.conn.sql("""
|
||||
select
|
||||
sum((dnpi_qty / so_item_qty) * (so_item_qty - so_item_delivered_qty))
|
||||
from
|
||||
(
|
||||
(select
|
||||
qty as dnpi_qty,
|
||||
(
|
||||
select qty from `tabSales Order Item`
|
||||
where name = dnpi.parent_detail_docname
|
||||
) as so_item_qty,
|
||||
(
|
||||
select ifnull(delivered_qty, 0) from `tabSales Order Item`
|
||||
where name = dnpi.parent_detail_docname
|
||||
) as so_item_delivered_qty,
|
||||
parent, name
|
||||
from
|
||||
(
|
||||
select qty, parent_detail_docname, parent, name
|
||||
from `tabDelivery Note Packing Item` dnpi_in
|
||||
where item_code = %s and warehouse = %s
|
||||
and parenttype="Sales Order"
|
||||
and item_code != parent_item
|
||||
and exists (select * from `tabSales Order` so
|
||||
where name = dnpi_in.parent and docstatus = 1 and status != 'Stopped')
|
||||
) dnpi)
|
||||
union
|
||||
(select qty as dnpi_qty, qty as so_item_qty,
|
||||
ifnull(delivered_qty, 0) as so_item_delivered_qty, parent, name
|
||||
from `tabSales Order Item` so_item
|
||||
where item_code = %s and reserved_warehouse = %s
|
||||
and exists(select * from `tabSales Order` so
|
||||
where so.name = so_item.parent and so.docstatus = 1
|
||||
and so.status != 'Stopped'))
|
||||
) tab
|
||||
where
|
||||
so_item_qty >= so_item_delivered_qty
|
||||
""", (d[0], d[1], d[0], d[1]))
|
||||
|
||||
if flt(d[3]) != flt(reserved_qty[0][0]):
|
||||
webnotes.conn.sql("""update `tabBin` set reserved_qty = %s where name = %s""",
|
||||
(reserved_qty and reserved_qty[0][0] or 0, d[2]))
|
||||
for d in webnotes.conn.sql("select item_code, warehouse from tabBin"):
|
||||
update_bin(d[0], d[1], {
|
||||
"reserved_qty": get_reserved_qty(d[0], d[1])
|
||||
})
|
||||
webnotes.conn.auto_commit_on_many_writes = 0
|
||||
11
patches/october_2013/repost_planned_qty.py
Normal file
11
patches/october_2013/repost_planned_qty.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
def execute():
|
||||
import webnotes
|
||||
from utilities.repost_stock import get_planned_qty, update_bin
|
||||
|
||||
for d in webnotes.conn.sql("select item_code, warehouse from tabBin"):
|
||||
update_bin(d[0], d[1], {
|
||||
"planned_qty": get_planned_qty(d[0], d[1])
|
||||
})
|
||||
@@ -221,4 +221,5 @@ patch_list = [
|
||||
"patches.september_2013.p05_fix_customer_in_pos",
|
||||
"patches.october_2013.fix_is_cancelled_in_sle",
|
||||
"patches.october_2013.repost_ordered_qty",
|
||||
"patches.october_2013.repost_planned_qty",
|
||||
]
|
||||
Reference in New Issue
Block a user