sign testing for amounts
This commit is contained in:
parent
c68eec5afb
commit
c42496b134
@ -153,6 +153,10 @@ isReallyZeroAmount :: Amount -> Bool
|
||||
isReallyZeroAmount = null . filter (`elem` "123456789") . printf ("%."++show zeroprecision++"f") . quantity
|
||||
where zeroprecision = 8
|
||||
|
||||
-- | Is this amount negative ? The price is ignored.
|
||||
isNegativeAmount :: Amount -> Bool
|
||||
isNegativeAmount Amount{quantity=q} = q < 0
|
||||
|
||||
-- | Access a mixed amount's components.
|
||||
amounts :: MixedAmount -> [Amount]
|
||||
amounts (Mixed as) = as
|
||||
@ -166,6 +170,13 @@ isZeroMixedAmount = all isZeroAmount . amounts . normaliseMixedAmount
|
||||
isReallyZeroMixedAmount :: MixedAmount -> Bool
|
||||
isReallyZeroMixedAmount = all isReallyZeroAmount . amounts . normaliseMixedAmount
|
||||
|
||||
-- | Is this mixed amount negative, if it can be normalised to a single commodity ?
|
||||
isNegativeMixedAmount :: MixedAmount -> Maybe Bool
|
||||
isNegativeMixedAmount m = case as of [a] -> Just $ isNegativeAmount a
|
||||
_ -> Nothing
|
||||
where
|
||||
as = amounts $ normaliseMixedAmount m
|
||||
|
||||
-- | Is this mixed amount "really" zero, after converting to cost
|
||||
-- commodities where possible ?
|
||||
isReallyZeroMixedAmountCost :: MixedAmount -> Bool
|
||||
|
||||
Loading…
Reference in New Issue
Block a user