// On fait la même chose mais on supprime également les entrées dans la table j_traitements_saisies $criteria = new Criteria(); $criteria->add(JTraitementSaisiePeer::A_TRAITEMENT_ID, $_traite[$i], Criteria::EQUAL); $joinTraitement = JTraitementSaisiePeer::doSelect($criteria); foreach ($joinTraitement as $join){ $delete_join = $join->delete(); } $traitement = AbsenceTraitementPeer::retrieveByPK($_traite[$i]); $traitement->delete(); } }else{ // On met à jour les traitements qui ne sont pas supprimés $traitement = AbsenceTraitementPeer::retrieveByPK($_traite[$i]); $traitement->setUtilisateurId($_SESSION["login"]); $traitement->setATypeId($_type[$i]); $traitement->setAMotifId($_motif[$i]); $traitement->setAJustificationId($_justif[$i]); $traitement->setAActionId($_action[$i]); $traitement->save(); } } // fin du for($i... } // On récupère toutes les absences dont le traitement n'est pas clos $c = new Criteria(); /** * Le code qui suit devrait ordonner la liste par ordre alphabétique des noms d'élèves absents mais renvoie les absences en double.
$test = $saisies[0]->getEleveId(); // On prend le premier élève et on vérifiera les autres dans la boucle foreach $_idTraitement = NULL; // marqueur sur l'id du traitement if ($_fusionHier[0] == 'ok'){ // On fusionne tout le groupe avec le traitement existant le plus récent $c = new Criteria(); $c->add(AbsenceSaisiePeer::ELEVE_ID, $test, Criteria::EQUAL); $c->addDescendingOrderByColumn(AbsenceSaisiePeer::FIN_ABS); $traite_test = JTraitementSaisiePeer::doSelectJoinAbsenceSaisie($c); foreach($traite_test as $verif){ if ((isset($verif)) AND is_object($verif)){ $_id_test = $verif->getATraitementId(); $verif2 = AbsenceTraitementPeer::retrieveByPK($_id_test); if (isset($verif2) AND is_object($verif2)){ $_idTraitement = $verif2->getId(); } } } } if ($_idTraitement === NULL){ // sinon on crée un nouveau traitement $traite_test = new AbsenceTraitement(); $traite_test->setUtilisateurId($_SESSION["login"]); $traite_test->setCreatedOn(date("U")); $traite_test->save(); $_idTraitement = $traite_test->getId(); }