ledger

package
v0.0.0-...-394693d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2020 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const ISO8601Date = "2006-01-02"

Variables

This section is empty.

Functions

func BalanceReport

func BalanceReport(iter RecordIterator, assets []*Account, output io.Writer)

func ExpensesReport

func ExpensesReport(iter RecordIterator, output io.Writer)

func MonthlyBalanceReport

func MonthlyBalanceReport(iter RecordIterator, assets []*Account, output io.Writer)

func WeeklyExpensesReport

func WeeklyExpensesReport(iter RecordIterator, assets []*Account, output io.Writer)

Types

type Account

type Account struct {
	Name  string
	Asset bool
}

func NewAccount

func NewAccount(name string, asset bool) *Account

func (*Account) String

func (account *Account) String() string

type AccountFilter

type AccountFilter struct {
	Credit string
	Debit  string
}

func (*AccountFilter) Filter

func (f *AccountFilter) Filter(r *Record) *Record

type AmountFilter

type AmountFilter struct {
	Min decimal.Decimal
	Max decimal.Decimal
}

func (*AmountFilter) Filter

func (f *AmountFilter) Filter(r *Record) *Record

type Config

type Config struct {
	Assets []*Account
}

func LoadConfig

func LoadConfig(path string) (*Config, error)

type DateRangeFilter

type DateRangeFilter struct {
	Since time.Time
	Until time.Time
}

func (*DateRangeFilter) Filter

func (f *DateRangeFilter) Filter(r *Record) *Record

type FilteredIterator

type FilteredIterator struct {
	// contains filtered or unexported fields
}

func NewFilteredIterator

func NewFilteredIterator(iter RecordIterator, filters ...RecordFilter) *FilteredIterator

func (FilteredIterator) Next

func (iter FilteredIterator) Next() *Record

type LedgerIterator

type LedgerIterator struct {
	// contains filtered or unexported fields
}

func NewLedgerIterator

func NewLedgerIterator(assets []*Account, ledgerDir string) *LedgerIterator

func (*LedgerIterator) Next

func (i *LedgerIterator) Next() *Record

type Record

type Record struct {
	Debit  *Account
	Credit *Account
	Date   time.Time
	Amount decimal.Decimal
}

func (*Record) FormatAmount

func (r *Record) FormatAmount() string

func (*Record) RecordType

func (r *Record) RecordType() RecordType

func (*Record) ToArray

func (r *Record) ToArray() []string

type RecordFilter

type RecordFilter func(*Record) *Record

type RecordIterator

type RecordIterator interface {
	Next() *Record
}

type RecordType

type RecordType int8

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL