pref: reduce count of db calls from n to 2
diff --git a/erpnext/stock/dashboard_chart_source/warehouse_wise_stock_value/warehouse_wise_stock_value.py b/erpnext/stock/dashboard_chart_source/warehouse_wise_stock_value/warehouse_wise_stock_value.py
index dbf6cf0..4245d7d 100644
--- a/erpnext/stock/dashboard_chart_source/warehouse_wise_stock_value/warehouse_wise_stock_value.py
+++ b/erpnext/stock/dashboard_chart_source/warehouse_wise_stock_value/warehouse_wise_stock_value.py
@@ -30,26 +30,23 @@
 		warehouse_filters.append(["company", "=", filters.get("company")])
 
 	warehouses = frappe.get_list(
-		"Warehouse", fields=["name"], filters=warehouse_filters, order_by="name"
+		"Warehouse", pluck="name", filters=warehouse_filters, order_by="name"
 	)
 
-	for wh in warehouses:
-		balance = get_stock_value_from_bin(warehouse=wh.name)
-		wh["balance"] = balance[0][0]
-
-	warehouses = [x for x in warehouses if not (x.get("balance") == None)]
+	warehouses = frappe.get_list(
+		"Bin",
+		fields=["warehouse", "stock_value"],
+		filters={"warehouse": ["IN", warehouses], "stock_value": [">", 0]},
+		order_by="stock_value DESC",
+		limit_page_length=10
+	)
 
 	if not warehouses:
 		return []
 
-	sorted_warehouse_map = sorted(warehouses, key=lambda i: i["balance"], reverse=True)
-
-	if len(sorted_warehouse_map) > 10:
-		sorted_warehouse_map = sorted_warehouse_map[:10]
-
-	for warehouse in sorted_warehouse_map:
-		labels.append(_(warehouse.get("name")))
-		datapoints.append(warehouse.get("balance"))
+	for warehouse in warehouses:
+		labels.append(_(warehouse.get("warehouse")))
+		datapoints.append(warehouse.get("stock_value"))
 
 	return {
 		"labels": labels,