This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"os"
|
||||
"slices"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"gogs.inhome.blapointe.com/ana-ledger/src/ana"
|
||||
"gogs.inhome.blapointe.com/ana-ledger/src/ledger"
|
||||
@@ -98,7 +99,7 @@ func Main() {
|
||||
KindaLike(q).
|
||||
KindaGroup(group).
|
||||
Nonzero()
|
||||
FPrintBalances(os.Stdout, "", balances, nil, config.Query.USDOnly)
|
||||
FPrintBalances(os.Stdout, "", balances, nil, config.Query.USDOnly, config.Query.Normalize, time.Now().Format("2006-01-02"))
|
||||
case "reg":
|
||||
transactions := deltas.Transactions()
|
||||
|
||||
@@ -116,7 +117,7 @@ func Main() {
|
||||
}
|
||||
if shouldPrint {
|
||||
fmt.Printf("%s\t%s\n", transaction[0].Date, transaction[0].Description)
|
||||
FPrintBalances(os.Stdout, "\t\t", balances, transactions[:i+1].Deltas().Like(q).Group(group).Balances().WithBPIsAt(bpis, transaction[0].Date).Nonzero(), config.Query.USDOnly)
|
||||
FPrintBalances(os.Stdout, "\t\t", balances, transactions[:i+1].Deltas().Like(q).Group(group).Balances().WithBPIsAt(bpis, transaction[0].Date).Nonzero(), config.Query.USDOnly, config.Query.Normalize, transaction[0].Date)
|
||||
}
|
||||
}
|
||||
default:
|
||||
@@ -124,7 +125,7 @@ func Main() {
|
||||
}
|
||||
}
|
||||
|
||||
func FPrintBalances(w io.Writer, linePrefix string, balances, cumulatives ledger.Balances, usdOnly bool) {
|
||||
func FPrintBalances(w io.Writer, linePrefix string, balances, cumulatives ledger.Balances, usdOnly, normalized bool, date string) {
|
||||
keys := []string{}
|
||||
for k := range balances {
|
||||
keys = append(keys, k)
|
||||
@@ -138,7 +139,12 @@ func FPrintBalances(w io.Writer, linePrefix string, balances, cumulatives ledger
|
||||
}
|
||||
}
|
||||
|
||||
normalizer := ana.NewDefaultNormalizer()
|
||||
|
||||
format := fmt.Sprintf("%s%%-%ds\t%%s%%.2f (%%s%%.2f)\n", linePrefix, max)
|
||||
if normalized {
|
||||
format = fmt.Sprintf("%s%%-%ds\t%%s%%.2f (%%s%%.2f (%%.2f @%%.2f))\n", linePrefix, max)
|
||||
}
|
||||
for _, key := range keys {
|
||||
currencies := []ledger.Currency{}
|
||||
for currency := range balances[key] {
|
||||
@@ -162,7 +168,12 @@ func FPrintBalances(w io.Writer, linePrefix string, balances, cumulatives ledger
|
||||
cumulative = value
|
||||
}
|
||||
|
||||
fmt.Fprintf(w, format, key, printableCurrency, balances[key][currency], printableCurrency, cumulative)
|
||||
if !normalized {
|
||||
fmt.Fprintf(w, format, key, printableCurrency, balances[key][currency], printableCurrency, cumulative)
|
||||
} else {
|
||||
factor := normalizer.NormalizeFactor(ledger.Delta{Name: key, Date: date})
|
||||
fmt.Fprintf(w, format, key, printableCurrency, balances[key][currency], printableCurrency, cumulative, cumulative*factor, factor)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user