/** * 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); }
/** * Fonction permettant de mettre a jour les informations d'un fichier attendu * * @param FichiersModel $f le fichier attendu a mettre a jour */ public static function update(FichiersModel $f) { $db = DB::Connect(); $query = $db->prepare("UPDATE " . self::TABLE_F_ATTENDU . " SET " . self::NOM_COL . " = :name," . self::DATE_COL . " = :date," . self::HEURE_COL . " = :heure," . self::RETARD_COL . " = :retard " . " WHERE " . self::ID_COL . " = :id"); try { $query->bindValue(":id", $f->getId(), PDO::PARAM_INT); $query->bindValue(":name", $f->getName(), PDO::PARAM_STR); $query->bindValue(":date", $f->getDate(), PDO::PARAM_STR); $query->bindValue(":heure", $f->getHeure(), PDO::PARAM_STR); $query->bindValue(":retard", $f->acceptRetard(), PDO::PARAM_BOOL); $db->beginTransaction(); $query->execute(); $db->commit(); } catch (PDOException $e) { $db->rollback(); DB::setError($e->getMessage()); return false; } return self::findById($f->getId()); }