fix(letter): rephrase some minor letter parts
This commit is contained in:
parent
357e943f21
commit
0ac75e0d59
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
module Utils.Print.ExpireQualification where
|
module Utils.Print.ExpireQualification where
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
|
|
||||||
-- import Data.Char as Char
|
-- import Data.Char as Char
|
||||||
-- import qualified Data.Text as Text
|
-- import qualified Data.Text as Text
|
||||||
@ -24,33 +24,28 @@ data LetterExpireQualification = LetterExpireQualification
|
|||||||
, leqHolderSN :: UserSurname
|
, leqHolderSN :: UserSurname
|
||||||
, leqExpiry :: Maybe Day
|
, leqExpiry :: Maybe Day
|
||||||
, leqId :: QualificationId
|
, leqId :: QualificationId
|
||||||
, leqName :: Text
|
, leqName :: Text
|
||||||
, leqShort :: Text
|
, leqShort :: Text
|
||||||
, leqSchool :: SchoolId
|
, leqSchool :: SchoolId
|
||||||
, leqUrl :: Maybe Text
|
, leqUrl :: Maybe Text
|
||||||
}
|
}
|
||||||
deriving (Eq, Show)
|
deriving (Eq, Show)
|
||||||
|
|
||||||
|
|
||||||
instance MDLetter LetterExpireQualification where
|
instance MDLetter LetterExpireQualification where
|
||||||
encryptPDFfor _ = NoPassword
|
encryptPDFfor _ = NoPassword
|
||||||
getLetterKind _ = Din5008
|
getLetterKind _ = Din5008
|
||||||
getLetterEnvelope _ = 'e'
|
getLetterEnvelope _ = 'e'
|
||||||
getMailSubject l = SomeMessage $ MsgMailSubjectQualificationExpired $ leqShort l
|
getMailSubject l = SomeMessage $ MsgMailSubjectQualificationExpired $ leqShort l
|
||||||
|
|
||||||
{-
|
|
||||||
getTemplate LetterExpireQualification{leqShort="F"}
|
|
||||||
= decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_f_expiry.md")
|
|
||||||
getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_generic_expiry.md")
|
|
||||||
-}
|
|
||||||
getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_licence_expiry.md")
|
getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_licence_expiry.md")
|
||||||
|
|
||||||
letterMeta LetterExpireQualification{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
letterMeta LetterExpireQualification{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
||||||
let isSupervised = rcvrId /= leqHolderID
|
let isSupervised = rcvrId /= leqHolderID
|
||||||
(qArea, qFormal, qLicence) = qualificationText lang leqName leqShort
|
(qArea, qFormal, qLicence) = qualificationText lang leqName leqShort
|
||||||
in mkMeta $
|
in mkMeta $
|
||||||
guardMonoid isSupervised
|
guardMonoid isSupervised
|
||||||
[ toMeta "supervisor" userDisplayName
|
[ toMeta "supervisor" userDisplayName
|
||||||
] <>
|
] <>
|
||||||
[ toMeta "lang" lang
|
[ toMeta "lang" lang
|
||||||
, toMeta "licencename" leqName
|
, toMeta "licencename" leqName
|
||||||
@ -59,14 +54,14 @@ instance MDLetter LetterExpireQualification where
|
|||||||
, toMeta "subject-meta" leqHolderDN
|
, toMeta "subject-meta" leqHolderDN
|
||||||
, mbMeta "expiry" (format SelFormatDate <$> leqExpiry)
|
, mbMeta "expiry" (format SelFormatDate <$> leqExpiry)
|
||||||
, mbMeta "licence-url" leqUrl
|
, mbMeta "licence-url" leqUrl
|
||||||
, toMeta "de-opening" $ bool ("Guten Tag " <> leqHolderDN <> ",") "Sehr geehrte Damen und Herren," isSupervised
|
, toMeta "de-opening" $ bool [st|Guten Tag #{leqHolderDN},|] [st|Guten Tag #{userDisplayName},|] isSupervised
|
||||||
, toMeta "en-opening" $ bool ("Dear " <> leqHolderDN <> ",") "Dear supervisor," isSupervised
|
, toMeta "en-opening" $ bool [st|Dear #{leqHolderDN},|] [st|Dear #{userDisplayName},|] isSupervised
|
||||||
, toMeta "de-subject" [st|Entzug "#{leqShort}" (#{qLicence})|]
|
, toMeta "de-subject" [st|Entzug Fahrberechtigung „#{leqShort}“ (#{qLicence})|]
|
||||||
, toMeta "en-subject" [st|Revocation "#{leqShort}" (#{qLicence})|]
|
, toMeta "en-subject" [st|Revocation driving licence "#{leqShort}" (#{qLicence})|]
|
||||||
, toMeta "qarea" qArea
|
, toMeta "qarea" qArea
|
||||||
, toMeta "qformal" qFormal
|
, toMeta "qformal" qFormal
|
||||||
, toMeta "qlicence" qLicence
|
, toMeta "qlicence" qLicence
|
||||||
]
|
]
|
||||||
|
|
||||||
getPJId LetterExpireQualification{..} =
|
getPJId LetterExpireQualification{..} =
|
||||||
PrintJobIdentification
|
PrintJobIdentification
|
||||||
@ -78,7 +73,7 @@ instance MDLetter LetterExpireQualification where
|
|||||||
, pjiCourse = Nothing
|
, pjiCourse = Nothing
|
||||||
, pjiQualification = Just leqId
|
, pjiQualification = Just leqId
|
||||||
, pjiLmsUser = Nothing
|
, pjiLmsUser = Nothing
|
||||||
, pjiFileName = "expire_" <> CI.original (unSchoolKey leqSchool) <> "-" <> leqShort <> "_" <> leqHolderSN
|
, pjiFileName = "expire_" <> CI.original (unSchoolKey leqSchool) <> "-" <> leqShort <> "_" <> leqHolderSN
|
||||||
-- let nameRecipient = abbrvName <$> recipient
|
-- let nameRecipient = abbrvName <$> recipient
|
||||||
-- nameSender = abbrvName <$> sender
|
-- nameSender = abbrvName <$> sender
|
||||||
-- nameCourse = CI.original . courseShorthand <$> course
|
-- nameCourse = CI.original . courseShorthand <$> course
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
module Utils.Print.RenewQualification where
|
module Utils.Print.RenewQualification where
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
import Text.Hamlet
|
import Text.Hamlet
|
||||||
|
|
||||||
import Data.Char as Char
|
import Data.Char as Char
|
||||||
@ -19,46 +19,51 @@ import Utils.Print.Letters
|
|||||||
import Handler.Utils.Widgets (nameHtml) -- , nameHtml')
|
import Handler.Utils.Widgets (nameHtml) -- , nameHtml')
|
||||||
import Handler.Utils.Qualification (computeNewValidDate)
|
import Handler.Utils.Qualification (computeNewValidDate)
|
||||||
|
|
||||||
-- TODO: refactor me and turn me into a qualification property (elearningOnly)
|
|
||||||
qualificationPractical :: Text -> Bool
|
|
||||||
qualificationPractical qshort = "R" == qshort -- TODO
|
|
||||||
|
|
||||||
|
defaultNotice :: Bool -> Lang -> Text -> Text -> Text -> [Text]
|
||||||
defaultNotice :: Lang -> Text -> Text -> Text -> [Text]
|
defaultNotice renewAuto l qualName qualShort newExpire
|
||||||
defaultNotice l qualName qualShort newExpire
|
| isDe l, renewAuto
|
||||||
| isDe l, qualificationPractical qualShort
|
= [ [st|Ein Zertifikat für Ihre Unterlagen kann nur direkt nach dem erfolgreichen Test erstellt werden.
|
||||||
= [ [st|Ein Zertifikat für Ihre Unterlagen kann nur direkt nach dem erfolgreichen Test erstellt werden.
|
Das Zertifikat wird auf die Benutzerkennung ausgestellt. Zusammen mit diesem Schreiben können Sie Ihrem Arbeitgeber zeigen, dass Sie bestanden haben.
|
||||||
Das Zertifikat wird auf die Benutzerkennung ausgestellt. Zusammen mit diesem Schreiben können Sie Ihrem Arbeitgeber zeigen, dass Sie bestanden haben.
|
Bei erfolgreichem Abschluss der Schulung verlängert sich das Ablaufdatum automatisch auf den #{newExpire}.
|
||||||
Bei erfolgreichem Abschluss der Schulung verlängert sich das Ablaufdatum automatisch auf den #{newExpire}. Wir empfehlen die Schulung zeitnah durchzuführen.
|
Wir empfehlen die Schulung zeitnah durchzuführen.
|
||||||
Sollte bis zum Ablaufdatum das E-Learning und der Praxisteil nicht erfolgreich abgeschlossen sein oder der Test nach 5 Versuchen nicht bestanden werden, muss zur Wiedererlangung der Fahrberechtigung „#{qualShort}“ ein Grundkurs #{qualName} bei der Fahrerausbildung absolviert werden.|]
|
Sollte bis zum Ablaufdatum das E-Learning nicht innerhalb von 5 Versuchen erfolgreich abgeschlossen sein, muss zur Wiedererlangung der Fahrberechtigung „#{qualShort}“ ein Grundkurs #{qualName} bei der Fraport Fahrerausbildung absolviert werden.|]
|
||||||
, "Benötigen Sie die Fahrberechtigung nicht mehr, informieren Sie bitte die Fahrerausbildung."
|
, "Benötigen Sie die Fahrberechtigung nicht mehr, informieren Sie bitte die Fraport Fahrerausbildung."
|
||||||
]
|
|
||||||
| isDe l
|
|
||||||
= [ [st|Ein Zertifikat für Ihre Unterlagen kann nur direkt nach dem erfolgreichen Test erstellt werden.
|
|
||||||
Das Zertifikat wird auf die Benutzerkennung ausgestellt. Zusammen mit diesem Schreiben können Sie Ihrem Arbeitgeber zeigen, dass Sie bestanden haben.
|
|
||||||
Bei erfolgreichem Abschluss der Schulung verlängert sich das Ablaufdatum automatisch auf den #{newExpire}. Wir empfehlen die Schulung zeitnah durchzuführen.
|
|
||||||
Sollte bis zum Ablaufdatum das E-Learning nicht erfolgreich abgeschlossen sein oder der Test nach 5 Versuchen nicht bestanden werden, muss zur Wiedererlangung der Fahrberechtigung „#{qualShort}“ ein Grundkurs #{qualName} bei der Fahrerausbildung absolviert werden.|]
|
|
||||||
, "Benötigen Sie die Fahrberechtigung nicht mehr, informieren Sie bitte die Fahrerausbildung."
|
|
||||||
, "(Please contact us if you prefer letters in English.)"
|
, "(Please contact us if you prefer letters in English.)"
|
||||||
]
|
]
|
||||||
| otherwise
|
| isDe l
|
||||||
= [ [st|A certificate for your records can only be generated immediately after a successful test.
|
= [ [st|Ein Zertifikat für Ihre Unterlagen kann nur direkt nach dem erfolgreichen Test erstellt werden.
|
||||||
The certificate will be issued for the user login. The certificate and this letter may then prove that you have passed.
|
Das Zertifikat wird auf die Benutzerkennung ausgestellt. Zusammen mit diesem Schreiben können Sie Ihrem Arbeitgeber zeigen, dass Sie bestanden haben.
|
||||||
Upon successful completion of the training, the expiry date will automatically be extended until #{newExpire}. We recommend completing the training as soon as possible.
|
Wir empfehlen die Schulung zeitnah durchzuführen.
|
||||||
The licence irrevocably expires, if the e-learning is not successfully completed by the expiry date or after 5 failed attempts. In this case, regaining licence "#{qualShort}" requires the completing of a normal training course #{qualName} again, as if no prior experience existed.|]
|
Sollte bis zum Ablaufdatum das E-Learning und der Praxisteil nicht erfolgreich abgeschlossen sein, muss zur Wiedererlangung der Fahrberechtigung „#{qualShort}“ ein Grundkurs #{qualName} bei der Fraport Fahrerausbildung absolviert werden.|]
|
||||||
|
, "Benötigen Sie die Fahrberechtigung nicht mehr, informieren Sie bitte die Fraport Fahrerausbildung."
|
||||||
|
]
|
||||||
|
| renewAuto
|
||||||
|
= [ [st|A certificate for your records can only be generated immediately after a successful test.
|
||||||
|
The certificate will be issued for the user login. The certificate and this letter may then prove that you have passed.
|
||||||
|
Upon successful completion of the training, the expiry date will automatically be extended until #{newExpire}.
|
||||||
|
We recommend completing the training as soon as possible.
|
||||||
|
The licence irrevocably expires, if the e-learning is not successfully completed within 5 attempts by the expiry date. In this case, regaining licence "#{qualShort}" requires the completing of a normal training course #{qualName} again, as if no prior experience existed.|]
|
||||||
|
, "Please inform us, if this driving licence is no longer required."
|
||||||
|
, "(Kontaktieren Sie uns bitte, um zukünftige Briefe von uns in deutscher Sprache zu erhalten.)"
|
||||||
|
]
|
||||||
|
| otherwise
|
||||||
|
= [ [st|A certificate for your records can only be generated immediately after a successful test.
|
||||||
|
The certificate will be issued for the user login. The certificate and this letter may then prove that you have passed.
|
||||||
|
We recommend completing the training as soon as possible.
|
||||||
|
The licence irrevocably expires, if the e-learning is not successfully completed within 5 attempts by the expiry date. In this case, regaining licence "#{qualShort}" requires the completing of a normal training course #{qualName} again, as if no prior experience existed.|]
|
||||||
, "Please inform us, if this driving licence is no longer required."
|
, "Please inform us, if this driving licence is no longer required."
|
||||||
, "(Kontaktieren Sie uns bitte, um zukünftige Briefe von uns in deutscher Sprache zu erhalten.)"
|
, "(Kontaktieren Sie uns bitte, um zukünftige Briefe von uns in deutscher Sprache zu erhalten.)"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
qualificationText :: Lang -> Text -> Text -> (Text, Text, Text) -- (qarea, qformal, qlicence) i.e. (Rollfeld, Rollfeldfahrberechtigung, Rollfeldführerschein) translated
|
qualificationText :: Lang -> Text -> Text -> (Text, Text, Text) -- (qarea, qformal, qlicence) i.e. (Rollfeld, Rollfeldfahrberechtigung, Rollfeldführerschein) translated
|
||||||
qualificationText l qName@(Text.stripSuffix "führerschein" -> Just qPrefix) qShort
|
qualificationText l qName@(Text.stripSuffix "führerschein" -> Just qPrefix) qShort
|
||||||
| isDe l
|
| isDe l
|
||||||
= (qPrefix, qPrefix <> "fahrberechtigung", qName)
|
= (qPrefix, [st|Fahrberechtigung „#{qShort}“|], qName)
|
||||||
| qShort == "F"
|
| qShort == "F"
|
||||||
= ("apron", "apron driving licence", "apron driving licence")
|
= ("apron", [st|driving licence "#{qShort}"|], "apron driving licence")
|
||||||
| qShort == "R"
|
| qShort == "R"
|
||||||
= ("maneuvering area", "maneuvering area driving licence", "maneuvering area driving licence")
|
= ("maneuvering area", [st|driving licence "#{qShort}"|], "maneuvering area driving licence")
|
||||||
| otherwise
|
| otherwise
|
||||||
= (qPrefix, qPrefix <> " driving licence", qName)
|
= (qPrefix, qPrefix <> " driving licence", qName)
|
||||||
qualificationText l _qName "GSS"
|
qualificationText l _qName "GSS"
|
||||||
@ -67,7 +72,7 @@ qualificationText l _qName "GSS"
|
|||||||
| otherwise
|
| otherwise
|
||||||
= ("Forklift", "forklift driving licence", "forklift driving licence")
|
= ("Forklift", "forklift driving licence", "forklift driving licence")
|
||||||
qualificationText _l qName qShort
|
qualificationText _l qName qShort
|
||||||
= (qShort, qName, qName)
|
= (qShort, [st|Fahrberechtigung „#{qShort}“|], qName)
|
||||||
|
|
||||||
|
|
||||||
data LetterRenewQualification = LetterRenewQualification
|
data LetterRenewQualification = LetterRenewQualification
|
||||||
@ -82,25 +87,26 @@ data LetterRenewQualification = LetterRenewQualification
|
|||||||
, qualShort :: Text
|
, qualShort :: Text
|
||||||
, qualSchool :: SchoolId
|
, qualSchool :: SchoolId
|
||||||
, qualDuration :: Maybe Int
|
, qualDuration :: Maybe Int
|
||||||
|
, qualRenewAuto :: Bool
|
||||||
, isReminder :: Bool
|
, isReminder :: Bool
|
||||||
}
|
}
|
||||||
deriving (Eq, Show)
|
deriving (Eq, Show)
|
||||||
|
|
||||||
|
|
||||||
-- this datatype is specific to this letter only, and just to avoid code duplication for derived data or constants
|
-- this datatype is specific to this letter only, and just to avoid code duplication for derived data or constants
|
||||||
data LetterRenewQualificationData = LetterRenewQualificationData { lmsUrl, lmsUrlLogin, lmsUrlPassword, lmsIdent :: Text }
|
data LetterRenewQualificationData = LetterRenewQualificationData { lmsUrl, lmsUrlLogin, lmsUrlPassword, lmsIdent :: Text }
|
||||||
deriving (Eq, Show)
|
deriving (Eq, Show)
|
||||||
|
|
||||||
letterRenewalQualificationFData :: LetterRenewQualification -> LetterRenewQualificationData
|
letterRenewalQualificationFData :: LetterRenewQualification -> LetterRenewQualificationData
|
||||||
letterRenewalQualificationFData LetterRenewQualification{lmsLogin, lmsPin} = LetterRenewQualificationData{..}
|
letterRenewalQualificationFData LetterRenewQualification{lmsLogin, lmsPin} = LetterRenewQualificationData{..}
|
||||||
where
|
where
|
||||||
lmsUrl = "drive.fraport.de"
|
lmsUrl = "drive.fraport.de"
|
||||||
lmsUrlLogin = "https://" <> lmsUrl <> "/?username=" <> lmsIdent
|
lmsUrlLogin = "https://" <> lmsUrl <> "/?username=" <> lmsIdent
|
||||||
lmsUrlPassword = lmsUrlLogin <> "&password=" <> lmsPin
|
lmsUrlPassword = lmsUrlLogin <> "&password=" <> lmsPin
|
||||||
lmsIdent = getLmsIdent lmsLogin
|
lmsIdent = getLmsIdent lmsLogin
|
||||||
|
|
||||||
|
|
||||||
instance MDLetter LetterRenewQualification where
|
instance MDLetter LetterRenewQualification where
|
||||||
encryptPDFfor _ = PasswordUnderling
|
encryptPDFfor _ = PasswordUnderling
|
||||||
getLetterKind _ = PinLetter
|
getLetterKind _ = PinLetter
|
||||||
getLetterEnvelope l = maybe 'q' (Char.toLower . fst) $ Text.uncons (qualShort l)
|
getLetterEnvelope l = maybe 'q' (Char.toLower . fst) $ Text.uncons (qualShort l)
|
||||||
@ -110,22 +116,20 @@ instance MDLetter LetterRenewQualification where
|
|||||||
let LetterRenewQualificationData{..} = letterRenewalQualificationFData l
|
let LetterRenewQualificationData{..} = letterRenewalQualificationFData l
|
||||||
in $(ihamletFile "templates/mail/body/qualificationRenewal.hamlet")
|
in $(ihamletFile "templates/mail/body/qualificationRenewal.hamlet")
|
||||||
|
|
||||||
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 = computeNewValidDate (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
|
||||||
[ toMeta "supervisor" userDisplayName
|
[ toMeta "supervisor" userDisplayName
|
||||||
, toMeta "de-opening" ("Sehr geehrte Damen und Herren,"::Text)
|
|
||||||
, toMeta "en-opening" ("Dear Sir or Madam,"::Text)
|
|
||||||
] <>
|
] <>
|
||||||
guardMonoid isReminder
|
guardMonoid isReminder
|
||||||
[ toMeta "reminder" ("reminder"::Text)
|
[ toMeta "reminder" ("reminder"::Text)
|
||||||
] <>
|
] <>
|
||||||
guardMonoid (qualificationPractical qualShort)
|
guardMonoid (not qualRenewAuto)
|
||||||
[ toMeta "practical" True
|
[ toMeta "practical" True -- note: definied or undefined matters, bool value is unimportant
|
||||||
] <>
|
] <>
|
||||||
[ toMeta "lang" lang
|
[ toMeta "lang" lang
|
||||||
, toMeta "login" lmsIdent
|
, toMeta "login" lmsIdent
|
||||||
@ -136,11 +140,11 @@ instance MDLetter LetterRenewQualification where
|
|||||||
, mbMeta "validduration" (show <$> qualDuration)
|
, mbMeta "validduration" (show <$> qualDuration)
|
||||||
, toMeta "url-text" lmsUrl
|
, toMeta "url-text" lmsUrl
|
||||||
, toMeta "url" lmsUrlPassword -- ok for PDF, since it contains the PIN already
|
, toMeta "url" lmsUrlPassword -- ok for PDF, since it contains the PIN already
|
||||||
, toMeta "notice" $ defaultNotice lang qualName qualShort $ format SelFormatDate newExpire
|
, toMeta "notice" $ defaultNotice qualRenewAuto lang qualName qualShort $ format SelFormatDate newExpire
|
||||||
, toMeta "de-subject" [st|Verlängerung Fahrberechtigung „#{qualShort}“ (#{qualName})|]
|
, toMeta "de-subject" [st|Verlängerung Fahrberechtigung „#{qualShort}“ (#{qualName})|]
|
||||||
, toMeta "en-subject" [st|Renewal of driving licence „#{qualShort}“ (#{qualName})|]
|
, toMeta "en-subject" [st|Renewal of driving licence "#{qualShort}" (#{qualName})|]
|
||||||
, toMeta "de-opening" $ bool ("Guten Tag " <> qualHolderDN <> ",") "Sehr geehrte Damen und Herren," isSupervised
|
, toMeta "de-opening" $ bool [st|Guten Tag #{qualHolderDN},|] [st|Guten Tag #{userDisplayName},|] isSupervised
|
||||||
, toMeta "en-opening" $ bool ("Dear " <> qualHolderDN <> ",") "Dear supervisor," isSupervised
|
, toMeta "en-opening" $ bool [st|Dear #{qualHolderDN},|] [st|Dear #{userDisplayName},|] isSupervised
|
||||||
, toMeta "qarea" qArea
|
, toMeta "qarea" qArea
|
||||||
, toMeta "qformal" qFormal
|
, toMeta "qformal" qFormal
|
||||||
, toMeta "qlicence" qLicence
|
, toMeta "qlicence" qLicence
|
||||||
@ -156,7 +160,7 @@ instance MDLetter LetterRenewQualification where
|
|||||||
, pjiCourse = Nothing
|
, pjiCourse = Nothing
|
||||||
, pjiQualification = Just qualId
|
, pjiQualification = Just qualId
|
||||||
, pjiLmsUser = Just lmsLogin
|
, pjiLmsUser = Just lmsLogin
|
||||||
, pjiFileName = "renew_" <> CI.original (unSchoolKey qualSchool) <> "-" <> qualShort <> "_" <> qualHolderSN
|
, pjiFileName = "renew_" <> CI.original (unSchoolKey qualSchool) <> "-" <> qualShort <> "_" <> qualHolderSN
|
||||||
-- let nameRecipient = abbrvName <$> recipient
|
-- let nameRecipient = abbrvName <$> recipient
|
||||||
-- nameSender = abbrvName <$> sender
|
-- nameSender = abbrvName <$> sender
|
||||||
-- nameCourse = CI.original . courseShorthand <$> course
|
-- nameCourse = CI.original . courseShorthand <$> course
|
||||||
|
|||||||
@ -1,146 +0,0 @@
|
|||||||
---
|
|
||||||
### Metadaten, welche hier eingestellt werden:
|
|
||||||
# Absender
|
|
||||||
author: Fraport AG - Fahrerausbildung (AVN-AR)
|
|
||||||
phone: +49 69 690-30306
|
|
||||||
email: fahrerausbildung@fraport.de
|
|
||||||
place: Frankfurt am Main
|
|
||||||
return-address:
|
|
||||||
- 60547 Frankfurt
|
|
||||||
de-opening: Liebe Fahrberechtigungsinhaber,
|
|
||||||
en-opening: Dear driver,
|
|
||||||
de-closing: |
|
|
||||||
Mit freundlichen Grüßen,
|
|
||||||
Ihre Fraport Fahrerausbildung
|
|
||||||
en-closing: |
|
|
||||||
With kind regards,
|
|
||||||
Your Fraport Driver Training
|
|
||||||
encludes:
|
|
||||||
hyperrefoptions: hidelinks
|
|
||||||
|
|
||||||
### Metadaten, welche automatisch ersetzt werden:
|
|
||||||
de-subject: 'Entzug "F" (Vorfeldführerschein)'
|
|
||||||
en-subject: Revocation of apron driving license
|
|
||||||
date: 11.11.1111
|
|
||||||
lang: de-de
|
|
||||||
is-de: true
|
|
||||||
# Emfpänger
|
|
||||||
licenceholder: P. Rüfling
|
|
||||||
address:
|
|
||||||
- E. M. Pfänger
|
|
||||||
- Musterfirma GmbH
|
|
||||||
- Musterstraße 11
|
|
||||||
- 12345 Musterstadt
|
|
||||||
...
|
|
||||||
$if(titleblock)$
|
|
||||||
$titleblock$
|
|
||||||
|
|
||||||
$endif$
|
|
||||||
$for(header-includes)$
|
|
||||||
$header-includes$
|
|
||||||
|
|
||||||
$endfor$
|
|
||||||
$for(include-before)$
|
|
||||||
$include-before$
|
|
||||||
|
|
||||||
$endfor$
|
|
||||||
|
|
||||||
$if(is-de)$
|
|
||||||
|
|
||||||
<!-- deutsche Version des Briefes -->
|
|
||||||
$if(supervisor)$
|
|
||||||
leider hat **$licenceholder$**
|
|
||||||
$else$
|
|
||||||
leider haben Sie
|
|
||||||
$endif$
|
|
||||||
den Wissenstest im Rahmen des Recurrent Trainings Vorfeldführerschein nicht bestanden
|
|
||||||
oder die Ablauffrist nicht eingehalten.
|
|
||||||
|
|
||||||
|
|
||||||
Die Qualifikation „Vorfeldführerschein“ ist somit
|
|
||||||
$if(expiry)$
|
|
||||||
seit $expiry$
|
|
||||||
$endif$
|
|
||||||
nicht mehr gültig.
|
|
||||||
|
|
||||||
|
|
||||||
$if(supervisor)$
|
|
||||||
$if(licence-url)$
|
|
||||||
[$licenceholder$]($licence-url$)
|
|
||||||
$else$
|
|
||||||
$licenceholder$
|
|
||||||
$endif$
|
|
||||||
darf
|
|
||||||
$else$
|
|
||||||
Sie dürfen
|
|
||||||
$endif$
|
|
||||||
ab sofort keine Fahrzeuge mehr eigenständig auf dem Vorfeld des Frankfurter Flughafens führen.
|
|
||||||
|
|
||||||
|
|
||||||
Um die Fahrberechtigung wiederzuerlangen, ist die Teilnahme an einem Grundkurs Vorfeldführerschein erforderlich.
|
|
||||||
|
|
||||||
$if(supervisor)$
|
|
||||||
Hierfür wenden Sie sich bitte an die Fahrerausbildung der Fraport AG unter:
|
|
||||||
|
|
||||||
Telefon
|
|
||||||
|
|
||||||
: [$phone$](tel:$phone$)
|
|
||||||
|
|
||||||
Email
|
|
||||||
|
|
||||||
: [$email$](mailto:$email$)
|
|
||||||
|
|
||||||
$else$
|
|
||||||
Hierfür wenden Sie sich bitte an Ihren Arbeitgeber.
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
$else$
|
|
||||||
<!-- englische Version des Briefes -->
|
|
||||||
we regret to inform you that
|
|
||||||
$if(supervisor)$
|
|
||||||
**$licenceholder$**
|
|
||||||
$else$
|
|
||||||
you
|
|
||||||
$endif$
|
|
||||||
did not pass the required knowledge test within the allotted time
|
|
||||||
for the renewal of the apron driving licence.
|
|
||||||
|
|
||||||
|
|
||||||
The qualification „Vorfeldführerschein“ (apron driving lincence) is therefore invalid
|
|
||||||
$if(expiry)$
|
|
||||||
since $expiry$.
|
|
||||||
$else$
|
|
||||||
now.
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
$if(supervisor)$
|
|
||||||
$if(licence-url)$
|
|
||||||
[$licenceholder$]($licence-url$)
|
|
||||||
$else$
|
|
||||||
$licenceholder$
|
|
||||||
$endif$
|
|
||||||
$else$
|
|
||||||
You
|
|
||||||
$endif$
|
|
||||||
may no longer drive a vehicle on the apron of Frankfurt airport, effective immediately.
|
|
||||||
|
|
||||||
|
|
||||||
In order to regain this apron driving licence, a full participation in a
|
|
||||||
basic training course is required.
|
|
||||||
|
|
||||||
$if(supervisor)$
|
|
||||||
Please contact the Fraport driving school team, if you want to book a course:
|
|
||||||
|
|
||||||
Phone
|
|
||||||
|
|
||||||
: [$phone$](tel:$phone$)
|
|
||||||
|
|
||||||
Email
|
|
||||||
|
|
||||||
: [$email$](mailto:$email$)
|
|
||||||
|
|
||||||
$else$
|
|
||||||
Please contact your employer to book a course for you.
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
$endif$
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2023-24 Steffen Jost <S.Jost@Fraport.de>
|
|
||||||
|
|
||||||
SPDX-License-Identifier: LicenseRef-Fraport-Corporate-Design
|
|
||||||
@ -9,14 +9,16 @@ email: fahrerausbildung@fraport.de
|
|||||||
place: Frankfurt am Main
|
place: Frankfurt am Main
|
||||||
return-address:
|
return-address:
|
||||||
- 60547 Frankfurt
|
- 60547 Frankfurt
|
||||||
de-opening: Sehr geehrte Damen und Herren,
|
de-opening: Guten Tag,
|
||||||
en-opening: Dear driver,
|
en-opening: Dear driver,
|
||||||
de-closing: |
|
de-closing: |
|
||||||
Mit freundlichen Grüßen,
|
Mit freundlichen Grüßen
|
||||||
Fraport Fahrerausbildung
|
\vspace{2EX}
|
||||||
|
Fraport Fahrerausbildung
|
||||||
en-closing: |
|
en-closing: |
|
||||||
With kind regards,
|
With kind regards
|
||||||
Fraport Driver Training
|
\vspace{2EX}
|
||||||
|
Fraport Driver Training
|
||||||
encludes:
|
encludes:
|
||||||
hyperrefoptions: hidelinks
|
hyperrefoptions: hidelinks
|
||||||
|
|
||||||
@ -53,11 +55,11 @@ $if(supervisor)$
|
|||||||
$else$
|
$else$
|
||||||
leider haben Sie
|
leider haben Sie
|
||||||
$endif$
|
$endif$
|
||||||
den Wissenstest im Rahmen des Recurrent Trainings $qlicence$ nicht bestanden
|
das Recurrent Training $qlicence$ nicht bestanden
|
||||||
oder die Ablauffrist nicht eingehalten.
|
oder die Ablauffrist nicht eingehalten.
|
||||||
|
|
||||||
|
|
||||||
**Die Qualifikation „$qformal$“ ist somit
|
**Die Qualifikation $qformal$ ist somit
|
||||||
$if(expiry)$
|
$if(expiry)$
|
||||||
seit $expiry$
|
seit $expiry$
|
||||||
$endif$
|
$endif$
|
||||||
@ -74,14 +76,14 @@ darf
|
|||||||
$else$
|
$else$
|
||||||
Sie dürfen
|
Sie dürfen
|
||||||
$endif$
|
$endif$
|
||||||
ab sofort keine Fahrzeuge mehr eigenständig auf dem $qarea$ des Frankfurter Flughafens führen.
|
ab sofort keine Fahrzeuge mehr eigenständig auf dem $qarea$ des Verkehrsflughafens Frankfurt/Main führen.
|
||||||
|
|
||||||
|
|
||||||
Um die Fahrberechtigung wiederzuerlangen, ist die Teilnahme an einem
|
Um die Fahrberechtigung wiederzuerlangen, ist die Teilnahme an einem
|
||||||
Grundkurs $qlicence$ bei der Fahrerausbildung erforderlich.
|
Grundkurs $qlicence$ bei der Fraport Fahrerausbildung erforderlich.
|
||||||
|
|
||||||
$if(supervisor)$
|
|
||||||
Hierfür wenden Sie sich bitte an die Fahrerausbildung der Fraport AG unter:
|
Hierfür wenden Sie sich bitte an die Fraport Fahrerausbildung unter:
|
||||||
|
|
||||||
Telefon
|
Telefon
|
||||||
|
|
||||||
@ -91,9 +93,6 @@ Email
|
|||||||
|
|
||||||
: [$email$](mailto:$email$)
|
: [$email$](mailto:$email$)
|
||||||
|
|
||||||
$else$
|
|
||||||
Hierfür wenden Sie sich bitte an Ihren Arbeitgeber.
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
$else$
|
$else$
|
||||||
<!-- englische Version des Briefes -->
|
<!-- englische Version des Briefes -->
|
||||||
@ -103,8 +102,9 @@ $if(supervisor)$
|
|||||||
$else$
|
$else$
|
||||||
you
|
you
|
||||||
$endif$
|
$endif$
|
||||||
did not pass the required knowledge test within the allotted time
|
did not pass the reccurrent training
|
||||||
for the renewal of the $qlicence$.
|
for the renewal of the $qlicence$
|
||||||
|
within the allotted time.
|
||||||
|
|
||||||
|
|
||||||
**The qualification „$licencename$“ ($qformal$) is therefore invalid
|
**The qualification „$licencename$“ ($qformal$) is therefore invalid
|
||||||
@ -123,13 +123,13 @@ $endif$
|
|||||||
$else$
|
$else$
|
||||||
You
|
You
|
||||||
$endif$
|
$endif$
|
||||||
may no longer drive a vehicle on the $qarea$ of Frankfurt airport, effective immediately.
|
may no longer drive a vehicle on the $qarea$ of airport Frankfurt/Main, effective immediately.
|
||||||
|
|
||||||
|
|
||||||
In order to regain this $qlicence$, a full participation in a
|
In order to regain this $qlicence$, a full participation in a
|
||||||
basic training course is required.
|
basic training course is required.
|
||||||
|
|
||||||
$if(supervisor)$
|
|
||||||
Please contact Fraport Driver Training, if you want to book a course:
|
Please contact Fraport Driver Training, if you want to book a course:
|
||||||
|
|
||||||
Phone
|
Phone
|
||||||
@ -140,8 +140,4 @@ Email
|
|||||||
|
|
||||||
: [$email$](mailto:$email$)
|
: [$email$](mailto:$email$)
|
||||||
|
|
||||||
$else$
|
|
||||||
Please contact your employer to book a course for you.
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
$endif$
|
$endif$
|
||||||
|
|||||||
@ -7,14 +7,16 @@ email: fahrerausbildung@fraport.de
|
|||||||
place: Frankfurt am Main
|
place: Frankfurt am Main
|
||||||
return-address:
|
return-address:
|
||||||
- 60547 Frankfurt
|
- 60547 Frankfurt
|
||||||
de-opening: Sehr geehrte Damen und Herren,
|
de-opening: Guten Tag,
|
||||||
en-opening: Dear driver,
|
en-opening: Dear driver,
|
||||||
de-closing: |
|
de-closing: |
|
||||||
Mit freundlichen Grüßen,
|
Mit freundlichen Grüßen
|
||||||
Fraport Fahrerausbildung
|
\vspace{2EX}
|
||||||
|
Fraport Fahrerausbildung
|
||||||
en-closing: |
|
en-closing: |
|
||||||
With kind regards,
|
With kind regards
|
||||||
Fraport Driver Training
|
\vspace{2EX}
|
||||||
|
Fraport Driver Training
|
||||||
encludes:
|
encludes:
|
||||||
hyperrefoptions: colorlinks=false
|
hyperrefoptions: colorlinks=false
|
||||||
|
|
||||||
@ -22,8 +24,8 @@ hyperrefoptions: colorlinks=false
|
|||||||
de-subject: 'Verlängerung Fahrberechtigung "F" (Vorfeldführerschein)'
|
de-subject: 'Verlängerung Fahrberechtigung "F" (Vorfeldführerschein)'
|
||||||
en-subject: Renewal of apron driving license
|
en-subject: Renewal of apron driving license
|
||||||
qarea: 'Vorfeld'
|
qarea: 'Vorfeld'
|
||||||
qformal: 'Vorfeldfahrberechtigung'
|
qformal: 'Fahrberechtigung'
|
||||||
qlicence: 'Vorfeldführerschein'
|
qlicence: 'Führerschein'
|
||||||
url-text: 'drive.fraport.de'
|
url-text: 'drive.fraport.de'
|
||||||
url: 'https://drive.fraport.de'
|
url: 'https://drive.fraport.de'
|
||||||
date: 11.11.1111
|
date: 11.11.1111
|
||||||
@ -85,8 +87,8 @@ $if(supervisor)$
|
|||||||
Ausschließlich Sie sind berechtigt, die Benutzerdaten an den Schulungsteilnehmer auszuhändigen.
|
Ausschließlich Sie sind berechtigt, die Benutzerdaten an den Schulungsteilnehmer auszuhändigen.
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
Für die Absolvierung der Schulungsmaßnahme werden 1--2 Stunden benötigt.
|
Für die Absolvierung der Schulungsmaßnahme werden ca. 2 Stunden benötigt.
|
||||||
Der Abschluss der Schulung wird automatisch an das System der Fahrerausbildung übermittelt.
|
Der Abschluss der Schulung wird automatisch an das System der Fraport Fahrerausbildung übermittelt.
|
||||||
|
|
||||||
$if(practical)$
|
$if(practical)$
|
||||||
Nach erfolgreichem Abschluss der Online-Schulung
|
Nach erfolgreichem Abschluss der Online-Schulung
|
||||||
@ -97,11 +99,11 @@ $if(practical)$
|
|||||||
$endif$
|
$endif$
|
||||||
sich von Ihrer Firma zum praktischen Teil der Schulung
|
sich von Ihrer Firma zum praktischen Teil der Schulung
|
||||||
$if(supervisor)$
|
$if(supervisor)$
|
||||||
einplanen lassen.
|
anmelden lassen.
|
||||||
$else$
|
$else$
|
||||||
einplanen.
|
anmelden.
|
||||||
$endif$
|
$endif$
|
||||||
Im Rahmen der 3--4-stündigen praktischen Auffrischung erfolgen Funkübungen
|
Im Rahmen der ca. 4-stündigen praktischen Auffrischung erfolgen Funkübungen
|
||||||
sowie die Durchführung einer Übungsfahrt mit Prüfungscharakter
|
sowie die Durchführung einer Übungsfahrt mit Prüfungscharakter
|
||||||
im Start-/Landebahnsystem.
|
im Start-/Landebahnsystem.
|
||||||
$endif$
|
$endif$
|
||||||
@ -124,7 +126,7 @@ $else$
|
|||||||
$endif$
|
$endif$
|
||||||
we require by **$expiry$**, that the
|
we require by **$expiry$**, that the
|
||||||
$if(practical)$
|
$if(practical)$
|
||||||
theorectical and paractical
|
theorectical and practical
|
||||||
$endif$
|
$endif$
|
||||||
airport-specific recurrent training at Fraport AG,
|
airport-specific recurrent training at Fraport AG,
|
||||||
according to European Union Regulation No. 139/2014,
|
according to European Union Regulation No. 139/2014,
|
||||||
@ -139,7 +141,7 @@ $if(supervisor)$
|
|||||||
Only you are authorized to hand over the personal login data to the training participant.
|
Only you are authorized to hand over the personal login data to the training participant.
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
The completion of the e-learning will require abut 1--2 hours.
|
The completion of the e-learning will require abut ca. 2 hours.
|
||||||
Results will be automatically transmitted to Fraport Driver Training.
|
Results will be automatically transmitted to Fraport Driver Training.
|
||||||
|
|
||||||
$if(practical)$
|
$if(practical)$
|
||||||
@ -150,7 +152,7 @@ $if(practical)$
|
|||||||
your company must schedule you
|
your company must schedule you
|
||||||
$endif$
|
$endif$
|
||||||
for the practical part of the training.
|
for the practical part of the training.
|
||||||
The 3--4 hour practical refresher includes radio exercises and
|
The ca. 4 hour practical refresher includes radio exercises and
|
||||||
an examination-style test drive within the runway system.
|
an examination-style test drive within the runway system.
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user