Update: 2026-06-11 18:22:57
This commit is contained in:
BIN
walletintaleq.intaleq.xyz/v2/main/Admin/.DS_Store
vendored
Normal file
BIN
walletintaleq.intaleq.xyz/v2/main/Admin/.DS_Store
vendored
Normal file
Binary file not shown.
103
walletintaleq.intaleq.xyz/v2/main/Admin/AdminCaptain/get.php
Normal file
103
walletintaleq.intaleq.xyz/v2/main/Admin/AdminCaptain/get.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$sql = "SELECT
|
||||
`driver`.`id`,
|
||||
`driver`.`phone`,
|
||||
`driver`.`email`,
|
||||
`driver`.`gender`,
|
||||
`driver`.`status`,
|
||||
`driver`.`birthdate`,
|
||||
`driver`.`site`,
|
||||
`driver`.`first_name`,
|
||||
`driver`.`last_name`,
|
||||
`driver`.`education`,
|
||||
`driver`.`employmentType`,
|
||||
`driver`.`maritalStatus`,
|
||||
`driver`.`created_at`,
|
||||
`driver`.`updated_at`,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`driver`.`id`)
|
||||
FROM
|
||||
`driver`
|
||||
) AS countPassenger,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`rating`) AS DECIMAL(10, 2))
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`driverID` = `driver`.`id`
|
||||
) AS ratingPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingPassenger`.`driverID`)
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`driverID` = `driver`.`id`
|
||||
) AS countDriverRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`canecl`.`driverID`)
|
||||
FROM
|
||||
`canecl`
|
||||
WHERE
|
||||
`canecl`.`driverID` = `driver`.`id`
|
||||
) AS countPassengerCancel,
|
||||
(
|
||||
SELECT
|
||||
CAST(
|
||||
AVG(`ratingDriver`.`rating`) AS DECIMAL(10, 2)
|
||||
)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`driver_id` = `driver`.`id`
|
||||
) AS passengerAverageRating,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingDriver`.`driver_id`)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`driver_id` = `driver`.`id`
|
||||
) AS countPassengerRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`driver_id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`driver_id` = `driver`.`id`
|
||||
) AS countPassengerRide,
|
||||
(
|
||||
SELECT
|
||||
`token`
|
||||
FROM
|
||||
`driverToken`
|
||||
WHERE
|
||||
`driverToken`.`captain_id` = `driver`.`id`
|
||||
) AS passengerToken
|
||||
FROM
|
||||
`driver`
|
||||
|
||||
ORDER BY
|
||||
passengerAverageRating
|
||||
DESC
|
||||
LIMIT 10";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$driver_id = filterRequest("driver_id");
|
||||
$driverEmail = filterRequest("driverEmail");
|
||||
$driverPhone = filterRequest("driverPhone");
|
||||
|
||||
$sql = "SELECT
|
||||
`driver`.`id`,
|
||||
`driver`.`phone`,
|
||||
`driver`.`email`,
|
||||
`driver`.`gender`,
|
||||
`driver`.`status`,
|
||||
`driver`.`birthdate`,
|
||||
`driver`.`site`,
|
||||
`driver`.`first_name`,
|
||||
`driver`.`last_name`,
|
||||
`driver`.`education`,
|
||||
`driver`.`employmentType`,
|
||||
`driver`.`maritalStatus`,
|
||||
`driver`.`created_at`,
|
||||
`driver`.`updated_at`,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`driver`.`id`)
|
||||
FROM
|
||||
`driver`
|
||||
) AS countPassenger,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`rating`) AS DECIMAL(10, 2))
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`driverID` = `driver`.`id`
|
||||
) AS ratingPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingPassenger`.`driverID`)
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`driverID` = `driver`.`id`
|
||||
) AS countDriverRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`canecl`.`driverID`)
|
||||
FROM
|
||||
`canecl`
|
||||
WHERE
|
||||
`canecl`.`driverID` = `driver`.`id`
|
||||
) AS countPassengerCancel,
|
||||
(
|
||||
SELECT
|
||||
CAST(
|
||||
AVG(`ratingDriver`.`rating`) AS DECIMAL(10, 2)
|
||||
)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`driver_id` = `driver`.`id`
|
||||
) AS passengerAverageRating,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingDriver`.`driver_id`)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`driver_id` = `driver`.`id`
|
||||
) AS countPassengerRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`driver_id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`driver_id` = `driver`.`id`
|
||||
) AS countPassengerRide,
|
||||
(
|
||||
SELECT
|
||||
`token`
|
||||
FROM
|
||||
`driverToken`
|
||||
WHERE
|
||||
`driverToken`.`captain_id` = `driver`.`id`
|
||||
) AS passengerToken
|
||||
FROM
|
||||
`driver`
|
||||
WHERE driver.email = '$driverEmail' OR driver.phone = '$driverPhone' OR driver.id = '$driver_id'
|
||||
|
||||
ORDER BY
|
||||
passengerAverageRating
|
||||
DESC
|
||||
LIMIT 10
|
||||
";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$driver_id = filterRequest("driver_id");
|
||||
|
||||
$sql = "SELECT
|
||||
`driver`.`id`,
|
||||
`driver`.`phone`,
|
||||
`driver`.`email`,
|
||||
`driver`.`gender`,
|
||||
`driver`.`status`,
|
||||
`driver`.`birthdate`,
|
||||
`driver`.`site`,
|
||||
`driver`.`first_name`,
|
||||
`driver`.`last_name`,
|
||||
`driver`.`education`,
|
||||
`driver`.`employmentType`,
|
||||
`driver`.`maritalStatus`,
|
||||
`driver`.`created_at`,
|
||||
`driver`.`updated_at`,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`driver`.`id`)
|
||||
FROM
|
||||
`driver`
|
||||
) AS countPassenger,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`rating`) AS DECIMAL(10, 2))
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`driverID` = `driver`.`id`
|
||||
) AS ratingPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingPassenger`.`driverID`)
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`driverID` = `driver`.`id`
|
||||
) AS countDriverRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`canecl`.`driverID`)
|
||||
FROM
|
||||
`canecl`
|
||||
WHERE
|
||||
`canecl`.`driverID` = `driver`.`id`
|
||||
) AS countPassengerCancel,
|
||||
(
|
||||
SELECT
|
||||
CAST(
|
||||
AVG(`ratingDriver`.`rating`) AS DECIMAL(10, 2)
|
||||
)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`driver_id` = `driver`.`id`
|
||||
) AS passengerAverageRating,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingDriver`.`driver_id`)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`driver_id` = `driver`.`id`
|
||||
) AS countPassengerRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`driver_id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`driver_id` = `driver`.`id`
|
||||
) AS countPassengerRide,
|
||||
(
|
||||
SELECT
|
||||
`token`
|
||||
FROM
|
||||
`driverToken`
|
||||
WHERE
|
||||
`driverToken`.`captain_id` = `driver`.`id`
|
||||
) AS passengerToken
|
||||
FROM
|
||||
`driver`
|
||||
WHERE
|
||||
driver.id = '$driver_id'
|
||||
ORDER BY
|
||||
passengerAverageRating
|
||||
DESC
|
||||
LIMIT 10
|
||||
";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
145
walletintaleq.intaleq.xyz/v2/main/Admin/AdminRide/get.php
Normal file
145
walletintaleq.intaleq.xyz/v2/main/Admin/AdminRide/get.php
Normal file
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$sql = "SELECT
|
||||
(
|
||||
SELECT
|
||||
TIME_FORMAT(
|
||||
AVG(
|
||||
TIMESTAMPDIFF(
|
||||
SECOND,
|
||||
rideTimeStart,
|
||||
rideTimeFinish
|
||||
)
|
||||
),
|
||||
'%Hh %im'
|
||||
) AS avg_duration
|
||||
FROM
|
||||
ride
|
||||
) AS driver_avg_duration,(
|
||||
SELECT
|
||||
COUNT(*) AS total_rows
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
COUNT(driver_id)
|
||||
FROM
|
||||
ride
|
||||
GROUP BY
|
||||
driver_id
|
||||
) sub
|
||||
) AS num_Driver,
|
||||
(
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
ride
|
||||
) AS total_rides,
|
||||
(
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
ride
|
||||
WHERE
|
||||
STATUS
|
||||
= 'waiting'
|
||||
) AS ongoing_rides,
|
||||
(
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
ride
|
||||
WHERE
|
||||
STATUS
|
||||
= 'Finished'
|
||||
) AS completed_rides,
|
||||
(
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
ride
|
||||
WHERE
|
||||
STATUS
|
||||
= 'cancelled'
|
||||
) AS cancelled_rides,
|
||||
(
|
||||
SELECT
|
||||
MAX(
|
||||
TIME_FORMAT(
|
||||
TIMESTAMPDIFF(
|
||||
SECOND,
|
||||
rideTimeStart,
|
||||
rideTimeFinish
|
||||
),
|
||||
'%Hh %im'
|
||||
)
|
||||
) AS duration
|
||||
FROM
|
||||
ride
|
||||
) AS longest_duration,
|
||||
(
|
||||
SELECT
|
||||
ROUND(SUM(DISTANCE),
|
||||
2)
|
||||
FROM
|
||||
ride
|
||||
) AS total_distance,
|
||||
(
|
||||
SELECT
|
||||
ROUND(AVG(DISTANCE),
|
||||
2)
|
||||
FROM
|
||||
ride
|
||||
) AS average_distance,
|
||||
(
|
||||
SELECT
|
||||
ROUND(MAX(DISTANCE),
|
||||
2)
|
||||
FROM
|
||||
ride
|
||||
) AS longest_distance,
|
||||
(
|
||||
SELECT
|
||||
SUM(price_for_driver)
|
||||
FROM
|
||||
ride
|
||||
) AS total_driver_earnings,
|
||||
(
|
||||
SELECT
|
||||
SUM(`price_for_passenger`)
|
||||
FROM
|
||||
ride
|
||||
) AS total_company_earnings,
|
||||
(
|
||||
ROUND(
|
||||
(
|
||||
SELECT
|
||||
SUM(`price_for_passenger`)
|
||||
FROM
|
||||
ride
|
||||
) /(
|
||||
SELECT
|
||||
SUM(price_for_driver)
|
||||
FROM
|
||||
ride
|
||||
),
|
||||
2
|
||||
)
|
||||
) AS companyPercent
|
||||
FROM
|
||||
ride
|
||||
LIMIT 1";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$currentYear = date('Y');
|
||||
|
||||
$sql = "SELECT
|
||||
YEAR(date) AS year,
|
||||
MONTH(date) AS month,
|
||||
DAY(date) AS day,
|
||||
COUNT(*) AS rides_count,
|
||||
(SELECT COUNT(*) FROM ride WHERE MONTH(date) = MONTH(CURRENT_DATE) AND YEAR(date) = YEAR(CURRENT_DATE)) AS current_month_rides_count
|
||||
FROM
|
||||
ride
|
||||
GROUP BY
|
||||
YEAR(date),
|
||||
MONTH(date),
|
||||
DAY(date)
|
||||
ORDER BY
|
||||
YEAR(date),
|
||||
MONTH(date),
|
||||
DAY(date)";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
25
walletintaleq.intaleq.xyz/v2/main/Admin/adminUser/add.php
Normal file
25
walletintaleq.intaleq.xyz/v2/main/Admin/adminUser/add.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$deviceNumber = filterRequest("deviceNumber"); // Assuming you'll get deviceNumber as input
|
||||
$name = filterRequest("name");
|
||||
|
||||
$sql = "INSERT INTO `adminUser`(`id`, `device_number`, `name`) VALUES (
|
||||
UUID(),
|
||||
:deviceNumber,
|
||||
:name
|
||||
)";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindParam(':deviceNumber', $deviceNumber);
|
||||
$stmt->bindParam(':name', $name);
|
||||
$stmt->execute();
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print a success message
|
||||
printSuccess($message = "Admin user data saved successfully");
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "Failed to save admin user data");
|
||||
}
|
||||
?>
|
||||
24
walletintaleq.intaleq.xyz/v2/main/Admin/adminUser/get.php
Normal file
24
walletintaleq.intaleq.xyz/v2/main/Admin/adminUser/get.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
include "../../connect.php";
|
||||
|
||||
$device_number = filterRequest("device_number");
|
||||
|
||||
$sql = "SELECT
|
||||
*
|
||||
FROM
|
||||
`adminUser`
|
||||
WHERE
|
||||
`device_number` = '$device_number'";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (count($result) === 1) {
|
||||
// Print the first record as a success message
|
||||
printSuccess( $result[0]);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "Failed to retrieve Password or user name incorrect");
|
||||
}
|
||||
?>
|
||||
404
walletintaleq.intaleq.xyz/v2/main/Admin/dashbord.php
Normal file
404
walletintaleq.intaleq.xyz/v2/main/Admin/dashbord.php
Normal 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");
|
||||
}
|
||||
?>
|
||||
0
walletintaleq.intaleq.xyz/v2/main/Admin/dashbordPayment.php
Executable file
0
walletintaleq.intaleq.xyz/v2/main/Admin/dashbordPayment.php
Executable file
0
walletintaleq.intaleq.xyz/v2/main/Admin/error_log
Normal file
0
walletintaleq.intaleq.xyz/v2/main/Admin/error_log
Normal file
110
walletintaleq.intaleq.xyz/v2/main/Admin/getPassengerDetails.php
Normal file
110
walletintaleq.intaleq.xyz/v2/main/Admin/getPassengerDetails.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
include "../connect.php";
|
||||
|
||||
$sql = "SELECT
|
||||
`passengers`.`id`,
|
||||
`passengers`.`phone`,
|
||||
`passengers`.`email`,
|
||||
`passengers`.`gender`,
|
||||
`passengers`.`status`,
|
||||
`passengers`.`birthdate`,
|
||||
`passengers`.`site`,
|
||||
`passengers`.`first_name`,
|
||||
`passengers`.`last_name`,
|
||||
`passengers`.`sosPhone`,
|
||||
`passengers`.`education`,
|
||||
`passengers`.`employmentType`,
|
||||
`passengers`.`maritalStatus`,
|
||||
`passengers`.`created_at`,
|
||||
`passengers`.`updated_at`,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`passengers`.`id`)
|
||||
FROM
|
||||
`passengers`
|
||||
) AS countPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`feedBack`.id)
|
||||
FROM
|
||||
`feedBack`
|
||||
) AS countFeedback,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`rating`) as DECIMAL(10,2))
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`passenger_id` = `passengers`.`id`
|
||||
) AS ratingPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingPassenger`.`driverID`)
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`passenger_id` = `passengers`.`id`
|
||||
) AS countDriverRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`canecl`.`passengerID`)
|
||||
FROM
|
||||
`canecl`
|
||||
WHERE
|
||||
`canecl`.`passengerID` = `passengers`.`id`
|
||||
) AS countPassengerCancel,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`ratingDriver`.`rating`) as DECIMAL(10,2))
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`passenger_iD` = `passengers`.`id`
|
||||
) AS passengerAverageRating,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingDriver`.`driver_id`)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`passenger_id` = `passengers`.`id`
|
||||
) AS countPassengerRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`passenger_id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`passenger_id` = `passengers`.`id`
|
||||
) AS countPassengerRide
|
||||
,
|
||||
(
|
||||
SELECT
|
||||
`tokens`.`token`
|
||||
FROM
|
||||
`tokens`
|
||||
WHERE
|
||||
`tokens`.`passengerID` = `passengers`.`id`
|
||||
) AS passengerToken
|
||||
FROM
|
||||
`passengers`
|
||||
GROUP BY
|
||||
`passengers`.`id`
|
||||
ORDER BY
|
||||
countPassengerRide
|
||||
DESC
|
||||
LIMIT 10";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
include "../connect.php";
|
||||
|
||||
$passengerID = filterRequest("passengerID");
|
||||
|
||||
$sql = "SELECT
|
||||
`passengers`.`id`,
|
||||
`passengers`.`phone`,
|
||||
`passengers`.`email`,
|
||||
`passengers`.`gender`,
|
||||
`passengers`.`status`,
|
||||
`passengers`.`birthdate`,
|
||||
`passengers`.`site`,
|
||||
`passengers`.`first_name`,
|
||||
`passengers`.`last_name`,
|
||||
`passengers`.`sosPhone`,
|
||||
`passengers`.`education`,
|
||||
`passengers`.`employmentType`,
|
||||
`passengers`.`maritalStatus`,
|
||||
`passengers`.`created_at`,
|
||||
`passengers`.`updated_at`,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`passengers`.`id`)
|
||||
FROM
|
||||
`passengers`
|
||||
) AS countPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`feedBack`.id)
|
||||
FROM
|
||||
`feedBack`
|
||||
) AS countFeedback,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`rating`) as DECIMAL(10,2))
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`passenger_id` = `passengers`.`id`
|
||||
) AS ratingPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingPassenger`.`driverID`)
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`passenger_id` = `passengers`.`id`
|
||||
) AS countDriverRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`canecl`.`passengerID`)
|
||||
FROM
|
||||
`canecl`
|
||||
WHERE
|
||||
`canecl`.`passengerID` = `passengers`.`id`
|
||||
) AS countPassengerCancel,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`ratingDriver`.`rating`) as DECIMAL(10,2))
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`passenger_iD` = `passengers`.`id`
|
||||
) AS passengerAverageRating,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingDriver`.`driver_id`)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`passenger_id` = `passengers`.`id`
|
||||
) AS countPassengerRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`passenger_id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`passenger_id` = `passengers`.`id`
|
||||
) AS countPassengerRide,
|
||||
(
|
||||
SELECT
|
||||
`tokens`.`token`
|
||||
FROM
|
||||
`tokens`
|
||||
WHERE
|
||||
`tokens`.`passengerID` = `passengers`.`id`
|
||||
) AS passengerToken
|
||||
FROM
|
||||
`passengers` WHERE passengers.id='$passengerID'
|
||||
GROUP BY
|
||||
`passengers`.`id`
|
||||
ORDER BY
|
||||
countPassengerRide
|
||||
DESC
|
||||
";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
112
walletintaleq.intaleq.xyz/v2/main/Admin/getPassengerbyEmail.php
Normal file
112
walletintaleq.intaleq.xyz/v2/main/Admin/getPassengerbyEmail.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
include "../connect.php";
|
||||
|
||||
$passengerEmail = filterRequest("passengerEmail");
|
||||
$passengerId = filterRequest("passengerId");
|
||||
$passengerphone = filterRequest("passengerphone");
|
||||
|
||||
$sql = "SELECT
|
||||
`passengers`.`id`,
|
||||
`passengers`.`phone`,
|
||||
`passengers`.`email`,
|
||||
`passengers`.`gender`,
|
||||
`passengers`.`status`,
|
||||
`passengers`.`birthdate`,
|
||||
`passengers`.`site`,
|
||||
`passengers`.`first_name`,
|
||||
`passengers`.`last_name`,
|
||||
`passengers`.`sosPhone`,
|
||||
`passengers`.`education`,
|
||||
`passengers`.`employmentType`,
|
||||
`passengers`.`maritalStatus`,
|
||||
`passengers`.`created_at`,
|
||||
`passengers`.`updated_at`,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`passengers`.`id`)
|
||||
FROM
|
||||
`passengers`
|
||||
) AS countPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`feedBack`.id)
|
||||
FROM
|
||||
`feedBack`
|
||||
) AS countFeedback,
|
||||
(
|
||||
SELECT
|
||||
CAST(AVG(`rating`) AS DECIMAL(10, 2))
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`passenger_id` = `passengers`.`id`
|
||||
) AS ratingPassenger,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingPassenger`.`driverID`)
|
||||
FROM
|
||||
`ratingPassenger`
|
||||
WHERE
|
||||
`ratingPassenger`.`passenger_id` = `passengers`.`id`
|
||||
) AS countDriverRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`canecl`.`passengerID`)
|
||||
FROM
|
||||
`canecl`
|
||||
WHERE
|
||||
`canecl`.`passengerID` = `passengers`.`id`
|
||||
) AS countPassengerCancel,
|
||||
(
|
||||
SELECT
|
||||
CAST(
|
||||
AVG(`ratingDriver`.`rating`) AS DECIMAL(10, 2)
|
||||
)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`passenger_iD` = `passengers`.`id`
|
||||
) AS passengerAverageRating,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ratingDriver`.`driver_id`)
|
||||
FROM
|
||||
`ratingDriver`
|
||||
WHERE
|
||||
`ratingDriver`.`passenger_id` = `passengers`.`id`
|
||||
) AS countPassengerRate,
|
||||
(
|
||||
SELECT
|
||||
COUNT(`ride`.`passenger_id`)
|
||||
FROM
|
||||
`ride`
|
||||
WHERE
|
||||
`ride`.`passenger_id` = `passengers`.`id`
|
||||
) AS countPassengerRide,
|
||||
(
|
||||
SELECT
|
||||
`tokens`.`token`
|
||||
FROM
|
||||
`tokens`
|
||||
WHERE
|
||||
`tokens`.`passengerID` = `passengers`.`id`
|
||||
) AS passengerToken
|
||||
FROM
|
||||
`passengers`
|
||||
WHERE
|
||||
passengers.email = '$passengerEmail' OR passengers.phone = '$passengerphone' OR passengers.id = '$passengerId'
|
||||
";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Print all the records
|
||||
// printData($result);
|
||||
printSuccess($data = $result);
|
||||
} else {
|
||||
// Print a failure message
|
||||
printFailure($message = "No records found");
|
||||
}
|
||||
?>
|
||||
47
walletintaleq.intaleq.xyz/v2/main/Admin/getPaymentsDashboard.php
Executable file
47
walletintaleq.intaleq.xyz/v2/main/Admin/getPaymentsDashboard.php
Executable file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
include "../connect.php";
|
||||
|
||||
$sql = "
|
||||
SELECT
|
||||
COALESCE(
|
||||
(SELECT SUM(amount) FROM payments
|
||||
WHERE created_at BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())
|
||||
AND payment_method IN ('visa', 'visa-in', 'visaRide', 'TransferFrom', 'payout', 'TransferTo')),
|
||||
0
|
||||
) AS payments,
|
||||
|
||||
COALESCE(
|
||||
(SELECT SUM(amount) FROM driverWallet
|
||||
WHERE dateCreated BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())
|
||||
AND paymentMethod IN ('visa', '')),
|
||||
0
|
||||
) AS driverWallet,
|
||||
|
||||
COALESCE(
|
||||
(SELECT SUM(balance) FROM passengerWallet
|
||||
WHERE created_at BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())),
|
||||
0
|
||||
) AS passengerWallet,
|
||||
|
||||
COALESCE(
|
||||
(SELECT SUM(amount) FROM seferWallet
|
||||
WHERE createdAt BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())),
|
||||
0
|
||||
) AS seferWallet;
|
||||
";
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// ✅ Always log what we’re sending back
|
||||
error_log('📊 Dashboard Result: ' . json_encode($result, JSON_PRETTY_PRINT));
|
||||
|
||||
printSuccess($result);
|
||||
} else {
|
||||
error_log('⚠️ Dashboard: No records found');
|
||||
printFailure("No records found");
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
include "../connect.php";
|
||||
// $driverID = filterRequest("driverID");
|
||||
|
||||
$sql = "SELECT
|
||||
COUNT(DISTINCT driverID) AS driver_count,
|
||||
`payments`.driverID,
|
||||
COALESCE(SUM(amount),
|
||||
0) AS total_amount,
|
||||
`driver`.`phone`,
|
||||
`driver`.`name_arabic`,
|
||||
`driver`.`accountBank`,
|
||||
`driver`.`bankCode`,
|
||||
`driver`.`email`
|
||||
FROM
|
||||
payments
|
||||
LEFT JOIN `driver` ON `driver`.`id` = payments.driverID
|
||||
WHERE
|
||||
isGiven = 'waiting' AND payment_method IN(
|
||||
'visa-in',
|
||||
'visa',
|
||||
'visaRide',
|
||||
'TransferFrom',
|
||||
'payout',
|
||||
'TransferTo',
|
||||
'payFromSeferToDriver'
|
||||
) AND WEEK(`payments`.created_at) = WEEK(CURRENT_DATE)
|
||||
GROUP BY
|
||||
driverID
|
||||
HAVING
|
||||
COALESCE(SUM(amount),
|
||||
0) > 0
|
||||
AND total_amount > 100
|
||||
LIMIT 0, 25;
|
||||
|
||||
";
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->execute();
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
// Fetch the record
|
||||
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
printSuccess( $row);
|
||||
|
||||
}
|
||||
else{
|
||||
// Print a failure message
|
||||
printFailure($message = "No wallet record found");
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
// File: send_payment_received_email.php
|
||||
|
||||
// Connect to the database
|
||||
include '../connect.php';
|
||||
|
||||
|
||||
// Get trip details from the database or API
|
||||
$driverID = filterRequest('driverID');
|
||||
$totalAmount = filterRequest('total_amount');
|
||||
$driverPhone = filterRequest('phone');
|
||||
$driverArabicName = filterRequest('name_arabic');
|
||||
$accountBank = filterRequest('accountBank');
|
||||
$driverEmail = filterRequest('email');
|
||||
|
||||
// Determine the language preference
|
||||
$language = 'en'; // Default to English
|
||||
|
||||
// Email content
|
||||
$bodyEmail = "<html>
|
||||
<head>
|
||||
<style>
|
||||
/* Email styling here */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class='container'>
|
||||
<img src='https://lh3.googleusercontent.com/a/ACg8ocLe5TgvmTjoFx7KjIoWGxX0G2ryKBTzUZi2-mBYb9DI1dsKQ0WEYh5ZPdnA3WeFbp9VnaTNzJuA0w8S4RiQ7042AKrOwXo3=s576-c-no' style='width: 150px; margin: 20px auto; display: block;'>
|
||||
<h1>Payment Sent - SEFER</h1>
|
||||
<p>Thank you for being a valued driver on the SEFER platform.</p>
|
||||
<p>SEFER has sent a payment of $totalAmount to your account. Please note that it may take a few days for the bank to process this transaction.</p>
|
||||
<p>We appreciate your service and hope to continue our partnership.</p>
|
||||
<p>Regards,<br> SEFER Team</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
// Arabic email content
|
||||
$bodyEmailAr = "<html>
|
||||
<head>
|
||||
<style>
|
||||
/* Arabic email styling here */
|
||||
</style>
|
||||
</head>
|
||||
<body dir='rtl'>
|
||||
<div class='container'>
|
||||
<img src='YOUR_SEFER_LOGO_URL_HERE' alt='SEFER' style='width: 150px; margin: 20px auto; display: block;'>
|
||||
<h1>تم إرسال الدفع - سفر</h1>
|
||||
<p>شكراً لك على كونك سائقًا متميزًا على منصة سفر.</p>
|
||||
<p>لقد أرسلت سفر دفعة قدرها $totalAmount إلى حسابك. يرجى ملاحظة أنه قد يستغرق البنك عدة أيام لمعالجة هذه المعاملة.</p>
|
||||
<p>نحن نقدر خدمتك ونأمل أن نستمر في شراكتنا.</p>
|
||||
<p>مع خالص التحية،<br> فريق سفر</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
// Set the email headers
|
||||
$supportEmail = 'seferteam@sefer.live';
|
||||
$headers = "MIME-Version: 1.0\r\n";
|
||||
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
|
||||
$headers .= "From: $supportEmail\r\n";
|
||||
|
||||
// Send email to the driver
|
||||
if (!empty($driverEmail)) {
|
||||
if (mail($driverEmail, "Payment Sent - SEFER", $bodyEmail, $headers)) {
|
||||
// echo "Email sent successfully to $driverEmail";
|
||||
printSuccess($message = "'Email sent successfully to ' . $driverEmail");
|
||||
|
||||
} else {
|
||||
printFailure($message = "Failed to send email to ' . $driverEmail");
|
||||
|
||||
}
|
||||
} else {
|
||||
printFailure($message = "Invalid email address: ' . $driverEmail");
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
28
walletintaleq.intaleq.xyz/v2/main/Admin/v2/financial/dashboard_wallet.php
Executable file
28
walletintaleq.intaleq.xyz/v2/main/Admin/v2/financial/dashboard_wallet.php
Executable file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
// Admin/v2/financial/dashboard_wallet.php
|
||||
// هذا الملف يجب أن يرفع على سيرفر المحفظة فقط!
|
||||
|
||||
require_once __DIR__ . '/../../../connect.php'; // مسار الاتصال الخاص بسيرفر المحفظة
|
||||
|
||||
if ($role !== 'admin' && $role !== 'super_admin') {
|
||||
jsonError("Unauthorized", 403);
|
||||
}
|
||||
|
||||
try {
|
||||
$stmt = $con->prepare("
|
||||
SELECT
|
||||
(SELECT IFNULL(SUM(amount), 0) FROM payments WHERE status = 'completed') as payments,
|
||||
(SELECT IFNULL(SUM(balance), 0) FROM driverWallet) as driverWallet,
|
||||
(SELECT IFNULL(SUM(balance), 0) FROM passengerWallet) as passengerWallet,
|
||||
(SELECT IFNULL(SUM(balance), 0) FROM seferWallet) as seferWallet
|
||||
");
|
||||
$stmt->execute();
|
||||
$stats = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
// نعيد البيانات داخل رسالة (Array) لتطابق توقعات الفلاتر
|
||||
jsonSuccess([$stats]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
jsonError('Wallet Query failed: ' . $e->getMessage(), 500);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
// Admin/v2/financial/settlements.php
|
||||
require_once __DIR__ . '/../../../connect.php';
|
||||
|
||||
|
||||
|
||||
try {
|
||||
// جلب السائقين الذين لديهم مستحقات أو مديونية
|
||||
// الحسبة: إجمالي (price_for_driver) من الرحلات المكتملة
|
||||
$stmt = $con->prepare("
|
||||
SELECT
|
||||
d.id, d.first_name, d.last_name, d.phone,
|
||||
SUM(r.price_for_driver) as total_earned,
|
||||
COUNT(r.id) as total_rides
|
||||
FROM driver d
|
||||
LEFT JOIN ride r ON d.id = r.driver_id AND r.status = 'Finished'
|
||||
GROUP BY d.id
|
||||
HAVING total_earned > 0
|
||||
ORDER BY total_earned DESC
|
||||
LIMIT 50
|
||||
");
|
||||
$stmt->execute();
|
||||
$drivers = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// فك تشفير البيانات
|
||||
foreach ($drivers as &$driver) {
|
||||
$driver['first_name'] = $encryptionHelper->decryptData($driver['first_name']);
|
||||
$driver['last_name'] = $encryptionHelper->decryptData($driver['last_name']);
|
||||
$driver['phone'] = $encryptionHelper->decryptData($driver['phone']);
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
'status' => 'success',
|
||||
'data' => $drivers
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
// Admin/v2/financial/stats.php
|
||||
require_once __DIR__ . '/../../../connect.php';
|
||||
|
||||
|
||||
|
||||
try {
|
||||
// إحصائيات مالية عامة
|
||||
$stmt = $con->prepare("
|
||||
SELECT
|
||||
SUM(price_for_passenger) as total_revenue,
|
||||
SUM(price_for_driver) as total_driver_pay,
|
||||
SUM(price_for_passenger - price_for_driver) as total_platform_commission,
|
||||
(SELECT SUM(amount) FROM payments WHERE payment_method = 'Cash') as cash_payments,
|
||||
(SELECT SUM(amount) FROM payments WHERE payment_method != 'Cash') as digital_payments
|
||||
FROM ride
|
||||
WHERE status = 'Finished'
|
||||
");
|
||||
$stmt->execute();
|
||||
$stats = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
echo json_encode([
|
||||
'status' => 'success',
|
||||
'data' => $stats
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user