/** * 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()); } }
$unCommander = new Commander(); $unCommander->setUnArticle($unArticle); $unCommander->setQte($unArticle->getQte()); $unCommander->setUneCommande($uneCommande); $lesCommander->ajouter($unCommander); } $uneCommande->setLesArticles($lesCommander); if ($_SESSION['Panier']->getPointsUtilise() > 0) { $uneCommande->setPointsUtilise($_SESSION['Panier']->getPointsUtilise()); } MCommande::ajouterCommande($uneCommande); foreach ($uneCommande->getLesArticles()->getCollection() as $unCommander) { MCommander::ajouterArticleCommande($unCommander); MArticle::updateQteStock($unCommander->getUnArticle(), $unCommander->getQte()); } MUtilisateur::setPoints($_SESSION['Utilisateur'], $_SESSION['Utilisateur']->getPoints() + Build::newPoints($_SESSION['Panier']->getPrixTotal(), Build::TYPE_COMMANDE)); unset($_SESSION['Panier']); header('Location:?page=monCompte&action=voirCommandes'); } catch (\InvalidArgumentException $e) { Connexion::setFlashMessage($e->getMessage()); header('Location:?page=monPanier'); } catch (\UnexpectedValueException $e) { Connexion::setFlashMessage($e->getMessage()); header('Location:?page=monPanier&action=validerPanier'); } break; case 'ajouterArticle': try { if ($_POST['qte'] <= 0) { throw new InvalidArgumentException('Veuillez sélectionner une quantité'); }
?> </h3> <form action="?page=reserver&action=validReserverVol&vol=<?php echo $vol->getNumVol(); ?> " method="POST" role="form" autocomplete="off"> <h3 class="text-muted"><?php echo $nbPlaceRestante; ?> places disponibles !</h3> <h4 class="text-uppercase text-warning">Vol à partir de <?php echo Build::fEuro($vol->getPrice()); ?> </h4> <div class="row"> <div class="col-xs-12 col-md-2"> <div class="form-group"> <label for="">Nombre de personnes</label> <input type="number" min="1" class="form-control" id="nbPers" name="nbPers" placeholder="Nombre de personnes" value="1"> </div>
</div> </div> </div> </div> <a href="?page=monPanier" class="btn btn-default"> <span class="glyphicon glyphicon-arrow-left"></span> Retour </a> <button type="submit" class="btn btn-primary">Finaliser la commande</button> </div> </form> <div class="col-xs-12 col-md-4"> <h3>Montant TTC à payer aujourd'hui : </h3> <h4><?php echo \Nostromo\Classes\Build::fEuro($_SESSION['Panier']->getPrixTotalWithRemise()); ?> </h4> <h5>Dont <?php echo round((1 - $_SESSION['Panier']->getMultiplicateurRemise()) * 100, 2); ?> % (<?php echo \Nostromo\Classes\Build::fEuro($_SESSION['Panier']->getMontantRemise()); ?> ) de remise immédiate liée aux points de fidélité. </h5> </div>
echo '<h3>Échéances :</h3>'; echo 'Payé : ' . Build::fEuro($_SESSION['Reservation']->getPriceReservation()) . ' - le ' . Build::fDateTimeDate($_SESSION['Reservation']->getDateRes()); } elseif ($_SESSION['Reservation']->getNbEcheance() === 3) { /* @var \Nostromo\Classes\Echeance $echeance */ echo '<h3>Échéances :</h3>'; foreach ($_SESSION['Reservation']->getLesEcheance()->getCollection() as $echeance) { $now = new \DateTime(); if ($echeance->getDate() > new \DateTime() || Build::fDateTimeDate($echeance->getDate()) === Build::fDateTimeDate($now)) { echo ' ' . Build::fEuro($echeance->getMontant()); echo ' pour le : ' . Build::fDateTimeDate($echeance->getDate()) . '<br>'; } } } else { echo '<h4>A payer : ' . Build::fEuro($_SESSION['Reservation']->getPriceReservation()) . '</h4>'; if ($_SESSION['Reservation']->getReduction() > 0) { echo '<h5>Dont : ' . Build::fEuro($_SESSION['Reservation']->getPriceRemise()) . ' de remise lié aux points de fidélité.</h5>'; } } ?> </div> </div> <?php if (!$_SESSION['Reservation']->isValid()) { ?> <a class="btn btn-primary" href="?page=maReservation&action=payment" role="button">Valider la réservation </a> <?php } else { ?>
?> <?php if (MVol::getPlaceRestante($unVol) === 0) { echo ' - <span class="text-danger">COMPLET</span>'; } ?> </h2> <h4>Date et heure : <?php echo $unVol->getDateVol(); ?> à <?php echo $unVol->getHeureVol(); ?> </h4> <h5>Prix : <?php echo Build::fEuro($unVol->getPrice()); ?> </h5> <?php if (Connexion::sessionOuverte()) { ?> <p><a href="?page=reserver&action=reserverVol&vol=<?php echo $unVol->getNumVol(); ?> " <?php if (MVol::getPlaceRestante($unVol) === 0) { echo 'disabled'; } ?>
points de fidélité (<span class=\"text-warning\">- <?php echo Build::fEuro($uneCommande->getMontantRemise()); ?> .'</span>) et gagner <?php echo Build::newPoints($uneCommande->getMontantTotalNoRemise(), Build::TYPE_COMMANDE); ?> nouveaux points avec cette commande. </h5> <?php } ?> <h3> Total : <span class="text-warning"><?php echo Build::fEuro($uneCommande->getMontantTotal()); ?> </span> </h3> <?php } else { if (isset($lesCommandes)) { if ($lesCommandes->taille() === 0) { echo '<p class="text-center text-info">Vous n\'avez aucune commande.</p>'; } else { echo '<h5 class="text-center">Veuillez sélectionner une commande</h5>'; } } } ?> </div>
<?php echo Build::fEuro($_SESSION['Reservation']->getOtherEcheancePrice()); ?> - le <?php echo Build::fDateTimeDate($_SESSION['Reservation']->getDateEcheance(1)); ?> </div> </div> <div class="row"> <div class="col-xs-12 col-md-12"> <?php echo Build::fEuro($_SESSION['Reservation']->getOtherEcheancePrice()); ?> - le <?php echo Build::fDateTimeDate($_SESSION['Reservation']->getDateEcheance(2)); ?> </div> </div> <div class="row"> <div class="col-xs-12 col-md-12"> Dont <?php echo Build::fEuro($_SESSION['Reservation']->getPriceRemise()); ?> de remise lié aux points de fidélité. </div> </div> </div> </div> <?php } }
value="1"> <input type="hidden" id="price" readonly disabled value="<?php echo $article->getPu(); ?> "> </div> <div class="col-xs-12 col-md-5"> <h3>Prix : <span class="text-info"> <?php echo '<span id="priceContainer">' . Build::fEuro($article->getPu()) . '</span>'; ?> </span> </h3> </div> </div> <br> <a href="?page=materiel" class="btn btn-default"> <span class="glyphicon glyphicon-arrow-left"></span> Retour </a> <button type="submit" class="btn btn-primary">Valider</button> </form> </div> </div>
" <?php if ($_SESSION['Panier']->getPointsUtilise() > 0) { echo "value='{$_SESSION['Panier']->getPointsUtilise()}'"; } else { echo 'readonly'; } ?> placeholder="Combien de points ?"> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-md-5"> <h4>Total à payer : <span id="total"><?php echo Build::fEuro($_SESSION['Panier']->getPrixTotal()); ?> </span></h4> <h5>Total remise (en %) : <span id="remise">0%</span></h5> </div> </div> <div class="row"> <div class="col-xs-12"> <a href="?page=monPanier&action=viderPanier" onclick="return etesVousSur('Voulez-vous vider le panier ?')" class="btn btn-primary"> <span class="glyphicon glyphicon-trash"></span> Vider </a> <button type="submit"