mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
lib: Use uniform naming for stripping prices.
Creates a new function amountStripPrices, and renames removePrices to postingStripPrices.
This commit is contained in:
parent
42d7009fef
commit
b7a2479186
@ -91,6 +91,7 @@ module Hledger.Data.Amount (
|
||||
withInternalPrecision,
|
||||
setAmountDecimalPoint,
|
||||
withDecimalPoint,
|
||||
amountStripPrices,
|
||||
canonicaliseAmount,
|
||||
-- * MixedAmount
|
||||
nullmixedamt,
|
||||
@ -376,6 +377,10 @@ setAmountDecimalPoint mc a@Amount{ astyle=s } = a{ astyle=s{asdecimalpoint=mc} }
|
||||
withDecimalPoint :: Amount -> Maybe Char -> Amount
|
||||
withDecimalPoint = flip setAmountDecimalPoint
|
||||
|
||||
-- | Strip all prices from an Amount
|
||||
amountStripPrices :: Amount -> Amount
|
||||
amountStripPrices a = a{aprice=Nothing}
|
||||
|
||||
showAmountPrice :: Amount -> WideBuilder
|
||||
showAmountPrice amt = case aprice amt of
|
||||
Nothing -> mempty
|
||||
@ -914,8 +919,9 @@ mixedAmountSetPrecision p = mapMixedAmount (amountSetPrecision p)
|
||||
mixedAmountSetFullPrecision :: MixedAmount -> MixedAmount
|
||||
mixedAmountSetFullPrecision = mapMixedAmount amountSetFullPrecision
|
||||
|
||||
-- | Strip all prices from a MixedAmount.
|
||||
mixedAmountStripPrices :: MixedAmount -> MixedAmount
|
||||
mixedAmountStripPrices = mapMixedAmount (\a -> a{aprice=Nothing})
|
||||
mixedAmountStripPrices = mapMixedAmount amountStripPrices
|
||||
|
||||
-- | Canonicalise a mixed amount's display styles using the provided commodity style map.
|
||||
canonicaliseMixedAmount :: M.Map CommoditySymbol AmountStyle -> MixedAmount -> MixedAmount
|
||||
|
@ -875,13 +875,13 @@ journalBalanceTransactions assrt j' =
|
||||
balanceTransactionAndCheckAssertionsB :: Either Posting Transaction -> Balancing s ()
|
||||
balanceTransactionAndCheckAssertionsB (Left p@Posting{}) =
|
||||
-- update the account's running balance and check the balance assertion if any
|
||||
void $ addAmountAndCheckAssertionB $ removePrices p
|
||||
void . addAmountAndCheckAssertionB $ postingStripPrices p
|
||||
balanceTransactionAndCheckAssertionsB (Right t@Transaction{tpostings=ps}) = do
|
||||
-- make sure we can handle the balance assignments
|
||||
mapM_ checkIllegalBalanceAssignmentB ps
|
||||
-- for each posting, infer its amount from the balance assignment if applicable,
|
||||
-- update the account's running balance and check the balance assertion if any
|
||||
ps' <- forM ps $ \p -> pure (removePrices p) >>= addOrAssignAmountAndCheckAssertionB
|
||||
ps' <- mapM (addOrAssignAmountAndCheckAssertionB . postingStripPrices) ps
|
||||
-- infer any remaining missing amounts, and make sure the transaction is now fully balanced
|
||||
styles <- R.reader bsStyles
|
||||
case balanceTransactionHelper styles t{tpostings=ps'} of
|
||||
|
@ -37,7 +37,7 @@ module Hledger.Data.Posting (
|
||||
postingAllTags,
|
||||
transactionAllTags,
|
||||
relatedPostings,
|
||||
removePrices,
|
||||
postingStripPrices,
|
||||
postingApplyAliases,
|
||||
-- * date operations
|
||||
postingDate,
|
||||
@ -201,8 +201,8 @@ sumPostings :: [Posting] -> MixedAmount
|
||||
sumPostings = foldl' (\amt p -> maPlus amt $ pamount p) nullmixedamt
|
||||
|
||||
-- | Remove all prices of a posting
|
||||
removePrices :: Posting -> Posting
|
||||
removePrices = postingTransformAmount (mapMixedAmount $ \a -> a{aprice=Nothing})
|
||||
postingStripPrices :: Posting -> Posting
|
||||
postingStripPrices = postingTransformAmount mixedAmountStripPrices
|
||||
|
||||
-- | Get a posting's (primary) date - it's own primary date if specified,
|
||||
-- otherwise the parent transaction's primary date, or the null date if
|
||||
|
@ -92,7 +92,7 @@ postingsReport rspec@ReportSpec{rsOpts=ropts@ReportOpts{..}} j = items
|
||||
reportPeriodOrJournalLastDay rspec j
|
||||
|
||||
-- Posting report does not use prices after valuation, so remove them.
|
||||
displaypsnoprices = map (\(p,md) -> (removePrices p, md)) displayps
|
||||
displaypsnoprices = map (\(p,md) -> (postingStripPrices p, md)) displayps
|
||||
|
||||
-- Posting report items ready for display.
|
||||
items =
|
||||
|
Loading…
Reference in New Issue
Block a user