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();
}
//pour gérer le verrouillage de la période depuis le fichier Vérif_bulletins.php
$classe=isset($_GET['classe']) ? $_GET['classe'] : 0;
$periode=isset($_GET['periode']) ? $_GET['periode'] : 0;
// quelle action après le verrouillage ?
$action_apres=isset($_GET['action']) ? $_GET['action'] : NULL;
//debug_var();
if((isset($_GET['mode']))&&($_GET['mode']="change_verrouillage")&&
(isset($_GET['id_classe']))&&(preg_match("/[0-9]{1,}/", $_GET['id_classe']))&&
(isset($_GET['num_periode']))&&(preg_match("/[0-9]{1,}/", $_GET['num_periode']))&&
(isset($_GET['etat']))&&(in_array($_GET['etat'], array("O", "P", "N")))) {
check_token();
$sql="SELECT verouiller, date_fin FROM periodes p,
j_scol_classes jsc
WHERE jsc.login='".$_SESSION['login']."' AND
jsc.id_classe=p.id_classe AND
p.id_classe='".$_GET['id_classe']."' AND
p.num_periode='".$_GET['num_periode']."';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if ($lig->date_fin==0) {//la date de fin n'est pas renseignee, on la renseigne
$sql="UPDATE periodes SET verouiller='".$_GET['etat']."', date_verrouillage=NOW(), date_fin=NOW() WHERE (num_periode='".$_GET['num_periode']."' and id_classe='".$_GET['id_classe']."')";
} else {
$sql="UPDATE periodes SET verouiller='".$_GET['etat']."', date_verrouillage=NOW() WHERE (num_periode='".$_GET['num_periode']."' and id_classe='".$_GET['id_classe']."')";
}
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if (!$res) {
echo "KO";
}
else {
echo "Période ".$traduction_verrouillage_periode[$_GET['etat']]."";
}
}
else {
echo "KO";
}
die();
}
/*
elseif((isset($_POST['mode']))&&($_POST['mode']="change_verrouillage")&&
(isset($_POST['id_classe']))&&(preg_match("/[0-9]{1,}/", $_POST['id_classe']))&&
(isset($_POST['etat']))&&(is_array($_POST['etat']))) {
// Verrouillage depuis visualisation/affiche_eleve.php
check_token();
foreach($etat as $num_periode => $current_etat) {
if(!preg_match("/[0-9]{1,}/", $num_periode)) {
echo "ERREUR : Le numéro de période $num_periode est invalide.";
}
elseif(!in_array($current_etat, array("O", "P", "N"))) {
if($current_etat!="") {
echo "ERREUR en période $num_periode, l'état $current_etat est invalide.";
}
}
else {
echo "P$num_periode: ";
$sql="SELECT verouiller, date_fin FROM periodes p,
j_scol_classes jsc
WHERE jsc.login='".$_SESSION['login']."' AND
jsc.id_classe=p.id_classe AND
p.id_classe='".$_POST['id_classe']."' AND
p.num_periode='".$num_periode."';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
$lig=mysqli_fetch_object($res);
if ($lig->date_fin==0) {//la date de fin n'est pas renseignee, on la renseigne
$sql="UPDATE periodes SET verouiller='".$current_etat."', date_verrouillage=NOW(), date_fin=NOW() WHERE (num_periode='".$num_periode."' and id_classe='".$_GET['id_classe']."')";
} else {
$sql="UPDATE periodes SET verouiller='".$current_etat."', date_verrouillage=NOW() WHERE (num_periode='".$num_periode."' and id_classe='".$_GET['id_classe']."')";
}
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if (!$res) {
echo "KO";
}
else {
echo "Période ".$traduction_verrouillage_periode[$current_etat]."";
}
}
else {
echo "KO";
}
}
echo " Rafraichissez la page pour prendre en compte les modifications.
";
}
die();
}
*/
elseif((isset($_POST['mode']))&&($_POST['mode']="change_verrouillage")&&
(isset($_POST['id_classe']))&&(preg_match("/[0-9]{1,}/", $_POST['id_classe']))&&
(isset($_POST['chaine_etat']))&&(is_string($_POST['chaine_etat']))) {
// Verrouillage depuis visualisation/affiche_eleve.php
check_token();
$etat=array();
$tab=explode("|", $_POST['chaine_etat']);
for($loop=0;$loop
";
}
echo "
";
//echo "\$row_per[0]=$row_per[0]
";
$t = $i+1;
//if (isset($_POST[$nom_classe])) {
if ((isset($_POST[$nom_classe]))&&($_POST[$nom_classe]!=$row_per[0])) {
//$register = sql_query("UPDATE periodes SET verouiller='".$_POST[$nom_classe]."' WHERE (num_periode='".$t."' and id_classe='".$id_classe."')");
if ($row_per[1] == 0) {//la date de fin n'est pas renseignee, on la renseigne
$register = sql_query("UPDATE periodes SET verouiller='".$_POST[$nom_classe]."', date_verrouillage=NOW(), date_fin=NOW() WHERE (num_periode='".$t."' and id_classe='".$id_classe."')");
if (!$register) {$pb_reg_ver = 'yes';}
} else {
$register = sql_query("UPDATE periodes SET verouiller='".$_POST[$nom_classe]."', date_verrouillage=NOW() WHERE (num_periode='".$t."' and id_classe='".$id_classe."')");
if (!$register) {$pb_reg_ver = 'yes';}
}
}
if ((isset($_POST["date_fin_".$nom_classe]))&&($_POST["date_fin_".$nom_classe]!="")) {
try {
$date_fin = new DateTime(str_replace("/",".",$_POST["date_fin_".$nom_classe]));
$date_fin->setTime(23,59,59);
if ($date_fin->format('U') != $row_per[1]) {
$register = sql_query("UPDATE periodes SET date_fin='".$date_fin->format('Y-m-d')."' WHERE (num_periode='".$t."' and id_classe='".$id_classe."')");
if (!$register) {$pb_reg_ver = 'yes';}
}
} catch (Exception $x) {
}
}
if ((isset($_POST["date_conseil_".$nom_classe]))&&($_POST["date_conseil_".$nom_classe]!="")) {
try {
$date_conseil = new DateTime(str_replace("/",".",$_POST["date_conseil_".$nom_classe]));
$date_conseil->setTime(23,59,59);
if ($date_conseil->format('U') != $row_per[1]) {
$register = sql_query("UPDATE periodes SET date_conseil_classe='".$date_conseil->format('Y-m-d')."' WHERE (num_periode='".$t."' and id_classe='".$id_classe."')");
if (!$register) {$pb_reg_ver = 'yes';}
}
} catch (Exception $x) {
}
}
}
}
}
}
// Déverrouillage de la période suivante si le bouton radio est à Oui.
//if ((($action_apres == 'retour') OR ($action_apres == 'imprime_html') OR ($action_apres == 'imprime_pdf') OR ($action_apres == 'rien')) AND isset($_POST['deverouillage_auto_periode_suivante'])) {
if ((($action_apres == 'retour') OR ($action_apres == 'imprime_bull') OR ($action_apres == 'rien')) AND isset($_POST['deverouillage_auto_periode_suivante'])) {
if (($_POST['deverouillage_auto_periode_suivante'])=='y') {
//recherche du nombre de période pour la classe
$sql_periode = "SELECT * FROM periodes WHERE id_classe='$classe';";
$result_periode = mysqli_query($GLOBALS["mysqli"], $sql_periode);
$nb_periodes_classe = mysqli_num_rows($result_periode);
//echo $nb_periodes_classe;
$periode_en_cours = $periode;
$periode_suivante = $periode+1;
//Pour la période modifiée on récupère son état
$etat_periode=old_mysql_result($result_periode, $periode-1, "verouiller");
//echo "
".$etat_periode;
//echo "
".$periode_en_cours;
//echo "
".$nb_periodes_classe;
//si l'état est P ou O on dévérouille totalement la période +1 (di elle existe !)
if (($etat_periode=='P') OR $etat_periode=='O') {
if ($periode_en_cours < $nb_periodes_classe) {
//echo "
On déverrouille $periode_suivante";
//$sql_maj_periode_suivante = "UPDATE periodes SET verouiller='N' WHERE (num_periode='".$periode_suivante."' and id_classe='".$classe."')";
//$sql_maj_periode_suivante = "UPDATE periodes SET verouiller='N', date_verrouillage='".time()."' WHERE (num_periode='".$periode_suivante."' and id_classe='".$classe."')";
$sql_maj_periode_suivante = "UPDATE periodes SET verouiller='N', date_verrouillage=NOW() WHERE (num_periode='".$periode_suivante."' and id_classe='".$classe."')";
//echo "
".$sql_maj_periode_suivante;
$result_maj_periode_suivante = mysqli_query($GLOBALS["mysqli"], $sql_maj_periode_suivante);
if (!$result_maj_periode_suivante) {$pb_reg_ver = 'yes';}
}
}
}
}
if ($pb_reg_ver == 'no') {
$msg = "Les modifications ont été enregistrées (".strftime("%d/%m/%Y à %H:%M:%S").").
";
} else {
$msg = "Il y a eu un problème lors de l'enregistrement des données.
";
}
if ($action_apres == 'retour') {
header("Location: ./verif_bulletins.php");
}
//if ($action_apres == 'imprime_html') {
if ($action_apres == 'imprime_bull') {
//header("Location: ./index.php?id_classe=$classe");
//echo "Location: ./bull_index.php?tab_id_classe[0]=$classe&tab_periode_num[0]=$periode&choix_periode_num=fait";
header("Location: ./bull_index.php?tab_id_classe[0]=$classe&tab_periode_num[0]=$periode&choix_periode_num=fait");
}
/*
if ($action_apres == 'imprime_pdf') {
//header("Location: ./index.php?format=pdf");
header("Location: ./bull_index.php?tab_id_classe[0]=$classe&tab_periode_num[0]=$periode&choix_periode_num=fait");
}
*/
}
$style_specifique[] = "lib/DHTMLcalendar/calendarstyle";
$javascript_specifique[] = "lib/DHTMLcalendar/calendar";
$javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr";
$javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup";
$themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?';
//**************** EN-TETE **************************************
$titre_page = "Verrouillage et déverrouillage des périodes";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE **********************************
//debug_var();
?>
Retour";
if($_SESSION['statut']=='scolarite') {
echo " | Visualisation et impression des bulletins";
}
if(($_SESSION['statut']=='scolarite')&&(getSettingValue('GepiScolImprBulSettings')=='yes')) {
echo " | Paramétrage des bulletins";
}
if(acces("/bulletin/verif_bulletins.php", $_SESSION['statut'])) {
echo " | Vérification bulletins";
}
if(acces("/classes/dates_classes.php", $_SESSION['statut'])) {
echo "| Événements classe";
}
echo "