fix: balance: Balance reports should consider date: queries when calculating

report span with --date2. (#1745)
This commit is contained in:
Stephen Morgan 2021-11-05 17:09:41 +11:00 committed by Simon Michael
parent 41bde20095
commit 7597e525a3
3 changed files with 26 additions and 7 deletions

View File

@ -479,7 +479,7 @@ queryTermDateSpan _ = Nothing
queryDateSpan :: Bool -> Query -> DateSpan
queryDateSpan secondary (Or qs) = spansUnion $ 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 _ _ = nulldatespan

View File

@ -1,5 +1,4 @@
hledger -f - balance -p 'in 2009' --date2 -N
<<<
<
2009/1/1 x
a 1
b
@ -7,7 +6,23 @@ hledger -f - balance -p 'in 2009' --date2 -N
2009/1/1=2010/1/1 x
a 10
b
>>>
# 1. --date2 ignores postings with secondary dates outside the range
$ hledger -f - balance -p 'in 2009' --date2 -N
1 a
-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

View File

@ -28,16 +28,20 @@ hledger -f- register -p 2014/1/2 --date2
2014-01-02 (a) 1 1
>>>=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
<<<
2014/1/1=1/2
(a) 1
2014/1/3
2014/1/2
(b) 1
2014/1/2=1/3
(C) 1
>>>
2014-01-02 (a) 1 1
2014-01-02 (b) 1 2
>>>=0
# 4. date2: matches the secondary date (but does not necessarily display it)