コード例 #1
0
    /**
     *
     * 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;
    }
コード例 #2
0
 }
 $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="******"&amp;onglet=responsables&amp;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);
コード例 #3
0
	 	/**
	 *
	 * 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;
	}
コード例 #4
0
ファイル: Groupe.php プロジェクト: rhertzog/lcs
	/**
	 *
	 * 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;
        }
コード例 #5
0
ファイル: liste_eleves.php プロジェクト: rhertzog/lcs
    }
    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>';
コード例 #6
0
	/**
	 *
	 * 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;
	}