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 internal error occurred. Please try again later."); } ?>