/** * Récupère le directeur dont l'ecole est passé en paramètres * @param Ecole $ecole * @return Enseignant * @throws \Exception */ public static function getDirecteur(Ecole $ecole) { try { $conn = Main::bdd(); $reqPrepare = $conn->prepare("SELECT *\n FROM enseignant ens\n INNER JOIN ecole e ON e.idEcole = ens.idEcole\n WHERE e.idEcole = ?\n AND TypeEnseignant = 1"); $reqPrepare->execute(array($ecole->getId())); $tab = $reqPrepare->fetch(); $directeur = new Enseignant($tab['idEns'], $tab['civEns'], $tab['nomEns'], $tab['prenomEns'], $tab['mailEns'], $tab['telEns'], $tab['TypeEnseignant']); $ecole = new Ecole($tab['idEcole'], $tab['typeEcole'], $tab['nomEcole'], $tab['adresseEcole'], $tab['adresse2Ecole'], $tab['cpEcole'], $tab['villeEcole'], $tab['mail_dir'], $directeur); $lesInscriptions = MInscription::getInscriptionByEnseignant($directeur); $directeur->setEcole($ecole); $directeur->setLesInscriptions($lesInscriptions); return $directeur; } catch (\PDOException $e) { throw new \Exception("Le directeur n'existe pas"); } }
/** * Récupère les plannings d'une ecole * @param Ecole $ecole * @return Collection * @throws \Exception */ public static function getPlanningsbyEcole(Ecole $ecole) { try { $conn = Main::bdd(); $reqPrepare = $conn->prepare("SELECT * FROM planning p\n INNER JOIN inscription i ON i.idInscription = p.idInscription\n INNER JOIN enseignant en ON en.idEns = i.idEns\n INNER JOIN ecole e ON e.idEcole = en.idEcole\n WHERE e.idEcole = ? "); $reqPrepare->execute(array($ecole->getId())); $tabs = $reqPrepare->fetchAll(); $coll = new Collection(); foreach ($tabs as $tab) { $inscription = MInscription::getInscriptionByIdInscription($tab['idInscription']); $seance = MSeance::getSeance($tab['idSeance']); $planning = new Planning($seance, $inscription); $coll->ajouter($planning); } return $coll; } catch (\PDOException $e) { throw new \Exception($e->getMessage()); } catch (KeyHasUseException $ex) { throw new \Exception($ex->getMessage()); } }
/** * Supprime une école et ses enseignant en cascade * @param Ecole $ecole * @throws \Exception */ public static function rmEcole(Ecole $ecole) { $conn = Main::bdd(); try { $conn->beginTransaction(); $reqPrepare = $conn->prepare("DELETE FROM enseignant WHERE idEcole = ?"); $reqPrepare->execute(array($ecole->getId())); $reqPrepare = $conn->prepare("DELETE FROM ecole WHERE idEcole = ?"); $reqPrepare->execute(array($ecole->getId())); $conn->commit(); } catch (\PDOException $e) { $conn->rollBack(); throw new \Exception("L'école " . $ecole->getId() . " n'a pas pu être supprimée. Détails : <p>" . $e->getMessage() . "</p>"); } }