diff --git a/attached_assets/image_1762190193766.png b/attached_assets/image_1762190193766.png new file mode 100644 index 0000000..09337ec Binary files /dev/null and b/attached_assets/image_1762190193766.png differ diff --git a/client/src/pages/BLReconciliation.tsx b/client/src/pages/BLReconciliation.tsx index 1bf7bab..72697d5 100644 --- a/client/src/pages/BLReconciliation.tsx +++ b/client/src/pages/BLReconciliation.tsx @@ -153,18 +153,37 @@ export default function BLReconciliation() { }); } - // Auto-remplissage si facture trouvée via BL - if (result.exists && result.matchType === 'bl_number' && result.invoiceReference) { + // Auto-remplissage si facture trouvée (référence facture OU numéro BL) + if (result.exists) { // Auto-remplir les champs dans la livraison via API - apiRequest(`/api/deliveries/${variables.deliveryId}`, "PUT", { - invoiceReference: result.invoiceReference, - invoiceAmount: result.invoiceAmount - }).then(() => { - queryClient.invalidateQueries({ queryKey: ['/api/deliveries/bl'] }); - queryClient.invalidateQueries({ queryKey: ['/api/deliveries'] }); - }).catch((error) => { - console.error('Erreur auto-remplissage:', error); - }); + const updateData: any = {}; + + // Ajouter la référence de facture si trouvée et pas déjà renseignée + if (result.invoiceReference && result.matchType === 'bl_number') { + updateData.invoiceReference = result.invoiceReference; + } + + // Toujours mettre à jour le montant si disponible + if (result.invoiceAmount) { + updateData.invoiceAmount = result.invoiceAmount; + } + + // Toujours mettre à jour la date d'échéance si disponible + if (result.dueDate) { + updateData.dueDate = result.dueDate; + } + + // Ne faire l'appel que si on a des données à mettre à jour + if (Object.keys(updateData).length > 0) { + apiRequest(`/api/deliveries/${variables.deliveryId}`, "PUT", updateData) + .then(() => { + queryClient.invalidateQueries({ queryKey: ['/api/deliveries/bl'] }); + queryClient.invalidateQueries({ queryKey: ['/api/deliveries'] }); + }) + .catch((error) => { + console.error('Erreur auto-remplissage:', error); + }); + } } setVerifyingDeliveries(prev => { diff --git a/server/routes.ts b/server/routes.ts index 4845239..7bf9fb2 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1407,10 +1407,13 @@ export async function registerRoutes(app: Express): Promise { transformedData.invoiceAmount = transformedData.invoiceAmount.toString(); } - // Convert validatedAt to Date object (schema expects Date for timestamp fields) + // Convert timestamp fields to Date objects (schema expects Date for timestamp fields) if (transformedData.validatedAt && typeof transformedData.validatedAt === 'string') { transformedData.validatedAt = new Date(transformedData.validatedAt); } + if (transformedData.dueDate && typeof transformedData.dueDate === 'string') { + transformedData.dueDate = new Date(transformedData.dueDate); + } const data = insertDeliverySchema.partial().parse(transformedData);