Checkpoint: Correction du décalage d'une heure entre la saisie et l'affichage des dates de séquences. Création d'un module dateUtils.ts avec des fonctions parseLocalDateTime et formatToLocalDateTime pour gérer correctement les conversions entre heure locale et UTC. Toutes les procédures de création et mise à jour de séquences utilisent maintenant ces fonctions pour préserver l'heure locale saisie par l'utilisateur.

This commit is contained in:
Manus Sandbox
2025-11-12 11:35:01 -05:00
parent d198d4ce3f
commit 7135a9d2c6
3 changed files with 42 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ import { COOKIE_NAME } from "@shared/const";
import { getSessionCookieOptions } from "./_core/cookies";
import { systemRouter } from "./_core/systemRouter";
import { publicProcedure, protectedProcedure, router } from "./_core/trpc";
import { parseLocalDateTime } from "./dateUtils";
import { z } from "zod";
import * as db from "./db";
import { TRPCError } from "@trpc/server";
@@ -167,7 +168,7 @@ export const appRouter = router({
// Créer la séquence
const result = await db.createSequence({
...sequenceData,
dateBlocage: new Date(sequenceData.dateBlocage),
dateBlocage: parseLocalDateTime(sequenceData.dateBlocage),
});
// Récupérer l'ID de la séquence créée
@@ -177,8 +178,8 @@ export const appRouter = router({
for (const date of dates) {
await db.createDateFormation({
sequenceId,
dateDebut: new Date(date.dateDebut),
dateFin: new Date(date.dateFin),
dateDebut: parseLocalDateTime(date.dateDebut),
dateFin: parseLocalDateTime(date.dateFin),
ordre: date.ordre,
});
}
@@ -207,7 +208,7 @@ export const appRouter = router({
// Mettre à jour la séquence
const updateData: any = {
...sequenceData,
dateBlocage: new Date(sequenceData.dateBlocage),
dateBlocage: parseLocalDateTime(sequenceData.dateBlocage),
};
console.log('[UPDATE SEQUENCE] UpdateData:', JSON.stringify(updateData, null, 2));
@@ -220,8 +221,8 @@ export const appRouter = router({
for (const date of dates) {
await db.createDateFormation({
sequenceId: id,
dateDebut: new Date(date.dateDebut),
dateFin: new Date(date.dateFin),
dateDebut: parseLocalDateTime(date.dateDebut),
dateFin: parseLocalDateTime(date.dateFin),
ordre: date.ordre,
});
}