temp
parent
c3f7800dec
commit
1a517eb8f2
|
|
@ -109,7 +109,7 @@ func Main() {
|
|||
likes = append(likes, like)
|
||||
}
|
||||
|
||||
for _, transaction := range transactions {
|
||||
for i, transaction := range transactions {
|
||||
balances := ledger.Deltas(transaction).Like(likes...).Balances()
|
||||
shouldPrint := false
|
||||
shouldPrint = shouldPrint || len(balances) > 2
|
||||
|
|
@ -123,7 +123,27 @@ func Main() {
|
|||
}
|
||||
if shouldPrint {
|
||||
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:
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@ type Transaction Deltas
|
|||
|
||||
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 {
|
||||
m := make(map[string]Transaction)
|
||||
for _, d := range deltas {
|
||||
|
|
|
|||
Loading…
Reference in New Issue