From d938db04ff39cbdee203e6f769a525a04414871f Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Wed, 3 Sep 2025 14:46:31 +0000 Subject: [PATCH] Improve delivery time calculation to only include orders with linked deliveries Update the average delivery time calculation to consider only deliveries with an associated order, measuring the time between the order's planned date and the delivery date. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cfbfe47c-0c9a-4ebf-8a41-2937407eccff Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/cfbfe47c-0c9a-4ebf-8a41-2937407eccff/ECRh2Iu --- server/storage.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/server/storage.ts b/server/storage.ts index 53b6ef6..678f646 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -1149,14 +1149,23 @@ export class DatabaseStorage implements IStorage { deliveredWhereCondition = and(deliveredWhereCondition, inArray(deliveries.groupId, groupIds)); } + // NOUVEAU: Calculer le délai moyen entre la date de commande et la date de livraison + // Uniquement pour les livraisons qui ont une commande liée const deliveriesStatsResult = await db .select({ totalPalettes: sql`COALESCE(SUM(CAST(${deliveries.quantity} as INTEGER)), 0)`, totalPackages: sql`COALESCE(COUNT(*), 0)`, - avgDelay: sql`COALESCE(AVG(EXTRACT(DAY FROM (${deliveries.deliveredDate} - ${deliveries.scheduledDate}))), 0)` + avgDelay: sql`COALESCE(AVG(EXTRACT(DAY FROM (${deliveries.deliveredDate} - ${orders.plannedDate}))), 0)` }) .from(deliveries) - .where(deliveredWhereCondition); + .innerJoin(orders, eq(deliveries.orderId, orders.id)) + .where( + and( + deliveredWhereCondition, + isNotNull(deliveries.orderId), // S'assurer qu'il y a une commande liée + isNotNull(orders.plannedDate) // S'assurer que la commande a une date + ) + ); const ordersCount = Number(ordersResult[0]?.count || 0); const deliveriesCount = Number(deliveriesResult[0]?.count || 0); @@ -1169,7 +1178,7 @@ export class DatabaseStorage implements IStorage { ordersCount, deliveriesCount, pendingOrdersCount, - averageDeliveryTime, + averageDeliveryTime: `${averageDeliveryTime} jours (commande → livraison, livraisons avec commande liée uniquement)`, totalPalettes, totalPackages, });