mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-26 20:02:27 +03:00
fix/rename convertMixedAmountToCommodity, yay release tests
This commit is contained in:
parent
10fd7ebc42
commit
b32ee2fa04
@ -106,7 +106,7 @@ sameSignNonZero is | null nzs = ([], 1)
|
||||
|
||||
-- | Convert all quantities of MixedAccount to a single commodity
|
||||
amountValue :: MixedAmount -> Double
|
||||
amountValue = quantity . convertMixedAmountToSimilarCommodity unknown
|
||||
amountValue = quantity . mixedAmountWithCommodity unknown
|
||||
|
||||
-- | Generate a tree of account names together with their balances.
|
||||
-- The balance of account is decremented by the balance of its subaccounts
|
||||
|
@ -44,6 +44,7 @@ price-preserving (for amounts with the same prices) or price-ignoring
|
||||
module Hledger.Data.Amount (
|
||||
-- * Amount
|
||||
nullamt,
|
||||
amountWithCommodity,
|
||||
canonicaliseAmountCommodity,
|
||||
setAmountPrecision,
|
||||
-- ** arithmetic
|
||||
@ -61,6 +62,7 @@ module Hledger.Data.Amount (
|
||||
amounts,
|
||||
normaliseMixedAmount,
|
||||
canonicaliseMixedAmountCommodity,
|
||||
mixedAmountWithCommodity,
|
||||
setMixedAmountPrecision,
|
||||
-- ** arithmetic
|
||||
costOfMixedAmount,
|
||||
@ -117,12 +119,12 @@ nullamt = Amount unknown 0 Nothing
|
||||
-- The highest precision of either amount is preserved in the result.
|
||||
similarAmountsOp :: (Double -> Double -> Double) -> Amount -> Amount -> Amount
|
||||
similarAmountsOp op a@(Amount Commodity{precision=ap} _ _) (Amount bc@Commodity{precision=bp} bq _) =
|
||||
Amount bc{precision=max ap bp} (quantity (convertAmountToCommodity bc a) `op` bq) Nothing
|
||||
Amount bc{precision=max ap bp} (quantity (amountWithCommodity bc a) `op` bq) Nothing
|
||||
|
||||
-- | Convert an amount to the specified commodity, ignoring and discarding
|
||||
-- any assigned prices and assuming an exchange rate of 1.
|
||||
convertAmountToCommodity :: Commodity -> Amount -> Amount
|
||||
convertAmountToCommodity c (Amount _ q _) = Amount c q Nothing
|
||||
amountWithCommodity :: Commodity -> Amount -> Amount
|
||||
amountWithCommodity c (Amount _ q _) = Amount c q Nothing
|
||||
|
||||
-- | Convert an amount to the commodity of its assigned price, if any. Notes:
|
||||
-- - price amounts must be MixedAmounts with exactly one component Amount (or there will be a runtime error)
|
||||
@ -327,10 +329,10 @@ isReallyZeroMixedAmountCost :: MixedAmount -> Bool
|
||||
isReallyZeroMixedAmountCost = isReallyZeroMixedAmount . costOfMixedAmount
|
||||
|
||||
-- -- | Convert a mixed amount to the specified commodity, assuming an exchange rate of 1.
|
||||
-- convertMixedAmountToCommodity :: Commodity -> MixedAmount -> Amount
|
||||
-- convertMixedAmountToCommodity c (Mixed as) = Amount c total Nothing
|
||||
-- where
|
||||
-- total = sum $ map (quantity . convertAmountToCommodity c) as
|
||||
mixedAmountWithCommodity :: Commodity -> MixedAmount -> Amount
|
||||
mixedAmountWithCommodity c (Mixed as) = Amount c total Nothing
|
||||
where
|
||||
total = sum $ map (quantity . amountWithCommodity c) as
|
||||
|
||||
-- -- | MixedAmount derived Eq instance in Types.hs doesn't know that we
|
||||
-- -- want $0 = EUR0 = 0. Yet we don't want to drag all this code over there.
|
||||
|
Loading…
Reference in New Issue
Block a user