first commit
This commit is contained in:
66
backend/ride/location/getRidesDriverByDay.php
Executable file
66
backend/ride/location/getRidesDriverByDay.php
Executable file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/../../connect.php';
|
||||
$driver_id = filterRequest("driver_id");
|
||||
$current_month = date('m');
|
||||
$current_year = date('Y');
|
||||
|
||||
// Get the first and last days of the current month.
|
||||
$first_day_of_month = date('Y-m-d', strtotime($current_year . '-' . $current_month . '-01'));
|
||||
$last_day_of_month = date('Y-m-d', strtotime($current_year . '-' . $current_month . '-' . cal_days_in_month(CAL_GREGORIAN, $current_month, $current_year)));
|
||||
|
||||
// Create a SQL query to select the total duration for the driver for each day in the current month.
|
||||
$sql = "SELECT
|
||||
DATE(`ride`.created_at) AS day,
|
||||
COUNT(`ride`.`id`) AS countRide,
|
||||
SUM(`ride`.`price`) AS pricePerDay,
|
||||
(
|
||||
SELECT
|
||||
SUM(`ride`.`price`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`driver_id` = :driver_id_total AND `ride`.`created_at` >= :first_day_total AND `ride`.created_at < :last_day_total AND `ride`.`status` = 'Finished'
|
||||
) AS totalPrice,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`driver_id` = :driver_id_count AND `ride`.`created_at` >= :first_day_count AND `ride`.created_at < :last_day_count AND `ride`.`status` = 'Finished'
|
||||
) AS totalCount
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`driver_id` = :driver_id_main AND `ride`.`created_at` >= :first_day_main AND `ride`.created_at < :last_day_main AND `ride`.`status` = 'Finished'
|
||||
GROUP BY
|
||||
day
|
||||
ORDER BY
|
||||
day ASC;";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
|
||||
// Bind each parameter uniquely
|
||||
$stmt->bindParam(':driver_id_total', $driver_id, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':first_day_total', $first_day_of_month, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':last_day_total', $last_day_of_month, PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':driver_id_count', $driver_id, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':first_day_count', $first_day_of_month, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':last_day_count', $last_day_of_month, PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':driver_id_main', $driver_id, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':first_day_main', $first_day_of_month, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':last_day_main', $last_day_of_month, PDO::PARAM_STR);
|
||||
|
||||
$stmt->execute();
|
||||
|
||||
$car_locations = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
if ($car_locations) {
|
||||
// Print the car location data as JSON
|
||||
jsonSuccess($data = $car_locations);
|
||||
} else {
|
||||
// Print a failure message
|
||||
jsonError($message = "No car locations found");
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user