42 lines
1.1 KiB
Haskell
42 lines
1.1 KiB
Haskell
{-# LANGUAGE QuasiQuotes, RecordWildCards #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
{-|
|
|
|
|
The @cashflow@ command prints a simplified cashflow statement. It just
|
|
shows the change in all "cash" accounts for the period (without the
|
|
traditional segmentation into operating, investing, and financing
|
|
cash flows.)
|
|
|
|
-}
|
|
|
|
module Hledger.Cli.Commands.Cashflow (
|
|
cashflowmode
|
|
,cashflow
|
|
) where
|
|
|
|
import System.Console.CmdArgs.Explicit
|
|
|
|
import Hledger
|
|
import Hledger.Cli.CliOptions
|
|
import Hledger.Cli.CompoundBalanceCommand
|
|
|
|
cashflowSpec = CompoundBalanceCommandSpec {
|
|
cbcdoc = $(embedFileRelative "Hledger/Cli/Commands/Cashflow.txt"),
|
|
cbctitle = "Cashflow Statement",
|
|
cbcqueries = [
|
|
CBCSubreportSpec{
|
|
cbcsubreporttitle="Cash flows"
|
|
,cbcsubreportquery=journalCashAccountQuery
|
|
,cbcsubreportnormalsign=NormallyPositive
|
|
,cbcsubreportincreasestotal=True
|
|
}
|
|
],
|
|
cbctype = PeriodChange
|
|
}
|
|
|
|
cashflowmode :: Mode RawOpts
|
|
cashflowmode = compoundBalanceCommandMode cashflowSpec
|
|
|
|
cashflow :: CliOpts -> Journal -> IO ()
|
|
cashflow = compoundBalanceCommand cashflowSpec
|