* fix: consider reserved serial nos while cancelling a stock transaction (cherry picked from commit d9e284366d6c67ebd41b914b248c6ac94e973b7e) * fix: consider reserved batches while cancelling a stock transaction (cherry picked from commit e1a87a802d18f1fb33c3d9f1066da0cb7b3d4210) * feat: add field `reserved_stock` in Bin (cherry picked from commit 98d6cdd53c98b2244031f6b55a7658f1b21b7337) * feat: maintain `Reserved Stock` in Bin (cherry picked from commit f52916a2c360dd6befdd1f3dcc6c184cc181662b) * fix: consider reserved stock while cancelling a stock transaction (cherry picked from commit 73b65ac82ec11698605720bf37437fab853f3120) * fix(test): `test_stock_reservation_against_sales_order` (cherry picked from commit 10242235bc6bb9081abd4b8c48c23541e33ae646) * chore: patch to set reserved stock in Bin (cherry picked from commit 1f88b1ef84c826fc35ce3d60a562a3fe8a75b9f2) * fix: qty based check for stock reservation of serial-batch items based on qty (cherry picked from commit 9231706227977951cb69d765f77793f47a6f5c77) * test: add test case for stock stock reservation (cherry picked from commit 54b323e557f605294e8bcdd9eddf2fd4dd66ab38) --------- Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
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,
|
|
)
|