don't set currency to $ when not specified in ledger
This commit is contained in:
parent
e9f4b32d02
commit
6167dc4ed0
@ -45,20 +45,18 @@ import Ledger.Currency
|
|||||||
tests = runTestTT $ test [
|
tests = runTestTT $ test [
|
||||||
show (dollars 1) ~?= "$1.00"
|
show (dollars 1) ~?= "$1.00"
|
||||||
,show (hours 1) ~?= "1h" -- currently h1.00
|
,show (hours 1) ~?= "1h" -- currently h1.00
|
||||||
,parseAmount "$1" ~?= dollars 1 -- currently 0
|
|
||||||
]
|
]
|
||||||
|
|
||||||
nullamt = dollars 0
|
|
||||||
|
|
||||||
parseAmount :: String -> Amount
|
|
||||||
parseAmount s = nullamt
|
|
||||||
|
|
||||||
instance Show Amount where show = showAmountRounded
|
instance Show Amount where show = showAmountRounded
|
||||||
|
|
||||||
|
-- | Get the string representation of an amount, rounded to its native precision.
|
||||||
|
-- Unlike ledger, we show the decimal digits even if they are all 0, and
|
||||||
|
-- we always show currency symbols on the left.
|
||||||
showAmountRounded :: Amount -> String
|
showAmountRounded :: Amount -> String
|
||||||
showAmountRounded (Amount c q p) =
|
showAmountRounded (Amount c q p) =
|
||||||
(symbol c) ++ ({-punctuatethousands $ -}printf ("%."++show p++"f") q)
|
(symbol c) ++ ({-punctuatethousands $ -}printf ("%."++show p++"f") q)
|
||||||
|
|
||||||
|
-- | Get the string representation of an amount, rounded, or showing just "0" if it's zero.
|
||||||
showAmountRoundedOrZero :: Amount -> String
|
showAmountRoundedOrZero :: Amount -> String
|
||||||
showAmountRoundedOrZero a
|
showAmountRoundedOrZero a
|
||||||
| isZeroAmount a = "0"
|
| isZeroAmount a = "0"
|
||||||
@ -85,7 +83,7 @@ punctuatethousands s =
|
|||||||
instance Num Amount where
|
instance Num Amount where
|
||||||
abs (Amount c q p) = Amount c (abs q) p
|
abs (Amount c q p) = Amount c (abs q) p
|
||||||
signum (Amount c q p) = Amount c (signum q) p
|
signum (Amount c q p) = Amount c (signum q) p
|
||||||
fromInteger i = Amount (getcurrency "$") (fromInteger i) amtintprecision
|
fromInteger i = Amount (getcurrency "") (fromInteger i) amtintprecision
|
||||||
(+) = amountop (+)
|
(+) = amountop (+)
|
||||||
(-) = amountop (-)
|
(-) = amountop (-)
|
||||||
(*) = amountop (*)
|
(*) = amountop (*)
|
||||||
@ -105,4 +103,4 @@ toCurrency :: Currency -> Amount -> Amount
|
|||||||
toCurrency newc (Amount oldc q p) =
|
toCurrency newc (Amount oldc q p) =
|
||||||
Amount newc (q * (conversionRate oldc newc)) p
|
Amount newc (q * (conversionRate oldc newc)) p
|
||||||
|
|
||||||
|
nullamt = Amount (getcurrency "") 0 2
|
||||||
|
|||||||
@ -43,7 +43,7 @@ showTransactionsWithBalances [] _ = []
|
|||||||
showTransactionsWithBalances ts b =
|
showTransactionsWithBalances ts b =
|
||||||
unlines $ showTransactionsWithBalances' ts dummyt b
|
unlines $ showTransactionsWithBalances' ts dummyt b
|
||||||
where
|
where
|
||||||
dummyt = Transaction 0 "" "" "" (dollars 0)
|
dummyt = Transaction 0 "" "" "" nullamt
|
||||||
showTransactionsWithBalances' [] _ _ = []
|
showTransactionsWithBalances' [] _ _ = []
|
||||||
showTransactionsWithBalances' (t:ts) tprev b =
|
showTransactionsWithBalances' (t:ts) tprev b =
|
||||||
(if sameentry t tprev
|
(if sameentry t tprev
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user