Checkpoint: Correction du bug : signatures manquantes dans les feuilles de présence PDF

🐛 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é
This commit is contained in:
Manus
2026-01-28 06:14:11 -05:00
parent 3029e797c9
commit 700e4956fc
3 changed files with 15 additions and 3 deletions

View File

@@ -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,

View File

@@ -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,

11
todo.md
View File

@@ -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)