mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 00:44:45 +00:00
fix(sales analytics): add curve filter
(cherry picked from commit c2995f6800)
# Conflicts:
# erpnext/selling/report/sales_analytics/sales_analytics.js
# erpnext/selling/report/sales_analytics/sales_analytics.py
This commit is contained in:
@@ -90,12 +90,19 @@ frappe.query_reports["Sales Analytics"] = {
|
|||||||
label: __("Curves"),
|
label: __("Curves"),
|
||||||
fieldtype: "Select",
|
fieldtype: "Select",
|
||||||
options: [
|
options: [
|
||||||
|
<<<<<<< HEAD
|
||||||
{ value: "select", label: __("Select") },
|
{ value: "select", label: __("Select") },
|
||||||
|
=======
|
||||||
|
>>>>>>> c2995f6800 (fix(sales analytics): add curve filter)
|
||||||
{ value: "all", label: __("All") },
|
{ value: "all", label: __("All") },
|
||||||
{ value: "non-zeros", label: __("Non-Zeros") },
|
{ value: "non-zeros", label: __("Non-Zeros") },
|
||||||
{ value: "total", label: __("Total Only") },
|
{ value: "total", label: __("Total Only") },
|
||||||
],
|
],
|
||||||
|
<<<<<<< HEAD
|
||||||
default: "select",
|
default: "select",
|
||||||
|
=======
|
||||||
|
default: "all",
|
||||||
|
>>>>>>> c2995f6800 (fix(sales analytics): add curve filter)
|
||||||
reqd: 1,
|
reqd: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -529,6 +529,7 @@ class Analytics:
|
|||||||
labels = [d.get("label") for d in self.columns[1 : length - 1]]
|
labels = [d.get("label") for d in self.columns[1 : length - 1]]
|
||||||
|
|
||||||
datasets = []
|
datasets = []
|
||||||
|
<<<<<<< HEAD
|
||||||
if self.filters.curves != "select":
|
if self.filters.curves != "select":
|
||||||
for curve in self.data:
|
for curve in self.data:
|
||||||
data = {
|
data = {
|
||||||
@@ -552,6 +553,29 @@ class Analytics:
|
|||||||
datasets[0]["name"] = _("Total")
|
datasets[0]["name"] = _("Total")
|
||||||
else:
|
else:
|
||||||
datasets.append(data)
|
datasets.append(data)
|
||||||
|
=======
|
||||||
|
for curve in self.data:
|
||||||
|
data = {
|
||||||
|
"name": curve.get("entity_name", curve["entity"]),
|
||||||
|
"values": [curve.get(scrub(label), 0) for label in labels],
|
||||||
|
}
|
||||||
|
if self.filters.curves == "non-zeros" and not sum(data["values"]):
|
||||||
|
continue
|
||||||
|
elif self.filters.curves == "total" and "indent" in curve:
|
||||||
|
if curve["indent"] == 0:
|
||||||
|
datasets.append(data)
|
||||||
|
elif self.filters.curves == "total":
|
||||||
|
if datasets:
|
||||||
|
a = [
|
||||||
|
data["values"][idx] + datasets[0]["values"][idx] for idx in range(len(data["values"]))
|
||||||
|
]
|
||||||
|
datasets[0]["values"] = a
|
||||||
|
else:
|
||||||
|
datasets.append(data)
|
||||||
|
datasets[0]["name"] = _("Total")
|
||||||
|
else:
|
||||||
|
datasets.append(data)
|
||||||
|
>>>>>>> c2995f6800 (fix(sales analytics): add curve filter)
|
||||||
|
|
||||||
self.chart = {"data": {"labels": labels, "datasets": datasets}, "type": "line"}
|
self.chart = {"data": {"labels": labels, "datasets": datasets}, "type": "line"}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user