fix(letter): rephrase some minor letter parts

This commit is contained in:
Steffen Jost 2024-07-03 15:46:08 +02:00
parent 357e943f21
commit 0ac75e0d59
6 changed files with 95 additions and 247 deletions

View File

@ -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

View File

@ -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

View File

@ -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$

View File

@ -1,3 +0,0 @@
SPDX-FileCopyrightText: 2023-24 Steffen Jost <S.Jost@Fraport.de>
SPDX-License-Identifier: LicenseRef-Fraport-Corporate-Design

View File

@ -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$

View File

@ -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$