Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
operator
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php require_once '../includes/functions.php'; // Require login and operator access requireLogin(); if ($_SESSION['user_type'] !== 'operator') { http_response_code(403); echo json_encode(['success' => false, 'message' => 'Access denied']); exit; } $user = getCurrentUser(); $db = Database::getInstance(); // Check if operator has active session $currentSession = $db->fetch( "SELECT * FROM operator_sessions WHERE operator_id = ? AND status = 'active'", [$user['id']] ); if (!$currentSession) { http_response_code(403); echo json_encode(['success' => false, 'message' => 'No active operator session']); exit; } // Get booking ID from request $bookingId = $_GET['booking_id'] ?? ''; if (empty($bookingId)) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Missing booking ID']); exit; } try { // Get detailed booking information $booking = $db->fetch( "SELECT b.*, p.name as passenger_name, p.phone as passenger_phone, tl.name as to_location_name, tl.city as to_city, fl.name as from_location_name, fl.city as from_city, ar.number_plate, ar.unique_local_id, ao.name as owner_name FROM bookings b JOIN passengers p ON b.passenger_id = p.id JOIN to_locations tl ON b.to_location_id = tl.id LEFT JOIN from_locations fl ON b.from_location_id = fl.id LEFT JOIN auto_rickshaws ar ON b.auto_rickshaw_id = ar.id LEFT JOIN auto_owners ao ON ar.owner_id = ao.id WHERE b.id = ? AND b.operator_id = ?", [$bookingId, $user['id']] ); if (!$booking) { http_response_code(404); echo json_encode(['success' => false, 'message' => 'Booking not found or not accessible']); exit; } // Format the data for display $formattedBooking = [ 'id' => $booking['id'], 'passenger_name' => $booking['passenger_name'], 'passenger_phone' => $booking['passenger_phone'], 'booking_type' => $booking['booking_type'], 'status' => $booking['status'], 'from_location_name' => $booking['from_location_name'], 'to_location_name' => $booking['to_location_name'], 'to_city' => $booking['to_city'], 'auto_rickshaw_id' => $booking['auto_rickshaw_id'], 'number_plate' => $booking['number_plate'], 'unique_local_id' => $booking['unique_local_id'], 'owner_name' => $booking['owner_name'], 'commission_amount' => $booking['commission_amount'], 'fare_amount' => $booking['fare_amount'], 'total_amount' => $booking['total_amount'], 'created_at' => $booking['created_at'], 'confirmation_time' => $booking['confirmation_time'], 'completion_time' => $booking['completion_time'] ]; echo json_encode([ 'success' => true, 'booking' => $formattedBooking ]); } catch (Exception $e) { error_log('Error fetching booking details: ' . $e->getMessage()); http_response_code(500); echo json_encode(['success' => false, 'message' => 'Internal server error']); } ?>