/** * * Prérempli la notification avec des responsables (sans sauvegarder la notification). * Si plusieurs responsables sont disponibles, un responsable 1 est pris en priorité pour remplir la notification, * un responsable 2 est ajouté si l'adresse est la même que le premier * Si trop de responsables sont disponibles, aucun choix arbitraire n'est fait et alors rien n'est rempli sur la notification * Si aucun responsable n'est disponible, la notification n'est pas remplie * * @return boolean true ou false suivant que le remplissage a pu être effectué ou pas. * */ public function preremplirResponsables() { $traitement = $this->getAbsenceEleveTraitement(); if ($traitement === NULL) return false; $responsable_1_coll = new PropelObjectCollection(); $responsable_2_coll = new PropelObjectCollection(); foreach ($traitement->getResponsablesInformationsSaisies() as $responsable_information) { if ($responsable_information == null) continue; if ($responsable_information->getNiveauResponsabilite() == '1') { $responsable_1_coll->add($responsable_information->getResponsableEleve()); } else if ($responsable_information->getNiveauResponsabilite() == '2') { $responsable_2_coll->add($responsable_information->getResponsableEleve()); } //si on ne peut pas choisir les responsables, on retourne sans remplir if ($responsable_1_coll->count() > 1) return false; } if ($responsable_1_coll->isEmpty() && $responsable_2_coll->count() != 1) { //on ne peut pas choisir return false; } $responsable_eleve1 = $responsable_1_coll->getFirst(); $responsable_eleve2 = $responsable_2_coll->getFirst(); if ($responsable_eleve1 != null) { $this->setEmail($responsable_eleve1->getMel()); $this->setTelephone($responsable_eleve1->getTelPort()); $this->setAdresseId($responsable_eleve1->getAdresseId()); $this->addResponsableEleve($responsable_eleve1); } else { $this->setEmail($responsable_eleve2->getMel()); $this->setTelephone($responsable_eleve2->getTelPort()); $this->setAdresseId($responsable_eleve2->getAdresseId()); $this->addResponsableEleve($responsable_eleve2); } //on ajoute dans la liste des destinataires le resp 2 si il a la même adresse que le resp 1 if ($responsable_eleve2 != null && $responsable_eleve1 != null && $responsable_eleve2->getAdresseId() == $responsable_eleve1->getAdresseId()) { $this->addResponsableEleve($responsable_eleve2); } return true; }
} $ligne_traitement[$cpt_traitement] .= "' style='display: block; height: 100%;'> \n\t\t\t\t" . $traitement->getId() . "\n\t\t\t</a>\n\t\t</td>"; //====================================== //donnees utilisateur $ligne_traitement[$cpt_traitement] .= "\n\t\t<td>\n\t\t\t<a href='visu_traitement.php?id_traitement=" . $traitement->getPrimaryKey() . "' style='display: block; height: 100%; color: #330033'> "; if ($traitement->getUtilisateurProfessionnel() != null) { $ligne_traitement[$cpt_traitement] .= $traitement->getUtilisateurProfessionnel()->getCivilite() . ' ' . $traitement->getUtilisateurProfessionnel()->getNom(); } $ligne_traitement[$cpt_traitement] .= "</a>\n\t\t</td>"; //====================================== //donnees eleve $ligne_traitement[$cpt_traitement] .= "\n\t\t<td>"; $eleve_col = new PropelObjectCollection(); foreach ($traitement->getAbsenceEleveSaisies() as $saisie) { if ($saisie->getEleve() != null) { $eleve_col->add($saisie->getEleve()); } } $cpt_eleve_col = 0; foreach ($eleve_col as $eleve) { $ligne_traitement[$cpt_traitement] .= "\n\t\t\t<table style='border-spacing:0px; border-style : none; margin : 0px; padding : 0px; font-size:100%; width:100%'>\n\t\t\t\t<tr style='border-spacing:0px; border-style : none; margin : 0px; padding : 0px; font-size:100%;'>\n\t\t\t\t\t<td style='border-spacing:0px; border-style : none; margin : 0px; padding : 0px; font-size:100%;'>\n\t\t\t\t\t\t<a href='liste_traitements.php?filter_eleve=" . $eleve->getNom() . "&order=asc_eleve' style='display: block; height: 100%;' title = 'Uniquement les absences de " . $eleve->getNom() . ' ' . $eleve->getPrenom() . "'> \n\t\t\t\t\t\t\t" . ($eleve->getCivilite() . ' ' . $eleve->getNom() . ' ' . $eleve->getPrenom()) . "\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<a href='liste_traitements.php?filter_classe[]=" . $eleve->getClasse()->getId() . "&order=asc_eleve' style='display: block; height: 100%;' title = 'Uniquement les absences de la classe " . $eleve->getClasse()->getNom() . "'>\n\t\t\t\t\t\t\t" . $eleve->getClasse()->getNom() . "\n\t\t\t\t\t\t</a>"; if ($utilisateur->getAccesFicheEleve($eleve)) { $ligne_traitement[$cpt_traitement] .= "\n\t\t\t\t\t\t<a href='../eleves/visu_eleve.php?ele_login="******"&onglet=responsables&quitter_la_page=y' target='_blank'>\n\t\t\t\t\t\t\t (voir fiche)\n\t\t\t\t\t\t </a>"; } $ligne_traitement[$cpt_traitement] .= "\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style='border-spacing:0px; border-style : none; margin : 0px; padding : 0px; font-size:100%;'>\n\t\t\t\t\t\t<a href='liste_traitements.php?filter_eleve=" . $eleve->getNom() . "&order=asc_eleve"; if ($menu) { $ligne_traitement[$cpt_traitement] .= "&menu=false"; } $ligne_traitement[$cpt_traitement] .= "' style='display: block; height: 100%;'> "; if (getSettingValue("active_module_trombinoscopes") == 'y') { $nom_photo = $eleve->getNomPhoto(1);
/** * * Renvoi la collection de cours qui correspond à l'heure donnée * * @param PropelObjectCollection $edtEmplacementCours La collection d'emplacement de cours * @return PropelObjectCollection $edtEmplacementCours Un collection ordonnés d'emplacement de cours * @throws PropelException - si les types d'entrées ne sont pas bon. */ public static function getColEdtEmplacementCoursActuel(PropelObjectCollection $edtEmplacementCoursCol, $v = 'now') { // we treat '' as NULL for temporal objects because DateTime('') == DateTime('now') // -- which is unexpected, to say the least. //$dt = new DateTime(); if ($v === null || $v === '') { $dt = null; } elseif ($v instanceof DateTime) { $dt = clone $v; } else { // some string/numeric value passed; we normalize that so that we can // validate it. try { if (is_numeric($v)) { // if it's a unix timestamp $dt = new DateTime('@'.$v, new DateTimeZone('UTC')); // We have to explicitly specify and then change the time zone because of a // DateTime bug: http://bugs.php.net/bug.php?id=43003 $dt->setTimeZone(new DateTimeZone(date_default_timezone_get())); } else { $dt = new DateTime($v); } } catch (Exception $x) { throw new PropelException('Error parsing date/time value: ' . var_export($v, true), $x); } } $result = new PropelObjectCollection(); $num_semaine = $dt->format('W'); $edtSemaine = EdtSemaineQuery::create()->filterByNumEdtSemaine($num_semaine)->findOne(); if ($edtSemaine == null) { $type_semaine = ''; } else { $type_semaine = $edtSemaine->getTypeEdtSemaine(); } // On traduit le nom du jour $semaine_declaration = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"); $jour_semaine = $semaine_declaration[$dt->format("w")]; $timeStampNow = strtotime($dt->format('H:i:s')); foreach ($edtEmplacementCoursCol as $edtCours) { if ($jour_semaine == $edtCours->getJourSemaine() && ($type_semaine == $edtCours->getTypeSemaine() || $edtCours->getTypeSemaine() == '' || $edtCours->getTypeSemaine() == '0' || $edtCours->getTypeSemaine() === 0 )) { if ($edtCours->getEdtCreneau() != null && strtotime($edtCours->getHeureDebut()) <= $timeStampNow && $timeStampNow < strtotime($edtCours->getHeureFin())) { $result->add($edtCours); } } } return $result; }
/** * * Renvoi une collection des mefs des eleves de ce groupe. Un seul mef de chaque type sera retourné. * * @periode integer numero de la periode * @return PropelObjectCollection Eleves[] * */ public function getMefs($periode = null) { $mef_collection = new PropelObjectCollection(); foreach($this->getEleves($periode) as $eleve) { $mef_collection->add($eleve->getMef()); } return $mef_collection; }
} echo '</td>'; $type_col = new PropelObjectCollection(); $justif_col = new PropelObjectCollection(); $motif_col = new PropelObjectCollection(); $manque = false; // Ajout d'un test: Il y avait plantage sur la recherche: // Manquement obligation présence : <vide> // Justification : SANS JUSTIFICATION if($eleve_saisie_hydrated) { foreach ($eleve_saisie_hydrated->getAbsenceEleveSaisies() as $saisie) { foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { $type_col->add($traitement->getAbsenceEleveType()); $justif_col->add($traitement->getAbsenceEleveJustification()); $motif_col->add($traitement->getAbsenceEleveMotif()); } $manque = $manque || $saisie->getManquementObligationPresence(); } } //donnees type echo '<td>'; foreach ($type_col as $type) { if ($type == null) continue; echo $type->getNom(); if (!$type_col->isLast()) { echo ', '; } } echo '</td>';
/** * * Renvoi la liste de tout les responsables légaux des saisies associees a ce traitement * * @return PropelObjectCollection collection d'objets de la classe ResponsableInformation * */ public function getResponsablesInformationsSaisies() { $resp_col = new PropelObjectCollection(); $resp_col->setModel('ResponsableInformation'); foreach ($this->getAbsenceEleveSaisies() as $saisie) { $eleve = $saisie->getEleve(); if ($eleve!= null) { foreach ($eleve->getResponsableInformations() as $responsable_information) { $resp_col->add($responsable_information); } } } return $resp_col; }