} elseif ($_GET['page'] === 'delete-building') { $model->deleteBuilding($_POST['id']); $loggers['audit']->info("Building {$_POST['id']} deleted"); } elseif ($_GET['page'] === 'delete-seat') { $model->deleteSeat($_POST['id']); $loggers['audit']->info("Seat {$_POST['id']} deleted"); } elseif ($_GET['page'] === 'delete-room') { $model->deleteRoom($_POST['id']); $loggers['audit']->info("Room {$_POST['id']} deleted"); } elseif ($_GET['page'] === 'add-room-to-building') { $newRoomId = $model->insertRoom($_POST); $loggers['audit']->info("Room {$newRoomId} created"); echo $newRoomId; } elseif ($_GET['page'] === 'view-room') { $render = true; $seats = $model->getSeatsForRoom($_GET['room-id']); $seat_location = $model->getRoomDetails($_GET['room-id']); $allAccommodations = $model->getExamAccomodations(); $allBuildings = $model->getAllBuildings(); $l10n->addResource(__DIR__ . '/l10n/seat-management-view-seats.json'); $l10n->localizeArray($allAccommodations, 'name'); $viewFile = 'views/seat-management-view-seats.php'; } elseif ($_GET['page'] === 'show-seats') { $seats = $model->getSeatsForRoom($_GET['room-id']); header('Content-Type: application/json; charset=utf-8'); echo json_encode($seats); exit; } elseif ($_GET['page'] === 'edit-seat-accommodations') { $model->editSeatAccommodations($_POST); $loggers['audit']->info("Accommodations modified for seat {$_POST['seat_id']}"); } elseif ($_GET['page'] === 'add-seat') {
$request = $model->getExamRequestById($_POST['request_id']); $examAccs = $model->getExamAccommodationsById($_POST['request_id']); $studentAccs = $model->getAllStudentActiveExamAndTranscriptionAccommodations($_POST['student_id'], $_POST['exam_date'], $request[0]['course_code'], $request[0]['course_section'], $request[0]['session']); if (!empty($studentAccs)) { $studentAccs = array_values($studentAccs); } $l10n->addResource(__DIR__ . '/l10n/confirmed-requests.json'); $l10n->localizeArray($examAccs, 'name'); $l10n->localizeArray($studentAccs, 'name'); //set up response array $details = array("request" => $request, "exam_accommodations" => $examAccs, "student_accommodations" => $studentAccs); //if the request also has a seat associated with it recover the appropriate room and seat information if (!is_null($request[0]['seat_id'])) { //gather room and seat data $rooms = $seatManagement->getRooms($request[0]['building_id']); $seats = $seatManagement->getSeatsForRoom($request[0]['room_id']); $details['rooms'] = $rooms; $details['seats'] = $seats; //save a list of exams booked on the same seat at the same time as the one retrieved $bookings = $seatManagement->getSeatBookings($request[0]['seat_id'], $request[0]['exam_date']); $conflicts = ""; foreach ($bookings as $b) { if ($request[0]['request_id'] !== $b['request_id'] && !(strtotime($request[0]['official_evaluation_starttime']) >= strtotime($b['official_evaluation_endtime']) || strtotime($request[0]['official_evaluation_endtime']) <= strtotime($b['official_evaluation_starttime']))) { $conflicts .= $b['request_id'] . ","; } } if ($conflicts !== "") { $details['request'][0]['seat_conflicts'] = substr($conflicts, 0, -1); } } header('Content-Type: application/json; charset=utf-8');