temp
parent
c3f7800dec
commit
1a517eb8f2
|
|
@ -109,7 +109,7 @@ func Main() {
|
||||||
likes = append(likes, like)
|
likes = append(likes, like)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, transaction := range transactions {
|
for i, transaction := range transactions {
|
||||||
balances := ledger.Deltas(transaction).Like(likes...).Balances()
|
balances := ledger.Deltas(transaction).Like(likes...).Balances()
|
||||||
shouldPrint := false
|
shouldPrint := false
|
||||||
shouldPrint = shouldPrint || len(balances) > 2
|
shouldPrint = shouldPrint || len(balances) > 2
|
||||||
|
|
@ -123,7 +123,27 @@ func Main() {
|
||||||
}
|
}
|
||||||
if shouldPrint {
|
if shouldPrint {
|
||||||
fmt.Printf("%s\t%s\n", transaction[0].Date, transaction[0].Description)
|
fmt.Printf("%s\t%s\n", transaction[0].Date, transaction[0].Description)
|
||||||
FPrintBalances(os.Stdout, "\t\t", ledger.Deltas(transaction).Like(likes...).Balances())
|
FPrintBalances(os.Stdout, "\t\t", balances)
|
||||||
|
|
||||||
|
cumulativeBalances := transactions[:i+1].Deltas().Like(likes...).Balances()
|
||||||
|
cumulativeBalancesKeys := []string{}
|
||||||
|
for k := range cumulativeBalances {
|
||||||
|
cumulativeBalancesKeys = append(cumulativeBalancesKeys, k)
|
||||||
|
}
|
||||||
|
slices.Sort(cumulativeBalancesKeys)
|
||||||
|
|
||||||
|
relevantCumulativeBalances := make(ledger.Balances)
|
||||||
|
for _, k := range cumulativeBalancesKeys {
|
||||||
|
m, ok := balances[k]
|
||||||
|
if !ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
relevantCumulativeBalances[k] = make(ledger.Balance)
|
||||||
|
for k2 := range m {
|
||||||
|
relevantCumulativeBalances[k][k2] = cumulativeBalances[k][k2]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Printf("\t\t(%+v)\n", relevantCumulativeBalances.Nonzero())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,14 @@ type Transaction Deltas
|
||||||
|
|
||||||
type Transactions []Transaction
|
type Transactions []Transaction
|
||||||
|
|
||||||
|
func (transactions Transactions) Deltas() Deltas {
|
||||||
|
result := make(Deltas, 0, len(transactions))
|
||||||
|
for _, transaction := range transactions {
|
||||||
|
result = append(result, transaction...)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func (deltas Deltas) Transactions() Transactions {
|
func (deltas Deltas) Transactions() Transactions {
|
||||||
m := make(map[string]Transaction)
|
m := make(map[string]Transaction)
|
||||||
for _, d := range deltas {
|
for _, d := range deltas {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue