From b946e288182fe6dfc48a8796a8aad383b03db1fe Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Fri, 15 Aug 2025 22:21:57 +0000 Subject: [PATCH] Make delivery reconciliation and validation optional for BL numbers Remove the mandatory requirement for the delivery note (BL) number in both the reconciliation and delivery validation forms, allowing these fields to be optional. Replit-Commit-Author: Agent Replit-Commit-Session-Id: a3de0820-9397-41b2-b000-7931ee9c29de Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/a3de0820-9397-41b2-b000-7931ee9c29de/vqNg9rh --- .../components/modals/ReconciliationModal.tsx | 34 ++++--------------- .../modals/ValidateDeliveryModal.tsx | 15 ++++---- 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/client/src/components/modals/ReconciliationModal.tsx b/client/src/components/modals/ReconciliationModal.tsx index 13a5e26..f0275b9 100644 --- a/client/src/components/modals/ReconciliationModal.tsx +++ b/client/src/components/modals/ReconciliationModal.tsx @@ -77,19 +77,9 @@ export default function ReconciliationModal({ const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); - - // Validation basique - if (!formData.blNumber.trim()) { - toast({ - title: "Erreur", - description: "Le numéro de BL est requis", - variant: "destructive", - }); - return; - } updateDeliveryMutation.mutate({ - blNumber: formData.blNumber.trim(), + blNumber: formData.blNumber.trim() || null, blAmount: formData.blAmount ? formData.blAmount.toString() : null, invoiceReference: formData.invoiceReference.trim() || null, invoiceAmount: formData.invoiceAmount ? formData.invoiceAmount.toString() : null, @@ -97,17 +87,8 @@ export default function ReconciliationModal({ }; const handleValidateReconciliation = () => { - if (!formData.blNumber.trim()) { - toast({ - title: "Erreur", - description: "Veuillez d'abord renseigner le numéro de BL", - variant: "destructive", - }); - return; - } - updateDeliveryMutation.mutate({ - blNumber: formData.blNumber.trim(), + blNumber: formData.blNumber.trim() || null, blAmount: formData.blAmount ? formData.blAmount.toString() : null, invoiceReference: formData.invoiceReference.trim() || null, invoiceAmount: formData.invoiceAmount ? formData.invoiceAmount.toString() : null, @@ -117,7 +98,7 @@ export default function ReconciliationModal({ }; const isAutomaticMode = delivery?.supplier?.automaticReconciliation; - const canValidate = formData.blNumber.trim().length > 0; + const canValidate = true; // Plus de restriction sur le numéro BL return ( @@ -176,13 +157,12 @@ export default function ReconciliationModal({

Bon de Livraison (BL)

- + setFormData(prev => ({ ...prev, blNumber: e.target.value }))} - placeholder="Ex: BL-2025-001" - required + placeholder="Ex: BL-2025-001 (optionnel)" />
@@ -263,8 +243,8 @@ export default function ReconciliationModal({ {/* Note d'aide */}
- Note : Le numéro de BL est obligatoire pour valider un rapprochement. - Les montants sont optionnels mais recommandés pour un suivi précis. + Note : Tous les champs sont optionnels. + Les données BL et facture sont recommandées pour un suivi précis mais pas obligatoires.
diff --git a/client/src/components/modals/ValidateDeliveryModal.tsx b/client/src/components/modals/ValidateDeliveryModal.tsx index 8de83c5..2966d1e 100644 --- a/client/src/components/modals/ValidateDeliveryModal.tsx +++ b/client/src/components/modals/ValidateDeliveryModal.tsx @@ -13,7 +13,7 @@ import { isUnauthorizedError } from "@/lib/authUtils"; import { Check, X } from "lucide-react"; const validateDeliverySchema = z.object({ - blNumber: z.string().min(1, "Le numéro de BL est obligatoire"), + blNumber: z.string().optional(), blAmount: z.string().optional(), }); @@ -45,9 +45,12 @@ export default function ValidateDeliveryModal({ const validateDeliveryMutation = useMutation({ mutationFn: async (data: ValidateDeliveryForm) => { - const payload: any = { - blNumber: data.blNumber, - }; + const payload: any = {}; + + // Ajouter blNumber seulement s'il est fourni + if (data.blNumber && data.blNumber.trim() !== '') { + payload.blNumber = data.blNumber.trim(); + } if (data.blAmount && data.blAmount.trim() !== '') { payload.blAmount = parseFloat(data.blAmount); @@ -134,10 +137,10 @@ export default function ValidateDeliveryModal({ name="blNumber" render={({ field }) => ( - N° Bon de Livraison * + N° Bon de Livraison