/** * 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; }
/** * Récupère la réservation en cours du client * * @param Utilisateur $unClient * * @return Reservation * * @throws CollectionException * @throws ErrorSQLException */ public static function getReservationClient(Utilisateur $unClient) { $uneReservation = new Reservation(); try { $conn = MConnexion::getBdd(); $reqPrepare = $conn->prepare('SELECT reservation.numVol, reservation.numRes, dateRes, nbPers, montant, dateEcheance FROM reservation LEFT JOIN echeance ON reservation.numRes = echeance.numRes INNER JOIN vol ON reservation.numVol = vol.numVol WHERE NumClt = ? AND curdate() < vol.dateVol'); $reqPrepare->execute([$unClient->getId()]); $fetch = $reqPrepare->fetch(); $unVol = MVol::getUnVol($fetch['numVol']); $uneReservation->setId($fetch['numRes'])->setUnVol($unVol)->setUnClient($unClient)->setDateRes($fetch['dateRes'])->setNbPers($fetch['nbPers'])->setValid(true); $lesEcheances = MEcheance::getEcheances($uneReservation); $uneReservation->setLesEcheance($lesEcheances); $conn = null; } catch (PDOException $e) { echo $e->getMessage(); throw new ErrorSQLException('Impossible de récupérer la réservation de ' . $unClient->getMail() . ' Détails : ' . $e->getMessage()); } return $uneReservation; }