security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //recherche de l'utilisateur avec propel $utilisateur = UtilisateurProfessionnelPeer::getUtilisateursSessionEnCours(); if ($utilisateur == null) { header("Location: ../logout.php?auto=1"); die(); } //On vérifie si le module est activé if (getSettingValue("active_module_absence")!='2') { die("Le module n'est pas activé."); } if ($utilisateur->getStatut()=="professeur" && getSettingValue("active_module_absence_professeur")!='y') { die("Le module n'est pas activé."); } //récupération des paramètres de la requète $id_saisie = isset($_POST["id_saisie"]) ? $_POST["id_saisie"] :(isset($_GET["id_saisie"]) ? $_GET["id_saisie"] :NULL); $date_debut = isset($_POST["date_debut"]) ? $_POST["date_debut"] :(isset($_GET["date_debut"]) ? $_GET["date_debut"] :NULL); $date_fin = isset($_POST["date_fin"]) ? $_POST["date_fin"] :(isset($_GET["date_fin"]) ? $_GET["date_fin"] :NULL); $commentaire = isset($_POST["commentaire"]) ? $_POST["commentaire"] :(isset($_GET["commentaire"]) ? $_GET["commentaire"] :NULL); $menu = isset($_POST["menu"]) ? $_POST["menu"] :(isset($_GET["menu"]) ? $_GET["menu"] : Null); //debug_var(); $temoin_erreur_saisie=""; $message_enregistrement = ''; $saisie = AbsenceEleveSaisieQuery::create()->includeDeleted()->findPk($id_saisie); if ($saisie == null) { $message_enregistrement .= 'Modification impossible : saisie non trouvée.'; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } //on charge les traitements $saisie->getAbsenceEleveTraitements(); if ( isset($_POST["creation_traitement"])) { //on charge les traitements $saisie->getAbsenceEleveTraitements(); $traitement = new AbsenceEleveTraitement(); $traitement->setUtilisateurProfessionnel($utilisateur); $traitement->addAbsenceEleveSaisie($saisie); $traitement->save(); header("Location: ./visu_traitement.php?id_traitement=".$traitement->getId().'&menu='.$menu); die(); } elseif ( isset($_POST["creation_notification"])) { //on charge les traitements $saisie->getAbsenceEleveTraitements(); $traitement = new AbsenceEleveTraitement(); $traitement->setUtilisateurProfessionnel($utilisateur); $traitement->addAbsenceEleveSaisie($saisie); $traitement->save(); $notification = new AbsenceEleveNotification(); $notification->setUtilisateurProfessionnel($utilisateur); $notification->setAbsenceEleveTraitement($traitement); //on met le type courrier par défaut $notification->setTypeNotification(AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER); $responsable_eleve1 = null; $responsable_eleve2 = null; foreach ($traitement->getResponsablesInformationsSaisies() as $responsable_information) { if ($responsable_information->getNiveauResponsabilite() == '1') { $responsable_eleve1 = $responsable_information->getResponsableEleve(); } else if ($responsable_information->getNiveauResponsabilite() == '2') { $responsable_eleve2 = $responsable_information->getResponsableEleve(); } } if ($responsable_eleve1 != null) { $notification->setEmail($responsable_eleve1->getMel()); $notification->setTelephone($responsable_eleve1->getTelPort()); $notification->setAdresseId($responsable_eleve1->getAdresseId()); $notification->addResponsableEleve($responsable_eleve1); } if ($responsable_eleve2 != null) { if ($responsable_eleve1 == null || $responsable_eleve2->getAdresseId() == $responsable_eleve1->getAdresseId()) { $notification->addResponsableEleve($responsable_eleve2); } } $notification->save(); header("Location: ./visu_notification.php?id_notification=".$notification->getId().'&menu='.$menu); die(); } elseif ( isset($_POST["modifier_type"])) { $message_enregistrement .= modif_type($saisie, $utilisateur); if ($message_enregistrement == '') { $message_enregistrement = 'Modification du type enregistrée.'; } include("visu_saisie.php"); die(); } elseif (isset($_GET["version"])) { if ($utilisateur->getStatut() != 'cpe' && $utilisateur->getStatut() != 'scolarite') { $message_enregistrement .= 'Modification non autorisée.'; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } if ($saisie->getDeletedAt() != null) { $message_enregistrement .= 'Cette saisie est supprimée. Vous devez la restaurer pour la modifier.'; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } $saisie->toVersion($_GET["version"]); if ($saisie->isDeleted()) { $saisie->unDelete(); } else { AbsenceEleveSaisiePeer::disableVersioning(); $saisie->save(); AbsenceEleveSaisiePeer::enableVersioning(); } include("visu_saisie.php"); die(); } elseif (isset($_POST["action"])) { if ($utilisateur->getStatut() == 'cpe' || $utilisateur->getStatut() == 'scolarite' || ($utilisateur->getStatut() == 'professeur' && $saisie->getUtilisateurId() == $utilisateur->getPrimaryKey()) ) { //ok } else { $message_enregistrement .= 'Modification non autorisée.'; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } if ($_POST["action"] == 'suppression') { $saisie->delete(); } else if ($_POST["action"] == 'restauration') { $saisie->unDelete(); } include("visu_saisie.php"); die(); } //la saisie est-elle modifiable ? //Une saisie est modifiable ssi : elle appartient à l'utilisateur de la session si c'est un prof, //elle date de moins d'une heure et l'option a ete coché partie admin if ($utilisateur->getStatut() == 'professeur') { if (!getSettingValue("abs2_modification_saisie_une_heure")=='y' || $saisie->getUtilisateurId() != $utilisateur->getPrimaryKey() || $saisie->getVersionCreatedAt('U') < (time() - 3600)) { $message_enregistrement .= 'Modification non autorisée.'; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } } else { if ($utilisateur->getStatut() != 'cpe' && $utilisateur->getStatut() != 'scolarite') { $message_enregistrement .= 'Modification non autorisée.'; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } } $saisie->setVersionCreatedBy($utilisateur->getLogin()); $saisie->setCommentaire($commentaire); $date_debut = new DateTime(str_replace("/",".",$_POST['date_debut'])); $heure_debut = new DateTime($_POST['heure_debut']); $date_debut->setTime($heure_debut->format('H'), $heure_debut->format('i')); $jours_actuel = date('d/m/Y'); if ($utilisateur->getStatut() == 'professeur') { if (getSettingValue("abs2_saisie_prof_decale") != 'y') { if ($date_debut->format('d/m/Y') != $jours_actuel) { $message_enregistrement .= "Saisie d'une date differente de la date courante non autorisée.
"; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } } if (getSettingValue("abs2_saisie_prof_decale_journee") !='y' && getSettingValue("abs2_saisie_prof_decale") != 'y') { if ($saisie->getEdtCreneau() == null || $saisie->getEdtCreneau()->getHeuredebutDefiniePeriode('Hi') > $date_debut->format('Hi')) { $message_enregistrement .= "Saisie hors creneau actuel non autorisée.
"; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } } } $saisie->setDebutAbs($date_debut); $date_fin = new DateTime(str_replace("/",".",$_POST['date_fin'])); $heure_fin = new DateTime($_POST['heure_fin']); $date_fin->setTime($heure_fin->format('H'), $heure_fin->format('i')); if ($utilisateur->getStatut() == 'professeur') { if (getSettingValue("abs2_saisie_prof_decale") != 'y') { if ($date_fin->format('d/m/Y') != $jours_actuel) { $message_enregistrement .= "Saisie d'une date differente de la date courante non autorisée.
"; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } } if (getSettingValue("abs2_saisie_prof_decale_journee") !='y' && getSettingValue("abs2_saisie_prof_decale") != 'y') { if ($saisie->getEdtCreneau() == null || $saisie->getEdtCreneau()->getHeurefinDefiniePeriode('Hi') < $date_fin->format('Hi')) { $message_enregistrement .= "Saisie hors creneau actuel non autorisée.
"; $temoin_erreur_saisie="y"; include("visu_saisie.php"); die(); } } } $saisie->setFinAbs($date_fin); modif_type($saisie, $utilisateur); if ($saisie->validate()) { /* $total_traitements = isset($_POST["total_traitements"]) ? $_POST["total_traitements"] :(isset($_GET["total_traitements"]) ? $_GET["total_traitements"] :0); if($total_traitements>0) { */ $saisie->save(); //} $message_enregistrement .= 'Modification enregistrée.'; if ($saisie->getEleve() != null) { $saisie->getEleve()->clearAbsenceEleveSaisiesParJour(); $saisie->getEleve()->clearAbsenceEleveSaisies(); } } else { $no_br = true; $error_message = "\n"; foreach ($saisie->getValidationFailures() as $failure) { $message_enregistrement .= $failure->getMessage(); $temoin_erreur_saisie="y"; if ($no_br) { $no_br = false; } else { $message_enregistrement .= '
'; } } $saisie->reload(); } include("visu_saisie.php"); function modif_type ($saisie, $utilisateur) { global $temoin_erreur_saisie; $total_traitements = isset($_POST["total_traitements"]) ? $_POST["total_traitements"] :(isset($_GET["total_traitements"]) ? $_GET["total_traitements"] :0); $ajout_type_absence = isset($_POST["ajout_type_absence"]) ? $_POST["ajout_type_absence"] :(isset($_GET["ajout_type_absence"]) ? $_GET["ajout_type_absence"] :null); $message_enregistrement = ''; for($i=0; $i<$total_traitements; $i++) { // on teste si on a un traitement a modifier if (!(isset($_POST['id_traitement'][$i]) || $_POST['id_traitement'][$i] == -1) ) { //$message_enregistrement .= "Probleme avec l'id traitement : ".$_POST['id_traitement'][$i]."
"; continue; } //il faut trouver le traitement corespondant à l'id $criteria = new Criteria(); $criteria->add(AbsenceEleveTraitementPeer::ID, $_POST['id_traitement'][$i]); $traitement = $saisie->getAbsenceEleveTraitements($criteria); if ($traitement->count() != 1) { $message_enregistrement .= "Probleme avec l'id traitement : ".$_POST['id_traitement'][$i]."
"; $temoin_erreur_saisie="y"; continue; } if (!$traitement->getFirst()->getModifiable()) { $message_enregistrement .= "Traitement ".$_POST['id_traitement'][$i]." non modifiable.
"; $temoin_erreur_saisie="y"; continue; } //on test si on a un traitement a modifier $type = AbsenceEleveTypeQuery::create()->findPk($_POST['type_traitement'][$i]); if ($type == null) { $message_enregistrement .= "Impossible de supprimer un type.
"; $temoin_erreur_saisie="y"; continue; } if (!$type->isStatutAutorise($utilisateur->getStatut())) { $message_enregistrement .= "Type d'absence non autorisé pour ce statut : ".$_POST['type_absence_eleve'][$i]."
"; $temoin_erreur_saisie="y"; continue; } $traitement->getFirst()->setAbsenceEleveType($type); $traitement->getFirst()->save(); } if ($ajout_type_absence != null && $ajout_type_absence != -1) { $type = AbsenceEleveTypeQuery::create()->findPk($ajout_type_absence); if ($type != null) { if ($type->isStatutAutorise($utilisateur->getStatut())) { //on va creer un traitement avec le type d'absence associé $traitement = new AbsenceEleveTraitement(); $traitement->setAbsenceEleveType($type); $traitement->setUtilisateurProfessionnel($utilisateur); $saisie->addAbsenceEleveTraitement($traitement); $traitement->save(); } else { $message_enregistrement .= "Type d'absence non autorisé pour ce statut : ".$_POST['type_absence_eleve'][$i]."
"; $temoin_erreur_saisie="y"; } } else { $message_enregistrement .= "Probleme avec l'id du type d'absence : ".$_POST['type_absence_eleve'][$i]."
"; $temoin_erreur_saisie="y"; } } else if ($ajout_type_absence == -1) { $message_enregistrement .= "Il faut préciser un type
"; $temoin_erreur_saisie="y"; } return $message_enregistrement; } ?>