27 abril 2024

This commit is contained in:
Roger Oriol Pérez
2024-04-27 11:14:15 +02:00
parent b448b15884
commit 2029673b56
6 changed files with 195 additions and 61 deletions

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
now="$(date +'%Y%m%d')"
mkdir -p reports/income/$now
bean-report ledger/main.beancount income > reports/income/$now/income.html

0
commands/objectives Normal file → Executable file
View File

73
commands/portfolio Executable file
View File

@@ -0,0 +1,73 @@
#!/usr/bin/env python3
from beancount import loader
from beancount.query import query
from beancount.parser import printer
import argparse
from tabulate import tabulate
from decimal import Decimal
from beancount.core.amount import Amount, sub, mul, add
from math import floor
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
def draw_line():
print('─' * 30)
def print_report(date, positions):
print(f"{bcolors.BOLD}Portfolio (date={date}){bcolors.ENDC}")
draw_line()
print(f"{bcolors.BOLD}Positions{bcolors.ENDC}")
print(tabulate(map(lambda p: [
p.account,
p.volume.average().get_only_position().units.number.__round__(2),
f"{p.volume.average().get_only_position().cost.number.__round__(2)} {p.volume.average().get_only_position().cost.currency}",
f"{p.position.get_only_position().units.number.__round__(2)} {p.position.get_only_position().units.currency}"], positions)
, headers=["Actiu", "Quantitat", "Últim preu", "Valor"]))
total = Amount(Decimal(0), 'EUR')
for p in positions:
total = add(total, p.position.get_only_position().units)
print(tabulate([
["Total", "", "", f"{total.number.__round__(2)} {total.currency}"]
]))
print(f"{bcolors.BOLD}Plusvalias / Minusvalias{bcolors.ENDC}")
print(f"{bcolors.BOLD}Distribució geografica / sectors{bcolors.ENDC}")
print(f"{bcolors.BOLD}Indicadors{bcolors.ENDC}")
print(tabulate([
["Alfa", 1],
["Beta", 1]
]))
def get_positions(entries, options, date):
balance_query = f"SELECT account, sum(position) as volume, convert(sum(position), \"EUR\") as position FROM date <= {date} WHERE account ~ '^Assets:Invest' GROUP BY account"
rtypes, rrows = query.run_query(
entries, options, balance_query)
return rrows
def main():
parser = argparse.ArgumentParser(description='Generate portfolio report')
parser.add_argument('date', metavar='date', type=str, nargs=1,
help='Report date in ISO format (e.g. 1970-01-01)')
args = parser.parse_args()
date = args.date[0]
filename = "ledger/main.beancount"
entries, errors, options = loader.load_file(filename)
if errors:
printer.print_errors(errors)
positions = get_positions(entries, options, date)
print_report(date, positions)
main()

View File

@@ -36,6 +36,7 @@
1970-01-01 open Income:Savings:TradeRepublic:RentabilitatEstalvis EUR
1970-01-01 open Income:Invest:R4:Dividends EUR
1970-01-01 open Income:Invest:R4:CapitalGains EUR
1970-01-01 open Income:Invest:DZP:CapitalGains EUR
1970-01-01 open Income:Other:Devolucions EUR
1970-01-01 open Expenses:R4:Comissions EUR

View File

