mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-11 05:31:48 +00:00
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 5fc20d6b8e)
This commit is contained in:
@@ -14,7 +14,7 @@ from frappe.utils.caching import request_cache
|
|||||||
from frappe.utils.nestedset import NestedSet
|
from frappe.utils.nestedset import NestedSet
|
||||||
from pypika.terms import ExistsCriterion
|
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):
|
class Warehouse(NestedSet):
|
||||||
@@ -214,11 +214,19 @@ def get_child_warehouses(warehouse):
|
|||||||
|
|
||||||
def get_warehouses_based_on_account(account, company=None):
|
def get_warehouses_based_on_account(account, company=None):
|
||||||
warehouses = []
|
warehouses = []
|
||||||
|
warehouse_account_map = None
|
||||||
for d in frappe.get_all(
|
for d in frappe.get_all(
|
||||||
"Warehouse", fields=["name", "is_group"], filters={"account": account, "disabled": 0}
|
"Warehouse", fields=["name", "is_group"], filters={"account": account, "disabled": 0}
|
||||||
):
|
):
|
||||||
if d.is_group:
|
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:
|
else:
|
||||||
warehouses.append(d.name)
|
warehouses.append(d.name)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user