also canonicalise historical price amounts
So that when we convert amounts to market value, the result will have the canonical style of the target commodity.
This commit is contained in:
parent
bf4c9221be
commit
040d00e8fb
@ -487,17 +487,19 @@ journalBalanceTransactions j@Journal{jtxns=ts, jcommoditystyles=ss} =
|
||||
Left e -> Left e
|
||||
where balance = balanceTransaction (Just ss)
|
||||
|
||||
-- | Convert all the journal's posting amounts (not price amounts) to
|
||||
-- their canonical display settings. Ie, all amounts in a given
|
||||
-- commodity will use (a) the display settings of the first, and (b)
|
||||
-- the greatest precision, of the posting amounts in that commodity.
|
||||
-- | Convert all the journal's posting amounts (and historical price
|
||||
-- amounts, but currently not transaction price amounts) to their
|
||||
-- canonical display settings. Ie, all amounts in a given commodity
|
||||
-- will use (a) the display settings of the first, and (b) the
|
||||
-- greatest precision, of the posting amounts in that commodity.
|
||||
journalCanonicaliseAmounts :: Journal -> Journal
|
||||
journalCanonicaliseAmounts j@Journal{jtxns=ts} = j''
|
||||
journalCanonicaliseAmounts j@Journal{jtxns=ts, historical_prices=hps} = j''
|
||||
where
|
||||
j'' = j'{jtxns=map fixtransaction ts}
|
||||
j'' = j'{jtxns=map fixtransaction ts, historical_prices=map fixhistoricalprice hps}
|
||||
j' = j{jcommoditystyles = canonicalStyles $ dbg8 "journalAmounts" $ journalAmounts j}
|
||||
fixtransaction t@Transaction{tpostings=ps} = t{tpostings=map fixposting ps}
|
||||
fixposting p@Posting{pamount=a} = p{pamount=fixmixedamount a}
|
||||
fixhistoricalprice hp@HistoricalPrice{hamount=a} = hp{hamount=fixamount a}
|
||||
fixmixedamount (Mixed as) = Mixed $ map fixamount as
|
||||
fixamount a@Amount{acommodity=c} = a{astyle=journalCommodityStyle j' c}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user