diff --git a/attached_assets/image_1754947430630.png b/attached_assets/image_1754947430630.png new file mode 100644 index 0000000..4774539 Binary files /dev/null and b/attached_assets/image_1754947430630.png differ diff --git a/server/storage.ts b/server/storage.ts index 88f0c9c..facf1ac 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -807,13 +807,19 @@ export class DatabaseStorage implements IStorage { lte(deliveries.scheduledDate, endDate) ); - // Get counts and totals + // Get counts and totals - only count palettes/packages from orders with delivered deliveries const [orderStats] = await db .select({ count: sql`count(*)`, pendingCount: sql`count(*) filter (where status = 'pending')`, - totalPalettes: sql`sum(case when unit = 'palettes' then quantity else 0 end)`, - totalPackages: sql`sum(case when unit = 'colis' then quantity else 0 end)`, + totalPalettes: sql`sum(case when unit = 'palettes' and exists( + select 1 from deliveries d + where d.order_id = orders.id and d.status = 'delivered' + ) then quantity else 0 end)`, + totalPackages: sql`sum(case when unit = 'colis' and exists( + select 1 from deliveries d + where d.order_id = orders.id and d.status = 'delivered' + ) then quantity else 0 end)`, }) .from(orders) .where(orderWhere); @@ -821,8 +827,8 @@ export class DatabaseStorage implements IStorage { const [deliveryStats] = await db .select({ count: sql`count(*)`, - totalPalettes: sql`sum(case when unit = 'palettes' then quantity else 0 end)`, - totalPackages: sql`sum(case when unit = 'colis' then quantity else 0 end)`, + totalPalettes: sql`sum(case when unit = 'palettes' and status = 'delivered' then quantity else 0 end)`, + totalPackages: sql`sum(case when unit = 'colis' and status = 'delivered' then quantity else 0 end)`, }) .from(deliveries) .where(deliveryWhere);