From 700e4956fc357677028e62112f428221dc0a1fe4 Mon Sep 17 00:00:00 2001 From: Manus Date: Wed, 28 Jan 2026 06:14:11 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Correction=20du=20bug=20:=20signa?= =?UTF-8?q?tures=20manquantes=20dans=20les=20feuilles=20de=20pr=C3=A9sence?= =?UTF-8?q?=20PDF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 ProblĂšme identifiĂ© : - Le code utilisait `dateInfo.ordre` (1, 2, 3...) pour chercher les prĂ©sences - Mais les prĂ©sences sont indexĂ©es par `dateFormationId` (ID rĂ©el de la date en base) - RĂ©sultat : aucune correspondance trouvĂ©e, signatures non affichĂ©es ✅ Corrections apportĂ©es : - Ajout du champ `id` dans l'interface `FeuillePresenceInfo` (exportService.ts) - Modification de la logique de recherche : `dateInfo.ordre` → `dateInfo.id` (ligne 228) - Ajout de l'ID dans le mapping des dates (routers.ts, ligne 1178) - DĂ©ploiement sur VPS (98.71.216.234) - Application redĂ©marrĂ©e avec PM2 📋 Fonctionnement corrigĂ© : - Les dates incluent maintenant leur ID rĂ©el de la base de donnĂ©es - La recherche des prĂ©sences utilise cet ID pour la correspondance - Les signatures sont chargĂ©es et affichĂ©es dans les bonnes colonnes du PDF 🔍 Test requis : - Exporter une feuille de prĂ©sence pour une sĂ©quence avec signatures - VĂ©rifier que les signatures apparaissent dans le PDF gĂ©nĂ©rĂ© --- server/exportService.ts | 6 +++--- server/routers.ts | 1 + todo.md | 11 +++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/server/exportService.ts b/server/exportService.ts index bb2ae25..ef6f95c 100644 --- a/server/exportService.ts +++ b/server/exportService.ts @@ -41,7 +41,7 @@ interface ApprenantPresence { interface FeuillePresenceInfo { formationNom: string; sequenceNom: string; - dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>; + dates: Array<{ id: number; dateDebut: Date; dateFin: Date; ordre: number }>; lieu: string; publicCible: string; formateur?: string; @@ -224,8 +224,8 @@ export function generateFeuillePresence(feuilleInfo: FeuillePresenceInfo): Buffe // Tableau de prĂ©sence avec signatures matin et aprĂšs-midi const tableData = feuilleInfo.apprenants.map(i => { - // Trouver les prĂ©sences pour cette date - const presenceMatin = i.presences?.find(p => p.dateFormationId === dateInfo.ordre); + // Trouver les prĂ©sences pour cette date (utiliser l'ID de la date, pas l'ordre) + const presenceMatin = i.presences?.find(p => p.dateFormationId === dateInfo.id); return [ i.nom, diff --git a/server/routers.ts b/server/routers.ts index 5a1f005..b308cc3 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -1175,6 +1175,7 @@ export const appRouter = router({ formationNom: formation.nom, sequenceNom: sequence.nom, dates: dates.map(d => ({ + id: d.id, dateDebut: new Date(d.dateDebut), dateFin: new Date(d.dateFin), ordre: d.ordre, diff --git a/todo.md b/todo.md index 4143bc1..8d2beb1 100644 --- a/todo.md +++ b/todo.md @@ -1363,3 +1363,14 @@ - [x] RedĂ©marrer l'application avec PM2 - [x] VĂ©rifier que l'application fonctionne correctement - [ ] Tester l'export PDF avec signatures sur production (test utilisateur requis) + +## Bug - Signatures manquantes dans PDF + +- [x] Analyser pourquoi les signatures n'apparaissent pas dans le PDF gĂ©nĂ©rĂ© +- [x] VĂ©rifier la logique de correspondance entre prĂ©sences et dates +- [x] ProblĂšme identifiĂ© : utilisation de dateInfo.ordre au lieu de dateInfo.id +- [x] Corriger le code (exportService.ts et routers.ts) +- [x] Ajouter l'ID de la date dans l'interface FeuillePresenceInfo +- [x] Corriger la logique de recherche des prĂ©sences +- [x] DĂ©ployer sur VPS +- [ ] Tester la gĂ©nĂ©ration PDF avec signatures (test utilisateur requis)