@@ -81,6 +81,9 @@
2024-03-06 * "ITV" "Revisio de vehicles" #cotxe
Expenses:MantenimentCotxe 40.60 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-06 * "Deutsche Zurich Pensiones" "Aportació P.P.E DZP"
Assets:Benefits:DZP:PPEZurich 80.36 EUR
Income:Work:Zurich:DZP
2024-03-08 * "EsclatOil" "Gasolina"
Expenses:Gasolina 53.79 EUR
Assets:Liquid:Caixabank:Corrent
@@ -172,71 +175,71 @@
Expenses:Entreteniment 11.99 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-23 * "La Mafia" "Sopar"
Expenses:MenjarFora 48.10 EUR
Expenses:MenjarFora 48.10 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-25 * "Just Eat" "Burger Goiko"
Expenses:MenjarFora 20.46 EUR
Expenses:MenjarFora 20.46 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-26 * "Zurich" "Nòmina Març + Variable"
Assets:Liquid:Caixabank:Corrent 6290.10 EUR
Assets:Liquid:Caixabank:Corrent 6290.10 EUR
Income:Work:Zurich:Salari
2024-03-26 * "Plusfresc" "Aigua i fruita"
Expenses:Supermercat 3.18 EUR
Expenses:Supermercat 3.18 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-26 * "Don Zangano" "Esmorzar"
Expenses:MenjarFora 4.90 EUR
Expenses:MenjarFora 4.90 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-03-26 * "Yi Duo" "Dinar"
Expenses:MenjarFora 16.45 EUR
Expenses:MenjarFora 16.45 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-03-26 * "Blät" "Cafè"
Expenses:MenjarFora 1.65 EUR
Expenses:MenjarFora 1.65 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-03-26 * "R4" "Enviament diners R4"
Assets:Liquid:R4:EUR 2400 EUR
Assets:Liquid:R4:EUR 2400 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-26 * "TradeRepublic" "Enviament diners TradeRepublic"
Assets:Liquid:TradeRepublic:EUR 1600 EUR
Assets:Liquid:TradeRepublic:EUR 1600 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-27 * "Burger King" "Sopar aeroport"
Expenses:MenjarFora 13.31 EUR
Expenses:MenjarFora 13.31 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-03-27 * "Aerobus" "Anada i tornada"
Expenses:Mobilitat 11.65 EUR
Expenses:Mobilitat 11.65 EUR
Assets:Benefits:Edenred:TargetaTransport
2024-03-28 * "Yummy Sushi" "Sopar"
Expenses:MenjarFora 34.10 EUR
Expenses:MenjarFora 34.10 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-29 * "Edenred" "Recarrega targeta transport"
Assets:Benefits:Edenred:TargetaTransport 40 EUR
Assets:Benefits:Edenred:TargetaTransport 40 EUR
Income:Work:Zurich:TargetaTransport
2024-03-29 * "Can Joan de S'Aigo" "Berenar"
Expenses:MenjarFora 19.70 EUR
Expenses:MenjarFora 19.70 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-29 * "Ryanair" "Vols abril i maig"
Expenses:Mobilitat 31.98 EUR
Expenses:Mobilitat 31.98 EUR
Expenses:Mobilitat 109.35 EUR
Expenses:Mobilitat 25.87 EUR
Expenses:Mobilitat 31.98 EUR
Expenses:Mobilitat 31.98 EUR
Expenses:Mobilitat 109.35 EUR
Expenses:Mobilitat 25.87 EUR
Liabilities:Credit:Caixabank:TargetaCredit
2024-03-29 * "Vueling" "Vols abril i maig"
Expenses:Mobilitat 41.98 EUR
Expenses:Mobilitat 58.98 EUR
Expenses:Mobilitat 36.99 EUR
Expenses:Mobilitat 72.98 EUR
Assets:Liquid:Caixabank:Corrent -72.98 EUR
Expenses:Mobilitat 41.98 EUR
Expenses:Mobilitat 58.98 EUR
Expenses:Mobilitat 36.99 EUR
Expenses:Mobilitat 72.98 EUR
Assets:Liquid:Caixabank:Corrent -72.98 EUR
Liabilities:Credit:Caixabank:TargetaCredit
2024-03-30 * "Ryanair" "Vol anada Croacia"
Expenses:Vacances 102.98 EUR
Income:Other:Caixabank:Bizum -51.50 EUR
Assets:Liquid:Caixabank:Corrent 51.50 EUR
Expenses:Vacances 102.98 EUR
Income:Other:Caixabank:Bizum -51.50 EUR
Assets:Liquid:Caixabank:Corrent 51.50 EUR
Liabilities:Credit:Caixabank:TargetaCredit
2024-03-30 * "Vueling" "Vol tornada Croacia"
Expenses:Vacances 231.98 EUR
Income:Other:Caixabank:Bizum -115 EUR
Expenses:Vacances 231.98 EUR
Income:Other:Caixabank:Bizum -115 EUR
Assets:Liquid:Caixabank:Corrent
2024-03-30 * "Antoni Pons" "Espardenyes"
Expenses:Roba 49.95 EUR
Expenses:Roba 49.95 EUR
Liabilities:Credit:Caixabank:TargetaCredit
@@ -253,7 +256,7 @@
2024-04-01 balance Assets:Invest:R4:MSFT 4 MSFT
2024-04-01 balance Assets:Benefits:Edenred:TicketsRestaurant 13.30 EUR
2024-04-01 balance Assets:Benefits:Edenred:TargetaTransport 125.05 EUR
2024-04-01 balance Assets:Benefits:DZP:PPEZurich 1807.49 EUR
2024-04-01 balance Assets:Benefits:DZP:PPEZurich 1887.85 EUR
2024-04-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
2024-04-01 balance Assets:PersonalProperty:Cotxe 10000 EUR
2024-04-01 balance Assets:PersonalProperty:JoiesArtCollecionables 1250 EUR

