;lib: refactor

This commit is contained in:
Simon Michael 2020-10-19 09:09:38 -07:00
parent 2761324404
commit 291a35d8b4

View File

@ -116,7 +116,10 @@ anonymiseByOpts opts =
-- a somewhat complicated way; see the hledger manual -> Periodic transactions. -- a somewhat complicated way; see the hledger manual -> Periodic transactions.
-- --
journalAddForecast :: CliOpts -> Journal -> IO Journal journalAddForecast :: CliOpts -> Journal -> IO Journal
journalAddForecast CliOpts{inputopts_=iopts, reportopts_=ropts} j = do journalAddForecast CliOpts{inputopts_=iopts, reportopts_=ropts} j =
case forecast_ ropts of
Nothing -> return j
Just _ -> do
today <- getCurrentDay today <- getCurrentDay
-- "They can start no earlier than: the day following the latest normal transaction in the journal (or today if there are none)." -- "They can start no earlier than: the day following the latest normal transaction in the journal (or today if there are none)."
@ -144,19 +147,14 @@ journalAddForecast CliOpts{inputopts_=iopts, reportopts_=ropts} j = do
(if auto_ iopts then either error' id . modifyTransactions today (jtxnmodifiers j) else id) -- PARTIAL: (if auto_ iopts then either error' id . modifyTransactions today (jtxnmodifiers j) else id) -- PARTIAL:
forecasttxns forecasttxns
journalBalanceTransactions' iopts j = j' = either error' id $ journalBalanceTransactions (not . ignore_assertions_ $ iopts) -- PARTIAL:
either error' id $ journalBalanceTransactions assrt j -- PARTIAL: j{jtxns=concat [jtxns j, forecasttxns']}
where assrt = not . ignore_assertions_ $ iopts
case forecast_ ropts of
Nothing -> return j
Just _ -> do
let j' = journalBalanceTransactions' iopts j{ jtxns = concat [jtxns j, forecasttxns'] }
-- Display styles were applied early.. apply them again to ensure the forecasted -- Display styles were applied early.. apply them again to ensure the forecasted
-- transactions are also styled. XXX Possible optimisation: style just the forecasttxns. -- transactions are also styled. XXX Possible optimisation: style just the forecasttxns.
case journalApplyCommodityStyles j' of j'' = either error' id $ journalApplyCommodityStyles j' -- PARTIAL:
Left e -> error' e -- PARTIAL:
Right j'' -> return j'' return j''
-- | Write some output to stdout or to a file selected by --output-file. -- | Write some output to stdout or to a file selected by --output-file.
-- If the file exists it will be overwritten. -- If the file exists it will be overwritten.