11 maig 2024

This commit is contained in:
Roger Oriol Pérez
2024-05-11 14:19:20 +02:00
parent dffa4b226d
commit e31bd57cae
4 changed files with 141 additions and 93 deletions

View File

@@ -90,6 +90,7 @@ def print_report(start_date, period, income, expenses, investments):
print(f"\t{bcolors.BOLD}Income from Investment{bcolors.ENDC}")
print(tabulate([
["Capital Gains", get_income_val(income,"Income:Invest:R4:CapitalGains")],
["Untaxable Capital Gains", get_income_val(income,"Income:Invest:R4:CapitalGains:Untaxable")],
["Dividends", get_income_val(income,"Income:Invest:R4:Dividends")],
["Rentabilitat Estalvis", get_income_val(income,"Income:Savings:Caixabank:RentabilitatEstalvis")]
]))
@@ -122,7 +123,7 @@ def print_report(start_date, period, income, expenses, investments):
def get_income(entries, options, period, start_date):
period_delta = relativedelta(months=1) if period == "monthly" else relativedelta(years=1)
end_date = date.fromisoformat(start_date) + period_delta
income_query = f"SELECT account, sum(position) FROM OPEN ON {start_date} CLOSE ON {end_date.isoformat()} WHERE account ~ \"Income\""
income_query = f"SELECT account, convert(sum(position), \"EUR\") as sum_position FROM OPEN ON {start_date} CLOSE ON {end_date.isoformat()} WHERE account ~ \"Income\""
rtypes, rrows = query.run_query(
entries, options, income_query)
income = {}
@@ -133,7 +134,7 @@ def get_income(entries, options, period, start_date):
def get_expenses(entries, options, period, start_date):
period_delta = relativedelta(months=1) if period == "monthly" else relativedelta(years=1)
end_date = date.fromisoformat(start_date) + period_delta
expenses_query = f"SELECT account, sum(position) FROM OPEN ON {start_date} CLOSE ON {end_date.isoformat()} WHERE account ~ \"Expenses\""
expenses_query = f"SELECT account, convert(sum(position), \"EUR\") as sum_position FROM OPEN ON {start_date} CLOSE ON {end_date.isoformat()} WHERE account ~ \"Expenses\""
rtypes, rrows = query.run_query(
entries, options, expenses_query)
expenses = {}
@@ -144,7 +145,7 @@ def get_expenses(entries, options, period, start_date):
def get_investments(entries, options, period, start_date):
period_delta = relativedelta(months=1) if period == "monthly" else relativedelta(years=1)
end_date = date.fromisoformat(start_date) + period_delta
expenses_query = f"SELECT account, cost(position), currency, date WHERE account ~ \"Assets:Invest:R4:\" AND NOT currency ~ '^(EUR|USD)' AND date >= {start_date} AND date < {end_date.isoformat()}"
expenses_query = f"SELECT account, convert(cost(position), \"EUR\") as cost_position, currency, date WHERE account ~ \"Assets:Invest:R4:\" AND NOT currency ~ '^(EUR|USD)' AND date >= {start_date} AND date < {end_date.isoformat()}"
rtypes, rrows = query.run_query(
entries, options, expenses_query)
return rrows