From c888e52788ec37641f97f761d2052902db20582a Mon Sep 17 00:00:00 2001 From: Aditya Hase Date: Wed, 9 Jan 2019 12:10:37 +0530 Subject: [PATCH] feat(dashboard): Add missing dates --- erpnext/accounts/dashboard.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/dashboard.py b/erpnext/accounts/dashboard.py index 26a53dad46..df152f0eaf 100644 --- a/erpnext/accounts/dashboard.py +++ b/erpnext/accounts/dashboard.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals from itertools import groupby from operator import itemgetter import frappe -from frappe.utils import add_to_date +from frappe.utils import add_to_date, date_diff, getdate, nowdate from erpnext.accounts.report.general_ledger.general_ledger import execute @@ -31,6 +31,8 @@ def get(filters=None): results = [list(values)[-1] for key, values in grouped_results] + results = add_missing_dates(results, from_date, to_date) + return { "labels": [result[0] for result in results], "datasets": [{ @@ -51,3 +53,17 @@ def get_from_date_from_timespan(timespan): years = -1 return add_to_date(None, years=years, months=months, days=days, as_string=True, as_datetime=True) + +def add_missing_dates(incomplete_results, from_date, to_date): + dates = [r[0] for r in incomplete_results] + day_count = date_diff(to_date, from_date) + + results_dict = dict(incomplete_results) + last_date, last_balance = incomplete_results[0] + results = [] + for date in (add_to_date(getdate(from_date), days=n) for n in range(day_count + 1)): + if date in results_dict: + last_date = date + last_balance = results_dict[date] + results.append([date, last_balance]) + return results