From af1783cb3f6315f376dc89ba875aa3f4330d503f Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Mon, 8 Sep 2025 16:27:09 +0000 Subject: [PATCH] Improve validation for the amount field in financial records Update Zod schema for the 'amount' field to handle various invalid input formats and ensure positive numerical values. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9fcf4b21-eb0c-4e53-a567-e2ce4a6ad869 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/9fcf4b21-eb0c-4e53-a567-e2ce4a6ad869/KZQgDPI --- attached_assets/image_1757348796301.png | Bin 0 -> 38567 bytes client/src/pages/Avoirs.tsx | 28 +++++++++++++----------- 2 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 attached_assets/image_1757348796301.png diff --git a/attached_assets/image_1757348796301.png b/attached_assets/image_1757348796301.png new file mode 100644 index 0000000000000000000000000000000000000000..703a2f4440bdee2a8bf23413900a007897010051 GIT binary patch literal 38567 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 literal 0 HcmV?d00001 diff --git a/client/src/pages/Avoirs.tsx b/client/src/pages/Avoirs.tsx index 6442371..ff49c35 100644 --- a/client/src/pages/Avoirs.tsx +++ b/client/src/pages/Avoirs.tsx @@ -71,19 +71,21 @@ const avoirSchema = z.object({ supplierId: z.coerce.number().min(1, "Veuillez sélectionner un fournisseur"), groupId: z.coerce.number().min(1, "Veuillez sélectionner un magasin"), invoiceReference: z.string().optional(), - amount: z.string().transform((val) => { - if (val === "" || val === null || val === undefined) { - return undefined; - } - const num = parseFloat(val); - if (isNaN(num)) { - throw new Error("Montant invalide"); - } - if (num <= 0) { - throw new Error("Le montant doit être supérieur à 0"); - } - return num; - }).optional(), + amount: z.union([ + z.null().transform(() => undefined), + z.undefined().transform(() => undefined), + z.literal("").transform(() => undefined), + z.string().transform((val) => { + const num = parseFloat(val); + if (isNaN(num)) { + throw new Error("Montant invalide"); + } + if (num <= 0) { + throw new Error("Le montant doit être supérieur à 0"); + } + return num; + }) + ]).optional(), comment: z.string().optional(), commercialProcessed: z.boolean().optional(), status: z.enum(["En attente de demande", "Demandé", "Reçu"]).optional(),