refactor(letter): expiry letter updated

This commit is contained in:
Steffen Jost 2024-06-20 16:17:52 +02:00
parent 73ea2f54df
commit a2a89a8aad
6 changed files with 169 additions and 18 deletions

View File

@ -15,7 +15,7 @@ import qualified Data.CaseInsensitive as CI
import Data.FileEmbed (embedFile) import Data.FileEmbed (embedFile)
import Utils.Print.Letters import Utils.Print.Letters
import Utils.Print.RenewQualification (qualificationText)
data LetterExpireQualification = LetterExpireQualification data LetterExpireQualification = LetterExpireQualification
{ leqHolderCFN :: CryptoFileNameUser { leqHolderCFN :: CryptoFileNameUser
@ -38,13 +38,16 @@ instance MDLetter LetterExpireQualification where
getLetterEnvelope _ = 'e' getLetterEnvelope _ = 'e'
getMailSubject l = SomeMessage $ MsgMailSubjectQualificationExpired $ leqShort l getMailSubject l = SomeMessage $ MsgMailSubjectQualificationExpired $ leqShort l
{-
getTemplate LetterExpireQualification{leqShort="F"} getTemplate LetterExpireQualification{leqShort="F"}
= decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_f_expiry.md") = 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_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}} = 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
in mkMeta $ in mkMeta $
guardMonoid isSupervised guardMonoid isSupervised
[ toMeta "supervisor" userDisplayName [ toMeta "supervisor" userDisplayName
@ -56,12 +59,13 @@ 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 ("Guten Tag " <> leqHolderDN <> ",") "Sehr geehrte Damen und Herren," isSupervised
, toMeta "en-opening" $ bool ("Dear " <> leqHolderDN <> ",") "Dear supervisor," isSupervised , toMeta "en-opening" $ bool ("Dear " <> leqHolderDN <> ",") "Dear supervisor," isSupervised
, toMeta "de-subject" $ "Entzug \"" <> leqShort <> "\" (" <> leqName <> ")" , toMeta "de-subject" [st|Entzug "#{leqShort}" (#{qLicence})|]
, toMeta "en-subject" $ case leqShort of , toMeta "en-subject" [st|Revocation "#{leqShort}" (#{qLicence})|]
"F" -> "Revocation of apron driving license" , toMeta "qarea" qArea
_ -> "Revocation of licence \"" <> leqShort <> "\" (" <> leqName <> ")" , toMeta "qformal" qFormal
, toMeta "qlicence" qLicence
] ]
getPJId LetterExpireQualification{..} = getPJId LetterExpireQualification{..} =

View File

@ -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 qualificationText l qName@(Text.stripSuffix "führerschein" -> Just qPrefix) qShort
| isDe l | isDe l
= (qPrefix, qPrefix <> "fahrberechtigung", qName) = (qPrefix, qPrefix <> "fahrberechtigung", qName)
@ -137,6 +137,8 @@ instance MDLetter LetterRenewQualification where
, toMeta "notice" $ defaultNotice lang qualName qualShort $ format SelFormatDate newExpire , toMeta "notice" $ defaultNotice 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 "en-opening" $ bool ("Dear " <> qualHolderDN <> ",") "Dear supervisor," isSupervised
, toMeta "qarea" qArea , toMeta "qarea" qArea
, toMeta "qformal" qFormal , toMeta "qformal" qFormal
, toMeta "qlicence" qLicence , toMeta "qlicence" qLicence

View File

@ -43,12 +43,11 @@ $endif$
\usepackage{iftex} \usepackage{iftex}
%\usepackage[ngerman]{babel}
$if(lang)$ $if(lang)$
\ifLuaTeX \ifLuaTeX
\usepackage[bidi=basic]{babel} \usepackage[bidi=basic,english,ngerman]{babel}
\else \else
\usepackage[bidi=default]{babel} \usepackage[bidi=default,english,ngerman]{babel}
\fi \fi
\babelprovide[main,import]{$babel-lang$} \babelprovide[main,import]{$babel-lang$}
$for(babel-otherlangs)$ $for(babel-otherlangs)$

View File

@ -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)$
<!-- deutsche Version des Briefes -->
$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$
<!-- 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 $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$

View File

@ -13,10 +13,10 @@ de-opening: Sehr geehrte Damen und Herren,
en-opening: Dear driver, en-opening: Dear driver,
de-closing: | de-closing: |
Mit freundlichen Grüßen, Mit freundlichen Grüßen,
Ihre Fahrerausbildung Fraport Fahrerausbildung
en-closing: | en-closing: |
With kind regards, With kind regards,
Your Driver Training Fraport Driver Training
encludes: encludes:
hyperrefoptions: colorlinks=false hyperrefoptions: colorlinks=false

View File

@ -36,12 +36,11 @@ $endif$
\usepackage{iftex} \usepackage{iftex}
%\usepackage[ngerman]{babel}
$if(lang)$ $if(lang)$
\ifLuaTeX \ifLuaTeX
\usepackage[bidi=basic]{babel} \usepackage[bidi=basic,english,ngerman]{babel}
\else \else
\usepackage[bidi=default]{babel} \usepackage[bidi=default,english,ngerman]{babel}
\fi \fi
\babelprovide[main,import]{$babel-lang$} \babelprovide[main,import]{$babel-lang$}
$for(babel-otherlangs)$ $for(babel-otherlangs)$