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
|
| otherwise = filter (not . isZeroMixedAmount . amount) summaryts
|
||||||
-- aggregate balances by account, like cacheLedger:
|
-- aggregate balances by account, like cacheLedger:
|
||||||
anames = sort $ nub $ map account ts
|
anames = sort $ nub $ map account ts
|
||||||
allnames = expandAccountNames anames
|
allnames = expandAccountNames anames ++ [""]
|
||||||
-- from cacheLedger:
|
-- from cacheLedger:
|
||||||
txnmap = Map.union (transactionsByAccount ts) (Map.fromList [(a,[]) | a <- allnames])
|
txnmap = Map.union (transactionsByAccount ts) (Map.fromList [(a,[]) | a <- allnames])
|
||||||
txnsof = (txnmap !) -- a's txns
|
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
|
subtxnsof a = concat [txnsof a | a <- [a] ++ subacctsof a] -- a's and subaccounts' txns
|
||||||
inclusivebalmap = Map.union -- subaccount-including balances for all accounts
|
inclusivebalmap = Map.union -- subaccount-including balances for all accounts
|
||||||
(Map.fromList [(a,(sumTransactions $ subtxnsof a)) | a <- allnames])
|
(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"}
|
nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31"}
|
||||||
]
|
]
|
||||||
|
|
||||||
("2008/01/01","2009/01/01",0,Nothing,False,[
|
let ts = [nulltxn{description="desc",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
||||||
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:dining", amount=Mixed [dollars 2]}
|
,nulltxn{description="desc",account="expenses:food", amount=Mixed [dollars 4]}
|
||||||
,nulltxn{description="desc",account="expenses:food", amount=Mixed [dollars 4]}
|
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 8]}
|
||||||
,nulltxn{description="desc",account="expenses:food:dining", amount=Mixed [dollars 8]}
|
]
|
||||||
]) `gives`
|
("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", 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:dining", amount=Mixed [dollars 10]}
|
||||||
,nulltxn{date=parsedate "2008/01/01",description="- 2008/12/31",account="expenses:food:groceries",amount=Mixed [dollars 1]}
|
,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,[
|
("2008/01/01","2009/01/01",0,Just 2,False,ts) `gives`
|
||||||
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`
|
|
||||||
[
|
[
|
||||||
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,[
|
("2008/01/01","2009/01/01",0,Just 1,False,ts) `gives`
|
||||||
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`
|
|
||||||
[
|
[
|
||||||
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
|
"ledgerentry" ~: do
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user