From 0b41df5ac8c31dd4cc46f4cd56d2a97af34b5357 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 20 May 2026 00:49:39 +0530 Subject: [PATCH] fix: item leaderboard uses Sales/Purchase Invoice instead of Orders (#55038) Fixes https://github.com/frappe/erpnext/issues/46657 --- erpnext/startup/leaderboard.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/erpnext/startup/leaderboard.py b/erpnext/startup/leaderboard.py index 06f61fd961e..af168332d4f 100644 --- a/erpnext/startup/leaderboard.py +++ b/erpnext/startup/leaderboard.py @@ -88,7 +88,7 @@ def get_all_customers(date_range, company, field, limit=None): @frappe.whitelist() -def get_all_items(date_range, company, field, limit=None): +def get_all_items(date_range: str, company: str, field: str, limit: int | None = None): if field in ("available_stock_qty", "available_stock_value"): select_field = "sum(actual_qty)" if field == "available_stock_qty" else "sum(stock_value)" results = frappe.db.get_all( @@ -103,21 +103,21 @@ def get_all_items(date_range, company, field, limit=None): else: if field == "total_sales_amount": select_field = "base_net_amount" - select_doctype = "Sales Order" + select_doctype = "Sales Invoice" elif field == "total_purchase_amount": select_field = "base_net_amount" - select_doctype = "Purchase Order" + select_doctype = "Purchase Invoice" elif field == "total_qty_sold": select_field = "stock_qty" - select_doctype = "Sales Order" + select_doctype = "Sales Invoice" elif field == "total_qty_purchased": select_field = "stock_qty" - select_doctype = "Purchase Order" + select_doctype = "Purchase Invoice" filters = [["docstatus", "=", "1"], ["company", "=", company]] from_date, to_date = parse_date_range(date_range) if from_date and to_date: - filters.append(["transaction_date", "between", [from_date, to_date]]) + filters.append(["posting_date", "between", [from_date, to_date]]) child_doctype = f"{select_doctype} Item" return frappe.get_list(