25 lines
579 B
Python
25 lines
579 B
Python
|
import frappe
|
||
|
from frappe.query_builder.functions import Sum
|
||
|
|
||
|
|
||
|
def execute():
|
||
|
sre = frappe.qb.DocType("Stock Reservation Entry")
|
||
|
query = (
|
||
|
frappe.qb.from_(sre)
|
||
|
.select(
|
||
|
sre.item_code,
|
||
|
sre.warehouse,
|
||
|
Sum(sre.reserved_qty - sre.delivered_qty).as_("reserved_stock"),
|
||
|
)
|
||
|
.where((sre.docstatus == 1) & (sre.status.notin(["Delivered", "Cancelled"])))
|
||
|
.groupby(sre.item_code, sre.warehouse)
|
||
|
)
|
||
|
|
||
|
for d in query.run(as_dict=True):
|
||
|
frappe.db.set_value(
|
||
|
"Bin",
|
||
|
{"item_code": d.item_code, "warehouse": d.warehouse},
|
||
|
"reserved_stock",
|
||
|
d.reserved_stock,
|
||
|
)
|