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();
}
// SQL : INSERT INTO droits VALUES ( '/mod_discipline/saisie_sanction.php', 'V', 'F', 'V', 'V', 'F', 'F', 'F', 'F', 'Discipline: Saisie sanction', '');
// maj : $tab_req[] = "INSERT INTO droits VALUES ( '/mod_discipline/saisie_sanction.php', 'V', 'F', 'V', 'V', 'F', 'F', 'F', 'F', 'Discipline: Saisie sanction', '');;";
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
if(mb_strtolower(mb_substr(getSettingValue('active_mod_discipline'),0,1))!='y') {
$mess=rawurlencode("Vous tentez d accéder au module Discipline qui est désactivé !");
tentative_intrusion(1, "Tentative d'accès au module Discipline qui est désactivé.");
header("Location: ../accueil.php?msg=$mess");
die();
}
require('sanctions_func_lib.php');
$msg="";
$id_incident=isset($_POST['id_incident']) ? $_POST['id_incident'] : (isset($_GET['id_incident']) ? $_GET['id_incident'] : NULL);
$ele_login=isset($_POST['ele_login']) ? $_POST['ele_login'] : (isset($_GET['ele_login']) ? $_GET['ele_login'] : NULL);
$mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL);
$id_sanction=isset($_POST['id_sanction']) ? $_POST['id_sanction'] : (isset($_GET['id_sanction']) ? $_GET['id_sanction'] : NULL);
$id_report=isset($_POST['id_report']) ? $_POST['id_report'] : (isset($_GET['id_report']) ? $_GET['id_report'] : NULL);
$odt = isset($_POST["odt"]) ? $_POST["odt"] : (isset($_GET["odt"]) ? $_GET["odt"] : Null);
//debug_var();
if(isset($_POST['enregistrer_sanction'])) {
check_token();
$autre_protagoniste_meme_sanction=isset($_POST['autre_protagoniste_meme_sanction']) ? $_POST['autre_protagoniste_meme_sanction'] : array();
$message_mail="";
$id_nature_sanction=$_POST['traitement'];
$sql="SELECT * FROM s_types_sanctions2 WHERE id_nature='".$id_nature_sanction."';";
$res_ns=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_ns)==0) {
$msg.="Le type de ".$mod_disc_terme_sanction." est inconnu???
";
}
else {
$type_sanction=old_mysql_result($res_ns, 0, "type");
$nature_sanction=old_mysql_result($res_ns, 0, "nature");
if($type_sanction=='retenue') {
$date_retenue=isset($_POST['date_retenue']) ? $_POST['date_retenue'] : NULL;
$heure_debut=isset($_POST['heure_debut']) ? $_POST['heure_debut'] : NULL;
$heure_debut_main=isset($_POST['heure_debut_main']) ? $_POST['heure_debut_main'] : '00:00';
$duree_retenue=isset($_POST['duree_retenue']) ? $_POST['duree_retenue'] : 1;
$lieu_retenue=isset($_POST['lieu_retenue']) ? $_POST['lieu_retenue'] : NULL;
$materiel=isset($_POST['materiel']) ? $_POST['materiel'] : NULL;
$report_demande=isset($_POST['report_demande']) ? $_POST['report_demande'] : NULL;
$choix_motif_report=isset($_POST['choix_motif_report']) ? $_POST['choix_motif_report'] : NULL;
$deleguer_check=isset($_POST['deleguer_check']) ? $_POST['deleguer_check'] : NULL;
$duree_retenue=preg_replace("/[^0-9.]/","",preg_replace("/,/",".",$duree_retenue));
if($duree_retenue=="") {
$duree_retenue=1;
$msg.="La durée de $nature_sanction saisie n'était pas correcte. Elle a été remplacée par '1'.
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La $nature_sanction n°$id_sanction n'existe pas dans 's_retenues'.
Elle ne peut pas être reportée.
";
}
else {
$lig=mysqli_fetch_object($res);
$id_retenue=$lig->id_retenue;
$ancienne_date=$lig->date;
$ancienne_duree=$lig->duree;
}
// enregistrement des données du report dans la table s_report
$choix_motif_report = str_replace("_", " ", $choix_motif_report);
//$sql="INSERT INTO s_reports SET id_sanction='$id_sanction', id_type_sanction='$id_retenue', nature_sanction='retenue', date='$ancienne_date', informations='Durée : ".$ancienne_duree."H', motif_report='$choix_motif_report';";
$sql="INSERT INTO s_reports SET id_sanction='$id_sanction', id_type_sanction='$id_retenue', nature_sanction='$nature_sanction', date='$ancienne_date', informations='Durée : ".$ancienne_duree."H', motif_report='$choix_motif_report';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="Erreur lors de l'insertion des informations de report dans 's_reports'.
";
}
else {
$message_mail.="La $nature_sanction n°$id_sanction initialement prévue le ".$ancienne_date." pour une durée de ".$ancienne_duree."H est reportée à une date ultérieure (motif: ".$choix_motif_report.").\n";
}
}
// Modification???
$sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_sanctions'.
Elle ne peut pas être mise à jour.
";
}
else {
$sql="SELECT 1=1 FROM s_retenues WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La $nature_sanction n°$id_sanction n'existe pas dans 's_retenues'.
Elle ne peut pas être mise à jour.
";
}
else {
//Eric
//choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante
//par defaut la liste déroulante
if ($heure_debut_main !='00:00') {
$heure_debut=$heure_debut_main;
}
//$sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N' WHERE id_sanction='$id_sanction';";
$sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', materiel='$materiel' WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg.="Erreur lors de la mise à jour de la ".$mod_disc_terme_sanction." '$nature_sanction' n°$id_sanction.
";
}
else {
if(preg_match("/^[0-9]/", $heure_debut)) {
$heure_debut_descr="à ".$heure_debut;
}
else {
$heure_debut_descr="à ".$heure_debut;
$tmp_h=get_mysql_heure($heure_debut);
if($tmp_h!="") {
$heure_debut_descr="en ".$heure_debut;
$heure_debut_descr.=" (".$tmp_h.")";
}
}
$message_mail.="La $nature_sanction n°$id_sanction est définie pour le $date_retenue $heure_debut_descr pour une durée de ".$duree_retenue;
if((preg_match("/^[0-9]{1,}$/", $duree_retenue))||(preg_match("/^[0-9]{1,}.[0-9]{1,}$/", $duree_retenue))||(preg_match("/^[0-9]{1,},[0-9]{1,}$/", $duree_retenue))) {
$message_mail.="H";
}
$message_mail.=".\n";
if($lieu_retenue!="") {
$message_mail.="Lieu: $lieu_retenue\n";
}
if($materiel!="") {
$message_mail.="Matériel: $materiel\n";
}
if(isset($deleguer_check)) {
$sql="SELECT * FROM s_sanctions_check WHERE id_sanction='$id_sanction';";
$res_deleguer_check=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_deleguer_check)==0) {
if($deleguer_check!="") {
$sql="INSERT INTO s_sanctions_check SET id_sanction='$id_sanction', login='".$deleguer_check."';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
$msg.="Erreur lors de l'enregistrement de la délégation du pointage effectuée/non_effectuée.
";
}
else {
$message_mail.="\n\nLa validation de l'état effectuée ou non de la ".$mod_disc_terme_sanction." est déléguée à ".civ_nom_prenom($deleguer_check)."\n";
}
}
}
else {
if($deleguer_check=="") {
$sql="DELETE FROM s_sanctions_check WHERE id_sanction='$id_sanction';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$del) {
$msg.="Erreur lors de la suppression de la délégation du pointage effectuée/non_effectuée.
";
}
else {
$message_mail.="\n\nSuppression de la délégation de la validation de l'état effectuée ou non de la ".$mod_disc_terme_sanction."\n";
}
}
else {
$lig_deleguer_check=mysqli_fetch_object($res_deleguer_check);
if($lig_deleguer_check->login!=$deleguer_check) {
$sql="UPDATE s_sanctions_check SET login='".$deleguer_check."' WHERE id_sanction='$id_sanction';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg.="Erreur lors de la mise à jour de la délégation du pointage effectuée/non_effectuée.
";
}
else {
$message_mail.="\n\nLa validation de l'état effectuée ou non de la ".$mod_disc_terme_sanction." est maintenant déléguée à ".civ_nom_prenom($deleguer_check)."\n";
}
}
}
}
}
}
}
}
}
else {
//$sql="INSERT INTO s_sanctions SET login='$ele_login', nature='retenue', id_incident='$id_incident';";
//$sql="INSERT INTO s_sanctions SET login='$ele_login', nature='retenue', id_incident='$id_incident';";
$sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident', saisie_par='".$_SESSION['login']."';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="Erreur lors de l'insertion de la ".$mod_disc_terme_sanction." dans 's_sanctions'.
";
}
else {
$id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
//Eric
//choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante
//par defaut la liste déroulante
if ($heure_debut_main !='00:00') {
$heure_debut=$heure_debut_main;
}
//$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';";
$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', materiel='$materiel';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
if(preg_match("/^[0-9]/", $heure_debut)) {
$heure_debut_descr="à ".$heure_debut;
}
else {
$heure_debut_descr="à ".$heure_debut;
$tmp_h=get_mysql_heure($heure_debut);
if($tmp_h!="") {
$heure_debut_descr="en ".$heure_debut;
$heure_debut_descr.=" (".$tmp_h.")";
}
}
$message_mail.="Une $nature_sanction (n°$id_sanction) concernant ".get_nom_prenom_eleve($ele_login, "avec_classe")." est définie pour le ".$date_retenue." ".$heure_debut_descr." pour une durée de ".$duree_retenue;
if((preg_match("/^[0-9]{1,}$/", $duree_retenue))||(preg_match("/^[0-9]{1,}.[0-9]{1,}$/", $duree_retenue))||(preg_match("/^[0-9]{1,},[0-9]{1,}$/", $duree_retenue))) {
$message_mail.="H";
}
$message_mail.=".\n";
if($travail!="") {
$message_mail.="Travail: $travail\n";
}
if($lieu_retenue!="") {
$message_mail.="Lieu: $lieu_retenue\n";
}
if($materiel!="") {
$message_mail.="Matériel: $materiel\n";
}
if($deleguer_check!="") {
$sql="INSERT INTO s_sanctions_check SET id_sanction='$id_sanction', login='".$deleguer_check."';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
$msg.="Erreur lors de l'enregistrement de la délégation du pointage effectuée/non_effectuée.
";
}
else {
$message_mail.="\n\nLa validation de l'état effectuée ou non de la ".$mod_disc_terme_sanction." est déléguée à ".civ_nom_prenom($deleguer_check)."\n";
}
}
// Ménage:
$sql="DELETE FROM messagerie WHERE sujet LIKE '% (incident n°".$id_incident.")';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
if(count($autre_protagoniste_meme_sanction)>0) {
for($loop=0;$loop
";
}
else {
$tmp_id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$tab_tmp_id_sanction[]=$tmp_id_sanction;
//Eric
//choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante
//par defaut la liste déroulante
if ($heure_debut_main !='00:00') {
$heure_debut=$heure_debut_main;
}
//$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';";
$sql="INSERT INTO s_retenues SET id_sanction='$tmp_id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', materiel='$materiel';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
$designation_autre_protagoniste=get_nom_prenom_eleve($autre_protagoniste_meme_sanction[$loop], "avec_classe");
$message_mail.="Même sanction (n°".$tmp_id_sanction.") pour ".$designation_autre_protagoniste."\n";
if($deleguer_check!="") {
$sql="INSERT INTO s_sanctions_check SET id_sanction='$tmp_id_sanction', login='".$deleguer_check."';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {
$msg.="Erreur lors de l'enregistrement de la délégation du pointage effectuée/non_effectuée pour ".$designation_autre_protagoniste.".
";
}
}
}
}
}
}
}
}
elseif($type_sanction=='exclusion') {
$date_debut=isset($_POST['date_debut']) ? $_POST['date_debut'] : NULL;
$heure_debut=isset($_POST['heure_debut']) ? $_POST['heure_debut'] : NULL;
$date_fin=isset($_POST['date_fin']) ? $_POST['date_fin'] : NULL;
$heure_fin=isset($_POST['heure_fin']) ? $_POST['heure_fin'] : NULL;
$lieu_exclusion=isset($_POST['lieu_exclusion']) ? $_POST['lieu_exclusion'] : NULL;
$nombre_jours=isset($_POST['nombre_jours']) ? $_POST['nombre_jours'] : NULL;
$qualification_faits=isset($_POST['qualification_faits']) ? $_POST['qualification_faits'] : NULL;
$numero_courrier=isset($_POST['numero_courrier']) ? $_POST['numero_courrier'] : NULL;
$type_exclusion=isset($_POST['type_exclusion']) ? $_POST['type_exclusion'] : NULL;
$signataire=isset($_POST['signataire']) ? $_POST['signataire'] : NULL;
if(!isset($date_debut)) {
$annee = strftime("%Y");
$mois = strftime("%m");
$jour = strftime("%d");
//$display_date = $jour."/".$mois."/".$annee;
}
else {
$jour = mb_substr($date_debut,0,2);
$mois = mb_substr($date_debut,3,2);
$annee = mb_substr($date_debut,6,4);
}
if(!checkdate($mois,$jour,$annee)) {
$annee = strftime("%Y");
$mois = strftime("%m");
$jour = strftime("%d");
$msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant.";
}
$date_debut="$annee-$mois-$jour";
$tmp_timestamp_debut=mktime(0, 0, 0, $mois, $jour, $annee);
if(!isset($date_fin)) {
if(!isset($date_debut)) {
$annee = strftime("%Y");
$mois = strftime("%m");
$jour = strftime("%d");
}
else {
$jour = mb_substr($date_debut,0,2);
$mois = mb_substr($date_debut,3,2);
$annee = mb_substr($date_debut,6,4);
}
}
else {
$jour = mb_substr($date_fin,0,2);
$mois = mb_substr($date_fin,3,2);
$annee = mb_substr($date_fin,6,4);
}
if(!checkdate($mois,$jour,$annee)) {
$annee = strftime("%Y");
$mois = strftime("%m");
$jour = strftime("%d");
$msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant.";
}
$date_fin="$annee-$mois-$jour";
$tmp_timestamp_fin=mktime(0, 0, 0, $mois, $jour, $annee);
if($tmp_timestamp_debut>$tmp_timestamp_fin) {
//echo "\$date_debut=$date_debut
";
//echo "\$date_fin=$date_fin
";
//echo "\$tmp_timestamp_debut=$tmp_timestamp_debut
";
//echo "\$tmp_timestamp_fin=$tmp_timestamp_fin
";
//echo "MODIF:
";
$tmp_date_debut=$date_fin;
//echo "\$tmp_date_debut=$date_fin
";
$date_fin=$date_debut;
//echo "\$date_fin=$date_debut
";
$date_debut=$tmp_date_debut;
//echo "\$date_debut=$tmp_date_debut
";
$msg.="La date de fin était antérieure à la date de début de l'exclusion.
Les dates ont été interverties.
";
}
if (isset($NON_PROTECT["travail"])){
$travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"]));
// Contrôle des saisies pour supprimer les sauts de lignes surnuméraires.
$travail=suppression_sauts_de_lignes_surnumeraires($travail);
}
else {
$travail="";
}
if (isset($NON_PROTECT["qualification_faits"])){
$qualification_faits=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["qualification_faits"]));
// Contrôle des saisies pour supprimer les sauts de lignes surnuméraires.
$qualification_faits=suppression_sauts_de_lignes_surnumeraires($qualification_faits);
}
else {
$qualification_faits="";
}
if(isset($id_sanction)) {
// Modification???
$sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_sanctions'.
Elle ne peut pas être mise à jour.
";
}
else {
$sql="SELECT 1=1 FROM s_exclusions WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_exclusions'.
Elle ne peut pas être mise à jour.
";
}
else {
$sql="UPDATE s_exclusions SET date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire' WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg.="Erreur lors de la mise à jour de la ".$mod_disc_terme_sanction." '$nature_sanction' n°$id_sanction.
";
}
else {
if(preg_match("/^[0-9]/", $heure_debut)) {
$heure_debut_descr="à ".$heure_debut;
}
else {
$heure_debut_descr="à ".$heure_debut;
$tmp_h=get_mysql_heure($heure_debut);
if($tmp_h!="") {
$heure_debut_descr="en ".$heure_debut;
$heure_debut_descr.=" (".$heure_debut.")";
}
}
if(preg_match("/^[0-9]/", $heure_fin)) {
$heure_fin_descr="à ".$heure_fin;
}
else {
$heure_fin_descr="à ".$heure_fin;
$tmp_h=get_mysql_heure($heure_fin, "fin");
if($tmp_h!="") {
$heure_fin_descr="en ".$heure_fin;
$heure_fin_descr.=" (fin de créneau ".$tmp_h.")";
}
}
$message_mail.="Une $nature_sanction (type $type_exclusion) (sanction n°$id_sanction) concernant ".get_nom_prenom_eleve($ele_login, "avec_classe")." est mise à jour du $date_debut ".$heure_debut_descr." au $date_fin ".$heure_fin_descr.".\nNombre de jours: $nombre_jours\nQualification des faits: $qualification_faits\n";
if($travail!="") {
$message_mail.="Travail: $travail\n";
}
if($lieu_exclusion!="") {
$message_mail.="Lieu: $lieu_exclusion\n";
}
if($materiel!="") {
$message_mail.="Matériel: $materiel\n";
}
if($signataire!="") {
$message_mail.="Signataire: $signataire\n";
}
}
}
}
}
else {
$sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident', saisie_par='".$_SESSION['login']."';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="Erreur lors de l'insertion de la ".$mod_disc_terme_sanction." dans 's_sanctions'.
";
}
else {
$id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$sql="INSERT INTO s_exclusions SET id_sanction='$id_sanction', date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
if(preg_match("/^[0-9]/", $heure_debut)) {
$heure_debut_descr="à ".$heure_debut;
}
else {
$heure_debut_descr="à ".$heure_debut;
$tmp_h=get_mysql_heure($heure_debut);
if($tmp_h!="") {
$heure_debut_descr="en ".$heure_debut;
$heure_debut_descr.=" (".$tmp_h.")";
}
}
if(preg_match("/^[0-9]/", $heure_fin)) {
$heure_fin_descr="à ".$heure_fin;
}
else {
$heure_fin_descr="à ".$heure_fin;
$tmp_h=get_mysql_heure($heure_fin);
if($tmp_h!="") {
$heure_fin_descr="en ".$heure_fin;
$heure_fin_descr.=" (".$tmp_h.")";
}
}
$message_mail.="Une $nature_sanction (type $type_exclusion) (sanction n°$id_sanction) concernant ".get_nom_prenom_eleve($ele_login, "avec_classe")." est définie du $date_debut ".$heure_debut_descr." au $date_fin ".$heure_fin_descr.".\nNombre de jours: $nombre_jours\nQualification des faits: $qualification_faits\n";
if($travail!="") {
$message_mail.="Travail: $travail\n";
}
if($lieu_exclusion!="") {
$message_mail.="Lieu: $lieu_exclusion\n";
}
/*
if($materiel!="") {
$message_mail.="Matériel: $materiel\n";
}
*/
if($signataire!="") {
$message_mail.="Signataire: $signataire\n";
}
// Ménage:
$sql="DELETE FROM messagerie WHERE sujet LIKE '% (incident n°".$id_incident.")';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
if(count($autre_protagoniste_meme_sanction)>0) {
for($loop=0;$loop
";
}
else {
$tmp_id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$tab_tmp_id_sanction[]=$tmp_id_sanction;
$sql="INSERT INTO s_exclusions SET id_sanction='$tmp_id_sanction', date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
$message_mail.="Même sanction (n°".$tmp_id_sanction.") pour ".get_nom_prenom_eleve($autre_protagoniste_meme_sanction[$loop], "avec_classe")."\n";
}
}
}
}
}
}
elseif($type_sanction=='travail') {
$date_retour=isset($_POST['date_retour']) ? $_POST['date_retour'] : NULL;
$heure_retour=isset($_POST['heure_retour']) ? $_POST['heure_retour'] : NULL;
if(!isset($date_retour)) {
$annee = strftime("%Y");
$mois = strftime("%m");
$jour = strftime("%d");
//$display_date = $jour."/".$mois."/".$annee;
}
else {
$jour = mb_substr($date_retour,0,2);
$mois = mb_substr($date_retour,3,2);
$annee = mb_substr($date_retour,6,4);
}
if(!checkdate($mois,$jour,$annee)) {
$annee = strftime("%Y");
$mois = strftime("%m");
$jour = strftime("%d");
$msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant.";
}
$date_retour="$annee-$mois-$jour";
if (isset($NON_PROTECT["travail"])){
$travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"]));
// Contrôle des saisies pour supprimer les sauts de lignes surnuméraires.
$travail=suppression_sauts_de_lignes_surnumeraires($travail);
}
else {
$travail="";
}
if(isset($id_sanction)) {
// Modification???
$sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_sanctions'.
Elle ne peut pas être mise à jour.
";
}
else {
$sql="SELECT 1=1 FROM s_travail WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="Le travail n°$id_sanction n'existe pas dans 's_travail'.
Il ne peut pas être mis à jour.
";
}
else {
//$sql="UPDATE s_travail SET date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N' WHERE id_sanction='$id_sanction';";
$sql="UPDATE s_travail SET date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail' WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg.="Erreur lors de la mise à jour de la ".$mod_disc_terme_sanction." '$nature_sanction' n°$id_sanction.
";
}
}
}
}
else {
$sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident', saisie_par='".$_SESSION['login']."';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="Erreur lors de l'insertion de la ".$mod_disc_terme_sanction." dans 's_sanctions'.
";
}
else {
$id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
//$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N';";
$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
$message_mail.="Un $nature_sanction supplémentaire (sanction n°$id_sanction) a été donné à ".get_nom_prenom_eleve($ele_login, "avec_classe")." a été définie pour le $date_retour à $heure_retour.\n";
if($travail!="") {
$message_mail.="Travail: $travail\n";
}
// Ménage:
$sql="DELETE FROM messagerie WHERE sujet LIKE '% (incident n°".$id_incident.")';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
if(count($autre_protagoniste_meme_sanction)>0) {
for($loop=0;$loop
";
}
else {
$tmp_id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$tab_tmp_id_sanction[]=$tmp_id_sanction;
//$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N';";
$sql="INSERT INTO s_travail SET id_sanction='$tmp_id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
$message_mail.="Même sanction (n°".$tmp_id_sanction.") pour ".get_nom_prenom_eleve($autre_protagoniste_meme_sanction[$loop], "avec_classe")." a été définie pour le $date_retour à $heure_retour.\nTravail: $travail\n";
}
}
}
}
}
}
else {
/*
$id_nature=$_POST['traitement'];
$sql="SELECT * FROM s_types_sanctions WHERE id_nature='".$id_nature."';";
//echo "$sql
\n";
$res=mysql_query($sql);
if(mysql_num_rows($res)>0) {
$lig=mysql_fetch_object($res);
$type_sanction=$lig->nature;
*/
if (isset($NON_PROTECT["description"])){
$description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"]));
// Contrôle des saisies pour supprimer les sauts de lignes surnuméraires.
$description=suppression_sauts_de_lignes_surnumeraires($description);
}
else {
$description="";
}
if(isset($id_sanction)) {
// Modification???
$sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_sanctions'.
Elle ne peut pas être mise à jour.
";
}
else {
$sql="SELECT 1=1 FROM s_autres_sanctions WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_autres_sanctions'.
Elle ne peut pas être mis à jour.
";
}
else {
$sql="UPDATE s_autres_sanctions SET description='$description', id_nature='$id_nature_sanction' WHERE id_sanction='$id_sanction';";
//echo "$sql
\n";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
//$msg.="Erreur lors de la mise à jour de la sanction '$type_sanction' n°$id_sanction.
";
$msg.="Erreur lors de la mise à jour de la ".$mod_disc_terme_sanction." '$nature_sanction' n°$id_sanction.
";
}
else {
$message_mail.="Sanction ($nature_sanction) (type $id_nature_sanction) (n°$id_sanction) mise à jour pour ".get_nom_prenom_eleve($ele_login, "avec_classe")."\nDescription: $description\n";
}
}
}
}
else {
$sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident', saisie_par='".$_SESSION['login']."';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="Erreur lors de l'insertion de la ".$mod_disc_terme_sanction." dans 's_sanctions'.
";
}
else {
$id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$sql="INSERT INTO s_autres_sanctions SET id_sanction='$id_sanction', id_nature='$id_nature_sanction', description='$description';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
//$msg.="Erreur lors de l'enregistrement de la sanction '$type_sanction' n°$id_sanction.
";
$msg.="Erreur lors de l'enregistrement de la ".$mod_disc_terme_sanction." '$nature_sanction' n°$id_sanction.
";
}
else {
$message_mail.="Sanction ($nature_sanction) (type $id_nature_sanction) (n°$id_sanction) a été donnée à ".get_nom_prenom_eleve($ele_login, "avec_classe")."\nDescription: $description\n";
}
// Ménage:
$sql="DELETE FROM messagerie WHERE sujet LIKE '% (incident n°".$id_incident.")';";
$menage=mysqli_query($GLOBALS["mysqli"], $sql);
}
if(count($autre_protagoniste_meme_sanction)>0) {
for($loop=0;$loop
";
}
else {
$tmp_id_sanction=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
$tab_tmp_id_sanction[]=$tmp_id_sanction;
$sql="INSERT INTO s_autres_sanctions SET id_sanction='$tmp_id_sanction', id_nature='$id_nature_sanction', description='$description';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
//$msg.="Erreur lors de l'enregistrement de la sanction '$type_sanction' n°$tmp_id_sanction.
";
$msg.="Erreur lors de l'enregistrement de la ".$mod_disc_terme_sanction." '$nature_sanction' n°$tmp_id_sanction.
";
}
else {
$message_mail.="Même sanction (n°".$tmp_id_sanction.") pour ".get_nom_prenom_eleve($autre_protagoniste_meme_sanction[$loop], "avec_classe")."\n";
}
}
}
}
}
//}
}
}
if($message_mail!="") {
//20150925
$envoi_mail_actif=getSettingValue('envoi_mail_actif');
if(($envoi_mail_actif!='n')&&($envoi_mail_actif!='y')) {
$envoi_mail_actif='y'; // Passer à 'n' pour faire des tests hors ligne... la phase d'envoi de mail peut sinon ensabler.
}
if($envoi_mail_actif=='y') {
$sql="SELECT * FROM s_incidents WHERE id_incident='$id_incident';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig_incident=mysqli_fetch_object($res);
$nature=$lig_incident->nature;
$message_id_incident=$lig_incident->message_id;
if($message_id_incident=="") {
$message_id_incident=$id_incident.".".strftime("%Y%m%d%H%M%S",time()).".".mb_substr(md5(microtime()),0,6);
$sql="UPDATE s_incidents SET message_id='$message_id_incident' WHERE id_incident='$id_incident';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
}
$references_mail=$message_id_incident;
//$tab_param_mail['message_id']=$message_id;
//$tab_param_mail['references']=$message_id;
$tab_alerte_mail=array();
if((isset($_SESSION['email']))&&(check_mail($_SESSION['email']))) {
$tab_alerte_mail[]=$_SESSION['email'];
}
if($lig_incident->declarant!=$_SESSION['login']) {
$current_mail=get_valeur_champ("utilisateurs", "login='".$lig_incident->declarant."'", "email");
if((!in_array($current_mail, $tab_alerte_mail))&&(check_mail($current_mail))) {
$tab_alerte_mail[]=$current_mail;
}
}
$info_classe_prot="";
$liste_protagonistes_responsables="";
$tab_alerte_classe=array();
$sql="SELECT login FROM s_protagonistes WHERE id_incident='$id_incident' AND qualite='responsable';";
$res_prot=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_prot)) {
while($lig_prot=mysqli_fetch_object($res_prot)) {
if(getSettingValue('mod_disc_sujet_mail_sans_nom_eleve')!="n") {
if($liste_protagonistes_responsables!="") {$liste_protagonistes_responsables.=", ";}
$liste_protagonistes_responsables.=$lig_prot->login;
//echo "\$liste_protagonistes_responsables=$liste_protagonistes_responsables
";
}
// On va avoir des personnes alertees inutilement pour les élèves qui ont changé de classe.
// NON
$sql="SELECT DISTINCT id_classe, c.classe FROM j_eleves_classes jec, classes c WHERE jec.login='$lig_prot->login' AND jec.id_classe=c.id ORDER BY periode DESC LIMIT 1;";
$res_clas_prot=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_clas_prot)>0) {
$lig_clas_prot=mysqli_fetch_object($res_clas_prot);
if((!in_array($lig_clas_prot->id_classe,$tab_alerte_classe))&&(!in_array($lig_clas_prot->id_classe,$tab_alerte_mail))) {
$tab_alerte_classe[]=$lig_clas_prot->id_classe;
}
$info_classe_prot="[$lig_clas_prot->classe]";
}
}
}
if(count($tab_alerte_classe)>0) {
$tab_param_mail=array();
$destinataires=get_destinataires_mail_alerte_discipline($tab_alerte_classe, $nature);
$sql="SELECT DISTINCT u.login, u.email, u.nom, u.prenom, u.civilite FROM utilisateurs u, s_sanctions_check ssc, s_sanctions ss WHERE u.login=ssc.login AND ssc.id_sanction=ss.id_sanction AND ss.id_incident='$id_incident';";
//echo "$sql
";
$res_ssc=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_ssc)>0) {
// Normalement, on ne fait qu'un tour dans la boucle
while($lig_ssc=mysqli_fetch_object($res_ssc)) {
if((check_mail($lig_ssc->email))&&(!preg_match("/^$lig_ssc->email$/", $lig_ssc->email))&&(!preg_match("/^$lig_ssc->email,/", $lig_ssc->email))&&(!preg_match("/ $lig_ssc->email$/", $lig_ssc->email))&&(!preg_match("/ $lig_ssc->email,/", $lig_ssc->email))) {
if($destinataires!="") {
$destinataires.=", ";
}
$destinataires.=$lig_ssc->email;
$tab_param_mail['destinataire'][]=$lig_ssc->email;
}
$contenu_cor=mysqli_real_escape_string($GLOBALS['mysqli'], "Le pointage du fait qu'une sanction a été effectuée vous a été délégué.
Vous pourrez effectuer ce pointage dans le module Discipline");
$id_message=set_message2($contenu_cor,time(),time()+3600*24*7,time()+3600*24*7,"_",$lig_ssc->login);
//echo "\$id_message=$id_message
";
ajout_bouton_supprimer_message($contenu_cor,$id_message);
}
}
if($destinataires!="") {
//$texte_mail=$message_mail."\n\n"."Message: ".preg_replace('#
#',"\n",$msg);
$subject = "[GEPI][".ucfirst($mod_disc_terme_incident)." n°$id_incident]".$info_classe_prot.$liste_protagonistes_responsables;
$headers = "";
if((isset($_SESSION['email']))&&(check_mail($_SESSION['email']))) {
$headers.="Reply-to:".$_SESSION['email']."\r\n";
$tab_param_mail['replyto']=$_SESSION['email'];
}
// Non: Il ne faut pas prendre le message_id de l'incident pour un nouveau message... il faut le mettre seulement en référence
//if(isset($message_id)) {$headers .= "Message-id: $message_id\r\n";}
if(isset($references_mail)) {
$headers .= "References: $references_mail\r\n";
$tab_param_mail['references']=$references_mail;
}
$texte_mail="Bonjour,\n\n".$message_mail."\nCordialement.\n-- \n".civ_nom_prenom($_SESSION['login']);
// On envoie le mail
$envoi = envoi_mail($subject, $texte_mail, $destinataires, $headers, "plain", $tab_param_mail);
}
}
}
}
}
if(isset($id_sanction)) {
$temoin_modif_fichier=0;
unset($suppr_doc_joint);
$suppr_doc_joint=isset($_POST['suppr_doc_joint']) ? $_POST['suppr_doc_joint'] : array();
for($loop=0;$loop
";
}
}
}
$temoin_modif_fichier+=count($suppr_doc_joint);
$ajouter_doc_joint=isset($_POST['ajouter_doc_joint']) ? $_POST['ajouter_doc_joint'] : array();
for($loop=0;$loop
";
}
*/
}
if((isset($tab_tmp_id_sanction))&&(count($tab_tmp_id_sanction)>0)) {
for($loop2=0;$loop2
\n";
}
else{
if(!file_exists($document_joint['tmp_name'])){
$msg.="Le fichier aurait été uploadé... mais ne serait pas présent/conservé.
\n";
}
else {
//echo "
Le fichier a été uploadé.
\n"; $source_file=$document_joint['tmp_name']; $dossier_courant="../$dossier_documents_discipline/incident_".$id_incident."/sanction_".$id_sanction; if(!file_exists($dossier_courant)) { if($discipline_droits_mkdir=="") { mkdir($dossier_courant, 0770, true); } else { @mkdir("../$dossier_documents_discipline"); @mkdir("../$dossier_documents_discipline/incident_".$id_incident); @mkdir($dossier_courant); } } if(strstr($document_joint['name'],".")) { $extension_fichier=substr(strrchr($document_joint['name'],'.'),1); $nom_fichier_sans_extension=preg_replace("/.$extension_fichier$/","",$document_joint['name']); $dest_file=$dossier_courant."/".remplace_accents($nom_fichier_sans_extension, "all").".".$extension_fichier; } else { // Pas d'extension dans le nom de fichier fourni $dest_file=$dossier_courant."/".remplace_accents($document_joint['name'], "all"); } $res_copy=copy("$source_file" , "$dest_file"); if(!$res_copy) {$msg.="Echec de la mise en place du fichier ".$document_joint['name'].""; print_r($classe_ele); echo ""; echo "classe=$classe_ele
"; echo print_r($mois); echo ""; */ // génération Ooo include_once '../mod_abs2/lib/function.php'; //pour la fonction repertoire_modeles include_once '../orm/helpers/AbsencesNotificationHelper.php'; // pour la fonction tbs_str et MergeInfosEtab if($odt=='retenue') { $fichier_modele_discipline='retenue.odt'; $prefixe_fichier_odt="retenue"; } elseif($odt=='exclusion') { $fichier_modele_discipline='discipline_exclusion.odt'; $prefixe_fichier_odt="exclusion"; } elseif($odt=='travail') { $fichier_modele_discipline='discipline_travail.odt'; $prefixe_fichier_odt="travail"; } elseif($odt=='autre') { $fichier_modele_discipline='discipline_autre.odt'; $prefixe_fichier_odt="autre_sanction"; } $extraction_bilans = repertoire_modeles($fichier_modele_discipline); if(isset($id_nature_sanction)) { // Tester l'existence du modèle if ($_SESSION['rne']!='') { $rne=$_SESSION['rne']."/"; } else { $rne=''; } if(file_exists("../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$id_nature_sanction.".odt")) { $extraction_bilans="../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$id_nature_sanction.".odt"; } $prefixe_fichier_odt=ensure_ascii($nature_sanction); } //Coordonnées etab $TBS = AbsencesNotificationHelper::MergeInfosEtab($extraction_bilans); if($odt=='retenue') { $TBS->MergeBlock('var', $export); } else { $TBS->MergeBlock('export', $export); } $nom_fichier = $prefixe_fichier_odt.'_'. $nom_ele.'_'.$prenom_ele.'_'.$id_sanction. '.odt'; $TBS->Show(OPENTBS_DOWNLOAD + TBS_EXIT, $nom_fichier); } //fin Ooo $avec_js_et_css_edt="y"; $utilisation_prototype="ok"; $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Discipline: Traitement/".$mod_disc_terme_sanction; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); $page="saisie_sanction.php"; echo "\n"; //===================================================== // MENU echo "\n"; //===================================================== echo "
Retour index\n";
if(!isset($id_incident)) {
echo "
Erreur : Il faut commencer par sélectionner l'".$mod_disc_terme_incident.".
\n"; require("../lib/footer.inc.php"); die(); } echo " | Retour ".$mod_disc_terme_incident."\n"; //if(!isset($mode)) { if((!isset($mode))||($mode=="suppr_sanction")||($mode=="suppr_report")) { //echo " | Liste des incidents\n"; echo "\n"; // Affichage des protagonistes: $sql="SELECT * FROM s_protagonistes WHERE id_incident='$id_incident' ORDER BY statut,qualite,login;"; //echo "$sqlEuh... c'est pas prévu qu'on arrive là (pour le moment;o).
\n"; } echo insere_fonctions_js_recherche_ajax_ele(); echo insere_infobulle_recherche_ajax_ele(); echo "