/** * Met a jour la base de données * @param DevoirsModel $d * @return boolean */ public static function update(DevoirsModel $d) { $db = DB::Connect(); $query = $db->prepare("UPDATE " . self::TABLE . " SET " . self::NOM_COL . " = :name," . self::GROUPE_COL . " = :groupe," . " WHERE " . self::ID_COL . " = :id"); try { $query->bindValue(":id", $d->getId(), PDO::PARAM_INT); $query->bindValue(":name", $d->getName(), PDO::PARAM_STR); $query->bindValue(":groupe", $d->enGroupe(), PDO::PARAM_BOOL); $db->beginTransaction(); $query->execute(); $db->commit(); } catch (PDOException $e) { $db->rollback(); DB::setError($e->getMessage()); return false; } return self::findById($d->getId()); }
/** * Gere les echanges ajax avec la page pour modifier un cours * @param type $id_cours */ public function updateCours($id_cours) { $this->enseignantOnly(); $user = $this->_session->user; $matiere = MatieresModel::findById($id_cours); $result = array("result" => "ok"); if ($matiere) { $newMatiere = json_decode($_POST["jsonData"]); if ($newMatiere->id === $matiere->id) { // Matiere if (!empty($newMatiere->nom) && $newMatiere->nom != $matiere->getName()) { $matiere->setName($newMatiere->nom); $matiere->save(); } // Devoirs if (!empty($newMatiere->devoirs)) { $matiere->loadDevoirs(); foreach ($newMatiere->devoirs as $d) { if ($d->id < 0) { // INSERT NEW DEVOIR $devoir = new DevoirsModel(); $devoir->setIdMat($matiere->getId()); $devoir->setResp($user->id); $devoir->setName($d->nom); $devoir->enGroupe(boolval($d->groupe)); $devoir->create(); if (!empty($d->fichiers)) { foreach ($d->fichiers as $f) { // INSERT NEW FICHIER $fichier = new FichiersModel(); $fichier->setName($f->nom); $fichier->setDate($f->date); $fichier->setHeure($f->heure); $fichier->setIdDevoir($d->id); $fichier->acceptRetard(boolval($f->retard)); $fichier->create(); } } } else { $devoir = $matiere->findDevoir($d->id); if ($devoir) { if ($devoir->getName() !== $d->nom || $devoir->enGroupe() !== boolval($d->groupe)) { $devoir->setName($d->nom); $devoir->enGroupe(boolval($d->groupe)); $devoir->save(); } if (!empty($d->fichiers)) { foreach ($d->fichiers as $f) { if ($f->id < 0) { // INSERT NEW FICHIER $fichier = new FichiersModel(); $fichier->setName($f->nom); $fichier->setDate($f->date); $fichier->setHeure($f->heure); $fichier->setIdDevoir($d->id); $fichier->acceptRetard(boolval($f->retard)); $fichier->create(); } else { $fichier = $devoir->getFichiersAttendus($f->id); if ($fichier) { if ($fichier->getName() !== $f->nom || $fichier->getDate() !== $f->date || $fichier->getHeure() !== $f->heure || $fichier->acceptRetard() !== boolval($f->retard)) { $fichier->setName($f->nom); $fichier->setDate($f->date); $fichier->setHeure($f->heure); $fichier->acceptRetard(boolval($f->retard)); $fichier->save(); } } else { $result["result"] = "OOPS - FICHIER NON TROUVE"; } } } } } else { $result["result"] = "OOPS - DEVOIR NON TROUVE"; } } } } } else { echo json_encode(["result" => 'Mauvais identifiants']); } } else { $result["result"] = "error"; } echo json_encode($result); }
/** * Récupère tous ses devoirs associé dans la BDD */ public function loadDevoirs() { $this->devoirs = DevoirsModel::findAll($this->id); }