mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-20 02:37:12 +03:00
allow --depth=0 in summarised register reports, to aggregate top-level accounts
This commit is contained in:
parent
ecd7575b5e
commit
63999d36fe
@ -78,11 +78,12 @@ summariseTransactionsInDateSpan (DateSpan b e) entryno depth showempty ts
|
||||
| otherwise = filter (not . isZeroMixedAmount . amount) summaryts
|
||||
-- aggregate balances by account, like cacheLedger:
|
||||
anames = sort $ nub $ map account ts
|
||||
allnames = expandAccountNames anames
|
||||
allnames = expandAccountNames anames ++ [""]
|
||||
-- from cacheLedger:
|
||||
txnmap = Map.union (transactionsByAccount ts) (Map.fromList [(a,[]) | a <- allnames])
|
||||
txnsof = (txnmap !) -- a's txns
|
||||
subacctsof a = filter (a `isAccountNamePrefixOf`) anames -- a plus any subaccounts
|
||||
isunder a b = null a || a `isAccountNamePrefixOf` b
|
||||
subacctsof a = filter (isunder a) anames -- a plus any subaccounts
|
||||
subtxnsof a = concat [txnsof a | a <- [a] ++ subacctsof a] -- a's and subaccounts' txns
|
||||
inclusivebalmap = Map.union -- subaccount-including balances for all accounts
|
||||
(Map.fromList [(a,(sumTransactions $ subtxnsof a)) | a <- allnames])
|
||||
|
35
Tests.hs
35
Tests.hs
@ -194,36 +194,31 @@ misc_tests = TestList [
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31"}
|
||||
]
|
||||
|
||||
("2008/01/01","2009/01/01",0,Nothing,False,[
|
||||
nulltxn{description="desc",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 2]}
|
||||
,nulltxn{description="desc",account="expenses:food", amount=Mixed [dollars 4]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 8]}
|
||||
]) `gives`
|
||||
let ts = [nulltxn{description="desc",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 2]}
|
||||
,nulltxn{description="desc",account="expenses:food", amount=Mixed [dollars 4]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 8]}
|
||||
]
|
||||
("2008/01/01","2009/01/01",0,Nothing,False,ts) `gives`
|
||||
[
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses:food", amount=Mixed [dollars 4]}
|
||||
,nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses:food:dining", amount=Mixed [dollars 10]}
|
||||
,nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
||||
]
|
||||
|
||||
("2008/01/01","2009/01/01",0,Just 2,False,[
|
||||
nulltxn{description="desc",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 2]}
|
||||
,nulltxn{description="desc",account="expenses:food", amount=Mixed [dollars 4]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 8]}
|
||||
]) `gives`
|
||||
("2008/01/01","2009/01/01",0,Just 2,False,ts) `gives`
|
||||
[
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses:food", amount=Mixed [dollars 15]}
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses:food",amount=Mixed [dollars 15]}
|
||||
]
|
||||
|
||||
("2008/01/01","2009/01/01",0,Just 1,False,[
|
||||
nulltxn{description="desc",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 2]}
|
||||
,nulltxn{description="desc",account="expenses:food", amount=Mixed [dollars 4]}
|
||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 8]}
|
||||
]) `gives`
|
||||
("2008/01/01","2009/01/01",0,Just 1,False,ts) `gives`
|
||||
[
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses", amount=Mixed [dollars 15]}
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses",amount=Mixed [dollars 15]}
|
||||
]
|
||||
|
||||
("2008/01/01","2009/01/01",0,Just 0,False,ts) `gives`
|
||||
[
|
||||
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="",amount=Mixed [dollars 15]}
|
||||
]
|
||||
,
|
||||
"ledgerentry" ~: do
|
||||
|
Loading…
Reference in New Issue
Block a user