Checkpoint: Correction complète du bug d'import Excel - Utilisation de $returningId() pour récupérer les IDs après insertion (formations et séquences), ajout de la colonne ordre obligatoire pour les dates de formation. L'import fonctionne maintenant correctement.

This commit is contained in:
Manus Sandbox
2025-11-25 14:33:57 -05:00
parent c4f9cb9ebc
commit 46f8a6bcfd
4 changed files with 120 additions and 7 deletions

View File

@@ -196,13 +196,13 @@ export async function importToDatabase(
for (const formation of formations) {
try {
console.log(`[Import] Création formation: ${formation.nom}`);
const result = await db.insert(formationsTable).values({
const [result] = await db.insert(formationsTable).values({
nom: formation.nom,
description: formation.description,
lienUnique: generateUniqueLien(),
});
}).$returningId();
const formationId = Number(result.insertId);
const formationId = result.id;
formationIdMap.set(formation.nom.toLowerCase(), formationId);
console.log(`[Import] Formation créée avec ID ${formationId}, ajoutée à la map avec clé: "${formation.nom.toLowerCase()}"`);
formationsCreated++;
@@ -238,7 +238,7 @@ export async function importToDatabase(
continue;
}
const result = await db.insert(sequencesTable).values({
const [result] = await db.insert(sequencesTable).values({
formationId,
nom: sequence.nom,
lieu: sequence.lieu,
@@ -246,16 +246,18 @@ export async function importToDatabase(
capaciteMax: sequence.capaciteMax,
dateBlocage: new Date(sequence.dateBlocage),
statut: sequence.statut,
});
}).$returningId();
const sequenceId = Number(result.insertId);
const sequenceId = result.id;
// Insérer les dates de formation
for (const date of sequence.dates.slice(0, 4)) {
for (let i = 0; i < Math.min(sequence.dates.length, 4); i++) {
const date = sequence.dates[i];
await db.insert(datesFormation).values({
sequenceId,
dateDebut: new Date(date.debut),
dateFin: new Date(date.fin),
ordre: i + 1,
});
}