38 lines
1.7 KiB
PHP
38 lines
1.7 KiB
PHP
<?php
|
|
include "../../connect.php";
|
|
$driverID = filterRequest("driverID");
|
|
|
|
try {
|
|
// 1. Get ride stats using $conRide
|
|
$sqlRide = "SELECT
|
|
(SELECT COUNT(*) FROM `ride` WHERE LOWER(`status`) IN ('finished','completed') AND `created_at` BETWEEN CURRENT_DATE() + INTERVAL 7 HOUR AND CURRENT_DATE() + INTERVAL 10 HOUR AND `driver_id` = :driverID) AS morning_count,
|
|
(SELECT COUNT(*) FROM `ride` WHERE LOWER(`status`) IN ('finished','completed') AND `created_at` BETWEEN CURRENT_DATE() + INTERVAL 15 HOUR AND CURRENT_DATE() + INTERVAL 18 HOUR AND `driver_id` = :driverID) AS afternoon_count,
|
|
(SELECT COALESCE(SUM(price), 0) FROM `ride` WHERE `driver_id` = :driverID AND LOWER(`status`) IN ('finished','completed') AND `created_at` > CURRENT_DATE() - INTERVAL 1 WEEK) AS total_amount_last_week
|
|
FROM dual";
|
|
|
|
$stmtRide = $conRide->prepare($sqlRide);
|
|
$stmtRide->bindValue(':driverID', $driverID);
|
|
$stmtRide->execute();
|
|
$rideStats = $stmtRide->fetch(PDO::FETCH_ASSOC) ?: [];
|
|
|
|
// 2. Get payment stats using $con
|
|
$sqlPayment = "SELECT COALESCE(SUM(amount), 0) AS total_amount FROM payments WHERE isGiven = 'waiting' AND `driverID` = :driverID";
|
|
$stmtPayment = $con->prepare($sqlPayment);
|
|
$stmtPayment->bindValue(':driverID', $driverID);
|
|
$stmtPayment->execute();
|
|
$paymentStats = $stmtPayment->fetch(PDO::FETCH_ASSOC) ?: [];
|
|
|
|
// 3. Combine
|
|
if (!empty($rideStats) || !empty($paymentStats)) {
|
|
$row = [
|
|
array_merge($rideStats, $paymentStats)
|
|
];
|
|
printSuccess($row);
|
|
} else {
|
|
printFailure("No wallet record found");
|
|
}
|
|
} catch (PDOException $e) {
|
|
http_response_code(500);
|
|
echo json_encode(["status" => "error", "message" => "SQL Error: " . $e->getMessage()]);
|
|
}
|
|
?>
|