Checkpoint: Correction du bug de modification des horaires des séquences. Le problème venait du fait que les champs de la procédure update étaient marqués comme optionnels, ce qui empêchait la mise à jour correcte des dates. Tous les champs sont maintenant obligatoires et les dates sont systématiquement supprimées puis recréées lors de la modification pour garantir la cohérence des données.
This commit is contained in:
@@ -188,42 +188,39 @@ export const appRouter = router({
|
||||
|
||||
update: adminProcedure.input(z.object({
|
||||
id: z.number(),
|
||||
formationId: z.number().optional(),
|
||||
nom: z.string().min(1).optional(),
|
||||
lieu: z.string().min(1).optional(),
|
||||
capaciteMax: z.number().optional(),
|
||||
dateBlocage: z.string().optional(),
|
||||
statut: z.enum(["ouverte", "bloquee", "terminee"]).optional(),
|
||||
formationId: z.number(),
|
||||
nom: z.string().min(1),
|
||||
lieu: z.string().min(1),
|
||||
capaciteMax: z.number(),
|
||||
dateBlocage: z.string(),
|
||||
statut: z.enum(["ouverte", "bloquee", "terminee"]),
|
||||
dates: z.array(z.object({
|
||||
dateDebut: z.string(),
|
||||
dateFin: z.string(),
|
||||
ordre: z.number(),
|
||||
})).min(1).max(4).optional(),
|
||||
})).min(1).max(4),
|
||||
})).mutation(async ({ input }) => {
|
||||
const { id, dates, ...sequenceData } = input;
|
||||
|
||||
// Mettre à jour la séquence
|
||||
const updateData: any = { ...sequenceData };
|
||||
if (sequenceData.dateBlocage) {
|
||||
updateData.dateBlocage = new Date(sequenceData.dateBlocage);
|
||||
}
|
||||
const updateData: any = {
|
||||
...sequenceData,
|
||||
dateBlocage: new Date(sequenceData.dateBlocage),
|
||||
};
|
||||
|
||||
await db.updateSequence(id, updateData);
|
||||
|
||||
// Si des dates sont fournies, les mettre à jour
|
||||
if (dates) {
|
||||
// Supprimer les anciennes dates
|
||||
await db.deleteDatesBySequence(id);
|
||||
// Supprimer les anciennes dates
|
||||
await db.deleteDatesBySequence(id);
|
||||
|
||||
// Créer les nouvelles dates
|
||||
for (const date of dates) {
|
||||
await db.createDateFormation({
|
||||
sequenceId: id,
|
||||
dateDebut: new Date(date.dateDebut),
|
||||
dateFin: new Date(date.dateFin),
|
||||
ordre: date.ordre,
|
||||
});
|
||||
}
|
||||
// Créer les nouvelles dates
|
||||
for (const date of dates) {
|
||||
await db.createDateFormation({
|
||||
sequenceId: id,
|
||||
dateDebut: new Date(date.dateDebut),
|
||||
dateFin: new Date(date.dateFin),
|
||||
ordre: date.ordre,
|
||||
});
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
|
||||
Reference in New Issue
Block a user