/** * 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é'); }