brotherton-erpnext/erpnext/patches/v15_0/set_reserved_stock_in_bin.py
mergify[bot] e0b0b6bb7d
fix: consider reserved stock while cancelling a stock transaction (backport #37754) (#37906)
* 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>
2023-11-04 17:02:43 +05:30

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,
)