hledger-lib-1.3: Core data types, parsers and functionality for the hledger accounting tools

Safe Haskell | None
Language | Haskell2010

Hledger.Reports.ReportOptions

Contents

- Orphan instances

Description

Options common to most hledger reports.

Synopsis

- data ReportOpts = ReportOpts {
  - period_ :: Period
  - interval_ :: Interval
  - statuses_ :: [Status]
  - cost_ :: Bool
  - depth_ :: Maybe Int
  - display_ :: Maybe DisplayExp
  - date2_ :: Bool
  - empty_ :: Bool
  - no_elide_ :: Bool
  - real_ :: Bool
  - format_ :: Maybe FormatStr
  - query_ :: String
  - average_ :: Bool
  - related_ :: Bool
  - balancetype_ :: BalanceType
  - accountlistmode_ :: AccountListMode
  - drop_ :: Int
  - row_total_ :: Bool
  - no_total_ :: Bool
  - value_ :: Bool
  - pretty_tables_ :: Bool
  - color_ :: Bool
  }
- data BalanceType
  - = PeriodChange
  - | CumulativeChange
  - | HistoricalBalance
- data AccountListMode
  - = ALDefault
  - | ALTree
  - | ALFlat
- type FormatStr = String
- defreportopts :: ReportOpts
- rawOptsToReportOpts :: RawOpts -> IO ReportOpts
- checkReportOpts :: ReportOpts -> ReportOpts
- flat_ :: ReportOpts -> Bool
- tree_ :: ReportOpts -> Bool
- reportOptsToggleStatus :: Status -> ReportOpts -> ReportOpts
- simplifyStatuses :: Ord t => [t] -> [t]
- whichDateFromOpts :: ReportOpts -> WhichDate
- journalSelectingAmountFromOpts :: ReportOpts -> Journal -> Journal
- queryFromOpts :: Day -> ReportOpts -> Query
- queryFromOptsOnly :: Day -> ReportOpts -> Query
- queryOptsFromOpts :: Day -> ReportOpts -> [QueryOpt]
- transactionDateFn :: ReportOpts -> Transaction -> Day
- postingDateFn :: ReportOpts -> Posting -> Day
- reportStartDate :: Journal -> ReportOpts -> IO (Maybe Day)
- reportEndDate :: Journal -> ReportOpts -> IO (Maybe Day)
- reportStartEndDates :: Journal -> ReportOpts -> IO (Maybe (Day, Day))
- tests_Hledger_Reports_ReportOptions :: Test

# Documentation

data ReportOpts #

Standard options for customising report filtering and output, corresponding to hledger's command-line options and query language arguments. Used in hledger-lib and above.

Constructors

ReportOpts |
Fields period_ :: Period interval_ :: Interval statuses_ :: [Status] Zero, one, or two statuses to be matched cost_ :: Bool depth_ :: Maybe Int display_ :: Maybe DisplayExp date2_ :: Bool empty_ :: Bool no_elide_ :: Bool real_ :: Bool format_ :: Maybe FormatStr query_ :: String average_ :: Bool related_ :: Bool balancetype_ :: BalanceType accountlistmode_ :: AccountListMode drop_ :: Int row_total_ :: Bool no_total_ :: Bool value_ :: Bool pretty_tables_ :: Bool color_ :: Bool

Instances

Data ReportOpts # |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ReportOpts -> c ReportOpts # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ReportOpts # toConstr :: ReportOpts -> Constr # dataTypeOf :: ReportOpts -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c ReportOpts) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ReportOpts) # gmapT :: (forall b. Data b => b -> b) -> ReportOpts -> ReportOpts # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ReportOpts -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ReportOpts -> r # gmapQ :: (forall d. Data d => d -> u) -> ReportOpts -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ReportOpts -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ReportOpts -> m ReportOpts # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ReportOpts -> m ReportOpts # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ReportOpts -> m ReportOpts #
Show ReportOpts # |
Methods showsPrec :: Int -> ReportOpts -> ShowS # show :: ReportOpts -> String # showList :: [ReportOpts] -> ShowS #
Default ReportOpts # |
Methods def :: ReportOpts #

data BalanceType #

Which "balance" is being shown in a balance report.

Constructors

PeriodChange | The change of balance in each period.
CumulativeChange | The accumulated change across multiple periods.
HistoricalBalance | The historical ending balance, including the effect of all postings before the report period. Unless altered by, a query, this is what you would see on a bank statement.

