diff --git a/server/gestionAttestationsDb.ts b/server/gestionAttestationsDb.ts index 4b565a8..ed71d6e 100644 --- a/server/gestionAttestationsDb.ts +++ b/server/gestionAttestationsDb.ts @@ -159,17 +159,21 @@ export async function getApprenantsWithAttestationStatus(formationId: number) { const db = await getDb(); if (!db) return []; - // Récupérer les premières dates de chaque séquence - const premieresDates = await db + // Récupérer toutes les dates de formation + const toutesLesDates = await db .select({ sequenceId: datesFormation.sequenceId, - premiereDate: sql`MIN(${datesFormation.date})`, + date: datesFormation.date, }) - .from(datesFormation) - .groupBy(datesFormation.sequenceId); + .from(datesFormation); - // Créer un map pour accès rapide - const datesMap = new Map(premieresDates.map(d => [d.sequenceId, d.premiereDate])); + // Calculer la première date de chaque séquence en JavaScript + const datesMap = new Map(); + toutesLesDates.forEach(({ sequenceId, date }) => { + if (!datesMap.has(sequenceId) || date < datesMap.get(sequenceId)!) { + datesMap.set(sequenceId, date); + } + }); const results = await db .select({ diff --git a/todo.md b/todo.md index f17293e..0eb0b13 100644 --- a/todo.md +++ b/todo.md @@ -1293,4 +1293,9 @@ - [x] Afficher la date de début dans l'en-tête de chaque séquence (ex: "Groupe A - 15/01/2026") - [x] Ajouter un bouton "Envoyer toutes les attestations de cette séquence" dans l'en-tête - [x] Créer un filtre "Séquences terminées / à venir" -- [ ] Déployer sur le VPS +- [x] Déployer sur le VPS + +## Corriger l'erreur SQL MIN() vide dans la récupération de la première date + +- [x] Corriger la requête SQL dans gestionAttestationsDb.ts (remplacé par post-traitement JS) +- [x] Déployer la correction sur le VPS