$type = $_GET['type'] === 'comptant' ? $_GET['type'] : '3fois'; } header('Location:?page=maReservation&action=payment&type=' . $type); } catch (\LogicException $e) { $_SESSION['Reservation'] = MReservation::getReservationClient($_SESSION['Utilisateur']); header('Location:?page=maReservation&payment'); } catch (\Nostromo\Classes\Exception\ErrorSQLException $e) { Connexion::setFlashMessage($e->getMessage()); header('Location:?page=maReservation&payment'); } break; case 'annulerReservationValidee': try { if ($_SESSION['Reservation']->isValid()) { if ($_SESSION['Reservation']->getId() === null) { $_SESSION['Reservation']->setId(Connexion::getLastIdReservation()); } MReservation::annulerReservationValidee($_SESSION['Reservation']); Connexion::setFlashMessage('Réservation annulée.', 'valid'); unset($_SESSION['Reservation']); header('Location:?page=maReservation'); } else { throw new AccessDeniedException('Cette page n\'est pas disponible.'); } } catch (AccessDeniedException $e) { Connexion::setFlashMessage($e->getMessage()); header('Location:?page=maReservation'); } break; default: Connexion::setFlashMessage('Page introuvable.');
case 'validReserverVol': try { if (!MConnexion::sessionOuverte()) { throw new NotConnectedException(); } if (array_key_exists('Reservation', $_SESSION) && $_SESSION['Reservation']->isValid()) { throw new InvalidArgumentException('Vous avez déjà une réservation.'); } if (array_key_exists('vol', $_GET) && array_key_exists('nbPers', $_POST)) { $unVol = MVol::getUnVol($_GET['vol']); if ($_POST['nbPers'] !== 0 || $_POST['nbPers'] <= MVol::getPlaceRestante($unVol)) { if (array_key_exists('pointsUtilise', $_POST) && $_POST['pointsUtilise'] > MUtilisateur::getPoints($_SESSION['Utilisateur'])) { throw new UnexpectedValueException('Vous n\'avez pas assez de points'); } $_SESSION['Reservation'] = new Reservation(); $_SESSION['Reservation']->setId(MConnexion::getLastIdReservation())->setNbPers($_POST['nbPers'])->setValid(false)->setUnClient($_SESSION['Utilisateur'])->setUnVol($unVol); if (array_key_exists('pointsUtilise', $_POST) && !empty($_POST['pointsUtilise'])) { $_SESSION['Reservation']->setReduction($_POST['pointsUtilise']); } } else { MConnexion::setFlashMessage('Il n\'y a plus assez de place pour ce vol, veuillez réduire le nombre de personnes', 'error'); if ($_POST['nbPers'] === 0) { MConnexion::setFlashMessage('La valeur ne peut être zéro, veuillez recommencer', 'error'); } header('Location:?page=reserver&action=reserverVol&vol=' . $unVol->getNumVol()); } if (array_key_exists('Reservation', $_SESSION)) { header('Location:?page=maReservation'); } if ($_SESSION['Reservation']->isValid()) { MConnexion::setFlashMessage('Vous avez déjà une réservation.