fix the print command
This commit is contained in:
parent
1312992000
commit
1607661b87
@ -49,7 +49,7 @@ pcommentwidth = no limit -- 22
|
||||
-}
|
||||
showEntry :: Entry -> String
|
||||
showEntry e =
|
||||
unlines $ [precedingcomment ++ description] ++ (showtxns $ etransactions e) ++ [""]
|
||||
unlines $ [{-precedingcomment ++ -}description] ++ (showtxns $ etransactions e) ++ [""]
|
||||
where
|
||||
precedingcomment = epreceding_comment_lines e
|
||||
description = concat [date, status, code, desc] -- , comment]
|
||||
|
||||
@ -50,7 +50,7 @@ filterRawLedger begin end pats clearedonly realonly =
|
||||
filterRawLedgerEntriesByDate begin end .
|
||||
filterRawLedgerEntriesByDescription pats
|
||||
|
||||
-- | Keep only entries whose description matches the description pattern.
|
||||
-- | Keep only entries whose description matches the description patterns.
|
||||
filterRawLedgerEntriesByDescription :: [String] -> RawLedger -> RawLedger
|
||||
filterRawLedgerEntriesByDescription pats (RawLedger ms ps es f) =
|
||||
RawLedger ms ps (filter matchdesc es) f
|
||||
@ -80,6 +80,11 @@ filterRawLedgerTransactionsByRealness True (RawLedger ms ps es f) =
|
||||
RawLedger ms ps (map filtertxns es) f
|
||||
where filtertxns e@Entry{etransactions=ts} = e{etransactions=filter isReal ts}
|
||||
|
||||
-- | Keep only entries which affect accounts matched by the account patterns.
|
||||
filterRawLedgerEntriesByAccount :: [String] -> RawLedger -> RawLedger
|
||||
filterRawLedgerEntriesByAccount apats (RawLedger ms ps es f) =
|
||||
RawLedger ms ps (filter (any (matchpats apats . taccount) . etransactions) es) f
|
||||
|
||||
-- | Give all a ledger's amounts their canonical display settings. That
|
||||
-- is, in each commodity, amounts will use the display settings of the
|
||||
-- first amount detected, and the greatest precision of the amounts
|
||||
|
||||
3
NOTES
3
NOTES
@ -6,8 +6,6 @@ implementations were its consequences." --Niklaus Wirth
|
||||
|
||||
* to do
|
||||
** errors
|
||||
*** make account balances reflect account filtering
|
||||
*** print command doesn't filter by account ?
|
||||
*** ? in description or amount gives "too many blank transactions"
|
||||
*** parse commented lines at end of file
|
||||
*** display mixed amounts vertically, not horizontally
|
||||
@ -67,6 +65,7 @@ implementations were its consequences." --Niklaus Wirth
|
||||
*** ledger shows description comments as part of description
|
||||
*** ledger shows small time amounts in minutes
|
||||
*** ledger can get timelog entry balance wrong, see mail list
|
||||
*** hledger print puts a blank line after the entry, not before it
|
||||
** things I want to know
|
||||
*** time
|
||||
where have I been spending my time in recent weeks ?
|
||||
|
||||
@ -15,4 +15,7 @@ print' :: [Opt] -> [String] -> Ledger -> IO ()
|
||||
print' opts args l = putStr $ showEntries opts args l
|
||||
|
||||
showEntries :: [Opt] -> [String] -> Ledger -> String
|
||||
showEntries opts args l = concatMap showEntry $ entries $ rawledger l
|
||||
showEntries opts args l = concatMap showEntry $ filteredentries
|
||||
where
|
||||
filteredentries = entries $ filterRawLedgerEntriesByAccount apats $ rawledger l
|
||||
(apats,_) = parseAccountDescriptionArgs args
|
||||
|
||||
15
Tests.hs
15
Tests.hs
@ -30,6 +30,7 @@ tests = [TestList []
|
||||
,misc_tests
|
||||
,balancereportacctnames_tests
|
||||
,balancecommand_tests
|
||||
,printcommand_tests
|
||||
,registercommand_tests
|
||||
]
|
||||
|
||||
@ -271,6 +272,20 @@ balancecommand_tests = TestList [
|
||||
l <- ledgerfromfile pats "sample.ledger"
|
||||
assertequal e (showBalanceReport opts pats l)
|
||||
|
||||
printcommand_tests = TestList [
|
||||
"print with account patterns" ~:
|
||||
do
|
||||
let pats = ["expenses"]
|
||||
l <- ledgerfromfile pats "sample.ledger"
|
||||
assertequal (
|
||||
"2007/01/01 * eat & shop\n" ++
|
||||
" expenses:food $1\n" ++
|
||||
" expenses:supplies $1\n" ++
|
||||
" assets:cash $-2\n" ++
|
||||
"\n")
|
||||
$ showEntries [] pats l
|
||||
]
|
||||
|
||||
registercommand_tests = TestList [
|
||||
"register report" ~:
|
||||
do
|
||||
|
||||
Loading…
Reference in New Issue
Block a user