From ca657d2629fec774df96f7c8f0032826ee44dc8e Mon Sep 17 00:00:00 2001 From: Shllokkk <140623894+Shllokkk@users.noreply.github.com> Date: Tue, 28 Jul 2026 16:51:53 +0530 Subject: [PATCH] fix: respect child warehouse account override in Stock and Account Value Comparison (#57552) fix: respect child warehouse account override in stock vs account value comparison (cherry picked from commit 5fc20d6b8ed97ec56dba5327588e5a94f3975ef2) --- erpnext/stock/doctype/warehouse/warehouse.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py index f4079cc54cb..a55e8351446 100644 --- a/erpnext/stock/doctype/warehouse/warehouse.py +++ b/erpnext/stock/doctype/warehouse/warehouse.py @@ -14,7 +14,7 @@ from frappe.utils.caching import request_cache from frappe.utils.nestedset import NestedSet from pypika.terms import ExistsCriterion -from erpnext.stock import get_warehouse_account +from erpnext.stock import get_warehouse_account, get_warehouse_account_map class Warehouse(NestedSet): @@ -214,11 +214,19 @@ def get_child_warehouses(warehouse): def get_warehouses_based_on_account(account, company=None): warehouses = [] + warehouse_account_map = None for d in frappe.get_all( "Warehouse", fields=["name", "is_group"], filters={"account": account, "disabled": 0} ): if d.is_group: - warehouses.extend(get_child_warehouses(d.name)) + # Keep only children whose effective account matches; a child can override the group's account + if warehouse_account_map is None: + warehouse_account_map = get_warehouse_account_map(company) + warehouses.extend( + w + for w in get_child_warehouses(d.name) + if (warehouse_account_map.get(w) or {}).get("account") == account + ) else: warehouses.append(d.name)