Checkpoint: Améliorations complètes des feuilles de présence :
✅ Logo Itinova ajouté en haut à droite de chaque page (40x15mm) ✅ Nom du formateur affiché dans l'en-tête (récupéré automatiquement depuis la base de données) ✅ Deux colonnes de signature par apprenant et par journée (Signature Matin / Signature Après-midi) ✅ Une page générée pour chaque date de formation ✅ Toutes les informations complètes : Formation, Séquence, Lieu, Formateur, Public cible, Date de la journée ✅ Tableau avec 6 colonnes : Nom, Prénom, Code établissement, Fonction, Signature Matin, Signature Après-midi Corrections techniques : - Utilisation de path.resolve(process.cwd()) au lieu de __dirname pour éviter l'erreur "ReferenceError: __dirname is not defined" - Ajout du champ formateur dans l'interface FeuillePresenceInfo - Récupération automatique du nom du formateur via formateurId dans la procédure exportFeuillePresence Tests réussis : Génération testée avec la séquence "Groupe A" (formateur George Clooney, 2 dates) - PDF généré avec succès avec toutes les modifications visibles.
This commit is contained in:
@@ -544,6 +544,15 @@ export const appRouter = router({
|
||||
const inscriptions = await db.getInscriptionsBySequence(input.sequenceId);
|
||||
const dates = await db.getDatesBySequence(input.sequenceId);
|
||||
|
||||
// Récupérer le formateur si défini
|
||||
let formateurNom: string | undefined = undefined;
|
||||
if (sequence.formateurId) {
|
||||
const formateur = await db.getFormateurById(sequence.formateurId);
|
||||
if (formateur) {
|
||||
formateurNom = formateur.nom;
|
||||
}
|
||||
}
|
||||
|
||||
const data = inscriptions
|
||||
.filter(i => i.inscription.statut === 'confirmee' && i.apprenant)
|
||||
.map(i => ({
|
||||
@@ -563,6 +572,7 @@ export const appRouter = router({
|
||||
})),
|
||||
lieu: sequence.lieu,
|
||||
publicCible: sequence.publicCible,
|
||||
formateur: formateurNom,
|
||||
apprenants: data,
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user