queryFromOptsOnly for when args aren't query terms

This commit is contained in:
Simon Michael 2014-02-27 17:46:05 -08:00
parent 204af487a5
commit 73c09f91d7

View File

@ -22,6 +22,7 @@ module Hledger.Reports (
whichDateFromOpts, whichDateFromOpts,
journalSelectingAmountFromOpts, journalSelectingAmountFromOpts,
queryFromOpts, queryFromOpts,
queryFromOptsOnly,
queryOptsFromOpts, queryOptsFromOpts,
reportSpans, reportSpans,
-- * Entries report -- * Entries report
@ -223,6 +224,17 @@ queryFromOpts d opts@ReportOpts{..} = simplifyQuery $ And $ [flagsq, argsq]
++ (maybe [] ((:[]) . Depth) depth_) ++ (maybe [] ((:[]) . Depth) depth_)
argsq = fst $ parseQuery d query_ argsq = fst $ parseQuery d query_
-- | Convert report options to a query, ignoring any non-flag command line arguments.
queryFromOptsOnly :: Day -> ReportOpts -> Query
queryFromOptsOnly d opts@ReportOpts{..} = simplifyQuery flagsq
where
flagsq = And $
[(if date2_ then Date2 else Date) $ dateSpanFromOpts d opts]
++ (if real_ then [Real True] else [])
++ (if empty_ then [Empty True] else []) -- ?
++ (maybe [] ((:[]) . Status) (clearedValueFromOpts opts))
++ (maybe [] ((:[]) . Depth) depth_)
tests_queryFromOpts = [ tests_queryFromOpts = [
"queryFromOpts" ~: do "queryFromOpts" ~: do
assertEqual "" Any (queryFromOpts nulldate defreportopts) assertEqual "" Any (queryFromOpts nulldate defreportopts)