feat(dashboard): Add Time Grain filter
This commit is contained in:
parent
c888e52788
commit
6cadf77073
@ -9,11 +9,16 @@ from frappe.utils import add_to_date, date_diff, getdate, nowdate
|
||||
from erpnext.accounts.report.general_ledger.general_ledger import execute
|
||||
|
||||
|
||||
def get(filters=None):
|
||||
def get(filters= None):
|
||||
print(filters)
|
||||
timespan = filters.get("timespan")
|
||||
timegrain = filters.get("timegrain")
|
||||
from_date = get_from_date_from_timespan(timespan)
|
||||
to_date = nowdate()
|
||||
filters = frappe._dict({
|
||||
"company": "Gadget Technologies Pvt. Ltd.",
|
||||
"from_date": get_from_date_from_timespan(filters.get("timespan")),
|
||||
"to_date": "2020-12-12",
|
||||
"from_date": from_date,
|
||||
"to_date": to_date,
|
||||
"account": "Cash - GTPL",
|
||||
"group_by": "Group by Voucher (Consolidated)"
|
||||
})
|
||||
@ -33,6 +38,8 @@ def get(filters=None):
|
||||
|
||||
results = add_missing_dates(results, from_date, to_date)
|
||||
|
||||
results = granulate_results(results, from_date, to_date, timegrain)
|
||||
|
||||
return {
|
||||
"labels": [result[0] for result in results],
|
||||
"datasets": [{
|
||||
@ -67,3 +74,23 @@ def add_missing_dates(incomplete_results, from_date, to_date):
|
||||
last_balance = results_dict[date]
|
||||
results.append([date, last_balance])
|
||||
return results
|
||||
|
||||
def get_dates_from_timegrain(from_date, to_date, timegrain):
|
||||
days = months = years = 0
|
||||
if "Daily" == timegrain:
|
||||
days = 1
|
||||
elif "Weekly" == timegrain:
|
||||
days = 7
|
||||
elif "Monthly" == timegrain:
|
||||
months = 1
|
||||
elif "Quarterly" == timegrain:
|
||||
months = 3
|
||||
|
||||
dates = [from_date]
|
||||
while dates[-1] <= to_date:
|
||||
dates.append(add_to_date(dates[-1], years=years, months=months, days=days))
|
||||
return dates
|
||||
|
||||
def granulate_results(incomplete_results, from_date, to_date, timegrain):
|
||||
dates = set(get_dates_from_timegrain(getdate(from_date), getdate(to_date), timegrain))
|
||||
return list(filter(lambda x: x[0] in dates,incomplete_results))
|
||||
|
Loading…
x
Reference in New Issue
Block a user