From a2a89a8aad72e0bceccfa73cf2af08ecd03d8ab4 Mon Sep 17 00:00:00 2001 From: Steffen Date: Thu, 20 Jun 2024 16:17:52 +0200 Subject: [PATCH] refactor(letter): expiry letter updated --- src/Utils/Print/ExpireQualification.hs | 20 +-- src/Utils/Print/RenewQualification.hs | 6 +- templates/letter/din5008.latex | 5 +- templates/letter/fraport_licence_expiry.md | 147 +++++++++++++++++++++ templates/letter/fraport_renewal_new.md | 4 +- templates/letter/plain_article.latex | 5 +- 6 files changed, 169 insertions(+), 18 deletions(-) create mode 100644 templates/letter/fraport_licence_expiry.md diff --git a/src/Utils/Print/ExpireQualification.hs b/src/Utils/Print/ExpireQualification.hs index 290e37bd7..3977d0005 100644 --- a/src/Utils/Print/ExpireQualification.hs +++ b/src/Utils/Print/ExpireQualification.hs @@ -15,7 +15,7 @@ import qualified Data.CaseInsensitive as CI import Data.FileEmbed (embedFile) import Utils.Print.Letters - +import Utils.Print.RenewQualification (qualificationText) data LetterExpireQualification = LetterExpireQualification { leqHolderCFN :: CryptoFileNameUser @@ -38,13 +38,16 @@ instance MDLetter LetterExpireQualification where getLetterEnvelope _ = 'e' 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") letterMeta LetterExpireQualification{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} = let isSupervised = rcvrId /= leqHolderID + (qArea, qFormal, qLicence) = qualificationText lang leqName leqShort in mkMeta $ guardMonoid isSupervised [ toMeta "supervisor" userDisplayName @@ -56,12 +59,13 @@ instance MDLetter LetterExpireQualification where , toMeta "subject-meta" leqHolderDN , mbMeta "expiry" (format SelFormatDate <$> leqExpiry) , mbMeta "licence-url" leqUrl - , toMeta "de-opening" $ bool ("Guten Tag " <> leqHolderDN <> ",") "Sehr geehrte Damen und Herren," isSupervised - , toMeta "en-opening" $ bool ("Dear " <> leqHolderDN <> ",") "Dear supervisor," isSupervised - , toMeta "de-subject" $ "Entzug \"" <> leqShort <> "\" (" <> leqName <> ")" - , toMeta "en-subject" $ case leqShort of - "F" -> "Revocation of apron driving license" - _ -> "Revocation of licence \"" <> leqShort <> "\" (" <> leqName <> ")" + , toMeta "de-opening" $ bool ("Guten Tag " <> leqHolderDN <> ",") "Sehr geehrte Damen und Herren," isSupervised + , toMeta "en-opening" $ bool ("Dear " <> leqHolderDN <> ",") "Dear supervisor," isSupervised + , toMeta "de-subject" [st|Entzug "#{leqShort}" (#{qLicence})|] + , toMeta "en-subject" [st|Revocation "#{leqShort}" (#{qLicence})|] + , toMeta "qarea" qArea + , toMeta "qformal" qFormal + , toMeta "qlicence" qLicence ] getPJId LetterExpireQualification{..} = diff --git a/src/Utils/Print/RenewQualification.hs b/src/Utils/Print/RenewQualification.hs index 556d52fdc..b5d62f48e 100644 --- a/src/Utils/Print/RenewQualification.hs +++ b/src/Utils/Print/RenewQualification.hs @@ -50,7 +50,7 @@ defaultNotice l qualName qualShort newExpire ] -qualificationText :: Lang -> Text -> Text -> (Text, Text, Text) -- qarea qformal qlicence +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 | isDe l = (qPrefix, qPrefix <> "fahrberechtigung", qName) @@ -112,7 +112,7 @@ instance MDLetter LetterRenewQualification where let LetterRenewQualificationData{..} = letterRenewalQualificationFData l isSupervised = rcvrId /= qualHolderID newExpire = addDays (fromIntegral $ fromMaybe 0 qualDuration) qualExpiry - (qArea, qFormal, qLicence) = qualificationText lang qualName qualShort + (qArea, qFormal, qLicence) = qualificationText lang qualName qualShort in mkMeta $ guardMonoid isSupervised [ toMeta "supervisor" userDisplayName @@ -137,6 +137,8 @@ instance MDLetter LetterRenewQualification where , toMeta "notice" $ defaultNotice lang qualName qualShort $ format SelFormatDate newExpire , toMeta "de-subject" [st|Verlängerung Fahrberechtigung „#{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 "en-opening" $ bool ("Dear " <> qualHolderDN <> ",") "Dear supervisor," isSupervised , toMeta "qarea" qArea , toMeta "qformal" qFormal , toMeta "qlicence" qLicence diff --git a/templates/letter/din5008.latex b/templates/letter/din5008.latex index 744b76d91..3bc38cc18 100644 --- a/templates/letter/din5008.latex +++ b/templates/letter/din5008.latex @@ -43,12 +43,11 @@ $endif$ \usepackage{iftex} -%\usepackage[ngerman]{babel} $if(lang)$ \ifLuaTeX -\usepackage[bidi=basic]{babel} +\usepackage[bidi=basic,english,ngerman]{babel} \else -\usepackage[bidi=default]{babel} +\usepackage[bidi=default,english,ngerman]{babel} \fi \babelprovide[main,import]{$babel-lang$} $for(babel-otherlangs)$ diff --git a/templates/letter/fraport_licence_expiry.md b/templates/letter/fraport_licence_expiry.md new file mode 100644 index 000000000..ddfcd9262 --- /dev/null +++ b/templates/letter/fraport_licence_expiry.md @@ -0,0 +1,147 @@ +--- +### Metadaten, welche hier eingestellt werden: +# Absender +de-subject: 'Entzug "F" (Vorfeldführerschein)' +en-subject: Revocation of apron driving license +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: Sehr geehrte Damen und Herren, +en-opening: Dear driver, +de-closing: | + Mit freundlichen Grüßen, + Fraport Fahrerausbildung +en-closing: | + With kind regards, + Fraport Driver Training +encludes: +hyperrefoptions: hidelinks + +### Metadaten, welche automatisch ersetzt werden: +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)$ + + +$if(supervisor)$ + leider hat **$licenceholder$** +$else$ + leider haben Sie +$endif$ +den Wissenstest im Rahmen des Recurrent Trainings $qlicence$ nicht bestanden +oder die Ablauffrist nicht eingehalten. + + +**Die Qualifikation „$qformal$“ 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 $qarea$ des Frankfurter Flughafens führen. + + +Um die Fahrberechtigung wiederzuerlangen, ist die Teilnahme an einem +Grundkurs $qlicence$ bei der Fahrerausbildung 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$ + +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 $qlicence$. + + +**The qualification „$licencename$“ ($qformal$) 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 $qarea$ of Frankfurt airport, effective immediately. + + +In order to regain this $qlicence$, a full participation in a +basic training course is required. + +$if(supervisor)$ +Please contact Fraport Driver Training, 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$ diff --git a/templates/letter/fraport_renewal_new.md b/templates/letter/fraport_renewal_new.md index 92adcf007..d28433b66 100644 --- a/templates/letter/fraport_renewal_new.md +++ b/templates/letter/fraport_renewal_new.md @@ -13,10 +13,10 @@ de-opening: Sehr geehrte Damen und Herren, en-opening: Dear driver, de-closing: | Mit freundlichen Grüßen, - Ihre Fahrerausbildung + Fraport Fahrerausbildung en-closing: | With kind regards, - Your Driver Training + Fraport Driver Training encludes: hyperrefoptions: colorlinks=false diff --git a/templates/letter/plain_article.latex b/templates/letter/plain_article.latex index 4ba5a5540..74bf67ff0 100644 --- a/templates/letter/plain_article.latex +++ b/templates/letter/plain_article.latex @@ -36,12 +36,11 @@ $endif$ \usepackage{iftex} -%\usepackage[ngerman]{babel} $if(lang)$ \ifLuaTeX -\usepackage[bidi=basic]{babel} +\usepackage[bidi=basic,english,ngerman]{babel} \else -\usepackage[bidi=default]{babel} +\usepackage[bidi=default,english,ngerman]{babel} \fi \babelprovide[main,import]{$babel-lang$} $for(babel-otherlangs)$