reg prints balance per xaction now
parent
4831914251
commit
4d484b8aa4
|
|
@ -88,24 +88,17 @@ func Main() {
|
||||||
|
|
||||||
FPrintBalances(os.Stdout, balances)
|
FPrintBalances(os.Stdout, balances)
|
||||||
case "reg":
|
case "reg":
|
||||||
register := deltas.Register()
|
transactions := deltas.Transactions()
|
||||||
if likePattern != "" {
|
if likePattern != "" {
|
||||||
register = register.Like(likePattern)
|
transactions = transactions.Like(ledger.LikeName(likePattern))
|
||||||
}
|
}
|
||||||
if notLikePattern != "" {
|
if notLikePattern != "" {
|
||||||
register = register.NotLike(notLikePattern)
|
transactions = transactions.NotLike(ledger.NotLikeName(notLikePattern))
|
||||||
}
|
}
|
||||||
|
|
||||||
var prev ledger.Balances
|
for _, transaction := range transactions {
|
||||||
for _, date := range register.Dates() {
|
fmt.Println(transaction[0].Date)
|
||||||
balances := register[date]
|
FPrintBalances(os.Stdout, ledger.Deltas(transaction).Balances())
|
||||||
|
|
||||||
if newBalances := balances.Sub(prev).Nonzero(); len(newBalances) > 0 {
|
|
||||||
fmt.Println(date)
|
|
||||||
FPrintBalances(os.Stdout, newBalances)
|
|
||||||
}
|
|
||||||
|
|
||||||
prev = balances
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
panic("unknown command " + positional[0])
|
panic("unknown command " + positional[0])
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,13 @@ func LikeNotName(pattern string) Like {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NotLikeName(pattern string) Like {
|
||||||
|
foo := LikeName(pattern)
|
||||||
|
return func(d Delta) bool {
|
||||||
|
return !foo(d)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func LikeName(pattern string) Like {
|
func LikeName(pattern string) Like {
|
||||||
return func(d Delta) bool {
|
return func(d Delta) bool {
|
||||||
return like(pattern, d.Name)
|
return like(pattern, d.Name)
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,26 @@ func (deltas Deltas) Transactions() Transactions {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (transactions Transactions) NotLike(like ...Like) Transactions {
|
||||||
|
result := make(Transactions, 0, len(transactions))
|
||||||
|
for _, transaction := range transactions {
|
||||||
|
if matching := (Deltas)(transaction).Like(like...); len(matching) == 0 {
|
||||||
|
result = append(result, transaction)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func (transactions Transactions) Like(like ...Like) Transactions {
|
||||||
|
result := make(Transactions, 0, len(transactions))
|
||||||
|
for _, transaction := range transactions {
|
||||||
|
if matching := (Deltas)(transaction).Like(like...); len(matching) > 0 {
|
||||||
|
result = append(result, transaction)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func (transaction Transaction) Payee() string {
|
func (transaction Transaction) Payee() string {
|
||||||
balances := Deltas(transaction).Balances()
|
balances := Deltas(transaction).Balances()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue