draw budget summary

This commit is contained in:
chris 2020-10-31 15:06:48 +01:00
parent ebcbe48317
commit a9873ada47

View file

@ -5,26 +5,34 @@ import firefly.budgets
def _get_remaining_days(): def _get_remaining_days():
today = datetime.date.today() today = datetime.datetime.combine(datetime.date.today(), datetime.datetime.min.time())
endofmonth = today.replace(day=calendar.monthrange(today.year, today.month)[1]) endofmonth = today.replace(day=calendar.monthrange(today.year, today.month)[1])
return (endofmonth - today).days return (endofmonth - today).days + 1
def main():
def _collect_budget_data():
budgets = [] budgets = []
for budget in firefly.budgets._get_budgets(): for budget in firefly.budgets._get_budgets():
budgets.append({ budgets.append({
"id": budget.get('id'), "id": budget.get('id'),
"name": budget.get('attributes').get('name'), "name": budget.get('attributes').get('name'),
"limit": firefly.budgets._get_current_limit(budget.get('id')).get('attributes').get('amount'), "limit": firefly.budgets._get_current_limit(budget.get('id')).get('attributes').get('amount'),
"spent": str(firefly.budgets._get_current_spent_amount(budget.get('id'))), "spent": firefly.budgets._get_current_spent_amount(budget.get('id')),
}) })
for budget in budgets: currbudget = budgets[-1]
remaining_per_day = (float(budget.get('limit')) - float(budget.get('spent'))) / _get_remaining_days() currbudget['remaining'] = (float(currbudget.get('limit')) - float(currbudget.get('spent')))
remaining_per_day = 0 if remaining_per_day < 0 else remaining_per_day remaining_per_day = currbudget.get('remaining') / _get_remaining_days()
currbudget['remaining_per_day'] = 0 if remaining_per_day < 0 else remaining_per_day
return budgets
def main():
for budget in _collect_budget_data():
print("Budget: " + budget.get('name')) print("Budget: " + budget.get('name'))
print(" Limit: " + budget.get('limit')) print(" Limit: " + budget.get('limit'))
print(" Spent: " + budget.get('spent')) print(" Spent: {:.2f}".format(budget.get('spent')))
print(" Remaining per day: " + str(remaining_per_day)) print(" Remaining: {:.2f}".format(budget.get('remaining')))
print(" Remaining per day: {:.2f}".format(budget.get('remaining_per_day')))
if __name__ == "__main__": if __name__ == "__main__":