balance: respect all query terms, not just acct
This commit is contained in:
		
							parent
							
								
									a96362118c
								
							
						
					
					
						commit
						e6de8df97f
					
				| @ -701,12 +701,13 @@ type AccountsReportItem = (AccountName  -- full account name | ||||
| -- | Select accounts, and get their balances at the end of the selected | ||||
| -- period, and misc. display information, for an accounts report. | ||||
| accountsReport :: ReportOpts -> Query -> Journal -> AccountsReport | ||||
| accountsReport opts query j = (items, total)  | ||||
| accountsReport opts q j = (items, total) | ||||
|     where | ||||
|       -- don't do depth filtering until the end | ||||
|       q' = filterQuery (not . queryIsDepth) query | ||||
|       l =  journalToLedger q' $ journalSelectingDateFromOpts opts $ journalSelectingAmountFromOpts opts j | ||||
|       acctnames = filter (query `matchesAccount`) $ journalAccountNames j | ||||
|       q1 = filterQuery (not . queryIsDepth) q | ||||
|       q2 = filterQuery queryIsDepth q | ||||
|       l =  journalToLedger q1 $ journalSelectingDateFromOpts opts $ journalSelectingAmountFromOpts opts j | ||||
|       acctnames = filter (q2 `matchesAccount`) $ ledgerAccountNames l | ||||
|       interestingaccts | no_elide_ opts = acctnames | ||||
|                        | otherwise = filter (isInteresting opts l) acctnames | ||||
|       items = map mkitem interestingaccts | ||||
| @ -785,6 +786,30 @@ tests_accountsReport = [ | ||||
|      ], | ||||
|      Mixed [nullamt]) | ||||
| 
 | ||||
|   ,"accountsReport with desc:" ~: do | ||||
|    (defreportopts{query_="desc:income"}, samplejournal) `gives` | ||||
|     ([ | ||||
|       ("assets:bank:checking","assets:bank:checking",0,amount' "$1.00") | ||||
|      ,("income:salary","income:salary",0, amount' "$-1.00") | ||||
|      ], | ||||
|      Mixed [nullamt]) | ||||
| 
 | ||||
|   ,"accountsReport with not:desc:" ~: do | ||||
|    (defreportopts{query_="not:desc:income"}, samplejournal) `gives` | ||||
|     ([ | ||||
|       ("assets","assets",0, amount' "$-2.00") | ||||
|      ,("assets:bank","bank",1, Mixed [nullamt]) | ||||
|      ,("assets:bank:checking","checking",2,amount' "$-1.00") | ||||
|      ,("assets:bank:saving","saving",2, amount' "$1.00") | ||||
|      ,("assets:cash","cash",1, amount' "$-2.00") | ||||
|      ,("expenses","expenses",0, amount' "$2.00") | ||||
|      ,("expenses:food","food",1, amount' "$1.00") | ||||
|      ,("expenses:supplies","supplies",1, amount' "$1.00") | ||||
|      ,("income:gifts","income:gifts",0, amount' "$-1.00") | ||||
|      ,("liabilities:debts","liabilities:debts",0, amount' "$1.00") | ||||
|      ], | ||||
|      Mixed [nullamt]) | ||||
| 
 | ||||
| 
 | ||||
| {- | ||||
|     ,"accounts report with account pattern o" ~: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user