Checkpoint: Intégration complète des signatures tactiles (matin et après-midi) dans les feuilles de présence PDF. Correction du bug apres-midi vs apres_midi. Logs de debug retirés. Déployé sur VPS.

This commit is contained in:
Manus
2026-01-28 09:44:13 -05:00
parent 700e4956fc
commit 8c6dda473a
4 changed files with 36 additions and 3 deletions

View File

@@ -34,6 +34,7 @@ interface ApprenantPresence {
fonction: string | null;
presences?: Array<{
dateFormationId: number;
periode: 'matin' | 'apres_midi';
signatureUrl: string | null;
}>;
}
@@ -225,7 +226,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 (utiliser l'ID de la date, pas l'ordre)
const presenceMatin = i.presences?.find(p => p.dateFormationId === dateInfo.id);
const presenceMatin = i.presences?.find(p => p.dateFormationId === dateInfo.id && p.periode === 'matin');
const presenceApresMidi = i.presences?.find(p => p.dateFormationId === dateInfo.id && p.periode === 'apres_midi');
return [
i.nom,
@@ -233,7 +235,7 @@ export function generateFeuillePresence(feuilleInfo: FeuillePresenceInfo): Buffe
i.codeEtablissement || '',
i.fonction === 'directeur' ? 'Directeur' : i.fonction === 'chef_service' ? 'Chef de service' : 'Autre',
presenceMatin?.signatureUrl || '', // Signature matin (sera remplacée par l'image)
'', // Signature après-midi (pour l'instant vide, sera implémenté si nécessaire)
presenceApresMidi?.signatureUrl || '', // Signature après-midi (sera remplacée par l'image)
];
});
@@ -262,6 +264,7 @@ export function generateFeuillePresence(feuilleInfo: FeuillePresenceInfo): Buffe
// Insérer les images de signatures dans les colonnes 4 et 5
if (data.section === 'body' && (data.column.index === 4 || data.column.index === 5)) {
const signatureUrl = data.cell.raw as string;
if (signatureUrl && signatureUrl.startsWith('/uploads/signatures/')) {
try {
// Construire le chemin absolu vers le fichier de signature
@@ -282,7 +285,7 @@ export function generateFeuillePresence(feuilleInfo: FeuillePresenceInfo): Buffe
doc.addImage(signatureBase64, 'PNG', cellX, cellY, cellWidth, cellHeight);
}
} catch (error) {
console.warn('Erreur lors du chargement de la signature:', error);
console.error('Erreur lors du chargement de la signature:', error);
}
}
}

View File

@@ -1159,6 +1159,7 @@ export const appRouter = router({
.filter(p => p.inscriptionId === i.inscription.id)
.map(p => ({
dateFormationId: p.dateFormationId,
periode: p.periode as 'matin' | 'apres_midi',
signatureUrl: p.signatureUrl,
}));