diff --git a/bpfin/financials/liability.py b/bpfin/financials/liability.py index d0aaa2032a6a676930551d4452f23dd1d281167a..01e5ceb5c052167e9eedcb4dc657b60237216ea9 100644 --- a/bpfin/financials/liability.py +++ b/bpfin/financials/liability.py @@ -93,7 +93,8 @@ def final_liability_dict(start_date, liability_dictionary, months): pro_date.year, pro_date.month)[1])] = [] final_dict[(pro_date.year, pro_date.month, calendar.monthrange( - pro_date.year, pro_date.month)[1])].append(debt_date_dict[debt_date]) + pro_date.year, pro_date.month)[1] + )].append(debt_date_dict[debt_date]) for pro_date in pro_forma_calendar: if (pro_date.year, pro_date.month, calendar.monthrange( pro_date.year, pro_date.month)[1]) not in final_dict: @@ -107,4 +108,13 @@ def final_liability_dict(start_date, liability_dictionary, months): for key, value in final_dict.items(): real_dict[datetime(key[0], key[1], key[2])] = value - return real_dict + annual_liability_dict = {} + for full_date, liability in real_dict.items(): + if full_date.year not in annual_liability_dict: + annual_liability_dict[full_date.year] = [] + annual_liability_dict[full_date.year].append(liability) + sum_dict = {} + for year, value in annual_liability_dict.items(): + sum_dict[year] = sum(value) + + return sum_dict diff --git a/bpfin/tests/test_financials/test_liability.py b/bpfin/tests/test_financials/test_liability.py index 9d8f26c12d2ea9beeceb74ca6b0fa7b7cc3df072..606f62151487cbb36642c1fcfcbe82fc7d2eb9eb 100644 --- a/bpfin/tests/test_financials/test_liability.py +++ b/bpfin/tests/test_financials/test_liability.py @@ -8,31 +8,9 @@ def test_final_liability_dict(): input_dict = db.liability_dictionary input_duration = db.analysis_date['proforma_duration'] output = { - datetime(2012, 1, 31): 0, - datetime(2012, 2, 29): 0, - datetime(2012, 3, 31): 0, - datetime(2012, 4, 30): 0, - datetime(2012, 5, 31): 0, - datetime(2012, 6, 30): 0, - datetime(2012, 7, 31): 0, - datetime(2012, 8, 31): 100, - datetime(2012, 9, 30): 100, - datetime(2012, 10, 31): 100, - datetime(2012, 11, 30): 100, - datetime(2012, 12, 31): 250, - datetime(2013, 1, 31): 250, - datetime(2013, 2, 28): 250, - datetime(2013, 3, 31): 250, - datetime(2013, 4, 30): 250, - datetime(2013, 5, 31): 250, - datetime(2013, 6, 30): 250, - datetime(2013, 7, 31): 250, - datetime(2013, 8, 31): 250, - datetime(2013, 9, 30): 250, - datetime(2013, 10, 31): 100, - datetime(2013, 11, 30): 100, - datetime(2013, 12, 31): 100, - datetime(2014, 1, 31): 100 + 2012: 650, + 2013: 2550, + 2014: 100 } result = final_liability_dict(input_start_date, input_dict, input_duration)