Checkpoint: V1.26 - Feuille de présence : un PDF par jour (A4 portrait, colonnes sig. matin + après-midi sur même ligne, zone signature formateur). Correction des bugs d'upload attestations et de plantage PDF.

This commit is contained in:
Manus
2026-03-02 04:39:32 -05:00
parent 460d2f3922
commit 4063e298b9
4 changed files with 192 additions and 15 deletions

View File

@@ -11,7 +11,7 @@ import { generateAnalyticsExcel, generateAnalyticsPDF } from "./analyticsExportS
import { TRPCError } from "@trpc/server";
import { sendInscriptionConfirmation, sendGroupEmail, sendNotificationFormateurNouvelleInscription, sendNotificationFormateurAnnulation, sendAlerteCapaciteAtteinte, sendNotificationPlaceDisponible, sendRemerciementPostFormation, sendResetPasswordEmail } from "./emailService";
import { logNotification } from "./notificationLogsDb";
import { generateExcelExport, generatePDFExport, generateFeuillePresence } from "./exportService";
import { generateExcelExport, generatePDFExport, generateFeuillePresenceParJour } from "./exportService";
import { parseExcelFile, validateImportData, importToDatabase } from "./importExcel";
import crypto from "crypto";
import bcrypt from "bcryptjs";
@@ -1232,7 +1232,7 @@ export const appRouter = router({
};
});
const buffer = await generateFeuillePresence({
const pdfsParJour = generateFeuillePresenceParJour({
formationNom: formation.nom,
sequenceNom: sequence.nom,
dates: dates.map(d => ({
@@ -1252,10 +1252,12 @@ export const appRouter = router({
})),
});
return {
// Retourner un tableau de PDFs (un par jour)
return pdfsParJour.map(({ ordre, filename, buffer }) => ({
ordre,
buffer: buffer.toString('base64'),
filename: `feuille_presence_${sequence.nom.replace(/\s+/g, '_')}.pdf`,
};
filename,
}));
}),
// Ajout manuel d'un inscrit par l'admin (sans vérifications de blocage/capacité)