Merge pull request #30312 from alyf-de/refactor-sales-analytics
refactor: sales analytics
diff --git a/erpnext/selling/report/sales_analytics/sales_analytics.js b/erpnext/selling/report/sales_analytics/sales_analytics.js
index 6b03c7d..d527e42 100644
--- a/erpnext/selling/report/sales_analytics/sales_analytics.js
+++ b/erpnext/selling/report/sales_analytics/sales_analytics.js
@@ -82,62 +82,42 @@
const tree_type = frappe.query_report.filters[0].value;
if (data_doctype != tree_type) return;
- row_name = data[2].content;
- length = data.length;
-
- if (tree_type == "Customer") {
- row_values = data
- .slice(4, length - 1)
- .map(function (column) {
- return column.content;
- });
- } else if (tree_type == "Item") {
- row_values = data
- .slice(5, length - 1)
- .map(function (column) {
- return column.content;
- });
- } else {
- row_values = data
- .slice(3, length - 1)
- .map(function (column) {
- return column.content;
- });
- }
-
- entry = {
- name: row_name,
- values: row_values,
- };
-
- let raw_data = frappe.query_report.chart.data;
- let new_datasets = raw_data.datasets;
-
- let element_found = new_datasets.some((element, index, array)=>{
- if(element.name == row_name){
- array.splice(index, 1)
- return true
+ const row_name = data[2].content;
+ const raw_data = frappe.query_report.chart.data;
+ const new_datasets = raw_data.datasets;
+ const element_found = new_datasets.some(
+ (element, index, array) => {
+ if (element.name == row_name) {
+ array.splice(index, 1);
+ return true;
+ }
+ return false;
}
- return false
- })
+ );
+ const slice_at = { Customer: 4, Item: 5 }[tree_type] || 3;
if (!element_found) {
- new_datasets.push(entry);
+ new_datasets.push({
+ name: row_name,
+ values: data
+ .slice(slice_at, data.length - 1)
+ .map(column => column.content),
+ });
}
- let new_data = {
+ const new_data = {
labels: raw_data.labels,
datasets: new_datasets,
};
- chart_options = {
+
+ frappe.query_report.render_chart({
data: new_data,
type: "line",
- };
- frappe.query_report.render_chart(chart_options);
+ });
frappe.query_report.raw_chart_data = new_data;
},
},
});
},
-}
+};