mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-22 22:48:15 +02:00
4 files changed
+23
-2
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 108 KiB |
@@ -705,8 +705,18 @@ export default function BLReconciliation() {
|
|||||||
description: "Livraison supprimée avec succès",
|
description: "Livraison supprimée avec succès",
|
||||||
});
|
});
|
||||||
|
|
||||||
queryClient.invalidateQueries({ queryKey: ['/api/deliveries/bl'] });
|
// Mise à jour optimiste du cache local pour disparition immédiate
|
||||||
|
queryClient.setQueryData(['/api/deliveries/bl', selectedStoreId], (oldData: any) => {
|
||||||
|
if (!oldData) return oldData;
|
||||||
|
return oldData.filter((d: any) => d.id !== deliveryId);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Force refetch pour synchroniser avec le serveur
|
||||||
|
queryClient.refetchQueries({ queryKey: ['/api/deliveries/bl'] });
|
||||||
|
queryClient.refetchQueries({ queryKey: ['/api/deliveries'] });
|
||||||
} 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 supprimer la livraison",
|
description: "Impossible de supprimer la livraison",
|
||||||
|
|||||||
+12
-1
@@ -1948,7 +1948,18 @@ export class DatabaseStorage implements IStorage {
|
|||||||
query = query.where(and(...conditions));
|
query = query.where(and(...conditions));
|
||||||
}
|
}
|
||||||
|
|
||||||
const results = await query.orderBy(asc(dlcProducts.expiryDate));
|
// Tri intelligent : produits actifs en premier, puis produits traités/validés en dernier
|
||||||
|
const results = await query.orderBy(
|
||||||
|
// Priorité 1 : Produits actifs d'abord (non validés, non traités, stock disponible)
|
||||||
|
sql`CASE
|
||||||
|
WHEN ${dlcProducts.status} = 'valides' THEN 3
|
||||||
|
WHEN ${dlcProducts.stockEpuise} = true THEN 2
|
||||||
|
WHEN ${dlcProducts.processedUntilExpiry} = true THEN 2
|
||||||
|
ELSE 1
|
||||||
|
END`,
|
||||||
|
// Priorité 2 : Date d'expiration (croissante)
|
||||||
|
asc(dlcProducts.expiryDate)
|
||||||
|
);
|
||||||
|
|
||||||
return results.map((row: any) => ({
|
return results.map((row: any) => ({
|
||||||
...row.dlcProduct,
|
...row.dlcProduct,
|
||||||
|
|||||||
Reference in new issue
Block a user