lib: more history awareness for account transactions report #392
The account transactions report (and eg hledger-ui's register screen) no longer aborts showing historical balances when -E/--empty/nonzero mode or cur: are in effect.
This commit is contained in:
		
							parent
							
								
									974b1e3be0
								
							
						
					
					
						commit
						156922e419
					
				| @ -26,6 +26,7 @@ module Hledger.Query ( | ||||
|   queryIsSym, | ||||
|   queryIsReal, | ||||
|   queryIsStatus, | ||||
|   queryIsEmpty, | ||||
|   queryStartDate, | ||||
|   queryEndDate, | ||||
|   queryDateSpan, | ||||
| @ -480,6 +481,10 @@ queryIsStatus :: Query -> Bool | ||||
| queryIsStatus (Status _) = True | ||||
| queryIsStatus _ = False | ||||
| 
 | ||||
| queryIsEmpty :: Query -> Bool | ||||
| queryIsEmpty (Empty _) = True | ||||
| queryIsEmpty _ = False | ||||
| 
 | ||||
| -- | Does this query specify a start date and nothing else (that would | ||||
| -- filter postings prior to the date) ? | ||||
| -- When the flag is true, look for a starting secondary date instead. | ||||
|  | ||||
| @ -149,9 +149,9 @@ accountTransactionsReport opts j reportq thisacctq = (label, items) | ||||
| 
 | ||||
|     -- starting balance: if we are filtering by a start date and nothing else, | ||||
|     -- this is the sum of the (possibly realness or status-filtered) postings | ||||
|     -- to this account before that date; otherwise zero. | ||||
|     -- to this account before that date; otherwise start from zero. | ||||
|     (startbal,label) | queryIsNull q                        = (nullmixedamt,        balancelabel) | ||||
|                      | queryIsStartDateOnly (date2_ opts) q = (sumPostings priorps, balancelabel) | ||||
|                      | queryIsStartBalancePreserving opts q = (sumPostings priorps, balancelabel) | ||||
|                      | otherwise                            = (nullmixedamt,        totallabel) | ||||
|                      where | ||||
|                        priorps = -- ltrace "priorps" $ | ||||
| @ -165,6 +165,20 @@ accountTransactionsReport opts j reportq thisacctq = (label, items) | ||||
|     items = reverse $ -- see also registerChartHtml | ||||
|             accountTransactionsReportItems q thisacctq startbal negate ts | ||||
| 
 | ||||
| -- Assuming this query specifies a start date, if we switch that to | ||||
| -- an end date, will the resulting query calculate an accurate | ||||
| -- starting balance ? | ||||
| -- XXX WIP, probably misses many balance-preserving cases, | ||||
| -- not sure how this should work. | ||||
| queryIsStartBalancePreserving :: ReportOpts -> Query -> Bool | ||||
| queryIsStartBalancePreserving opts q = | ||||
|   queryIsStartDateOnly (date2_ opts) $ | ||||
|   filterQuery (\q -> not ( | ||||
|                          queryIsEmpty q | ||||
|                       || queryIsSym q | ||||
|                       -- || queryIsReal q)) | ||||
|                       )) q | ||||
| 
 | ||||
| totallabel = "Running Total" | ||||
| balancelabel = "Historical Balance" | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user