Instances

Eq BalanceType # |
Methods (==) :: BalanceType -> BalanceType -> Bool # (/=) :: BalanceType -> BalanceType -> Bool #
Data BalanceType # |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BalanceType -> c BalanceType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BalanceType # toConstr :: BalanceType -> Constr # dataTypeOf :: BalanceType -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c BalanceType) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BalanceType) # gmapT :: (forall b. Data b => b -> b) -> BalanceType -> BalanceType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BalanceType -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BalanceType -> r # gmapQ :: (forall d. Data d => d -> u) -> BalanceType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> BalanceType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> BalanceType -> m BalanceType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BalanceType -> m BalanceType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BalanceType -> m BalanceType #
Show BalanceType # |
Methods showsPrec :: Int -> BalanceType -> ShowS # show :: BalanceType -> String # showList :: [BalanceType] -> ShowS #
Default BalanceType # |
Methods def :: BalanceType #

data AccountListMode #

Should accounts be displayed: in the command's default style, hierarchically, or as a flat list ?

Constructors

ALDefault |
ALTree |
ALFlat |

Instances

Eq AccountListMode # |
Methods (==) :: AccountListMode -> AccountListMode -> Bool # (/=) :: AccountListMode -> AccountListMode -> Bool #
Data AccountListMode # |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AccountListMode -> c AccountListMode # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AccountListMode # toConstr :: AccountListMode -> Constr # dataTypeOf :: AccountListMode -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c AccountListMode) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AccountListMode) # gmapT :: (forall b. Data b => b -> b) -> AccountListMode -> AccountListMode # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AccountListMode -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AccountListMode -> r # gmapQ :: (forall d. Data d => d -> u) -> AccountListMode -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AccountListMode -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AccountListMode -> m AccountListMode # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AccountListMode -> m AccountListMode # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AccountListMode -> m AccountListMode #
Show AccountListMode # |
Methods showsPrec :: Int -> AccountListMode -> ShowS # show :: AccountListMode -> String # showList :: [AccountListMode] -> ShowS #
Default AccountListMode # |
Methods def :: AccountListMode #

type FormatStr = String #

defreportopts :: ReportOpts #

rawOptsToReportOpts :: RawOpts -> IO ReportOpts #

checkReportOpts :: ReportOpts -> ReportOpts #

Do extra validation of report options, raising an error if there's a problem.

flat_ :: ReportOpts -> Bool #

tree_ :: ReportOpts -> Bool #

Legacy-compatible convenience aliases for accountlistmode_.

reportOptsToggleStatus :: Status -> ReportOpts -> ReportOpts #

Add/remove this status from the status list. Used by hledger-ui.

simplifyStatuses :: Ord t => [t] -> [t] #

Reduce a list of statuses to just one of each status, and if all statuses are present return the empty list.

whichDateFromOpts :: ReportOpts -> WhichDate #

Report which date we will report on based on --date2.

journalSelectingAmountFromOpts :: ReportOpts -> Journal -> Journal #

Convert this journal's postings' amounts to the cost basis amounts if specified by options.

queryFromOpts :: Day -> ReportOpts -> Query #

Convert report options and arguments to a query.

queryFromOptsOnly :: Day -> ReportOpts -> Query #

Convert report options to a query, ignoring any non-flag command line arguments.

queryOptsFromOpts :: Day -> ReportOpts -> [QueryOpt] #

Convert report options and arguments to query options.

transactionDateFn :: ReportOpts -> Transaction -> Day #

Select the Transaction date accessor based on --date2.

postingDateFn :: ReportOpts -> Posting -> Day #

Select the Posting date accessor based on --date2.

reportStartDate :: Journal -> ReportOpts -> IO (Maybe Day) #

The effective report start date is the one specified by options or queries, otherwise the earliest transaction or posting date in the journal, otherwise (for an empty journal) nothing. Needs IO to parse smart dates in options/queries.

reportEndDate :: Journal -> ReportOpts -> IO (Maybe Day) #

The effective report end date is the one specified by options or queries, otherwise the latest transaction or posting date in the journal, otherwise (for an empty journal) nothing. Needs IO to parse smart dates in options/queries.

reportStartEndDates :: Journal -> ReportOpts -> IO (Maybe (Day, Day)) #

tests_Hledger_Reports_ReportOptions :: Test #

# Orphan instances

Default Bool # |
Methods def :: Bool #