From 7a790fa31e5a177a732874920ebc07f3f3f64db7 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Sat, 23 Aug 2025 08:25:08 -0600 Subject: [PATCH] group date --- cmd/cli/config.go | 3 ++- cmd/cli/main.go | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cmd/cli/config.go b/cmd/cli/config.go index da8c73b..86a6c46 100644 --- a/cmd/cli/config.go +++ b/cmd/cli/config.go @@ -15,5 +15,6 @@ type Config struct { Normalize bool USDOnly bool } - Compact bool + Compact bool + GroupDate string } diff --git a/cmd/cli/main.go b/cmd/cli/main.go index e0782d9..a4ae861 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -40,6 +40,7 @@ func Main() { fs.BoolVar(&config.Query.NoExchanging, "no-exchanging", true, "omit currency exchanges") fs.StringVar(&config.BPI, "bpi", "", "path to bpi") fs.StringVar(&config.CPI, "cpi", "", "path to cpi") + fs.StringVar(&config.GroupDate, "group-date", "^....-..-..", "date grouping") fs.IntVar(&config.CPIYear, "cpiy", 0, "use cpi to convert usd to this year's value") if err := fs.Parse(os.Args[1:]); err != nil { panic(err) @@ -136,15 +137,15 @@ func Main() { } switch cmd[:3] { - case "bal": - balances := deltas.Balances(). + case "bal": // balances + balances := deltas.Group(ledger.GroupDate(config.GroupDate)).Balances(). WithBPIs(bpis). KindaLike(q). KindaGroup(group). Nonzero(). Normalize(cpiNormalizer, "9") FPrintBalances(w, "", balances, nil, config.Query.USDOnly, config.Query.Normalize, time.Now().Format("2006-01-02"), false, maxAccW) - case "gra": + case "gra": // graph dateGrouping := "^[0-9]{4}-[0-9]{2}" if period := config.Query.Period; !period.Empty() { day := time.Hour * 24 @@ -225,7 +226,8 @@ func Main() { options = append(options, asciigraph.SeriesColors(seriesColors...)) } fmt.Println(asciigraph.PlotMany(points, options...)) - case "rec": + case "rec": // reconcile via teller // DEAD + panic("dead and bad") byDate := map[string]ledger.Deltas{} for _, delta := range deltas { delta := delta @@ -285,7 +287,8 @@ func Main() { fmt.Printf("[%s] %s $%7.2f %s%s (%s)\n", msg, transaction.Date, transaction.Amount, prefix, transaction.Details.CounterParty.Name, transaction.Description) } } - case "reg": + case "reg": // reg + deltas = deltas.Group(ledger.GroupDate(config.GroupDate)) transactions := deltas.Transactions() cumulative := make(ledger.Balances) for _, transaction := range transactions {