fix: balance: Balance reports should consider date: queries when calculating
report span with --date2. (#1745)
This commit is contained in:
		
							parent
							
								
									41bde20095
								
							
						
					
					
						commit
						7597e525a3
					
				| @ -479,7 +479,7 @@ queryTermDateSpan _ = Nothing | |||||||
| queryDateSpan :: Bool -> Query -> DateSpan | queryDateSpan :: Bool -> Query -> DateSpan | ||||||
| queryDateSpan secondary (Or qs)  = spansUnion     $ map (queryDateSpan secondary) qs | queryDateSpan secondary (Or qs)  = spansUnion     $ map (queryDateSpan secondary) qs | ||||||
| queryDateSpan secondary (And qs) = spansIntersect $ map (queryDateSpan secondary) qs | queryDateSpan secondary (And qs) = spansIntersect $ map (queryDateSpan secondary) qs | ||||||
| queryDateSpan False (Date span)  = span | queryDateSpan _     (Date span)  = span | ||||||
| queryDateSpan True (Date2 span)  = span | queryDateSpan True (Date2 span)  = span | ||||||
| queryDateSpan _ _                = nulldatespan | queryDateSpan _ _                = nulldatespan | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,4 @@ | |||||||
| hledger -f - balance -p 'in 2009' --date2 -N | < | ||||||
| <<< |  | ||||||
| 2009/1/1 x | 2009/1/1 x | ||||||
|   a  1 |   a  1 | ||||||
|   b |   b | ||||||
| @ -7,7 +6,23 @@ hledger -f - balance -p 'in 2009' --date2 -N | |||||||
| 2009/1/1=2010/1/1 x | 2009/1/1=2010/1/1 x | ||||||
|   a  10 |   a  10 | ||||||
|   b |   b | ||||||
| >>> | 
 | ||||||
|  | # 1. --date2 ignores postings with secondary dates outside the range | ||||||
|  | $ hledger -f - balance -p 'in 2009' --date2 -N | ||||||
|                    1  a |                    1  a | ||||||
|                   -1  b |                   -1  b | ||||||
| >>>=0 | 
 | ||||||
|  | # 2. Above but with date: queries | ||||||
|  | $ hledger -f - balance date:2009 --date2 -N | ||||||
|  |                    1  a | ||||||
|  |                   -1  b | ||||||
|  | 
 | ||||||
|  | # 3. --date2 sees postings with secondary dates inside the range | ||||||
|  | $ hledger -f - balance -p 'in 2010' --date2 -N | ||||||
|  |                   10  a | ||||||
|  |                  -10  b | ||||||
|  | 
 | ||||||
|  | # 4. Above but with date: queries | ||||||
|  | $ hledger -f - balance date:2010 --date2 -N | ||||||
|  |                   10  a | ||||||
|  |                  -10  b | ||||||
|  | |||||||
| @ -28,16 +28,20 @@ hledger -f- register -p 2014/1/2 --date2 | |||||||
| 2014-01-02                      (a)                              1             1 | 2014-01-02                      (a)                              1             1 | ||||||
| >>>=0 | >>>=0 | ||||||
| 
 | 
 | ||||||
| # 3. --date2 causes date: to match the secondary date | # 3. --date2 causes date: to match the secondary date (or the primary date, if there is no secondary) | ||||||
| hledger -f- register date:2014/1/2 --date2 | hledger -f- register date:2014/1/2 --date2 | ||||||
| <<< | <<< | ||||||
| 2014/1/1=1/2 | 2014/1/1=1/2 | ||||||
|   (a)  1 |   (a)  1 | ||||||
| 
 | 
 | ||||||
| 2014/1/3 | 2014/1/2 | ||||||
|   (b)  1 |   (b)  1 | ||||||
|  | 
 | ||||||
|  | 2014/1/2=1/3 | ||||||
|  |   (C)  1 | ||||||
| >>> | >>> | ||||||
| 2014-01-02                      (a)                              1             1 | 2014-01-02                      (a)                              1             1 | ||||||
|  | 2014-01-02                      (b)                              1             2 | ||||||
| >>>=0 | >>>=0 | ||||||
| 
 | 
 | ||||||
| # 4. date2: matches the secondary date (but does not necessarily display it) | # 4. date2: matches the secondary date (but does not necessarily display it) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user