fix edate: matcher, should match actual date if no effective date defined
This commit is contained in:
parent
77ca58269a
commit
789be240b6
@ -204,9 +204,8 @@ matchesPosting (MatchDate True span) p =
|
|||||||
where d = maybe Nothing (Just . tdate) $ ptransaction p
|
where d = maybe Nothing (Just . tdate) $ ptransaction p
|
||||||
matchesPosting (MatchDate False span) p = not $ (MatchDate True span) `matchesPosting` p
|
matchesPosting (MatchDate False span) p = not $ (MatchDate True span) `matchesPosting` p
|
||||||
matchesPosting (MatchEDate True span) p =
|
matchesPosting (MatchEDate True span) p =
|
||||||
case d of Just d -> spanContainsDate span d
|
case postingEffectiveDate p of Just d -> spanContainsDate span d
|
||||||
Nothing -> False
|
Nothing -> False
|
||||||
where d = maybe Nothing teffectivedate $ ptransaction p
|
|
||||||
matchesPosting (MatchEDate False span) p = not $ (MatchEDate True span) `matchesPosting` p
|
matchesPosting (MatchEDate False span) p = not $ (MatchEDate True span) `matchesPosting` p
|
||||||
matchesPosting (MatchStatus True v) p = v == postingCleared p
|
matchesPosting (MatchStatus True v) p = v == postingCleared p
|
||||||
matchesPosting (MatchStatus False v) p = v /= postingCleared p
|
matchesPosting (MatchStatus False v) p = v /= postingCleared p
|
||||||
@ -228,8 +227,7 @@ matchesTransaction m@(MatchAcct True _) t = any (m `matchesPosting`) $ tpostings
|
|||||||
matchesTransaction (MatchAcct False r) t = not $ (MatchAcct True r) `matchesTransaction` t
|
matchesTransaction (MatchAcct False r) t = not $ (MatchAcct True r) `matchesTransaction` t
|
||||||
matchesTransaction (MatchDate True span) t = spanContainsDate span $ tdate t
|
matchesTransaction (MatchDate True span) t = spanContainsDate span $ tdate t
|
||||||
matchesTransaction (MatchDate False span) t = not $ (MatchDate True span) `matchesTransaction` t
|
matchesTransaction (MatchDate False span) t = not $ (MatchDate True span) `matchesTransaction` t
|
||||||
matchesTransaction (MatchEDate True span) Transaction{teffectivedate=Just d} = spanContainsDate span d
|
matchesTransaction (MatchEDate True span) t = spanContainsDate span $ transactionEffectiveDate t
|
||||||
matchesTransaction _ Transaction{teffectivedate=Nothing} = False
|
|
||||||
matchesTransaction (MatchEDate False span) t = not $ (MatchEDate True span) `matchesTransaction` t
|
matchesTransaction (MatchEDate False span) t = not $ (MatchEDate True span) `matchesTransaction` t
|
||||||
matchesTransaction (MatchStatus True v) t = v == tstatus t
|
matchesTransaction (MatchStatus True v) t = v == tstatus t
|
||||||
matchesTransaction (MatchStatus False v) t = v /= tstatus t
|
matchesTransaction (MatchStatus False v) t = v /= tstatus t
|
||||||
@ -237,6 +235,13 @@ matchesTransaction (MatchReal True v) t = v == hasRealPostings t
|
|||||||
matchesTransaction (MatchReal False v) t = v /= hasRealPostings t
|
matchesTransaction (MatchReal False v) t = v /= hasRealPostings t
|
||||||
matchesTransaction _ _ = False
|
matchesTransaction _ _ = False
|
||||||
|
|
||||||
|
postingEffectiveDate :: Posting -> Maybe Day
|
||||||
|
postingEffectiveDate p = maybe Nothing (Just . transactionEffectiveDate) $ ptransaction p
|
||||||
|
|
||||||
|
transactionEffectiveDate :: Transaction -> Day
|
||||||
|
transactionEffectiveDate t = case teffectivedate t of Just d -> d
|
||||||
|
Nothing -> tdate t
|
||||||
|
|
||||||
-- | Does the match expression match this account ?
|
-- | Does the match expression match this account ?
|
||||||
-- A matching in: clause is also considered a match.
|
-- A matching in: clause is also considered a match.
|
||||||
matchesAccount :: Matcher -> AccountName -> Bool
|
matchesAccount :: Matcher -> AccountName -> Bool
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user