27 desembre
This commit is contained in:
@@ -92,13 +92,14 @@ def get_investment_assets_to_net_worth_ratio(balances, min):
|
|||||||
return f"{bcolors.FAIL if result < min else bcolors.OKGREEN}{result} %{bcolors.ENDC}"
|
return f"{bcolors.FAIL if result < min else bcolors.OKGREEN}{result} %{bcolors.ENDC}"
|
||||||
|
|
||||||
|
|
||||||
def get_liquid_assets_to_net_worth_ratio(balances, min):
|
def get_liquid_assets_to_net_worth_ratio(balances, pignorat, min):
|
||||||
liquid = 0
|
liquid = 0
|
||||||
for account, balance in balances.items():
|
for account, balance in balances.items():
|
||||||
if account.startswith("Assets:Liquid") or account.startswith("Assets:Invest"):
|
if account.startswith("Assets:Liquid") or account.startswith("Assets:Invest"):
|
||||||
liquid = balance if liquid == 0 else liquid + balance
|
liquid = balance if liquid == 0 else liquid + balance
|
||||||
total_liquid = Amount(Decimal(0), "EUR") if liquid.get_only_position(
|
total_liquid = Amount(Decimal(0), "EUR") if liquid.get_only_position(
|
||||||
) == None else liquid.get_only_position().units
|
) == None else liquid.get_only_position().units
|
||||||
|
total_liquid = sub(total_liquid, Amount(pignorat, 'EUR'))
|
||||||
result = round(
|
result = round(
|
||||||
(total_liquid.number / get_net_worth(balances).number) * 100, 2)
|
(total_liquid.number / get_net_worth(balances).number) * 100, 2)
|
||||||
return f"{bcolors.FAIL if result < min else bcolors.OKGREEN}{result} %{bcolors.ENDC}"
|
return f"{bcolors.FAIL if result < min else bcolors.OKGREEN}{result} %{bcolors.ENDC}"
|
||||||
@@ -148,18 +149,18 @@ def get_position_as_str(inventory):
|
|||||||
return Amount(Decimal(round(position.units.number, 2)), position.units.currency).to_string()
|
return Amount(Decimal(round(position.units.number, 2)), position.units.currency).to_string()
|
||||||
|
|
||||||
|
|
||||||
def print_report(date, balances, expenses, net_monthly_income, net_yearly_income, debt_payments, mortgage_payments, savings):
|
def print_report(date, balances, expenses, net_monthly_income, net_yearly_income, debt_payments, mortgage_payments, savings, pignorat):
|
||||||
print(f"{bcolors.BOLD}Balance Sheet (date={date}){bcolors.ENDC}")
|
print(f"{bcolors.BOLD}Balance Sheet (date={date}){bcolors.ENDC}")
|
||||||
draw_line()
|
draw_line()
|
||||||
print(f"{bcolors.BOLD}Assets{bcolors.ENDC}")
|
print(f"{bcolors.BOLD}Assets{bcolors.ENDC}")
|
||||||
print(f"\t{bcolors.BOLD}Liquids{bcolors.ENDC}")
|
print(f"\t{bcolors.BOLD}Comptes bancaris{bcolors.ENDC}")
|
||||||
print(tabulate([
|
print(tabulate([
|
||||||
["Corrent", get_sum_balances(
|
["Corrent", get_sum_balances(
|
||||||
balances, "Assets:Liquid:Caixabank:Corrent")],
|
balances, "Assets:Liquid:Caixabank:Corrent")],
|
||||||
["Estalvi", get_sum_balances(balances, "Assets:Liquid:Estalvi")],
|
["Estalvi", get_sum_balances(balances, "Assets:Liquid:Estalvi")],
|
||||||
["Compte d'inversió", get_sum_balances(
|
["Compte d'inversió", get_sum_balances(
|
||||||
balances, "Assets:Liquid:R4:EUR")],
|
balances, "Assets:Liquid:R4:EUR")],
|
||||||
["Total líquids", get_sum_balances(balances, "Assets:Liquid:")],
|
["Total", get_sum_balances(balances, "Assets:Liquid:")],
|
||||||
]))
|
]))
|
||||||
print(f"\t{bcolors.BOLD}Inversions{bcolors.ENDC}")
|
print(f"\t{bcolors.BOLD}Inversions{bcolors.ENDC}")
|
||||||
print(tabulate([
|
print(tabulate([
|
||||||
@@ -169,6 +170,10 @@ def print_report(date, balances, expenses, net_monthly_income, net_yearly_income
|
|||||||
["Renta fixa", get_sum_balances(balances, "Assets:Invest:Fixed:")],
|
["Renta fixa", get_sum_balances(balances, "Assets:Invest:Fixed:")],
|
||||||
["Total inversions", get_sum_balances(balances, "Assets:Invest:")],
|
["Total inversions", get_sum_balances(balances, "Assets:Invest:")],
|
||||||
]))
|
]))
|
||||||
|
print(tabulate([
|
||||||
|
["Inversions pignorades", Amount(
|
||||||
|
round(pignorat, 2), 'EUR').to_string()],
|
||||||
|
]))
|
||||||
print(f"\t{bcolors.BOLD}Propietat personal{bcolors.ENDC}")
|
print(f"\t{bcolors.BOLD}Propietat personal{bcolors.ENDC}")
|
||||||
print(tabulate([
|
print(tabulate([
|
||||||
["Vivenda principal", get_sum_balances(
|
["Vivenda principal", get_sum_balances(
|
||||||
@@ -241,7 +246,7 @@ def print_report(date, balances, expenses, net_monthly_income, net_yearly_income
|
|||||||
["Investment Assets to Net Worth Ratio",
|
["Investment Assets to Net Worth Ratio",
|
||||||
get_investment_assets_to_net_worth_ratio(balances, 50), "50 %"],
|
get_investment_assets_to_net_worth_ratio(balances, 50), "50 %"],
|
||||||
["Liquid Assets to Net Worth Ratio",
|
["Liquid Assets to Net Worth Ratio",
|
||||||
get_liquid_assets_to_net_worth_ratio(balances, 15), "15 %"],
|
get_liquid_assets_to_net_worth_ratio(balances, pignorat, 15), "15 %"],
|
||||||
["Savings Ratio", get_savings_ratio(
|
["Savings Ratio", get_savings_ratio(
|
||||||
balances, net_yearly_income, savings, 20), "20 %"],
|
balances, net_yearly_income, savings, 20), "20 %"],
|
||||||
["Debt-Service Ratio",
|
["Debt-Service Ratio",
|
||||||
@@ -328,6 +333,22 @@ def get_savings(entries, options, date):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def get_assets_pignorats(entries, options, date):
|
||||||
|
assets_pignorats = {
|
||||||
|
'R4RF': Decimal(1518.57),
|
||||||
|
'VANEMMK': Decimal(14.99),
|
||||||
|
'VANGL': Decimal(260)
|
||||||
|
}
|
||||||
|
result = Decimal(0)
|
||||||
|
for _, curr in enumerate(assets_pignorats):
|
||||||
|
pignorat_query = f"SELECT DISTINCT GETPRICE('{curr}', 'EUR', {
|
||||||
|
date}) as price"
|
||||||
|
rtypes, rrows = query.run_query(
|
||||||
|
entries, options, pignorat_query)
|
||||||
|
result = result + rrows[0].price * assets_pignorats[curr]
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description='Generate balance sheet report')
|
description='Generate balance sheet report')
|
||||||
@@ -350,8 +371,9 @@ def main():
|
|||||||
debt_payments, mortgage_payments = get_debt_payments(
|
debt_payments, mortgage_payments = get_debt_payments(
|
||||||
entries, options, date)
|
entries, options, date)
|
||||||
savings = get_savings(entries, options, date)
|
savings = get_savings(entries, options, date)
|
||||||
|
pignorat = get_assets_pignorats(entries, options, date)
|
||||||
print_report(date, balances, expenses, net_monthly_income, net_yearly_income,
|
print_report(date, balances, expenses, net_monthly_income, net_yearly_income,
|
||||||
debt_payments, mortgage_payments, savings)
|
debt_payments, mortgage_payments, savings, pignorat)
|
||||||
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -91,3 +91,4 @@
|
|||||||
1970-01-01 open Equity:FacturesUtilitatsMiquel EUR
|
1970-01-01 open Equity:FacturesUtilitatsMiquel EUR
|
||||||
1970-01-01 open Equity:VacancesLaura EUR
|
1970-01-01 open Equity:VacancesLaura EUR
|
||||||
1970-01-01 open Equity:Depreciació EUR
|
1970-01-01 open Equity:Depreciació EUR
|
||||||
|
1970-01-01 open Equity:AdquisicioPersonalProperty EUR
|
||||||
|
|||||||
6
ledger/trading/2025/12.beancount
Normal file
6
ledger/trading/2025/12.beancount
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
2025-12-26 price IWVL 50.91 EUR
|
||||||
|
2025-12-26 price XDEQ 69.34 EUR
|
||||||
|
2025-12-26 price R4RF 15.666315 EUR
|
||||||
|
2025-12-26 price VANEMMK 243.3848 EUR
|
||||||
|
2025-12-26 price VANSMCAP 383.6598 EUR
|
||||||
|
2025-12-26 price VANGL 55.7455 EUR
|
||||||
@@ -194,6 +194,11 @@
|
|||||||
2025-11-26 * "Zurich" "Nòmina Novembre"
|
2025-11-26 * "Zurich" "Nòmina Novembre"
|
||||||
Income:Work:Zurich:Salari -3494.66 EUR
|
Income:Work:Zurich:Salari -3494.66 EUR
|
||||||
Assets:Liquid:Caixabank:Corrent
|
Assets:Liquid:Caixabank:Corrent
|
||||||
|
2025-11-26 * "DZP" "Aportació promotor"
|
||||||
|
Income:Work:Zurich:DZP -89.43 EUR
|
||||||
|
Assets:Benefits:DZP:PPEZurich 89.43 EUR
|
||||||
|
Income:Invest:DZP:CapitalGains 15.34 EUR
|
||||||
|
Assets:Benefits:DZP:PPEZurich -15.34 EUR
|
||||||
2025-11-26 * "Flors Pàdua" "Roses Laura"
|
2025-11-26 * "Flors Pàdua" "Roses Laura"
|
||||||
Expenses:Altres 7 EUR
|
Expenses:Altres 7 EUR
|
||||||
Assets:Liquid:Caixabank:Corrent
|
Assets:Liquid:Caixabank:Corrent
|
||||||
@@ -259,7 +264,7 @@
|
|||||||
2025-12-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
2025-12-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
||||||
2025-12-01 balance Assets:Benefits:Edenred:TicketsRestaurant 9.23 EUR
|
2025-12-01 balance Assets:Benefits:Edenred:TicketsRestaurant 9.23 EUR
|
||||||
2025-12-01 balance Assets:Benefits:Edenred:TargetaTransport 89.35 EUR
|
2025-12-01 balance Assets:Benefits:Edenred:TargetaTransport 89.35 EUR
|
||||||
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4048.45 EUR
|
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4122.54 EUR
|
||||||
2025-12-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
2025-12-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
||||||
2025-12-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
2025-12-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
||||||
2025-12-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
2025-12-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
2025-12-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
2025-12-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
||||||
2025-12-01 balance Assets:Benefits:Edenred:TicketsRestaurant 9.23 EUR
|
2025-12-01 balance Assets:Benefits:Edenred:TicketsRestaurant 9.23 EUR
|
||||||
2025-12-01 balance Assets:Benefits:Edenred:TargetaTransport 89.35 EUR
|
2025-12-01 balance Assets:Benefits:Edenred:TargetaTransport 89.35 EUR
|
||||||
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4048.45 EUR
|
2025-12-01 balance Assets:Benefits:DZP:PPEZurich 4122.54 EUR
|
||||||
2025-12-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
2025-12-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
||||||
2025-12-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
2025-12-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
||||||
2025-12-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
2025-12-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
||||||
@@ -115,7 +115,9 @@
|
|||||||
Liabilities:Credit:Caixabank:TargetaCredit
|
Liabilities:Credit:Caixabank:TargetaCredit
|
||||||
2025-12-13 * "Ferran Bascompte" "Bizum rellotge"
|
2025-12-13 * "Ferran Bascompte" "Bizum rellotge"
|
||||||
Expenses:Altres 550 EUR
|
Expenses:Altres 550 EUR
|
||||||
Assets:Liquid:Caixabank:Corrent
|
Assets:Liquid:Caixabank:Corrent -550 EUR
|
||||||
|
Assets:PersonalProperty:JoiesArtCollecionables 300 EUR
|
||||||
|
Equity:AdquisicioPersonalProperty -300 EUR
|
||||||
2025-12-13 * "Leroy Merlin" "Cargols i cinta adhesiva de montatge"
|
2025-12-13 * "Leroy Merlin" "Cargols i cinta adhesiva de montatge"
|
||||||
Expenses:Llar 16.58 EUR
|
Expenses:Llar 16.58 EUR
|
||||||
Assets:Liquid:Caixabank:Corrent
|
Assets:Liquid:Caixabank:Corrent
|
||||||
@@ -156,8 +158,32 @@
|
|||||||
2025-12-20 * "Che Argentino" "Sopar asador argentino palma"
|
2025-12-20 * "Che Argentino" "Sopar asador argentino palma"
|
||||||
Expenses:MenjarFora 51.70 EUR
|
Expenses:MenjarFora 51.70 EUR
|
||||||
Assets:Benefits:Edenred:TicketsRestaurant
|
Assets:Benefits:Edenred:TicketsRestaurant
|
||||||
|
2025-12-21 * "Santa Chiara" "Dinar Pizzeria Palma"
|
||||||
|
Expenses:MenjarFora 48.50 EUR
|
||||||
|
Assets:Liquid:Caixabank:Corrent
|
||||||
|
2025-12-23 * "Aerobus" "Bitllet anada i tornada"
|
||||||
|
Expenses:Mobilitat 12.85 EUR
|
||||||
|
Assets:Benefits:Edenred:TargetaTransport
|
||||||
|
2025-12-23 * "Rosa Estrella" "Compra"
|
||||||
|
Expenses:Supermercat 14.99 EUR
|
||||||
|
Assets:Liquid:Caixabank:Corrent
|
||||||
|
2025-12-23 * "Udon" "Sopar"
|
||||||
|
Expenses:MenjarFora 43.70 EUR
|
||||||
|
Assets:Liquid:Caixabank:Corrent
|
||||||
|
2025-12-24 * "Zurich" "Nòmina desembre"
|
||||||
|
Income:Work:Zurich:Salari -3723.93 EUR
|
||||||
|
Assets:Liquid:Caixabank:Corrent
|
||||||
|
2025-12-24 * "Renta4" "Transferència diners Renta4"
|
||||||
|
Assets:Liquid:Caixabank:Corrent -1200 EUR
|
||||||
|
Liabilities:Credit:Renta4:PolissaCredit 1200 EUR
|
||||||
|
2025-12-25 * "The City Arms" "Ratafia i cocacola"
|
||||||
|
Expenses:MenjarFora 10 EUR
|
||||||
|
Assets:Liquid:Caixabank:Corrent
|
||||||
|
2025-12-27 * "Aerobus" "Bitllet anada i tornada"
|
||||||
|
Expenses:Mobilitat 12.85 EUR
|
||||||
|
Assets:Benefits:Edenred:TargetaTransport
|
||||||
|
|
||||||
2026-01-01 balance Assets:Liquid:Caixabank:Corrent 11866.83 EUR
|
2026-01-01 balance Assets:Liquid:Caixabank:Corrent 14273.57 EUR
|
||||||
2026-01-01 balance Assets:Liquid:R4:EUR 0 EUR
|
2026-01-01 balance Assets:Liquid:R4:EUR 0 EUR
|
||||||
2026-01-01 balance Assets:Invest:Fund:Vanguard:EMMK 14.99 VANEMMK
|
2026-01-01 balance Assets:Invest:Fund:Vanguard:EMMK 14.99 VANEMMK
|
||||||
2026-01-01 balance Assets:Invest:Fund:Vanguard:GL 776.93 VANGL
|
2026-01-01 balance Assets:Invest:Fund:Vanguard:GL 776.93 VANGL
|
||||||
@@ -166,12 +192,12 @@
|
|||||||
2026-01-01 balance Assets:Invest:Fixed:R4RF 1518.57004 R4RF
|
2026-01-01 balance Assets:Invest:Fixed:R4RF 1518.57004 R4RF
|
||||||
2026-01-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
2026-01-01 balance Assets:Invest:ETF:XDEQ 264 XDEQ
|
||||||
2026-01-01 balance Assets:Benefits:Edenred:TicketsRestaurant 45.92 EUR
|
2026-01-01 balance Assets:Benefits:Edenred:TicketsRestaurant 45.92 EUR
|
||||||
2026-01-01 balance Assets:Benefits:Edenred:TargetaTransport 63.65 EUR
|
2026-01-01 balance Assets:Benefits:Edenred:TargetaTransport 37.95 EUR
|
||||||
2026-01-01 balance Assets:Benefits:DZP:PPEZurich 4048.45 EUR
|
2026-01-01 balance Assets:Benefits:DZP:PPEZurich 4122.54 EUR
|
||||||
2026-01-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
2026-01-01 balance Assets:PersonalProperty:VivendaPrincipal 0 EUR
|
||||||
2026-01-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
2026-01-01 balance Assets:PersonalProperty:Cotxe 8174 EUR
|
||||||
2026-01-01 balance Assets:PersonalProperty:JoiesArtCollecionables 50 EUR
|
2026-01-01 balance Assets:PersonalProperty:JoiesArtCollecionables 350 EUR
|
||||||
2026-01-01 balance Assets:PersonalProperty:MetallsPreciosos 0 EUR
|
2026-01-01 balance Assets:PersonalProperty:MetallsPreciosos 0 EUR
|
||||||
2026-01-01 balance Assets:PersonalProperty:AltresPropietats 0 EUR
|
2026-01-01 balance Assets:PersonalProperty:AltresPropietats 0 EUR
|
||||||
2026-01-01 balance Liabilities:Credit:Caixabank:TargetaCredit -445.91 EUR
|
2026-01-01 balance Liabilities:Credit:Caixabank:TargetaCredit -445.91 EUR
|
||||||
2026-01-01 balance Liabilities:Credit:Renta4:PolissaCredit -19971.26 EUR
|
2026-01-01 balance Liabilities:Credit:Renta4:PolissaCredit -18771.26 EUR
|
||||||
|
|||||||
74
reports/balance-sheet-report-2025-12-27.txt
Normal file
74
reports/balance-sheet-report-2025-12-27.txt
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
[1mBalance Sheet (date=2025-12-27)[0m
|
||||||
|
──────────────────────────────
|
||||||
|
[1mAssets[0m
|
||||||
|
[1mComptes bancaris[0m
|
||||||
|
----------------- ------------
|
||||||
|
Corrent 14273.57 EUR
|
||||||
|
Estalvi 0 EUR
|
||||||
|
Compte d'inversió 0 EUR
|
||||||
|
Total 14273.57 EUR
|
||||||
|
----------------- ------------
|
||||||
|
[1mInversions[0m
|
||||||
|
---------------- -------------
|
||||||
|
Fons d'inversió 70711.07 EUR
|
||||||
|
ETFs 40197.06 EUR
|
||||||
|
Accions 0 EUR
|
||||||
|
Renta fixa 23790.40 EUR
|
||||||
|
Total inversions 134698.52 EUR
|
||||||
|
---------------- -------------
|
||||||
|
--------------------- ------------
|
||||||
|
Inversions pignorades 41932.56 EUR
|
||||||
|
--------------------- ------------
|
||||||
|
[1mPropietat personal[0m
|
||||||
|
---------------------------- -----------
|
||||||
|
Vivenda principal 0 EUR
|
||||||
|
Cotxes 8174.00 EUR
|
||||||
|
Joies, Art, Col·leccionables 350.00 EUR
|
||||||
|
Metalls preciosos 0 EUR
|
||||||
|
Altres propietats 0 EUR
|
||||||
|
Total propietats 8524.00 EUR
|
||||||
|
---------------------------- -----------
|
||||||
|
[1mDeutes[0m
|
||||||
|
----------------- -----
|
||||||
|
Deutes per cobrar
|
||||||
|
Total deutes 0 EUR
|
||||||
|
----------------- -----
|
||||||
|
[1mBeneficis laborals[0m
|
||||||
|
----------------------------- -----------
|
||||||
|
Tickets Restaurant 45.92 EUR
|
||||||
|
Targeta Transport 37.95 EUR
|
||||||
|
Pla Pensions Empleados Zurich 4122.54 EUR
|
||||||
|
Total beneficis 4206.41 EUR
|
||||||
|
----------------------------- -----------
|
||||||
|
------------ -------------
|
||||||
|
[1mTotal Assets 161702.50 EUR
|
||||||
|
------------ -------------
|
||||||
|
──────────────────────────────
|
||||||
|
[1mLiabilites[0m
|
||||||
|
-------------------------------- ------------
|
||||||
|
Hipoteques en vivenda principal
|
||||||
|
Hipoteques en vivenda d'inversió 0 EUR
|
||||||
|
Targetes de crèdit 445.91 EUR
|
||||||
|
Línies de crèdit per inversió 18771.26 EUR
|
||||||
|
Factures impagades
|
||||||
|
Préstecs personals 0 EUR
|
||||||
|
Impostos no pagats
|
||||||
|
Altres passius 0 EUR
|
||||||
|
-------------------------------- ------------
|
||||||
|
------------- -------------
|
||||||
|
[1mTotal passius[0m [1m-19217.17 EUR[0m
|
||||||
|
------------- -------------
|
||||||
|
──────────────────────────────
|
||||||
|
[1mNet Worth 142485.33 EUR[0m
|
||||||
|
──────────────────────────────
|
||||||
|
[1mFinancial Ratios[0m
|
||||||
|
------------------------------------ -------- -------
|
||||||
|
Debt-to-Assets Ratio [92m11.88 %[0m 50 %
|
||||||
|
Emergency Fund [93m5.02 mth[0m 3-6 mth
|
||||||
|
Investment Assets to Net Worth Ratio [92m94.54 %[0m 50 %
|
||||||
|
Liquid Assets to Net Worth Ratio [92m75.12 %[0m 15 %
|
||||||
|
Savings Ratio [92m39.47 %[0m 20 %
|
||||||
|
Debt-Service Ratio [92m0.96 %[0m 35 %
|
||||||
|
Non-Mortgage Debt-Service Ratio [92m0.00 %[0m 15 %
|
||||||
|
Interest Coverage Ratio [92m33.90[0m 1.5
|
||||||
|
------------------------------------ -------- -------
|
||||||
Reference in New Issue
Block a user