;lib: brValue cleanup
This commit is contained in:
parent
ec1b98434c
commit
12c0bfb39b
@ -18,7 +18,6 @@ module Hledger.Reports.BalanceReport (
|
||||
)
|
||||
where
|
||||
|
||||
import Control.Applicative ((<|>))
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
import Data.Maybe
|
||||
@ -185,32 +184,21 @@ brValue ropts@ReportOpts{..} j (items, total) =
|
||||
)
|
||||
where
|
||||
val amt =
|
||||
let val' d = mixedAmountValue prices d amt in
|
||||
case value_at_ of
|
||||
AtTransaction -> amt -- this case is converted earlier, see Balance.hs
|
||||
AtPeriod ->
|
||||
let mperiodorjournallastday = mperiodlastday <|> journalEndDate False j
|
||||
-- Get the last day of the report period.
|
||||
-- Will be Nothing if no report period is specified, or also
|
||||
-- if ReportOpts does not have today_ set, since we need that
|
||||
-- to get the report period robustly.
|
||||
mperiodlastday :: Maybe Day = do
|
||||
t <- today_
|
||||
let q = queryFromOpts t ropts
|
||||
qend <- queryEndDate False q
|
||||
return $ addDays (-1) qend
|
||||
d = fromMaybe (error' "brValue: expected a non-empty journal") -- XXX shouldn't happen
|
||||
mperiodorjournallastday
|
||||
in val' d
|
||||
AtNow -> case today_ of
|
||||
Just d -> val' d
|
||||
Nothing -> error' "brValue: ReportOpts today_ is unset so could not satisfy --value-at=now"
|
||||
AtPeriod -> val' reportperiodlastday
|
||||
AtNow -> val' today
|
||||
AtDate d -> val' d
|
||||
|
||||
where
|
||||
val' d = mixedAmountValue prices d amt
|
||||
-- prices are in parse order - sort into date then parse order,
|
||||
-- & reversed for quick lookup of the latest price.
|
||||
prices = reverse $ sortOn mpdate $ jmarketprices j
|
||||
|
||||
reportperiodlastday =
|
||||
fromMaybe (error' "brValue: expected a non-empty journal") -- XXX shouldn't happen
|
||||
$ reportPeriodOrJournalLastDay ropts j
|
||||
today =
|
||||
fromMaybe (error' "brValue: ReportOpts today_ is unset so could not satisfy --value-at=now") today_
|
||||
|
||||
-- -- | Find the best commodity to convert to when asked to show the
|
||||
-- -- market value of this commodity on the given date. That is, the one
|
||||
|
||||
Loading…
Reference in New Issue
Block a user