View File

@@ -11,7 +11,7 @@
2024-04-01 balance Assets:Invest:R4:MSFT 4 MSFT
2024-04-01 balance Assets:Benefits:Edenred:TicketsRestaurant 13.30 EUR
2024-04-01 balance Assets:Benefits:Edenred:TargetaTransport 125.05 EUR
2024-04-01 balance Assets:Benefits:DZP:PPEZurich 1807.49 EUR
2024-04-01 balance Assets:Benefits:DZP:PPEZurich 1887.85 EUR
2024-04-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
2024-04-01 balance Assets:PersonalProperty:Cotxe 10000 EUR
2024-04-01 balance Assets:PersonalProperty:JoiesArtCollecionables 1250 EUR
@@ -125,8 +125,8 @@
Assets:Liquid:Caixabank:Corrent 4.37 EUR
Income:Other:Caixabank:Bizum -4.37 EUR
Assets:Liquid:Caixabank:Corrent 4.37 EUR
Income:Other:Caixabank:Bizum -4.30 EUR
Assets:Liquid:Caixabank:Corrent 4.30 EUR
Income:Other:Caixabank:Bizum -4.30 EUR
Assets:Liquid:Caixabank:Corrent 4.30 EUR
Expenses:Entreteniment 34.99 EUR
2024-04-07 * "JustEat" "Sopar sushi"
Expenses:MenjarFora 45.58 EUR
@@ -137,6 +137,11 @@
2024-04-08 * "Toni Pons" "Espardenyes"
Expenses:Roba 39.95 EUR
Liabilities:Credit:Caixabank:TargetaCredit
2024-04-08 * "Deutsche Zurich Pensiones" "Aportació P.P.E DZP"
Assets:Benefits:DZP:PPEZurich 80.36 EUR
Income:Work:Zurich:DZP -80.36 EUR
Assets:Benefits:DZP:PPEZurich 5.47 EUR
Income:Invest:DZP:CapitalGains
2024-04-09 * "Don Zangano" "Esmorzar"
Expenses:MenjarFora 5.90 EUR
Assets:Benefits:Edenred:TicketsRestaurant
@@ -167,47 +172,103 @@
Expenses:Mobilitat 12.50 EUR
Assets:Benefits:Edenred:TargetaTransport
2024-04-13 * "Isla Badal" "Dinar hamburguesa"
Expenses:MenjarFora 51.40 EUR
Expenses:MenjarFora 51.40 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-04-13 * "Farmacia Arxiduc" "Strepsils i condons"
Expenses:Altres 30.71 EUR
Expenses:Altres 30.71 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-15 * "Metro Barcelona" "T-10"
Expenses:Mobilitat 12.15 EUR
Expenses:Mobilitat 12.15 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-16 * "Don Zangano" "Esmorzar"
Expenses:MenjarFora 5.90 EUR
Expenses:MenjarFora 5.90 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-04-16 * "Plusfresc" "Aigua i fruita"
Expenses:Supermercat 2.62 EUR
Expenses:Supermercat 2.62 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-16 * "Yi Duo" "Dinar sushi"
Expenses:MenjarFora 16.45 EUR
Expenses:MenjarFora 16.45 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-04-16 * "Blät" "Cafè"
Expenses:MenjarFora 1.45 EUR
Expenses:MenjarFora 1.45 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-04-16 * "Barcelona Barber Shop" "Tallar cabells"
Expenses:Perruqueria 16 EUR
Expenses:Perruqueria 16 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-16 * "Plusfresc" "Compra de la setmana"
Expenses:Supermercat 34.24 EUR
Expenses:Supermercat 34.24 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-18 * "AWS" "Factura
2024-04-16 * "Yi Duo" "Dinar sushi"
Expenses:MenjarFora 16.45 EUR
2024-04-18 * "AWS" "Factura AWS Abril"
Expenses:MarcaPersonal 16.61 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-20 * "EsclatOil" "Gasolina"
Expenses:Gasolina 60 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-20 * "Tagliatela" "Sopar"
Expenses:MenjarFora 48.90 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-21 * "Viena" "Berenar"
Expenses:MenjarFora 16.35 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-21 * "Fira Lactium" "Formatges i altres"
Expenses:Supermercat 7.90 EUR
Expenses:Supermercat 10.50 EUR
Expenses:Supermercat 6 EUR
Expenses:Supermercat 12 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-21 * "Buenas Migas" "Berenar"
Expenses:MenjarFora 25.20 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-21 * "Fazal Chak" "Aigua"
Expenses:Supermercat 3.90 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-22 * "Plusfresc" "Compra de la setmana"
Expenses:Supermercat 28.99 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-22 * "Putxet Gourmet" "Pollastre i empanades"
Expenses:Supermercat 11.26 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-22 * "Bizum" "Maria Mona de Pasqua"
Expenses:Altres 25 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-23 * "Don Zangano" "Esmorzar"
Expenses:MenjarFora 5.90 EUR
Assets:Benefits:Edenred:TicketsRestaurant
2024-04-16 * "Blät" "Cafè"
Expenses:MenjarFora 1.45 EUR
Assets:Benefits:Edenred:TicketsRestaurant AWS Abril"
Expenses:MarcaPersonal 16.61 EUR
2024-04-23 * "Plusfresc" "Aigua i fruita"
Expenses:Supermercat 2.55 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-23 * "Passatore" "Dinar"
Expenses:MenjarFora 12.50 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-23 * "Blät" "Cafè"
Expenses:MenjarFora 1.45 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-23 * "Ikibana" "Sopar Sant Jordi"
Expenses:MenjarFora 148.75 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-25 * "Aerobus" "Anada i tornada aeroport"
Expenses:Mobilitat 12.50 EUR
Assets:Benefits:Edenred:TargetaTransport
2024-04-25 * "Escape Room Hechizados" "Regal aniversari Raul i Genis"
Expenses:Altres 72 EUR
Liabilities:Credit:Caixabank:TargetaCredit
2024-04-26 * "Zurich" "Nòmina Abril"
Assets:Liquid:Caixabank:Corrent 3369.52 EUR
Income:Work:Zurich:Salari
2024-04-26 * "Mariolas Bakery" "Berenar"
Expenses:MenjarFora 21.70 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-27 * "R4" "Transferencia a R4"
Assets:Liquid:R4:EUR 1000 EUR
Assets:Liquid:Caixabank:Corrent
2024-04-27 * "TradeRepublic" "Transferencia a TradeRepublic"
Assets:Liquid:TradeRepublic:EUR 400 EUR
Assets:Liquid:Caixabank:Corrent
2024-05-01 balance Assets:Liquid:Caixabank:Corrent 14464.65 EUR
2024-05-01 balance Assets:Liquid:Caixabank:Corrent 15991.22 EUR
2024-05-01 balance Assets:Liquid:Caixabank:Estalvi 0 EUR
2024-05-01 balance Assets:Liquid:TradeRepublic:EUR 18918.94 EUR
2024-05-01 balance Assets:Liquid:R4:EUR 50.42 EUR
2024-05-01 balance Assets:Liquid:TradeRepublic:EUR 19318.94 EUR
2024-05-01 balance Assets:Liquid:R4:EUR 1050.42 EUR
2024-05-01 balance Assets:Invest:R4:Amundi:MSCIWRLD 99.38937 AMNDMSCIWRLD
2024-05-01 balance Assets:Invest:R4:Vanguard:EMMK 14.99 VANEMMK
2024-05-01 balance Assets:Invest:R4:Fidelity:GLTECH 393.62 FIGLTECH
@@ -215,13 +276,13 @@
2024-05-01 balance Assets:Invest:R4:BNP:DISTECH 0.359 BNPDISTECH
2024-05-01 balance Assets:Invest:R4:PLTR 10 PLTR
2024-05-01 balance Assets:Invest:R4:MSFT 4 MSFT
2024-05-01 balance Assets:Benefits:Edenred:TicketsRestaurant 14.17 EUR
2024-05-01 balance Assets:Benefits:Edenred:TargetaTransport 112.55 EUR
2024-05-01 balance Assets:Benefits:DZP:PPEZurich 1807.49 EUR
2024-05-01 balance Assets:Benefits:Edenred:TicketsRestaurant 8.27 EUR
2024-05-01 balance Assets:Benefits:Edenred:TargetaTransport 100.05 EUR
2024-05-01 balance Assets:Benefits:DZP:PPEZurich 1973.68 EUR
2024-05-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
2024-05-01 balance Assets:PersonalProperty:Cotxe 10000 EUR
2024-05-01 balance Assets:PersonalProperty:JoiesArtCollecionables 1250 EUR
2024-05-01 balance Assets:PersonalProperty:MetallsPreciosos 0 EUR
2024-05-01 balance Assets:PersonalProperty:AltresPropietats 0 EUR
2024-05-01 balance Assets:Debt:DeutesPerCobrar 0 EUR
2024-05-01 balance Liabilities:Credit:Caixabank:TargetaCredit -491.79 EUR
2024-05-01 balance Liabilities:Credit:Caixabank:TargetaCredit -563.79 EUR