/** * Récupère les commandes dont l'utilisateur est passé en paramètre. * * @param Utilisateur $unClient * @param bool $index * * @return Collection $lesCommandes * * @throws CollectionException * @throws ErrorSQLException */ public static function getCommandes(Utilisateur $unClient, $index = false) { $lesCommandes = new Collection(); try { $conn = MConnexion::getBdd(); $req = !$index ? $conn->prepare('SELECT * FROM commande WHERE numClt = ? ORDER BY date DESC') : $conn->prepare('SELECT * FROM commande WHERE numClt = ? ORDER BY date DESC LIMIT 2'); $req->execute(array($unClient->getId())); $req = $req->fetchAll(); foreach ($req as $tabs) { $uneCommande = new Commande($tabs['numCde'], $unClient, $tabs['date'], $tabs['pointsUtilise']); $uneCommande->setLesArticles(MCommander::getUneCommande($uneCommande)); $lesCommandes->ajouter($uneCommande); } } catch (PDOException $e) { throw new ErrorSQLException($e->getMessage()); } return $lesCommandes; }
/** * 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; }
/** * Met à jour le nombre de points d'un client * * @param Utilisateur $user * @param int $points * * @throws ErrorSQLException */ public static function setPoints(Utilisateur $user, $points) { try { $conn = MConnexion::getBdd(); $reqPrepare = $conn->prepare('UPDATE client SET pointsClt = ? WHERE numClt = ?'); $reqPrepare->execute([$points, $user->getId()]); $user->setPoints($points); $conn = null; } catch (PDOException $ex) { throw new ErrorSQLException("L'utilisateur n°{$user->getId()} n'existe pas."); } }
Connexion::setFlashMessage('Cette e-mail est déjà utilisée.', 'error'); header('Location:?page=inscription'); } elseif (strlen($_POST['nomUser']) > 20) { Connexion::setFlashMessage('Le nom entré est trop long', 'error'); header('Location:?page=inscription'); } elseif (strlen($_POST['prenUser']) > 20) { Connexion::setFlashMessage('Le prénom entré est trop long', 'error'); header('Location:?page=inscription'); } elseif (strlen($_POST['cpUser']) !== 5) { Connexion::setFlashMessage('Le code postal entré n\'est pas au bon format (ex: 30000)', 'error'); header('Location:?page=inscription'); } elseif ($_POST['mdpUser'] !== $_POST['mdpConfUser']) { Connexion::setFlashMessage('Les mots de passes ne sont pas identiques', 'error'); header('Location:?page=inscription'); } else { $unUser = new Utilisateur(); $unUser->setNom($_POST['nomUser'])->setPrenom($_POST['prenUser'])->setAdresse($_POST['adrUser'])->setCp($_POST['cpUser'])->setVille($_POST['villeUser'])->setMdp(sha1($_POST['mdpUser']))->setMail($_POST['mailUser'])->setPoints(10); ConnexionSite::setAjoutUser($unUser); Connexion::setFlashMessage('Inscription réussie, vous pouvez désormais vous connecter.', 'valid'); header('Location:?page=index'); } } else { header('Location:?page=index'); } } catch (Exception $e) { Connexion::setFlashMessage($e->getMessage(), 'error'); header('Location:?page=inscription'); } break; default: header('Location:?page=index');