/** * Permet d'annuler une réservation déjà validée (rembourse les points utilisés et gagnés) * * @param Reservation $uneReservation * * @throws ErrorSQLException */ public static function annulerReservationValidee(Reservation $uneReservation) { $conn = MConnexion::getBdd(); try { $conn->beginTransaction(); $req = $conn->prepare('DELETE FROM echeance WHERE numRes = ?'); $req->execute([$uneReservation->getId()]); $conn->commit(); $conn->beginTransaction(); $reqPrepare = $conn->prepare('DELETE FROM reservation WHERE numRes = ?'); $reqPrepare->execute([$uneReservation->getId()]); $conn->commit(); $points = MUtilisateur::getPoints($uneReservation->getUnClient()) - Build::newPoints($uneReservation->getPriceReservation()) + $uneReservation->getReduction(); MUtilisateur::setPoints($uneReservation->getUnClient(), $points); $conn = null; } catch (PDOException $e) { $conn->rollBack(); $uneReservation->setValid(false); throw new ErrorSQLException($e->getMessage()); } }
if (array_key_exists('Reservation', $_SESSION)) { header('Location:?page=maReservation'); } if ($_SESSION['Reservation']->isValid()) { MConnexion::setFlashMessage('Vous avez déjà une réservation. Veuillez contacter Nostromo pour annuler votre réservation.', 'error'); } header('Location:?page=maReservation'); } else { MConnexion::setFlashMessage('Le vol demandé n\'existe pas.', 'error'); header('Location:?page=reserver'); } } catch (NotConnectedException $e) { MConnexion::setFlashMessage($e->getMessage()); header('Location:?page=connexion'); } catch (InvalidArgumentException $e) { MConnexion::setFlashMessage($e->getMessage(), 'error'); header('Location:?page=maReservation'); } catch (UnexpectedValueException $e) { MConnexion::setFlashMessage($e->getMessage() . ', actuellement ' . MUtilisateur::getPoints($_SESSION['Utilisateur']) . ' points', 'error'); header('Location:?page=reserver&action=reserverVol&vol=' . $_GET['vol']); } catch (Exception $e) { MConnexion::setFlashMessage($e->getMessage(), 'error'); header('Location:?reserver'); } break; default: MConnexion::setFlashMessage('Erreur 404 : page introuvable', 'error'); header('Location:?page=index'); break; }
} catch (Exception $e) { Connexion::setFlashMessage($e->getMessage(), 'error'); } header('Location:?page=monPanier'); break; case 'diminuerProduit': $_SESSION['Panier']->diminuerQuantiteProduit($_GET['article'], 1); if ($_SESSION['Panier']->getNbProd() === 0) { unset($_SESSION['Panier']); } header('Location:?page=monPanier'); break; case 'validerPanier': try { if (array_key_exists('pointsUtilise', $_POST)) { if ($_POST['pointsUtilise'] > MUtilisateur::getPoints($_SESSION['Utilisateur'])) { throw new \InvalidArgumentException('Vous n\'avez pas assez de points'); } $_SESSION['Panier']->setPointsUtilise($_POST['pointsUtilise']); if (empty($_POST['pointsUtilise'])) { $_SESSION['Panier']->setPointsUtilise(null); } echo "<script>window.location.replace('?page=monPanier&action=validerPanier')</script>"; } else { require_once ROOT . 'src/Views/Panier/v_ValiderPanier.php'; } } catch (\InvalidArgumentException $e) { Connexion::setFlashMessage($e->getMessage()); echo "<script>window.location.replace('?page=monPanier&action=voirPanier')</script>"; } break;
?> </div> </nav> <?php if (array_key_exists('page', $_GET) && $_GET['page'] === 'index') { echo ' <div class="carousel"> <img src="public/Resources/img/bg.png" alt="" width="100%"> </div>'; } ?> <div class='jumbotron'> <div class='container-fluid'> <?php if (MConnexion::sessionOuverte()) { $_SESSION['Utilisateur']->setPoints(MUtilisateur::getPoints($_SESSION['Utilisateur'])); echo "<div class='col-md-8 col-xs-12 col-lg-9'>"; } if (array_key_exists('page', $_GET)) { switch ($_GET['page']) { case 'index': require_once ROOT . 'src/Controllers/Index/c_Index.php'; break; case 'reserver': require_once ROOT . 'src/Controllers/ReserveVol/c_ReserveVol.php'; break; case 'connexion': require_once ROOT . 'src/Controllers/Connexion/c_ConnexionSite.php'; break; case 'inscription': require_once ROOT . 'src/Controllers/Inscription/c_InscriptionSite.php';