Exemplo n.º 1
0
 /**
  * Filtre la requete pour les eleves qui sont sous la responsabilite de l'utilisateur
  * en tant que prof principal, cpe ou scolarite
  *
  * @param     UtilisateurProfessionnel $utilisateurProfessionnel the related object to use as filter
  *
  * @return    EleveQuery The current query, for fluid interface
  */
 public function filterByUtilisateurProfessionnel($utilisateurProfessionnel) {
     if ($utilisateurProfessionnel == null ||
             ($utilisateurProfessionnel->getStatut() != "cpe"
             && $utilisateurProfessionnel->getStatut() != "professeur"
             && $utilisateurProfessionnel->getStatut() != "scolarite"
             && $utilisateurProfessionnel->getStatut() != "responsable"
             && $utilisateurProfessionnel->getStatut() != "autre")) {
         //on filtre tout
         return $this->where('1 <> 1');
     } elseif ($utilisateurProfessionnel->getStatut() == "cpe") {
         $this->useJEleveCpeQuery()->filterByUtilisateurProfessionnel($utilisateurProfessionnel)->endUse();
         return $this;
     } elseif ($utilisateurProfessionnel->getStatut() == "autre") {
         //pas de filtrage, tout les eleves sont acceptes
         return $this;
     } else if ($utilisateurProfessionnel->getStatut() == "professeur") {
         $this->useJEleveProfesseurPrincipalQuery()->filterByUtilisateurProfessionnel($utilisateurProfessionnel)->endUse();
         return $this;
     } else if ($utilisateurProfessionnel->getStatut() == "scolarite") {
         $this->useJEleveClasseQuery()->addJoin(JEleveClassePeer::ID_CLASSE, JScolClassesPeer::ID_CLASSE, Criteria::INNER_JOIN)
                 ->add(JScolClassesPeer::LOGIN, $utilisateurProfessionnel->getLogin())
                 ->endUse()->distinct();
         return $this;
     } else if ($utilisateurProfessionnel->getStatut() == "responsable") {
         $this->useResponsableInformationQuery()->useResponsableEleveQuery()->filterByLogin($utilisateurProfessionnel->getLogin())->endUse()->endUse();
         return $this;
     }
 }
Exemplo n.º 2
0
	/**
	 * Filtre la requete pour les classes qui sont sous la responsabilite de l'utilisateur
	 * en tant que prof principal, cpe ou scolarite
	 * Pour les status cpe et professeur, on renvoi une classe dès qu'un élève de cette classe est sous la responsabilité de l'utilisateur
	 *
	 * @param     UtilisateurProfessionnel $utilisateurProfessionnel the related object to use as filter
	 *
	 * @return    ClasseQuery The current query, for fluid interface
	 */
        public function filterByUtilisateurProfessionnel($utilisateurProfessionnel)
        {
	    if ($utilisateurProfessionnel === null) {
		//on filtre tout
		return $this->where('1 <> 1');
	    } else if ($utilisateurProfessionnel->getStatut() == "professeur") {
		return $this->useJEleveClasseQuery()->useEleveQuery()->useJEleveProfesseurPrincipalQuery()->filterByUtilisateurProfessionnel($utilisateurProfessionnel)->endUse()->endUse()->endUse();
	    } else if ($utilisateurProfessionnel->getStatut() == "cpe") {
		return $this->useJEleveClasseQuery()->useEleveQuery()->useJEleveCpeQuery()->filterByUtilisateurProfessionnel($utilisateurProfessionnel)->endUse()->endUse()->endUse();
	    } else if ($utilisateurProfessionnel->getStatut() == "scolarite") {
		return $this->useJScolClassesQuery()->filterByUtilisateurProfessionnel($utilisateurProfessionnel)->endUse();
	    } else {
		//on filtre tout
		return $this->where('1 <> 1');
	    }
	}
function verif_debut_fin_saisie(DateTime $dt_date_debut_appel, DateTime $dt_date_fin_appel, UtilisateurProfessionnel $utilisateur, $edt_cours)
{
    $message_enregistrement = '';
    if ($dt_date_debut_appel === null) {
        $message_enregistrement .= "Le début de saisie doit etre précisée.<br/>";
        return $message_enregistrement;
    }
    if ($dt_date_fin_appel === null) {
        $message_enregistrement .= "La fin de saisie doit etre précisée.<br/>";
        return $message_enregistrement;
    }
    ////on verifie si l'utilisateur a le droit de saisir cela
    if ($utilisateur->getStatut() == 'professeur') {
        if ($dt_date_debut_appel->format('d/m/Y') != $dt_date_fin_appel->format('d/m/Y')) {
            $message_enregistrement .= "Saisie sur plusieurs jours non autorisée.<br/>";
        }
        //verification des autorisation de saisies decaleer
        if (getSettingValue("abs2_saisie_prof_decale") != 'y') {
            $now = new DateTime('now');
            if ($dt_date_debut_appel->format('d/m/Y') != $now->format('d/m/Y') || $dt_date_fin_appel->format('d/m/Y') != $now->format('d/m/Y')) {
                $message_enregistrement .= "Saisie non autorisée autre que pour la journée courante.<br/>";
            }
        }
        if ($edt_cours != null && $utilisateur->getStatut() == 'professeur' && getSettingValue("abs2_saisie_prof_hors_cours") != 'y') {
            //on verifie que le saisie ne deborde pas du cours
            if ($edt_cours->getHeureDebut('Hi') > $dt_date_debut_appel->format('Hi')) {
                $message_enregistrement .= "L'heure de début de saisie ne peut pas être antérieure au cours.<br/>";
            }
            if ($edt_cours->getHeureFin('Hi') < $dt_date_fin_appel->format('Hi')) {
                $message_enregistrement .= "L'heure de fin de saisie ne peut pas être postérieure au cours.<br/>";
            }
        }
    }
    if ($dt_date_debut_appel->format('U') > $dt_date_fin_appel->format('U')) {
        $message_enregistrement .= "L'heure de fin de saisie ne peut etre anterieure à l'heure de début.<br/>";
    }
    return $message_enregistrement;
}