hledger-1.41: Command-line interface for the hledger accounting system

Safe Haskell | None
Language | Haskell2010

Hledger.Cli.CompoundBalanceCommand

Description

Common helpers for making multi-section balance report commands like balancesheet, cashflow, and incomestatement.

Synopsis

- data CompoundBalanceCommandSpec = CompoundBalanceCommandSpec {
  - cbcdoc :: CommandHelpStr
  - cbctitle :: String
  - cbcqueries :: [CBCSubreportSpec DisplayName]
  - cbcaccum :: BalanceAccumulation
  }
- compoundBalanceCommandMode :: CompoundBalanceCommandSpec -> Mode RawOpts
- compoundBalanceCommand :: CompoundBalanceCommandSpec -> CliOpts -> Journal -> IO ()

# Documentation

data CompoundBalanceCommandSpec #

Description of a compound balance report command, from which we generate the command's cmdargs mode and IO action. A compound balance report command shows one or more sections/subreports, each with its own title and subtotals row, in a certain order, plus a grand totals row if there's more than one section. Examples are the balancesheet, cashflow and incomestatement commands.

Compound balance reports do sign normalisation: they show all account balances as normally positive, unlike the ordinary BalanceReport and most hledger commands which show incomeliabilityequity balances as normally negative. Each subreport specifies the normal sign of its amounts, and whether it should be added to or subtracted from the grand total.

Constructors

CompoundBalanceCommandSpec |

Fields

- cbcdoc :: CommandHelpStr

  the command's name(s) and documentation

- cbctitle :: String

  overall report title

- cbcqueries :: [CBCSubreportSpec DisplayName]

  subreport details

- cbcaccum :: BalanceAccumulation

  how to accumulate balances (per-period, cumulative, historical) (overrides command line flags)

compoundBalanceCommandMode :: CompoundBalanceCommandSpec -> Mode RawOpts #

Generate a cmdargs option-parsing mode from a compound balance command specification.

compoundBalanceCommand :: CompoundBalanceCommandSpec -> CliOpts -> Journal -> IO () #

Generate a runnable command from a compound balance command specification.