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 dbf6cf05e7..4245d7d410 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 @@ def get( 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,