Merge pull request #512 from R0m1k3/1.1

Improve reconciliation validation feedback and cache updates
This commit is contained in:
LogiFlow authored and GitHub committed 2025-11-04 14:57:36 +01:00
commit a3dfda16f4
1 file changed
+16 -11
+16 -11
View File
@@ -144,15 +144,8 @@ export default function BLReconciliation() {
), ),
duration: 5000, duration: 5000,
}); });
} else {
// Facture non trouvée - afficher message d'erreur
toast({
title: "⚠️ Facture non trouvée",
description: result.errorMessage || 'La facture n\'a pas été trouvée dans la base de données',
variant: "destructive",
duration: 5000,
});
} }
// Pas de toast si facture non trouvée - affichage silencieux de la croix rouge
// Auto-remplissage si facture trouvée (référence facture OU numéro BL) // Auto-remplissage si facture trouvée (référence facture OU numéro BL)
if (result.exists) { if (result.exists) {
@@ -675,13 +668,25 @@ export default function BLReconciliation() {
description: "Rapprochement validé avec succès", description: "Rapprochement validé avec succès",
}); });
// Force refetch immédiat pour déplacer la facture dans l'onglet validées // Mise à jour optimiste du cache local pour disparition immédiate
await queryClient.refetchQueries({ queryKey: ['/api/deliveries/bl'] }); queryClient.setQueryData(['/api/deliveries/bl', selectedStoreId], (oldData: any) => {
await queryClient.refetchQueries({ queryKey: ['/api/deliveries'] }); if (!oldData) return oldData;
return oldData.map((d: any) =>
d.id === delivery.id
? { ...d, reconciled: true, validatedAt: new Date().toISOString() }
: d
);
});
// Force refetch pour synchroniser avec le serveur
queryClient.refetchQueries({ queryKey: ['/api/deliveries/bl'] });
queryClient.refetchQueries({ queryKey: ['/api/deliveries'] });
// Passer automatiquement à l'onglet "Validées" après validation // Passer automatiquement à l'onglet "Validées" après validation
setActiveTab("validated"); setActiveTab("validated");
} catch (error) { } catch (error) {
// En cas d'erreur, refetch pour annuler la mise à jour optimiste
queryClient.refetchQueries({ queryKey: ['/api/deliveries/bl'] });
toast({ toast({
title: "Erreur", title: "Erreur",
description: "Impossible de valider le rapprochement", description: "Impossible de valider le rapprochement",