register: also fix date (or date2) sorting of postings (#184)
This commit is contained in:
parent
6512233ac1
commit
c528a4c14f
@ -18,6 +18,7 @@ where
|
|||||||
|
|
||||||
import Data.List
|
import Data.List
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
import Data.Ord (comparing)
|
||||||
import Data.Time.Calendar
|
import Data.Time.Calendar
|
||||||
import Safe (headMay, lastMay)
|
import Safe (headMay, lastMay)
|
||||||
import Test.HUnit
|
import Test.HUnit
|
||||||
@ -50,7 +51,8 @@ postingsReport opts q j = (totallabel, items)
|
|||||||
depth = queryDepth q
|
depth = queryDepth q
|
||||||
depthless = filterQuery (not . queryIsDepth)
|
depthless = filterQuery (not . queryIsDepth)
|
||||||
datelessq = filterQuery (not . queryIsDate) q
|
datelessq = filterQuery (not . queryIsDate) q
|
||||||
dateqcons = if date2_ opts then Date2 else Date
|
(dateqcons,pdate) | date2_ opts = (Date2, postingDate2)
|
||||||
|
| otherwise = (Date, postingDate)
|
||||||
requestedspan = dbg "requestedspan" $ queryDateSpan (date2_ opts) q -- span specified by -b/-e/-p options and query args
|
requestedspan = dbg "requestedspan" $ queryDateSpan (date2_ opts) q -- span specified by -b/-e/-p options and query args
|
||||||
requestedspan' = dbg "requestedspan'" $ requestedspan `spanDefaultsFrom` journalDateSpan (date2_ opts) j -- if open-ended, close it using the journal's end dates
|
requestedspan' = dbg "requestedspan'" $ requestedspan `spanDefaultsFrom` journalDateSpan (date2_ opts) j -- if open-ended, close it using the journal's end dates
|
||||||
intervalspans = dbg "intervalspans" $ splitSpan (intervalFromOpts opts) requestedspan' -- interval spans enclosing it
|
intervalspans = dbg "intervalspans" $ splitSpan (intervalFromOpts opts) requestedspan' -- interval spans enclosing it
|
||||||
@ -62,11 +64,12 @@ postingsReport opts q j = (totallabel, items)
|
|||||||
reportq = dbg "reportq" $ depthless $ And [datelessq, beforeendq] -- user's query with no start date, end date on an interval boundary and no depth limit
|
reportq = dbg "reportq" $ depthless $ And [datelessq, beforeendq] -- user's query with no start date, end date on an interval boundary and no depth limit
|
||||||
|
|
||||||
pstoend =
|
pstoend =
|
||||||
dbg "ps4" $ map (filterPostingAmount symq) $ -- remove amount parts which the query's cur: terms would exclude
|
dbg "ps4" $ sortBy (comparing pdate) $ -- sort postings by date (or date2)
|
||||||
dbg "ps3" $ (if related_ opts then concatMap relatedPostings else id) $ -- with -r, replace each with its sibling postings
|
dbg "ps3" $ map (filterPostingAmount symq) $ -- remove amount parts which the query's cur: terms would exclude
|
||||||
dbg "ps2" $ filter (reportq `matchesPosting`) $ -- filter postings by the query, including before the report start date, ignoring depth
|
dbg "ps2" $ (if related_ opts then concatMap relatedPostings else id) $ -- with -r, replace each with its sibling postings
|
||||||
dbg "ps1" $ journalPostings $ journalSelectingAmountFromOpts opts j
|
dbg "ps1" $ filter (reportq `matchesPosting`) $ -- filter postings by the query, including before the report start date, ignoring depth
|
||||||
(precedingps, reportps) = dbg "precedingps, reportps" $ partition (beforestartq `matchesPosting`) pstoend
|
journalPostings $ journalSelectingAmountFromOpts opts j
|
||||||
|
(precedingps, reportps) = dbg "precedingps, reportps" $ span (beforestartq `matchesPosting`) pstoend
|
||||||
|
|
||||||
empty = queryEmpty q
|
empty = queryEmpty q
|
||||||
-- displayexpr = display_ opts -- XXX
|
-- displayexpr = display_ opts -- XXX
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user