/** * 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); }