Files
Siro/backend/serviceapp/addCartoDriver.php
2026-06-12 20:40:40 +03:00

101 lines
3.8 KiB
PHP

<?php
require_once __DIR__ . '/../connect.php';
// Fetch and validate each parameter
$driverID = filterRequest("driverID");
$vin = $encryptionHelper->encryptData(filterRequest("vin"));
$carPlate = $encryptionHelper->encryptData(filterRequest("car_plate"));
$make = filterRequest("make");
$model = filterRequest("model");
$year = filterRequest("year");
$expirationDate = filterRequest("expiration_date");
$color = filterRequest("color");
$owner = $encryptionHelper->encryptData(filterRequest("owner"));
$colorHex = filterRequest("color_hex");
$address = $encryptionHelper->encryptData(filterRequest("address"));
$displacement = filterRequest("displacement");
$fuel = filterRequest("fuel");
$registrationDate = filterRequest("registration_date");
// تحقق من الحقول المطلوبة
if (
is_null($driverID) || is_null($vin) || is_null($carPlate) ||
is_null($make) || is_null($model) || is_null($year) ||
is_null($expirationDate) || is_null($color) || is_null($owner) ||
is_null($colorHex) || is_null($address) || is_null($displacement) ||
is_null($fuel) || is_null($registrationDate)
) {
jsonError("One or more required parameters are missing.");
exit();
}
$con->beginTransaction();
try {
$checkSql = "SELECT * FROM `CarRegistration` WHERE `driverID` = :driverID";
$checkStmt = $con->prepare($checkSql);
$checkStmt->bindParam(':driverID', $driverID);
$checkStmt->execute();
if ($checkStmt->rowCount() > 0) {
jsonError("Car has already been registered for this driver.");
exit();
}
// إدخال السيارة
$sqlInsert = "INSERT INTO `CarRegistration` (
`driverID`, `vin`, `car_plate`, `make`, `model`, `year`, `expiration_date`,
`color`, `owner`, `color_hex`, `address`, `displacement`, `fuel`, `registration_date`
) VALUES (
:driverID, :vin, :carPlate, :make, :model, :year, :expirationDate,
:color, :owner, :colorHex, :address, :displacement, :fuel, :registrationDate
)";
$stmtInsert = $con->prepare($sqlInsert);
$stmtInsert->bindParam(':driverID', $driverID);
$stmtInsert->bindParam(':vin', $vin);
$stmtInsert->bindParam(':carPlate', $carPlate);
$stmtInsert->bindParam(':make', $make);
$stmtInsert->bindParam(':model', $model);
$stmtInsert->bindParam(':year', $year);
$stmtInsert->bindParam(':expirationDate', $expirationDate);
$stmtInsert->bindParam(':color', $color);
$stmtInsert->bindParam(':owner', $owner);
$stmtInsert->bindParam(':colorHex', $colorHex);
$stmtInsert->bindParam(':address', $address);
$stmtInsert->bindParam(':displacement', $displacement);
$stmtInsert->bindParam(':fuel', $fuel);
$stmtInsert->bindParam(':registrationDate', $registrationDate);
$stmtInsert->execute();
if ($stmtInsert->rowCount() > 0) {
// سجل في carPlateEdit
$sqlLog = "INSERT INTO `carPlateEdit`
(`driverId`, `carPlate`, `color`, `make`, `model`, `expiration_date`, `owner`, `year`, `isEdit`)
VALUES (:driverID, :carPlate, :color, :make, :model, :expirationDate, :owner, :year, 0)";
$stmtLog = $con->prepare($sqlLog);
$stmtLog->bindParam(':driverID', $driverID);
$stmtLog->bindParam(':carPlate', $carPlate);
$stmtLog->bindParam(':color', $color);
$stmtLog->bindParam(':make', $make);
$stmtLog->bindParam(':model', $model);
$stmtLog->bindParam(':expirationDate', $expirationDate);
$stmtLog->bindParam(':owner', $owner);
$stmtLog->bindParam(':year', $year);
$stmtLog->execute();
$con->commit();
jsonSuccess(null, "Car registration data saved and logged successfully");
} else {
$con->rollBack();
jsonError("Failed to save car registration data");
}
} catch (Exception $e) {
$con->rollBack();
jsonError("An error occurred: " . $e->getMessage());
}
?>