From 82f0bd9ee95091e2825f434b433eadc8165d7fac Mon Sep 17 00:00:00 2001 From: Sagar Sharma Date: Thu, 25 May 2023 15:57:06 +0530 Subject: [PATCH] feat: add `Reserved Stock` column in `Stock Balance` Report --- .../report/stock_balance/stock_balance.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/erpnext/stock/report/stock_balance/stock_balance.py b/erpnext/stock/report/stock_balance/stock_balance.py index 68df918e83..8eb1c74537 100644 --- a/erpnext/stock/report/stock_balance/stock_balance.py +++ b/erpnext/stock/report/stock_balance/stock_balance.py @@ -100,6 +100,7 @@ class StockBalanceReport(object): _func = itemgetter(1) self.item_warehouse_map = self.get_item_warehouse_map() + sre_details = self.get_sre_reserved_qty_details() variant_values = {} if self.filters.get("show_variant_attributes"): @@ -133,6 +134,9 @@ class StockBalanceReport(object): report_data.update(stock_ageing_data) + report_data.update( + {"reserved_stock": sre_details.get((report_data.item_code, report_data.warehouse), 0.0)} + ) self.data.append(report_data) def get_item_warehouse_map(self): @@ -159,6 +163,18 @@ class StockBalanceReport(object): return item_warehouse_map + def get_sre_reserved_qty_details(self) -> dict: + from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import ( + get_sre_reserved_qty_details_for_item_and_warehouse as get_reserved_qty_details, + ) + + item_code_list, warehouse_list = [], [] + for d in self.item_warehouse_map: + item_code_list.append(d[1]) + warehouse_list.append(d[2]) + + return get_reserved_qty_details(item_code_list, warehouse_list) + def prepare_item_warehouse_map(self, item_warehouse_map, entry, group_by_key): qty_dict = item_warehouse_map[group_by_key] for field in self.inventory_dimensions: @@ -435,6 +451,13 @@ class StockBalanceReport(object): "convertible": "rate", "options": "currency", }, + { + "label": _("Reserved Stock"), + "fieldname": "reserved_stock", + "fieldtype": "Float", + "width": 80, + "convertible": "qty", + }, { "label": _("Company"), "fieldname": "company",