fix(letter): expiry and valid dates were wrong
This commit is contained in:
parent
0a93f79f4e
commit
f8c36636ff
@ -301,6 +301,11 @@ addLocalDays n utct = localTimeToUTCTZ appTZ newLocal
|
|||||||
newDay = addDays n oldDay
|
newDay = addDays n oldDay
|
||||||
newLocal = oldLocal { localDay = newDay }
|
newLocal = oldLocal { localDay = newDay }
|
||||||
|
|
||||||
|
-- This is just a Remineder
|
||||||
|
-- addMonths :: Integer -> UTCTime -> UTCTime
|
||||||
|
-- addMonths = addGregorianMonthsRollOver
|
||||||
|
|
||||||
|
|
||||||
----------------------
|
----------------------
|
||||||
-- CalendarDiffDays --
|
-- CalendarDiffDays --
|
||||||
----------------------
|
----------------------
|
||||||
|
|||||||
@ -19,10 +19,14 @@ import qualified Database.Esqueleto.Utils as E
|
|||||||
|
|
||||||
import Handler.Utils.Widgets (statusHtml)
|
import Handler.Utils.Widgets (statusHtml)
|
||||||
|
|
||||||
|
-- | Compute new valid date from old one and from validDuration in months
|
||||||
|
-- Mainly to document which add months functions to use
|
||||||
|
computeNewValidDate :: Integral a => a -> Day -> Day
|
||||||
|
computeNewValidDate = addGregorianMonthsRollOver . toInteger
|
||||||
|
|
||||||
statusQualificationBlock :: Bool -> Html
|
statusQualificationBlock :: Bool -> Html
|
||||||
statusQualificationBlock s = statusHtml (bool Error Success s) $ iconQualificationBlock s
|
statusQualificationBlock s = statusHtml (bool Error Success s) $ iconQualificationBlock s
|
||||||
|
|
||||||
|
|
||||||
-- needs refactoring, probbably no longer helpful
|
-- needs refactoring, probbably no longer helpful
|
||||||
mkQualificationBlocked :: QualificationStandardReason -> UTCTime -> QualificationUserId -> QualificationUserBlock
|
mkQualificationBlocked :: QualificationStandardReason -> UTCTime -> QualificationUserId -> QualificationUserBlock
|
||||||
mkQualificationBlocked reason qualificationUserBlockFrom qualificationUserBlockQualificationUser = QualificationUserBlock{..}
|
mkQualificationBlocked reason qualificationUserBlockFrom qualificationUserBlockQualificationUser = QualificationUserBlock{..}
|
||||||
@ -190,7 +194,7 @@ renewValidQualificationUsers qid reason renewalTime uids =
|
|||||||
maxValidTo = addGregorianMonthsRollOver (toInteger $ renewalMonths `div` 2) cutoffday
|
maxValidTo = addGregorianMonthsRollOver (toInteger $ renewalMonths `div` 2) cutoffday
|
||||||
quEnts = filter (\q -> maxValidTo >= (q ^. _entityVal . _qualificationUserValidUntil)) quEntsAll
|
quEnts = filter (\q -> maxValidTo >= (q ^. _entityVal . _qualificationUserValidUntil)) quEntsAll
|
||||||
forM_ quEnts $ \(Entity quId QualificationUser{..}) -> do
|
forM_ quEnts $ \(Entity quId QualificationUser{..}) -> do
|
||||||
let newValidTo = addGregorianMonthsRollOver (toInteger renewalMonths) qualificationUserValidUntil
|
let newValidTo = computeNewValidDate renewalMonths qualificationUserValidUntil
|
||||||
update quId [ QualificationUserValidUntil =. newValidTo
|
update quId [ QualificationUserValidUntil =. newValidTo
|
||||||
, QualificationUserLastRefresh =. cutoffday
|
, QualificationUserLastRefresh =. cutoffday
|
||||||
]
|
]
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import Data.FileEmbed (embedFile)
|
|||||||
|
|
||||||
import Utils.Print.Letters
|
import Utils.Print.Letters
|
||||||
import Handler.Utils.Widgets (nameHtml) -- , nameHtml')
|
import Handler.Utils.Widgets (nameHtml) -- , nameHtml')
|
||||||
|
import Handler.Utils.Qualification (computeNewValidDate)
|
||||||
|
|
||||||
-- TODO: refactor me and turn me into a qualification property (elearningOnly)
|
-- TODO: refactor me and turn me into a qualification property (elearningOnly)
|
||||||
qualificationPractical :: Text -> Bool
|
qualificationPractical :: Text -> Bool
|
||||||
@ -111,7 +112,7 @@ instance MDLetter LetterRenewQualification where
|
|||||||
letterMeta l@LetterRenewQualification{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
letterMeta l@LetterRenewQualification{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
||||||
let LetterRenewQualificationData{..} = letterRenewalQualificationFData l
|
let LetterRenewQualificationData{..} = letterRenewalQualificationFData l
|
||||||
isSupervised = rcvrId /= qualHolderID
|
isSupervised = rcvrId /= qualHolderID
|
||||||
newExpire = addDays (fromIntegral $ fromMaybe 0 qualDuration) qualExpiry
|
newExpire = computeNewValidDate (fromMaybe 0 qualDuration) qualExpiry
|
||||||
(qArea, qFormal, qLicence) = qualificationText lang qualName qualShort
|
(qArea, qFormal, qLicence) = qualificationText lang qualName qualShort
|
||||||
in mkMeta $
|
in mkMeta $
|
||||||
guardMonoid isSupervised
|
guardMonoid isSupervised
|
||||||
|
|||||||
@ -59,15 +59,16 @@ $if(is-de)$
|
|||||||
<!-- deutsche Version des Briefes -->
|
<!-- deutsche Version des Briefes -->
|
||||||
|
|
||||||
$if(reminder)$
|
$if(reminder)$
|
||||||
dies ist die **letzte Erinnerung**:
|
dies ist die **letzte Erinnerung**: Bis $date$ wurde das E-Learning noch nicht abgeschlossen. Um
|
||||||
$endif$
|
else$
|
||||||
um
|
um
|
||||||
|
$endif$
|
||||||
$if(supervisor)$
|
$if(supervisor)$
|
||||||
die $qformal$ von **{$examinee$}**
|
die $qformal$ von **{$examinee$}**
|
||||||
$else$
|
$else$
|
||||||
Ihre $qformal$
|
Ihre $qformal$
|
||||||
$endif$
|
$endif$
|
||||||
zu verlängern, benötigen wir bis zum **$date$** den Nachweis,
|
zu verlängern, benötigen wir bis zum **$expiry$** den Nachweis,
|
||||||
dass die
|
dass die
|
||||||
$if(practical)$
|
$if(practical)$
|
||||||
theoretische und praktische
|
theoretische und praktische
|
||||||
@ -111,15 +112,17 @@ $else$
|
|||||||
|
|
||||||
<!-- englische Version des Briefes -->
|
<!-- englische Version des Briefes -->
|
||||||
$if(reminder)$
|
$if(reminder)$
|
||||||
this is a last **reminder**:
|
this is a last **reminder**: as of $date$, the e-learning has not been completed. In
|
||||||
|
$else$
|
||||||
|
in
|
||||||
$endif$
|
$endif$
|
||||||
in order to maintain
|
order to maintain
|
||||||
$if(supervisor)$
|
$if(supervisor)$
|
||||||
the $qformal$ of **$examinee$**,
|
the $qformal$ of **$examinee$**,
|
||||||
$else$
|
$else$
|
||||||
your $qformal$,
|
your $qformal$,
|
||||||
$endif$
|
$endif$
|
||||||
we require by **$date$**, that the
|
we require by **$expiry$**, that the
|
||||||
$if(practical)$
|
$if(practical)$
|
||||||
theorectical and paractical
|
theorectical and paractical
|
||||||
$endif$
|
$endif$
|
||||||
@ -151,5 +154,4 @@ $if(practical)$
|
|||||||
an examination-style test drive within the runway system.
|
an examination-style test drive within the runway system.
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
|
|
||||||
$endif$
|
$endif$
|
||||||
|
|||||||
Reference in New Issue
Block a user