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:
@@ -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 };
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user