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é."); } if(isset($_GET['test_heure_ouverture'])) { $date_debut=$_GET['date_debut']; $heure_debut=$_GET['heure_debut']; if(preg_match("#[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}#", $date_debut)) { $tab=explode("/", $date_debut); $jour=$tab[0]; $mois=$tab[1]; $annee=$tab[2]; } elseif(preg_match("/[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}/", $date_debut)) { $tab=explode("-", $date_debut); $jour=$tab[2]; $mois=$tab[1]; $annee=$tab[0]; } if((isset($jour))&& (preg_match("/[0-9]{1,2}:[0-9]{1,2}/", $heure_debut))) { $tab=explode(":", $heure_debut); $h=$tab[0]; $min=$tab[1]; $ts=mktime($h, $min, 0, $mois, $jour, $annee); $num_jour=strftime("%u", $ts); $tab_sem[1] = 'lundi'; $tab_sem[2] = 'mardi'; $tab_sem[3] = 'mercredi'; $tab_sem[4] = 'jeudi'; $tab_sem[5] = 'vendredi'; $tab_sem[6] = 'samedi'; $tab_sem[7] = 'dimanche'; $sql="SELECT ouverture_horaire_etablissement FROM horaires_etablissement WHERE jour_horaire_etablissement='".$tab_sem[$num_jour]."';"; //echo "$sql
"; $res=mysqli_query($mysqli, $sql); if($res->num_rows > 0) { $lig=mysqli_fetch_object($res); if(strftime("%H:%M:%S", $ts)<$lig->ouverture_horaire_etablissement) { echo " Anomalie"; } } } else { //echo "\$date_debut=$date_debut
"; //echo "\$heure_debut=$heure_debut
"; } die(); } //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"] :(isset($_SESSION["id_saisie"]) ? $_SESSION["id_saisie"] : NULL)); $menu = isset($_POST["menu"]) ? $_POST["menu"] :(isset($_GET["menu"]) ? $_GET["menu"] : NULL); if (isset($id_saisie) && $id_saisie != null) $_SESSION['id_saisie'] = $id_saisie; $affichage_depuis_edt2=isset($_SESSION['affichage_depuis_edt2']) ? $_SESSION['affichage_depuis_edt2'] : false; //============================================== $style_specifique[] = "mod_abs2/lib/abs_style"; if((!$menu)&&(!$affichage_depuis_edt2)) { $titre_page = "Les absences"; } //$utilisation_jsdivdrag = "non"; $dojo = true; $_SESSION['cacher_header'] = "y"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** if((!$menu)&&(!$affichage_depuis_edt2)) { include('menu_abs2.inc.php'); } echo "
\n"; $saisie = AbsenceEleveSaisieQuery::create()->includeDeleted()->findPk($id_saisie); if ($saisie == null) { $criteria = new Criteria(); $criteria->addDescendingOrderByColumn(AbsenceEleveSaisiePeer::UPDATED_AT); $criteria->setLimit(1); $saisie_col = $utilisateur->getAbsenceEleveSaisiesJoinEdtCreneau($criteria); $saisie = $saisie_col->getFirst(); if ($saisie == null) { echo "Saisie non trouvée"; die(); } } //on va mettre dans la session l'identifiant de la saisie pour faciliter la navigation par onglet if ($saisie != null) { $_SESSION['id_saisie_visu'] = $saisie->getPrimaryKey(); } $ts_debut_annee=getSettingValue('begin_bookings'); $ts_fin_annee=getSettingValue('end_bookings'); /* echo "\$ts_debut_annee=$ts_debut_annee
"; echo "\$ts_fin_annee=$ts_fin_annee
"; echo "\$saisie->getDebutAbs('U')=".$saisie->getDebutAbs('U')."
"; */ if(($saisie->getDebutAbs('U')<$ts_debut_annee)||($saisie->getDebutAbs('U')>$ts_fin_annee)) { echo "

ANOMALIE : La date de début d'absence saisie n'est pas dans l'année scolaire (du ".strftime("%d/%m/%Y", $ts_debut_annee)." au ".strftime("%d/%m/%Y", $ts_fin_annee).").
Cela peut provoquer des totaux d'absences erronés... et des inquiétudes de la part de la famille.

"; } if(($saisie->getFinAbs('U')<$ts_debut_annee)||($saisie->getFinAbs('U')>$ts_fin_annee)) { echo "

