prepare("UPDATE ride SET status = 'waiting', driver_id = 0, updated_at = NOW() WHERE id = ?"); $updateStmt->execute([$rideId]); // 3. حساب العمولة (Kazan) $kazan = (double)$price - (double)$priceForDriver; $passengerFp = isset($_SERVER['HTTP_X_DEVICE_FP']) ? $_SERVER['HTTP_X_DEVICE_FP'] : ''; // 4. بناء Payload مطابق لـ add_ride.php (0 - 33) $payloadTemplate = []; $payloadTemplate[0] = (string)$startLat; $payloadTemplate[1] = (string)$startLng; $payloadTemplate[2] = (string)number_format((float)$price, 2, '.', ''); $payloadTemplate[3] = (string)$endLat; $payloadTemplate[4] = (string)$endLng; $payloadTemplate[5] = (string)$distanceText; $payloadTemplate[6] = (string)$passengerFp; $payloadTemplate[7] = (string)$passengerId; $payloadTemplate[8] = (string)$passengerName; $payloadTemplate[9] = (string)$passengerToken; $payloadTemplate[10] = (string)$passengerPhone; $payloadTemplate[11] = (string)$distance; $payloadTemplate[12] = "1"; $payloadTemplate[13] = (string)$isWallet; $payloadTemplate[14] = (string)$distance; $payloadTemplate[15] = (string)$durationText; $payloadTemplate[16] = (string)$rideId; $payloadTemplate[17] = ""; $payloadTemplate[18] = ""; // Driver ID placeholder $payloadTemplate[19] = (string)$durationText; $payloadTemplate[20] = (string)$hasSteps; $payloadTemplate[21] = (string)$step0; $payloadTemplate[22] = (string)$step1; $payloadTemplate[23] = (string)$step2; $payloadTemplate[24] = (string)$step3; $payloadTemplate[25] = (string)$step4; $payloadTemplate[26] = (string)number_format((float)$priceForDriver, 2, '.', ''); $payloadTemplate[27] = (string)$passengerWallet; $payloadTemplate[28] = (string)$passengerEmail; $payloadTemplate[29] = (string)$startName; $payloadTemplate[30] = (string)$endName; $payloadTemplate[31] = (string)$carType; $payloadTemplate[32] = (string)number_format($kazan, 2, '.', ''); $payloadTemplate[33] = (string)$passengerRating; ksort($payloadTemplate); $payloadTemplate = array_values($payloadTemplate); // 5. البحث عن السائقين وإرسال الطلب (Using Helper Function) $latVal = doubleval($startLat); $lngVal = doubleval($startLng); $driversData = findBestDrivers($con, $con_tracking, $latVal, $lngVal, $carType); if (!empty($driversData)) { // استدعاء دالة الإرسال الموحدة (الموجودة في functions.php) dispatchRideToDrivers($driversData, $rideId, $payloadTemplate, $startName); } jsonSuccess(null, "Ride reset and resent to drivers"); } catch (PDOException $e) { error_log("[retry_search_drivers] " . $e->getMessage()); jsonError("DB Error"); } ?>