Checkpoint: Correction de la désactivation intempestive des rappels : les dates ne sont plus supprimées/recréées lors de la modification du formateur, seulement lors d'un réel changement de dates

This commit is contained in:
Manus
2026-01-25 07:33:23 -05:00
parent 54adfa346b
commit 3764fde6fe
2 changed files with 41 additions and 12 deletions

View File

@@ -532,21 +532,43 @@ export const appRouter = router({
await db.updateSequence(id, updateData);
console.log('[UPDATE SEQUENCE] Séquence mise à jour avec succès');
// Supprimer les anciennes dates
await db.deleteDatesBySequence(id);
console.log('[UPDATE SEQUENCE] Anciennes dates supprimées');
// Récupérer les dates existantes
const existingDates = await db.getDatesBySequence(id);
console.log('[UPDATE SEQUENCE] Dates existantes:', existingDates.length);
// Créer les nouvelles dates
for (const date of dates) {
console.log('[UPDATE SEQUENCE] Création date:', date);
await db.createDateFormation({
sequenceId: id,
dateDebut: parseLocalDateTime(date.dateDebut),
dateFin: parseLocalDateTime(date.dateFin),
ordre: date.ordre,
// Comparer les dates pour détecter les changements
const datesChanged = existingDates.length !== dates.length ||
existingDates.some((existing, index) => {
const newDate = dates[index];
if (!newDate) return true;
const existingDebut = new Date(existing.dateDebut).toISOString();
const existingFin = new Date(existing.dateFin).toISOString();
const newDebut = parseLocalDateTime(newDate.dateDebut).toISOString();
const newFin = parseLocalDateTime(newDate.dateFin).toISOString();
return existingDebut !== newDebut || existingFin !== newFin;
});
// Ne supprimer/recréer les dates que si elles ont changé
if (datesChanged) {
console.log('[UPDATE SEQUENCE] Dates modifiées, suppression et recréation');
// Supprimer les anciennes dates
await db.deleteDatesBySequence(id);
console.log('[UPDATE SEQUENCE] Anciennes dates supprimées');
// Créer les nouvelles dates
for (const date of dates) {
console.log('[UPDATE SEQUENCE] Création date:', date);
await db.createDateFormation({
sequenceId: id,
dateDebut: parseLocalDateTime(date.dateDebut),
dateFin: parseLocalDateTime(date.dateFin),
ordre: date.ordre,
});
}
console.log('[UPDATE SEQUENCE] Toutes les dates ont été créées');
} else {
console.log('[UPDATE SEQUENCE] Dates inchangées, conservation des rappels');
}
console.log('[UPDATE SEQUENCE] Toutes les dates ont été créées');
return { success: true };
}),