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])
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										25
									
								
								Tests.hs
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Tests.hs
									
									
									
									
									
								
							@ -194,37 +194,32 @@ 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
 | 
				
			||||||
    assertparseequal price1 (parseWithCtx ledgerHistoricalPrice price1_str)
 | 
					    assertparseequal price1 (parseWithCtx ledgerHistoricalPrice price1_str)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user