// On traite ce qui est demandé : // S = supprimer le traitement en faisant en sorte qu'il disparaisse (les saisies également) // D = Défusionner en faisant disparaitre le traitement (mais en conservant les saisies) if ($_supprimer[$i] == "S"){ // Donc ces saisies seront toujours stockées dans la base, rattachées à un traitement qui n'existe plus // Donc elles ne sont plus visibles dans le suivi des saisies mais continuent d'être stockées dans la base $traitement = AbsenceTraitementPeer::retrieveByPK($_traite[$i]); $traitement->delete(); }elseif($_supprimer[$i] == "D"){ // 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]);
$aff_fusion = 'Une demande de fusion est lancée.'; $saisies = AbsenceSaisiePeer::retrieveByPKs($_fusion); } $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"]);