/** * Permet de récupérer les échéance de la Reservation passée en paramètre * * @param Reservation $reservation * * @return Collection * * @throws ErrorSQLException * @throws CollectionException */ public static function getEcheances(Reservation $reservation) { $lesEcheance = new Collection(); try { $conn = MConnexion::getBdd(); $req = $conn->prepare('SELECT * FROM echeance WHERE numRes = ?'); $req->execute([$reservation->getId()]); $fetchAll = $req->fetchAll(); foreach ($fetchAll as $fetch) { $echeance = new Echeance($reservation, $fetch['montant'], new \DateTime($fetch['dateEcheance'])); $echeance->setId($fetch['id']); $lesEcheance->ajouter($echeance); } } catch (\PDOException $e) { throw new ErrorSQLException($e->getMessage()); } return $lesEcheance; }
/** * 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()); } }