hledger-lib-0.20: Core data types, parsers and utilities for the hledger accounting tool.

Safe HaskellNone

Hledger.Data.Ledger

Description

A Ledger is derived from a Journal by applying a filter specification to select Transactions and Postings of interest. It contains the filtered journal and knows the resulting chart of accounts, account balances, and postings in each account.

Synopsis

Documentation

ledgerFromJournal :: Query -> Journal -> LedgerSource

Filter a journal's transactions with the given query, then derive a ledger containing the chart of accounts and balances. If the query includes a depth limit, that will affect the ledger's journal but not the account tree.

ledgerAccountNames :: Ledger -> [AccountName]Source

List a ledger's account names.

ledgerAccount :: Ledger -> AccountName -> Maybe AccountSource

Get the named account from a ledger.

ledgerRootAccount :: Ledger -> AccountSource

Get this ledger's root account, which is a dummy root account above all others. This should always be first in the account list, if somehow not this returns a null account.

ledgerTopAccounts :: Ledger -> [Account]Source

List a ledger's top-level accounts (the ones below the root), in tree order.

ledgerLeafAccounts :: Ledger -> [Account]Source

List a ledger's bottom-level (subaccount-less) accounts, in tree order.

ledgerAccountsMatching :: [String] -> Ledger -> [Account]Source

Accounts in ledger whose name matches the pattern, in tree order.

ledgerPostings :: Ledger -> [Posting]Source

List a ledger's postings, in the order parsed.

ledgerDateSpan :: Ledger -> DateSpanSource

The (fully specified) date span containing all the ledger's (filtered) transactions, or DateSpan Nothing Nothing if there are none.

ledgerCommodities :: Ledger -> [Commodity]Source

All commodities used in this ledger.