ANOMALIE : La date de fin d'absence saisie n'est pas dans l'année scolaire (du ".strftime("%d/%m/%Y", $ts_debut_annee)." au ".strftime("%d/%m/%Y", $ts_fin_annee).").
Cela peut provoquer des totaux d'absences erronés... et des inquiétudes de la part de la famille.

"; } //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 $modifiable = true; if ($utilisateur->getStatut() == 'professeur') { if (!getSettingValue("abs2_modification_saisie_une_heure")=='y' || !$saisie->getUtilisateurId() == $utilisateur->getPrimaryKey() || !($saisie->getVersionCreatedAt('U') > (time() - 3600))) { $modifiable = false; } } else { if ($utilisateur->getStatut() != 'cpe' && $utilisateur->getStatut() != 'scolarite') { $modifiable = false; } } if (!$modifiable) { echo "La saisie n'est pas modifiable
"; } if (isset($message_enregistrement)) { if($temoin_erreur_saisie=="y") { echo "".$message_enregistrement.""; } else { echo "".$message_enregistrement.""; } } echo ''; echo ''; echo ''; echo ''; echo '
'; echo 'N° de saisie : '; echo ''; echo $saisie->getPrimaryKey(); if ($saisie->getDeletedAt()!=null) { echo ' (supprimée le '; echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getDeletedAt('U'))); $suppr_utilisateur = UtilisateurProfessionnelQuery::create()->findPK($saisie->getDeletedBy()); if ($suppr_utilisateur != null) { echo ' par '. $suppr_utilisateur->getCivilite().' '.$suppr_utilisateur->getNom().' '.mb_substr($suppr_utilisateur->getPrenom(), 0, 1).'.';; } echo ') '; } echo ''; $temoin_plus_dans_le_grp="n"; if (($saisie->getEleve() != null)&&($saisie->getGroupe() != null)) { if(!is_eleve_du_groupe($saisie->getEleve()->getLogin(), $saisie->getGroupe()->getId())) { echo "
AttentiongetGroupe()->getNameAvecClasses()." actuellement. Il en a peut-être été membre plus tôt dans l'année. Mais il n'en n'est plus membre aujourd'hui. Si cette saisie est une erreur, vous devriez la traiter pour la marquer en 'Erreur de saisie'.\" />
"; $temoin_plus_dans_le_grp="y"; } } if ($modifiable) { // Il faudrait pouvoir supprimer des saisies même si l'élève a été viré du groupe, mais on a alors une erreur au niveau des tests sur l'objet propel if($temoin_plus_dans_le_grp=="n") { echo '
'; echo ''; echo ''; if ($saisie->getDeletedAt() == null) { echo ''; //echo ''; echo''; echo ''; //echo ''; } else { //on autorise la restauration pour un autre que cpe ou scola uniquement si c'est l'utilisateur en cours qui a fait auparavant la suppression if ($utilisateur->getStatut() == "cpe" || $utilisateur->getStatut() == "scolarite" || ($saisie->getDeletedBy() == $utilisateur->getLogin())) { //echo ''; echo''; echo ''; //echo ''; } } echo'
'; } } echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; if ($saisie->getEleve() == null) { echo ''; } else { echo ''; echo ''; } echo ''; if ($saisie->getClasse() != null) { echo ''; } if ($saisie->getGroupe() != null) { echo ''; } if ($saisie->getAidDetails() != null) { echo ''; } if ($saisie->getEdtEmplacementCours() != null) { echo ''; } if ($saisie->getEdtCreneau() != null) { echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; } echo ''; if ($saisie->getCreatedAt('U') != $saisie->getVersionCreatedAt('U')) { echo ''; } if ($saisie->getIdSIncidents() !== null) { echo ''; } elseif ($modifiable && $saisie->hasModeInterfaceDiscipline()) { echo ''; } $saisies_conflit_col = $saisie->getSaisiesContradictoiresManquementObligation(); if (!$saisies_conflit_col->isEmpty()) { echo ''; } $saisies_englobante_col = $saisie->getAbsenceEleveSaisiesEnglobantes(); if (!$saisies_englobante_col->isEmpty()) { echo ''; } echo ''; if ($modifiable) { echo ''; } if ($utilisateur->getStatut()=="cpe" || $utilisateur->getStatut()=="scolarite") { echo ''; } if (($utilisateur->getStatut()=="cpe" || $utilisateur->getStatut()=="scolarite") && $saisie->getAllVersions()->count()!=1) { echo ''; } echo ''; echo '
'; echo "Marqueur d'appel effectué"; echo 'Élève : '; echo $saisie->getEleve()->getCivilite().' '.$saisie->getEleve()->getNom().' '.$saisie->getEleve()->getPrenom(); echo ' '.$saisie->getEleve()->getClasseNom(); if ((getSettingValue("active_module_trombinoscopes")=='y') && $saisie->getEleve() != null) { $nom_photo = $saisie->getEleve()->getNomPhoto(1); $photos = $nom_photo; //if (($nom_photo == "") or (!(file_exists($photos)))) { if (($nom_photo == NULL) or (!(file_exists($photos)))) { $photos = "../mod_trombinoscopes/images/trombivide.jpg"; } $valeur = redimensionne_image_petit($photos); echo ' '; } if ($utilisateur->getAccesFicheEleve($saisie->getEleve())) { echo ""; echo ' (voir fiche)'; echo ""; } echo '
'; echo 'Classe : '; echo ''; echo $saisie->getClasse()->getNom(); echo '
'; echo 'Groupe : '; echo ''; echo $saisie->getGroupe()->getNameAvecClasses(); echo '
'; echo 'Aid : '; echo ''; echo $saisie->getAidDetails()->getNom(); echo '
'; echo 'Cours : '; echo ''; echo $saisie->getEdtEmplacementCours()->getDescription(); echo '
'; echo 'Créneau : '; echo ''; echo $saisie->getEdtCreneau()->getDescription(); echo '
'; echo 'Début : '; echo ''; if (!$modifiable || $saisie->getDeletedAt() != null ) { echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getDebutAbs('U'))); } else { echo ' '; if ($utilisateur->getStatut() == 'professeur') {//on autorise pas au professeur a changer la date echo (strftime(" %a %d/%m/%Y", $saisie->getDebutAbs('U'))); echo ' '; ?> getDebutAbs('Y-m-d').'" style="width: 8em"/> '; echo choix_heure(array('heure_debut', 'heure_fin'), 'div_choix_heure'); // echo ''; echo ''; /*echo ' ';*/ } } echo '
'; echo 'Fin : '; echo ''; if (!$modifiable || $saisie->getDeletedAt() != null) { echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getFinAbs('U'))); } else { echo ' '; //if ($utilisateur->getStatut() == 'professeur' && getSettingValue("abs2_saisie_prof_decale") != 'y') { if ($utilisateur->getStatut() == 'professeur') { echo (strftime(" %a %d/%m/%Y", $saisie->getFinAbs('U'))); echo ' '; ?> getFinAbs('Y-m-d').'" style="width : 8em"/> '; //echo ''; echo ''; /*echo ' ';*/ } } echo '
'; echo 'Traitement : '; echo ''; $type_autorises = AbsenceEleveTypeStatutAutoriseQuery::create()->filterByStatut($utilisateur->getStatut())->useAbsenceEleveTypeQuery()->orderBySortableRank()->endUse()->find(); $total_traitements_modifiable = 0; $total_traitements_modifiable_non_prof = 0; $tab_traitements_deja_affiches=array(); foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { //si c'est un traitement créé par un prof on va afficher une select box de modification si possible echo ""; if ($utilisateur->getStatut() == 'professeur' && $traitement->getUtilisateurId() == $utilisateur->getPrimaryKey() && $traitement->getModifiable()) { $total_traitements_modifiable = $total_traitements_modifiable + 1; $type_autorises->getFirst(); echo $traitement->getDescription().' : '; if ($type_autorises->count() != 0) { echo ''; echo (""; echo ''; } }else { //if ($utilisateur->getStatut() != 'professeur') { // A REVOIR: Ajouter dans utilisateurs/creer_statut_autorisation.php un droit pour traiter/notifier en statut 'autre' if (($utilisateur->getStatut() != 'professeur')&&($utilisateur->getStatut() != 'autre')) { $total_traitements_modifiable_non_prof++; echo " "; echo $traitement->getDescription(); echo ""; } else { echo $traitement->getDescription(); } } echo ""; echo "
"; $tab_traitements_deja_affiches[]=$traitement->getId(); } } //on autorise un ajout rapide seulement si il n'y a aucun traitement rapidement modifiable if ($total_traitements_modifiable == 0 && $utilisateur->getStatut() == 'professeur') { echo (""; echo ''; } echo ''; if ($saisie->getManquementObligationPresenceEnglobante()){ echo 'globalement manquement à l\'obligation de présence
'; if ($saisie->getJustifieeEnglobante()){ echo 'globalement justifiée
'; } if ($saisie->getNotifieeEnglobante()){ echo 'globalement notifiée
'; } } echo '
'; echo 'Notification : '; echo ''; echo ''; foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { foreach ($traitement->getAbsenceEleveNotifications() as $notification) { echo ''; } } echo ''; echo '
'; echo " "; if ($notification->getDateEnvoi() != null) { echo (strftime("%a %d/%m/%Y %H:%M", $notification->getDateEnvoi('U'))); } else { echo (strftime("%a %d/%m/%Y %H:%M", $notification->getCreatedAt('U'))); } if ($notification->getTypeNotification() != null) { echo ', type : '.$notification->getTypeNotification(); } echo ', statut : '.$notification->getStatutEnvoi(); echo ""; echo '
'; echo '
'; if ($modifiable || ($saisie->getCommentaire() != null && $saisie->getCommentaire() != "")) { echo '
'; echo 'Commentaire : '; echo ''; if (!$modifiable || $saisie->getDeletedAt() != null) { echo ($saisie->getCommentaire()); } else { echo ''; } echo '
'; echo 'Enregistré le : '; echo ''; echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getCreatedAt('U'))); echo ' par '. $saisie->getUtilisateurProfessionnel()->getCivilite().' '.$saisie->getUtilisateurProfessionnel()->getNom().' '.mb_substr($saisie->getUtilisateurProfessionnel()->getPrenom(), 0, 1).'.'; echo '
'; echo 'Modifiée le : '; echo ''; echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getVersionCreatedAt('U'))); $modifie_par_utilisateur = UtilisateurProfessionnelQuery::create()->filterByLogin($saisie->getVersionCreatedBy())->findOne(); if ($modifie_par_utilisateur != null) { echo ' par '. $modifie_par_utilisateur->getCivilite().' '.$modifie_par_utilisateur->getNom().' '.mb_substr($modifie_par_utilisateur->getPrenom(), 0, 1).'.'; } echo '
'; echo 'Discipline : '; echo ''; echo "Visualiser l'incident "; echo '
'; echo 'Discipline : '; echo ''; echo "Saisir un incident disciplinaire"; echo '
'; echo 'La saisie est en contradiction avec : '; echo ''; foreach ($saisies_conflit_col as $saisie_conflit) { echo " "; echo $saisie_conflit->getId(); echo ""; if (!$saisies_conflit_col->isLast()) { echo ' - '; } } echo '
'; echo 'La saisie est englobée par : '; echo ''; foreach ($saisies_englobante_col as $saisies_englobante) { echo " "; echo $saisies_englobante->getDateDescription(); echo ' '.$saisies_englobante->getTypesTraitements(); echo ""; if (!$saisies_englobante_col->isLast()) { echo ' - '; } } echo '
'; echo ''; echo '      '; echo '
'; echo ''; } else { echo '>Traiter la saisie'; } echo ''; echo '
'; echo 'Versions précédentes'; echo ''; foreach($saisie->getAllVersions() as $version) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
'.$version->getVersion().''; if ($saisie->getEleve() == null) { echo "Marqueur d'appel effectué"; } else { echo $saisie->getEleve()->getCivilite().' '.$saisie->getEleve()->getNom().' '.$saisie->getEleve()->getPrenom(); echo ' '.$saisie->getEleve()->getClasseNom(); } echo ''.$version->getDateDescription().''; if ($version->getVersion() == 1) { echo 'Créée le : '; } else { echo 'Modifiée le : '; } echo (strftime("%a %d/%m/%Y %H:%M", $version->getVersionCreatedAt('U'))); $modifie_par_utilisateur = UtilisateurProfessionnelQuery::create()->filterByLogin($version->getVersionCreatedBy())->findOne(); if ($modifie_par_utilisateur != null) { echo ' par '. $modifie_par_utilisateur->getCivilite().' '.$modifie_par_utilisateur->getNom().' '.mb_substr($modifie_par_utilisateur->getPrenom(), 0, 1).'.'; } echo ''; if ($version->getVersion() != $saisie->getVersion() && $saisie->getDeletedAt() == null) { echo 'Revenir à cette version'; } echo '
'; echo '
'; echo '
'; echo "
\n"; $javascript_footer_texte_specifique = ''; ?>