Safe Haskell | None |
---|
An Account
has a name, a list of subaccounts, an optional parent
account, and subaccounting-excluding and -including balances.
- nullacct :: Account
- accountsFromPostings :: [Posting] -> [Account]
- nameTreeToAccount :: AccountName -> FastTree AccountName -> Account
- tieAccountParents :: Account -> Account
- parentAccounts :: Account -> [Account]
- accountsLevels :: Account -> [[Account]]
- mapAccounts :: (Account -> Account) -> Account -> Account
- anyAccounts :: (Account -> Bool) -> Account -> Bool
- sumAccounts :: Account -> Account
- clipAccounts :: Int -> Account -> Account
- clipAccountsAndAggregate :: Int -> [Account] -> [Account]
- pruneAccounts :: (Account -> Bool) -> Account -> Maybe Account
- flattenAccounts :: Account -> [Account]
- filterAccounts :: (Account -> Bool) -> Account -> [Account]
- lookupAccount :: AccountName -> [Account] -> Maybe Account
- printAccounts :: Account -> IO ()
- showAccounts :: Account -> String
- showAccountsBoringFlag :: Account -> String
- showAccountDebug :: PrintfType ([Char] -> t) => Account -> t
- tests_Hledger_Data_Account :: Test
Documentation
accountsFromPostings :: [Posting] -> [Account]Source
Derive 1. an account tree and 2. their balances from a list of postings. (ledger's core feature). The accounts are returned in a list, but retain their tree structure; the first one is the root of the tree.
nameTreeToAccount :: AccountName -> FastTree AccountName -> AccountSource
Convert an AccountName tree to an Account tree
tieAccountParents :: Account -> AccountSource
Tie the knot so all subaccounts' parents are set correctly.
parentAccounts :: Account -> [Account]Source
Get this account's parent accounts, from the nearest up to the root.
accountsLevels :: Account -> [[Account]]Source
List the accounts at each level of the account tree.
mapAccounts :: (Account -> Account) -> Account -> AccountSource
Map a (non-tree-structure-modifying) function over this and sub accounts.
anyAccounts :: (Account -> Bool) -> Account -> BoolSource
Is the predicate true on any of this account or its subaccounts ?
sumAccounts :: Account -> AccountSource
Add subaccount-inclusive balances to an account tree.
clipAccounts :: Int -> Account -> AccountSource
Remove all subaccounts below a certain depth.
clipAccountsAndAggregate :: Int -> [Account] -> [Account]Source
Remove subaccounts below the specified depth, aggregating their balance at the depth limit (accounts at the depth limit will have any sub-balances merged into their exclusive balance).
pruneAccounts :: (Account -> Bool) -> Account -> Maybe AccountSource
Remove all leaf accounts and subtrees matching a predicate.
flattenAccounts :: Account -> [Account]Source
Flatten an account tree into a list, which is sometimes convenient. Note since accounts link to their parents/subs, the account tree remains intact and can still be used. It's a tree/list!
filterAccounts :: (Account -> Bool) -> Account -> [Account]Source
Filter an account tree (to a list).
lookupAccount :: AccountName -> [Account] -> Maybe AccountSource
Search an account list by name.
printAccounts :: Account -> IO ()Source
showAccounts :: Account -> StringSource
showAccountDebug :: PrintfType ([Char] -> t) => Account -> tSource