prepare( "SELECT COUNT(*) AS total_orders, COALESCE(SUM(delivery_fee),0) AS total_earnings, COALESCE(SUM(CASE WHEN DATE(delivered_at)=CURDATE() THEN delivery_fee END),0) AS today_earnings, COUNT(CASE WHEN DATE(delivered_at)=CURDATE() THEN 1 END) AS today_orders, COALESCE(SUM(CASE WHEN delivered_at >= (NOW() - INTERVAL 7 DAY) THEN delivery_fee END),0) AS week_earnings, COUNT(CASE WHEN delivered_at >= (NOW() - INTERVAL 7 DAY) THEN 1 END) AS week_orders, COALESCE(SUM(CASE WHEN delivered_at >= (NOW() - INTERVAL 30 DAY) THEN delivery_fee END),0) AS month_earnings, COUNT(CASE WHEN delivered_at >= (NOW() - INTERVAL 30 DAY) THEN 1 END) AS month_orders FROM food_orders WHERE courier_id=? AND status='delivered'" ); $sums->execute([$food_courier_id]); $row = $sums->fetch() ?: []; // ديون التحصيل النقدي غير المسوّاة — السائق يحتاج يعرف كم عليه قبل ما يفاجأ بخصم $owedSt = $food_con->prepare( "SELECT COALESCE(SUM(p.amount),0) AS owed FROM food_order_payments p JOIN food_orders o ON o.id = p.order_id WHERE o.courier_id=? AND p.type='cash_settlement' AND p.status='pending'" ); $owedSt->execute([$food_courier_id]); // آخر 7 أيام مفصّلة — للرسم البياني في التطبيق $dailySt = $food_con->prepare( "SELECT DATE(delivered_at) AS day, COUNT(*) AS orders_count, COALESCE(SUM(delivery_fee),0) AS earnings FROM food_orders WHERE courier_id=? AND status='delivered' AND delivered_at >= (NOW() - INTERVAL 7 DAY) GROUP BY DATE(delivered_at) ORDER BY day DESC" ); $dailySt->execute([$food_courier_id]); jsonSuccess([ 'today_earnings' => (int)($row['today_earnings'] ?? 0), 'today_orders' => (int)($row['today_orders'] ?? 0), 'week_earnings' => (int)($row['week_earnings'] ?? 0), 'week_orders' => (int)($row['week_orders'] ?? 0), 'month_earnings' => (int)($row['month_earnings'] ?? 0), 'month_orders' => (int)($row['month_orders'] ?? 0), 'total_earnings' => (int)($row['total_earnings'] ?? 0), 'total_orders' => (int)($row['total_orders'] ?? 0), 'pending_cash_owed' => (int)($owedSt->fetch()['owed'] ?? 0), 'daily' => array_map(static fn($d) => [ 'day' => $d['day'], 'orders_count' => (int)$d['orders_count'], 'earnings' => (int)$d['earnings'], ], $dailySt->fetchAll()), ]);