diff --git a/erpnext/buying/number_card/average_order_values/average_order_values.json b/erpnext/buying/number_card/average_order_values/average_order_values.json new file mode 100644 index 00000000000..15ac1f2ecec --- /dev/null +++ b/erpnext/buying/number_card/average_order_values/average_order_values.json @@ -0,0 +1,26 @@ +{ + "aggregate_function_based_on": "base_rounded_total", + "creation": "2025-12-19 16:10:00.369804", + "currency": "", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Purchase Order", + "dynamic_filters_json": "[[\"Purchase Order\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Purchase Order\",\"transaction_date\",\"Timespan\",\"this quarter\"],[\"Purchase Order\",\"docstatus\",\"=\",\"1\"],[\"Purchase Order\",\"is_subcontracted\",\"=\",0]]", + "function": "Average", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Average Order Values", + "modified": "2025-12-19 16:57:02.546572", + "modified_by": "Administrator", + "module": "Buying", + "name": "Average Order Values", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Weekly", + "type": "Document Type" +} diff --git a/erpnext/buying/number_card/purchase_orders_count/purchase_orders_count.json b/erpnext/buying/number_card/purchase_orders_count/purchase_orders_count.json new file mode 100644 index 00000000000..8e88f6877e4 --- /dev/null +++ b/erpnext/buying/number_card/purchase_orders_count/purchase_orders_count.json @@ -0,0 +1,26 @@ +{ + "aggregate_function_based_on": "", + "creation": "2025-12-19 16:08:48.262514", + "currency": "", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Purchase Order", + "dynamic_filters_json": "[[\"Purchase Order\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Purchase Order\",\"transaction_date\",\"Timespan\",\"this quarter\"],[\"Purchase Order\",\"docstatus\",\"=\",\"1\"],[\"Purchase Order\",\"is_subcontracted\",\"=\",0]]", + "function": "Count", + "idx": 1, + "is_public": 1, + "is_standard": 1, + "label": "Purchase Orders Count", + "modified": "2025-12-19 16:57:12.960310", + "modified_by": "Administrator", + "module": "Buying", + "name": "Purchase Orders Count", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Weekly", + "type": "Document Type" +} diff --git a/erpnext/buying/number_card/total_purchase_amount/total_purchase_amount.json b/erpnext/buying/number_card/total_purchase_amount/total_purchase_amount.json new file mode 100644 index 00000000000..05bdc742dc0 --- /dev/null +++ b/erpnext/buying/number_card/total_purchase_amount/total_purchase_amount.json @@ -0,0 +1,26 @@ +{ + "aggregate_function_based_on": "base_rounded_total", + "creation": "2025-12-19 16:07:19.293268", + "currency": "", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Purchase Order", + "dynamic_filters_json": "[[\"Purchase Order\",\"company\",\"=\",\"frappe.defaults.get_user_default(\\\"Company\\\")\"]]", + "filters_json": "[[\"Purchase Order\",\"transaction_date\",\"Timespan\",\"this quarter\"],[\"Purchase Order\",\"docstatus\",\"=\",\"1\"],[\"Purchase Order\",\"is_subcontracted\",\"=\",0]]", + "function": "Sum", + "idx": 0, + "is_public": 1, + "is_standard": 1, + "label": "Total Purchase Amount", + "modified": "2025-12-19 16:57:24.263495", + "modified_by": "Administrator", + "module": "Buying", + "name": "Total Purchase Amount", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 0, + "stats_time_interval": "Weekly", + "type": "Document Type" +} diff --git a/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py b/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py index a7b4a7207c6..dd518e838ad 100644 --- a/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py +++ b/erpnext/buying/report/purchase_order_trends/purchase_order_trends.py @@ -36,7 +36,7 @@ def get_chart_data(data, conditions, filters): # fetch only periodic columns as labels columns = conditions.get("columns")[start:-2][2::2] - labels = [column.split(":")[0] for column in columns] + labels = [column.split(":")[0].replace(" (Amt)", "") for column in columns] datapoints = [0] * len(labels) for row in data: diff --git a/erpnext/buying/workspace/buying/buying.json b/erpnext/buying/workspace/buying/buying.json index db5c7d046db..18d86da9ea5 100644 --- a/erpnext/buying/workspace/buying/buying.json +++ b/erpnext/buying/workspace/buying/buying.json @@ -1,11 +1,12 @@ { + "app": "erpnext", "charts": [ { "chart_name": "Purchase Order Trends", "label": "Purchase Order Trends" } ], - "content": "[{\"id\":\"I3JijHOxil\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Buying\",\"col\":12}},{\"id\":\"j3dJGo8Ok6\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Purchase Order Trends\",\"col\":12}},{\"id\":\"oN7lXSwQji\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"Ivw1PI_wEJ\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"RrWFEi4kCf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"id\":\"RFIakryyJP\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Material Request\",\"col\":3}},{\"id\":\"bM10abFmf6\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Order\",\"col\":3}},{\"id\":\"lR0Hw_37Pu\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Analytics\",\"col\":3}},{\"id\":\"_HN0Ljw1lX\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Order Analysis\",\"col\":3}},{\"id\":\"kuLuiMRdnX\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"tQFeiKptW2\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Learn Procurement\",\"col\":3}},{\"id\":\"0NiuFE_EGS\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"Xe2GVLOq8J\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"QwqyG6XuUt\",\"type\":\"card\",\"data\":{\"card_name\":\"Buying\",\"col\":4}},{\"id\":\"bTPjOxC_N_\",\"type\":\"card\",\"data\":{\"card_name\":\"Items & Pricing\",\"col\":4}},{\"id\":\"87ht0HIneb\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"id\":\"EDOsBOmwgw\",\"type\":\"card\",\"data\":{\"card_name\":\"Supplier\",\"col\":4}},{\"id\":\"oWNNIiNb2i\",\"type\":\"card\",\"data\":{\"card_name\":\"Supplier Scorecard\",\"col\":4}},{\"id\":\"7F_13-ihHB\",\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"id\":\"pfwiLvionl\",\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}},{\"id\":\"8ySDy6s4qn\",\"type\":\"card\",\"data\":{\"card_name\":\"Regional\",\"col\":4}}]", + "content": "[{\"id\":\"j3dJGo8Ok6\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Purchase Order Trends\",\"col\":12}},{\"id\":\"k75jSq2D6Z\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Purchase Orders Count\",\"col\":4}},{\"id\":\"UPXys0lQLj\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Purchase Amount\",\"col\":4}},{\"id\":\"yQGK3eb2hg\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Average Order Values\",\"col\":4}},{\"id\":\"oN7lXSwQji\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"Ivw1PI_wEJ\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"RrWFEi4kCf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"id\":\"RFIakryyJP\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Material Request\",\"col\":3}},{\"id\":\"bM10abFmf6\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Order\",\"col\":3}},{\"id\":\"lR0Hw_37Pu\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Analytics\",\"col\":3}},{\"id\":\"_HN0Ljw1lX\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Order Analysis\",\"col\":3}},{\"id\":\"kuLuiMRdnX\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"tQFeiKptW2\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Learn Procurement\",\"col\":3}},{\"id\":\"0NiuFE_EGS\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"Xe2GVLOq8J\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"QwqyG6XuUt\",\"type\":\"card\",\"data\":{\"card_name\":\"Buying\",\"col\":4}},{\"id\":\"bTPjOxC_N_\",\"type\":\"card\",\"data\":{\"card_name\":\"Items & Pricing\",\"col\":4}},{\"id\":\"87ht0HIneb\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"id\":\"EDOsBOmwgw\",\"type\":\"card\",\"data\":{\"card_name\":\"Supplier\",\"col\":4}},{\"id\":\"oWNNIiNb2i\",\"type\":\"card\",\"data\":{\"card_name\":\"Supplier Scorecard\",\"col\":4}},{\"id\":\"7F_13-ihHB\",\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"id\":\"pfwiLvionl\",\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}},{\"id\":\"8ySDy6s4qn\",\"type\":\"card\",\"data\":{\"card_name\":\"Regional\",\"col\":4}}]", "creation": "2020-01-28 11:50:26.195467", "custom_blocks": [], "docstatus": 0, @@ -511,11 +512,24 @@ "type": "Link" } ], - "modified": "2023-07-04 14:43:30.387683", + "modified": "2025-12-19 16:12:02.461082", "modified_by": "Administrator", "module": "Buying", "name": "Buying", - "number_cards": [], + "number_cards": [ + { + "label": "Purchase Orders Count", + "number_card_name": "Purchase Orders Count" + }, + { + "label": "Total Purchase Amount", + "number_card_name": "Total Purchase Amount" + }, + { + "label": "Average Order Values", + "number_card_name": "Average Order Values" + } + ], "owner": "Administrator", "parent_page": "", "public": 1, @@ -558,11 +572,13 @@ { "label": "Purchase Analytics", "link_to": "Purchase Analytics", + "report_ref_doctype": "Purchase Order", "type": "Report" }, { "label": "Purchase Order Analysis", "link_to": "Purchase Order Analysis", + "report_ref_doctype": "Purchase Order", "type": "Report" }, { @@ -571,5 +587,6 @@ "type": "Dashboard" } ], - "title": "Buying" + "title": "Buying", + "type": "Workspace" }