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