# BCPST1B 2025-2026
# Lycée Hoche, Versailles
# L.-C. LEFÈVRE

# Génération de lettres PDF personnalisées
# Exécuter le script d'un seul coup

#%% fonction principale
# crée la lettre, en fonction de tous les paramètres donnés, dans le fichier nommé m
def lettre_latex(m, nom, prenom, genre, internat, date_naissance, etablissement_origine, commune, departement):
    f = open(m, "w")
    # le soucis du détail
    nom = nom.replace("--", "\\mbox{-}\\mbox{-}")
    if genre == "Féminin":
        e_final = "e"
    else:
        e_final = ""
    f.write("\\documentclass[a4paper, 12pt, francais]{lettre}\n")
    f.write("\\usepackage{babel}\n")
    f.write("\\usepackage{graphicx}\n\n")
    f.write("\\begin{document}\n")
    f.write("\\begin{letter}{" + prenom + " " + nom + "\\\\" + etablissement_origine + "\\\\" + commune + "}\n")
    f.write("\\name{Le Lycée Hoche}\n")
    f.write("\\address{%\n")
    f.write("  \\includegraphics[width=7cm]{logo.png}\\\\\n")
    f.write("  Lycée Hoche\\\\73 avenue de Saint-Cloud\\\\78000 VERSAILLES\n")
    f.write("}\n")
    f.write("\\lieu{Versailles}\n")
    f.write("\\date{Mardi 23/06/2026}\n")
    f.write("\\notelephone\n")
    f.write("\\nofax\n\n")
    f.write("\\conc{Admission au Lycée Hoche}\n")
    f.write("\\opening{")
    if genre == "Masculin":
        f.write("Monsieur " + nom + " " + prenom)
    elif genre == "Féminin":
        f.write("Madame " + nom + " " + prenom)
    else:
        f.write(nom + " " + prenom)
    f.write(",}\n\n")
    f.write("Félicitations pour votre admission au lycée Hoche de Versailles. Nous vous souhaitons la bienvenue dans la classe de BCPST1B.\n\n")
    if internat == "oui":
        f.write("Vous avez le grand honneur d'être accepté" + e_final + " en internat.")
    elif internat == "":
        f.write("Vous ne serez pas interne.")
    f.write("\n\n")
    f.write("C'est le moment de se mettre au travail, ne négligez pas l'informatique !")
    f.write("\n\n")
    f.write("\\closing{Bien cordialement,}\n")
    f.write("\\end{letter}\n")
    f.write("\\end{document}\n")
    f.close()

#%% programme principal

# ouverture du fichier CSV
import csv
# inutile si on ne compile pas
import os

# vérifier que le dossier existe bien
dossier = "lettres-PDF"

n = 1
f = open("liste.csv", "r", encoding="utf-8")
g = csv.DictReader(f)
# démarrage de la boucle sur g
print("Génération des lettres en PDF...")
for x in g:
    nom = x["nom"]
    print(f"Lettre {n:02d} de {nom}")
    # attention aux espaces dans le nom
    nom2 = nom.replace(" ", "_")
    nom_fichier = f"lettre-{n:02d}-{nom2}"
    # crée un nom de fichier
    m = f"{dossier}/{nom_fichier}.tex"
    # étape 1 : création du fichier .tex grâce à la fonction précédente
    lettre_latex(m, x["nom"], x["prenom"], x["genre"], x["internat"], x["date_naissance"], x["etablissement_origine"], x["commune"], x["departement"])
    # étape 2 : compilation pour former un PDF
    # commenter cette ligne si vous n'avez pas tous les logiciels nécessaires installés
    os.system(f"lualatex -file-line-error -interaction=nonstopmode -output-directory={dossier} {m}")
    n = n + 1
f.close()
print("Fin")
