Update: 2026-06-11 18:22:57

This commit is contained in:
Hamza-Ayed
2026-06-11 18:22:59 +03:00
parent c5170a88d2
commit 727068b668
629 changed files with 46050 additions and 46109 deletions

View File

@@ -0,0 +1,404 @@
<?php
//dashbord.php
include "../connect.php";
// $passengerID = filterRequest("passengerID");
$sql = "SELECT
COALESCE(
(
SELECT
COUNT(`email`)
FROM
`passengers`
),
0
) AS countPassengers,
COALESCE(
(
SELECT
COUNT(`email`)
FROM
`driver`
),
0
) AS countDriver,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`ride`
),
0
) AS countRide,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`passengers`
WHERE
`passengers`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS countPassengersThisMonth,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`ride`
WHERE
`ride`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS countRideThisMonth,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`driver`
WHERE
`driver`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS countDriverThisMonth,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`CarRegistration`
WHERE
`CarRegistration`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS countCarRegistrationThisMonth,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`complaint`
WHERE
`complaint`.`date_filed` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS countComplaintThisMonth,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`complaint`
WHERE
`complaint`.`date_filed` BETWEEN DATE_FORMAT(
DATE_SUB(
CURRENT_DATE,
INTERVAL WEEKDAY(CURRENT_DATE) DAY
),
'%Y-%m-%d'
) AND DATE_FORMAT(
DATE_ADD(
DATE_SUB(
CURRENT_DATE,
INTERVAL WEEKDAY(CURRENT_DATE) DAY
),
INTERVAL 6 DAY
),
'%Y-%m-%d'
)
),
0
) AS countComplaintThisWeek,
COALESCE(
(
SELECT
COUNT(`id`)
FROM
`complaint`
WHERE
`complaint`.`date_filed` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-%d') AND DATE_FORMAT(CURRENT_DATE, '%Y-%m-%d')
),
0
) AS countComplaintToday,
COALESCE(
(
SELECT
SUM(`payments`.`amount`)
FROM
`payments`
WHERE
`payments`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) AND `payments`.`payment_method` IN(
'visa-in',
'visa',
'visaRide',
'TransferFrom',
'payout',
'TransferTo'
)
),
0
) AS payments,
COALESCE(
(
SELECT
SUM(`driverWallet`.`amount`)
FROM
`driverWallet`
WHERE
`driverWallet`.`dateCreated` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE) AND `driverWallet`.`paymentMethod` IN('visa', '')
),
0
) AS driverWallet,
COALESCE(
(
SELECT
SUM(`passengerWallet`.`balance`)
FROM
`passengerWallet`
WHERE
`passengerWallet`.`created_at` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS passengerWallet,
COALESCE(
(
SELECT
SUM(`seferWallet`.`amount`)
FROM
`seferWallet`
WHERE
`seferWallet`.`createdAt` BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AND LAST_DAY(CURRENT_DATE)
),
0
) AS seferWallet,
COALESCE(
(
SELECT
TIME_FORMAT(
AVG(
TIMESTAMPDIFF(
SECOND,
rideTimeStart,
rideTimeFinish
)
),
'%Hh %im'
) AS avg_duration
FROM
ride
),
'0:00'
) AS driver_avg_duration,
COALESCE(
(
SELECT
COUNT(*) AS total_rows
FROM
(
SELECT
COUNT(driver_id)
FROM
ride
GROUP BY
driver_id
) sub
),
0
) AS num_Driver,
COALESCE(
(
SELECT
COUNT(*)
FROM
ride
),
0
) AS total_rides,
COALESCE(
(
SELECT
COUNT(*)
FROM
ride
WHERE
STATUS
= 'waiting'
),
0
) AS ongoing_rides,
COALESCE(
(
SELECT
COUNT(*)
FROM
ride
WHERE
STATUS
= 'Finished'
),
0
) AS completed_rides,
COALESCE(
(
SELECT
COUNT(*)
FROM
ride
WHERE
STATUS
= 'cancelled'
),
0
) AS cancelled_rides,
COALESCE(
(
SELECT
MAX(
TIME_FORMAT(
TIMESTAMPDIFF(
SECOND,
rideTimeStart,
rideTimeFinish
),
'%Hh %im'
)
) AS duration
FROM
ride
),
'0:00'
) AS longest_duration,
COALESCE(
(
SELECT
ROUND(SUM(DISTANCE),
2)
FROM
ride
),
0
) AS total_distance,
COALESCE(
(
SELECT
ROUND(AVG(DISTANCE),
2)
FROM
ride
),
0
) AS average_distance,
COALESCE(
(
SELECT
ROUND(MAX(DISTANCE),
2)
FROM
ride
),
0
) AS longest_distance,
COALESCE(
(
SELECT
SUM(price_for_driver)
FROM
ride
WHERE
STATUS
= 'Finished'
),
0
) AS total_driver_earnings,
COALESCE(
ROUND(
(
SELECT
AVG(`ride`.`price_for_passenger`)
FROM
`ride`
)
),
0
) AS avg_passenger_price,
COUNT(
CASE WHEN HOUR(created_at) BETWEEN 6 AND 11 THEN id
END
) AS morning_ride_count,
COUNT(
CASE WHEN HOUR(created_at) BETWEEN 12 AND 17 THEN id
END
) AS evening_ride_count,
COUNT(
CASE WHEN(
HOUR(created_at) BETWEEN 18 AND 23 OR HOUR(created_at) BETWEEN 0 AND 5
) THEN id
END
) AS night_ride_count,
(
SELECT
COUNT(*) AS ride_count
FROM
ride
WHERE
`ride`.`carType` = 'Comfort'
) AS comfort,
(
SELECT
COUNT(*) AS ride_count
FROM
ride
WHERE
`ride`.`carType` = 'Speed'
) AS speed,
(
SELECT
COUNT(*) AS ride_count
FROM
ride
WHERE
`ride`.`carType` = 'Lady'
) AS lady,
COUNT(
CASE WHEN HOUR(created_at) BETWEEN 6 AND 11 THEN id
END
) AS morning_ride_count,
COUNT(
CASE WHEN HOUR(created_at) BETWEEN 12 AND 17 THEN id
END
) AS evening_ride_count,
COUNT(
CASE WHEN(
HOUR(created_at) BETWEEN 18 AND 23 OR HOUR(created_at) BETWEEN 0 AND 5
) THEN id
END
) AS night_ride_count
,
(SELECT
COUNT(*)
FROM
payments
WHERE
payment_method = 'TransferFrom'
)AS transfer_from_count
FROM
`passengers`
LIMIT 1;";
$stmt = $con->prepare($sql);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Print all the records
// printData($result);
printSuccess($data = $result);
} else {
// Print a failure message
printFailure($message = "No records found");
}
?>