mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-26 08:24:47 +00:00
refactor: don't use pandas for basic reports (#30597)
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
|
||||
# For license information, please see license.txt
|
||||
import json
|
||||
from itertools import groupby
|
||||
|
||||
import frappe
|
||||
import pandas
|
||||
from frappe import _
|
||||
from frappe.utils import flt
|
||||
|
||||
@@ -101,18 +101,19 @@ class OpportunitySummaryBySalesStage(object):
|
||||
|
||||
self.convert_to_base_currency()
|
||||
|
||||
dataframe = pandas.DataFrame.from_records(self.query_result)
|
||||
dataframe.replace(to_replace=[None], value="Not Assigned", inplace=True)
|
||||
result = dataframe.groupby(["sales_stage", based_on], as_index=False)["amount"].sum()
|
||||
for row in self.query_result:
|
||||
if not row.get(based_on):
|
||||
row[based_on] = "Not Assigned"
|
||||
|
||||
self.grouped_data = []
|
||||
|
||||
for i in range(len(result["amount"])):
|
||||
grouping_key = lambda o: (o["sales_stage"], o[based_on]) # noqa
|
||||
for (sales_stage, _based_on), rows in groupby(self.query_result, grouping_key):
|
||||
self.grouped_data.append(
|
||||
{
|
||||
"sales_stage": result["sales_stage"][i],
|
||||
based_on: result[based_on][i],
|
||||
"amount": result["amount"][i],
|
||||
"sales_stage": sales_stage,
|
||||
based_on: _based_on,
|
||||
"amount": sum(flt(r["amount"]) for r in rows),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
import json
|
||||
from datetime import date
|
||||
from itertools import groupby
|
||||
|
||||
import frappe
|
||||
import pandas
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from frappe import _
|
||||
from frappe.utils import cint, flt
|
||||
@@ -109,18 +109,15 @@ class SalesPipelineAnalytics(object):
|
||||
|
||||
self.convert_to_base_currency()
|
||||
|
||||
dataframe = pandas.DataFrame.from_records(self.query_result)
|
||||
dataframe.replace(to_replace=[None], value="Not Assigned", inplace=True)
|
||||
result = dataframe.groupby([self.pipeline_by, self.period_by], as_index=False)["amount"].sum()
|
||||
|
||||
self.grouped_data = []
|
||||
|
||||
for i in range(len(result["amount"])):
|
||||
grouping_key = lambda o: (o.get(self.pipeline_by) or "Not Assigned", o[self.period_by]) # noqa
|
||||
for (pipeline_by, period_by), rows in groupby(self.query_result, grouping_key):
|
||||
self.grouped_data.append(
|
||||
{
|
||||
self.pipeline_by: result[self.pipeline_by][i],
|
||||
self.period_by: result[self.period_by][i],
|
||||
"amount": result["amount"][i],
|
||||
self.pipeline_by: pipeline_by,
|
||||
self.period_by: period_by,
|
||||
"amount": sum(flt(r["amount"]) for r in rows),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user