diff --git a/client/src/pages/Dashboard.tsx b/client/src/pages/Dashboard.tsx index 53e4ac9..9b9dc7a 100644 --- a/client/src/pages/Dashboard.tsx +++ b/client/src/pages/Dashboard.tsx @@ -4,7 +4,7 @@ import { useStore } from "@/components/Layout"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; -import { Calendar, Package, ShoppingCart, TrendingUp, Clock, MapPin, User, AlertTriangle, CheckCircle, Truck, FileText, BarChart3, Megaphone, Shield, XCircle, CheckSquare } from "lucide-react"; +import { Calendar, Package, ShoppingCart, TrendingUp, Clock, MapPin, User, AlertTriangle, CheckCircle, Truck, FileText, BarChart3, Megaphone, Shield, XCircle, CheckSquare, Circle } from "lucide-react"; import { safeFormat, safeDate } from "@/lib/dateUtils"; import type { PublicityWithRelations } from "@shared/schema"; @@ -119,7 +119,7 @@ export default function Dashboard() { const dateB = safeDate(b.createdAt); return (dateB ? dateB.getTime() : 0) - (dateA ? dateA.getTime() : 0); }) - .slice(0, 3) : []; + .slice(0, 4) : []; // Afficher les 4 dernières commandes const upcomingDeliveries = Array.isArray(allDeliveries) ? allDeliveries .filter((d: any) => { @@ -128,7 +128,7 @@ export default function Dashboard() { return isPlanned; }) .sort((a: any, b: any) => new Date(a.scheduledDate).getTime() - new Date(b.scheduledDate).getTime()) - .slice(0, 2) : []; + .slice(0, 4) : []; // Afficher les 4 prochaines livraisons console.log('🚚 Dashboard - Upcoming deliveries result:', upcomingDeliveries.length, upcomingDeliveries); @@ -143,14 +143,48 @@ export default function Dashboard() { delivery.status === 'delivered'; }).length : 0; - // Calculer le total réel des palettes + // Calculer le total des palettes pour les livraisons 'delivered' du mois en cours const totalPalettes = Array.isArray(allDeliveries) ? allDeliveries.reduce((total: number, delivery: any) => { - if (delivery.unit === 'palettes') { - return total + (delivery.quantity || 0); + if (delivery.status === 'delivered' && delivery.unit === 'palettes') { + const deliveryDate = safeDate(delivery.deliveredDate || delivery.createdAt); + const now = new Date(); + if (deliveryDate.getMonth() === now.getMonth() && deliveryDate.getFullYear() === now.getFullYear()) { + return total + (delivery.quantity || 0); + } } return total; }, 0) : 0; + // Fonction pour obtenir la configuration des priorités (identique au module Tasks) + const getPriorityConfig = (priority: string) => { + switch (priority) { + case 'high': + return { + color: 'destructive' as const, + icon: AlertTriangle, + label: 'Élevée' + }; + case 'medium': + return { + color: 'default' as const, + icon: Clock, + label: 'Moyenne' + }; + case 'low': + return { + color: 'secondary' as const, + icon: Circle, + label: 'Faible' + }; + default: + return { + color: 'secondary' as const, + icon: Circle, + label: 'Moyenne' + }; + } + }; + console.log('📊 Dashboard Debug - Raw Data:', { allOrders: Array.isArray(allOrders) ? allOrders.length : 'NOT_ARRAY', allDeliveries: Array.isArray(allDeliveries) ? allDeliveries.length : 'NOT_ARRAY', @@ -492,28 +526,36 @@ export default function Dashboard() { return (dateA ? dateA.getTime() : 0) - (dateB ? dateB.getTime() : 0); }) .slice(0, 5) - .map((task: any) => ( -
{task.title}
-{task.assignedTo}
+ .map((task: any) => { + const priorityConfig = getPriorityConfig(task.priority); + const PriorityIcon = priorityConfig.icon; + + return ( +{task.title}
+{task.assignedUser?.username || task.assignedTo}
++ {safeFormat(task.createdAt, "d MMM")} +
- {safeFormat(task.createdAt, "d MMM")} -
-Aucune tâche en cours
Toutes les tâches sont terminées