parent
d6e075dacd
commit
33d82fb657
@ -140,7 +140,7 @@ journalApplyValue ropts j = do
|
|||||||
-- They end on or before the specified report end date, or 180 days from today if unspecified.
|
-- They end on or before the specified report end date, or 180 days from today if unspecified.
|
||||||
--
|
--
|
||||||
journalAddForecast :: CliOpts -> Journal -> IO Journal
|
journalAddForecast :: CliOpts -> Journal -> IO Journal
|
||||||
journalAddForecast opts@CliOpts{reportopts_=ropts} j = do
|
journalAddForecast opts@CliOpts{inputopts_=iopts, reportopts_=ropts} j = do
|
||||||
today <- getCurrentDay
|
today <- getCurrentDay
|
||||||
|
|
||||||
-- "They start on or after the day following the latest normal transaction in the journal, or today if there are none."
|
-- "They start on or after the day following the latest normal transaction in the journal, or today if there are none."
|
||||||
@ -153,15 +153,16 @@ journalAddForecast opts@CliOpts{reportopts_=ropts} j = do
|
|||||||
|
|
||||||
let forecastspan = DateSpan (Just forecaststart) (Just forecastend)
|
let forecastspan = DateSpan (Just forecaststart) (Just forecastend)
|
||||||
forecasttxns =
|
forecasttxns =
|
||||||
-- If there are forecast transaction, lets apply transaction modifiers to them
|
|
||||||
modifyTransactions (jtxnmodifiers j) $
|
|
||||||
[ txnTieKnot t | pt <- jperiodictxns j
|
[ txnTieKnot t | pt <- jperiodictxns j
|
||||||
, t <- runPeriodicTransaction pt forecastspan
|
, t <- runPeriodicTransaction pt forecastspan
|
||||||
, spanContainsDate forecastspan (tdate t)
|
, spanContainsDate forecastspan (tdate t)
|
||||||
]
|
]
|
||||||
|
-- With --auto enabled, transaction modifiers are also applied to forecast txns
|
||||||
|
forecasttxns' = (if auto_ iopts then modifyTransactions (jtxnmodifiers j) else id) forecasttxns
|
||||||
|
|
||||||
return $
|
return $
|
||||||
if forecast_ ropts
|
if forecast_ ropts
|
||||||
then journalBalanceTransactions' opts j{ jtxns = concat [jtxns j, forecasttxns] }
|
then journalBalanceTransactions' opts j{ jtxns = concat [jtxns j, forecasttxns'] }
|
||||||
else j
|
else j
|
||||||
where
|
where
|
||||||
journalBalanceTransactions' opts j =
|
journalBalanceTransactions' opts j =
|
||||||
|
|||||||
@ -164,7 +164,7 @@ because it is also included in transaction modifiers.
|
|||||||
|
|
||||||
>=1
|
>=1
|
||||||
|
|
||||||
## Transaction modifiers affect forecast transactions
|
## Transaction modifiers affect forecast transactions (#959)
|
||||||
<
|
<
|
||||||
= ^income
|
= ^income
|
||||||
(liabilities:tax) *.33 ; income tax
|
(liabilities:tax) *.33 ; income tax
|
||||||
@ -192,3 +192,17 @@ $ hledger print -f- --auto --forecast -b 2016-01 -e 2016-03
|
|||||||
assets:bank
|
assets:bank
|
||||||
|
|
||||||
>=
|
>=
|
||||||
|
|
||||||
|
# and they don't force --auto on
|
||||||
|
$ hledger print -f- --forecast -b 2016-01 -e 2016-03
|
||||||
|
2016/01/03 withdraw
|
||||||
|
assets:cash $20
|
||||||
|
assets:bank
|
||||||
|
|
||||||
|
2016/02/01 paycheck
|
||||||
|
; recur: monthly from 2016-01
|
||||||
|
income:remuneration $-100
|
||||||
|
income:donations $-15
|
||||||
|
assets:bank
|
||||||
|
|
||||||
|
>=
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user