package templates import ( "fmt" "portfolio-tracker/internal/model" "portfolio-tracker/internal/web/templates/components" ) templ PortfolioDetailContent(portfolio model.Portfolio) {

Positionen

if len(portfolio.Activities) > 0 { } else { }
Wertpapier Anzahl Ø Einkaufspreis Aktueller Wert +/- Gesamt
Position calculation will be implemented here
Keine Positionen vorhanden. Fügen Sie Ihre erste Transaktion hinzu.

Letzte Transaktionen

if len(portfolio.Activities) > 0 { for i, activity := range portfolio.Activities { if i < 10 { } } } else { }
Datum Typ Wertpapier Anzahl Preis Preis ({ portfolio.BaseCurrency }) Gesamt Gesamt ({ portfolio.BaseCurrency })
{ activity.Date.Format("02.01.2006") } if activity.Type == "BUY" { Kauf } else if activity.Type == "SELL" { Verkauf } else if activity.Type == "DIVIDEND" { Dividende } else { { string(activity.Type) } } { activity.Stock } { fmt.Sprintf("%.3f", activity.Amount) } { fmt.Sprintf("%.2f %s", activity.Price, activity.Currency) } if activity.Currency != portfolio.BaseCurrency { { getConvertedPrice(activity, portfolio.BaseCurrency) } } else { - } { fmt.Sprintf("%.2f %s", activity.Amount * activity.Price, activity.Currency) } if activity.Currency != portfolio.BaseCurrency { { getConvertedTotalWithFallbackInfo(activity, portfolio.BaseCurrency) } } else { - }
Keine Transaktionen vorhanden
Historische Währungsumrechnung
Transaktionen werden mit den historischen Wechselkursen vom Transaktionsdatum in { portfolio.BaseCurrency } umgerechnet. Bei nicht verfügbaren historischen Kursen werden aktuelle Kurse verwendet (markiert mit *).

Portfolio-Zusammenfassung

@PortfolioSummary(portfolio.Activities, portfolio.BaseCurrency)

Allokation

Allokations-Chart wird hier implementiert

} // Separate component for portfolio summary templ PortfolioSummary(activities []model.Activity, currency string) {
Anzahl Transaktionen
{ fmt.Sprintf("%d", len(activities)) }
Gesamtwert investiert
{ formatTotalInvestedWithConversion(activities, currency) }
* = Aktueller Kurs verwendet (historischer Kurs nicht verfügbar)
Letzter Kauf
{ getLastBuyDate(activities) }
} templ PortfolioDetail(authenticated bool, username string, portfolio model.Portfolio, portfolios []model.Portfolio) { @components.PageLayout(authenticated, username, portfolio.Name, PortfolioDetailContent(portfolio), portfolios) }