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(); } check_token(); //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des élèves - Etape 2"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** // On vérifie si l'extension d_base est active //verif_active_dbase(); ?>
ATTENTION ...
\n";
echo "Des données concernant la constitution des classes et l'affectation des élèves dans les classes sont présentes dans la base GEPI ! Si vous poursuivez la procédure, ces données seront définitivement effacées !
On vide d'abord les tables suivantes : ";
$j=0;
$k=0;
while ($j < count($liste_tables_del)) {
$sql="SHOW TABLES LIKE '".$liste_tables_del[$j]."';";
//echo "$sql
";
$test = sql_query1($sql);
if ($test != -1) {
if($k>0) {echo ", ";}
$sql="SELECT 1=1 FROM $liste_tables_del[$j];";
$res_test_tab=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_test_tab)>0) {
$sql="DELETE FROM $liste_tables_del[$j];";
$del = @mysqli_query($GLOBALS["mysqli"], $sql);
echo "".$liste_tables_del[$j]."";
echo " (".mysqli_num_rows($res_test_tab).")";
}
else {
echo $liste_tables_del[$j];
}
$k++;
}
$j++;
}
// Ménage infos_actions:
$sql="SELECT * FROM infos_actions WHERE titre LIKE 'Nouvel élève%';";
//echo "$sql
";
$test = mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
echo "
";
echo "Suppression d'anciens messages en page d'accueil invitant à créer de nouveaux comptes élèves.";
$sql="DELETE FROM infos_actions WHERE titre LIKE 'Nouvel élève%';";
$del = mysqli_query($GLOBALS["mysqli"], $sql);
}
// Suppression des comptes d'élèves:
echo "
\n";
echo "
On supprime les anciens comptes élèves... ";
$sql="DELETE FROM utilisateurs WHERE statut='eleve';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
// Liste des comptes scolarité pour associer aux nouvelles classes
$sql="SELECT login FROM utilisateurs WHERE statut='scolarite';";
$res_scol=mysqli_query($GLOBALS["mysqli"], $sql);
$tab_user_scol=array();
if(mysqli_num_rows($res_scol)>0) {
while($lig_scol=mysqli_fetch_object($res_scol)) {$tab_user_scol[]=$lig_scol->login;}
}
// On va enregistrer la liste des classes, ainsi que les périodes qui leur seront attribuées
$call_data = mysqli_query($GLOBALS["mysqli"], "SELECT distinct(DIVCOD) classe FROM temp_gep_import2 WHERE DIVCOD!='' ORDER BY DIVCOD");
$nb = mysqli_num_rows($call_data);
$i = "0";
while ($i < $nb) {
$classe = old_mysql_result($call_data, $i, "classe");
// On enregistre la classe
// On teste d'abord :
$test = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM classes WHERE (classe='$classe')"),0);
if ($test == "0") {
$reg_classe = mysqli_query($GLOBALS["mysqli"], "INSERT INTO classes SET classe='".mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($classe, "an", " _-",""))."',nom_complet='".mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($reg_nom_complet[$classe], "an", " _-",""))."',suivi_par='".mysql_real_escape_string(nettoyer_caracteres_nom($reg_suivi[$classe]), "an", " ',._-", "")."',formule='".html_entity_decode(mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($reg_formule[$classe], "an", " ',._-","")))."', format_nom='cni'");
$id_classe=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
for($loop=0;$loop Erreur lors de l'enregistrement d'une période pour la classe $classe";
$j++;
}
} else {
// on "démarque" les périodes des classes qui ne sont pas à supprimer
$sql = mysqli_query($GLOBALS["mysqli"], "UPDATE periodes SET verouiller='N' where (id_classe='$id_classe' and num_periode='1')");
$sql = mysqli_query($GLOBALS["mysqli"], "UPDATE periodes SET verouiller='O' where (id_classe='$id_classe' and num_periode!='1')");
//
$nb_per = mysqli_num_rows(mysqli_query($GLOBALS["mysqli"], "select num_periode from periodes where id_classe='$id_classe'"));
if ($nb_per > $reg_periodes_num[$classe]) {
// Le nombre de périodes de la classe est inférieur au nombre enregistré
// On efface les périodes en trop
$k = 0;
for ($k=$reg_periodes_num[$classe]+1; $k<$nb_per+1; $k++) {
$del = mysqli_query($GLOBALS["mysqli"], "delete from periodes where (id_classe='$id_classe' and num_periode='$k')");
}
}
if ($nb_per < $reg_periodes_num[$classe]) {
// Le nombre de périodes de la classe est supérieur au nombre enregistré
// On enregistre les périodes
$k = 0;
$num = $nb_per;
for ($k=$nb_per+1 ; $k < $reg_periodes_num[$classe]+1; $k++) {
$num++;
$nom_per = "Période ".$num;
if ($num == "1") { $ver = "N"; } else { $ver = 'O'; }
$register = mysqli_query($GLOBALS["mysqli"], "INSERT INTO periodes SET num_periode='$num',nom_periode='$nom_per',verouiller='$ver',id_classe='$id_classe'");
if (!$register) echo " Erreur lors de l'enregistrement d'une période pour la classe $classe";
}
}
}
$i++;
}
$sql="update periodes set date_verrouillage='0000-00-00 00:00:00';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
echo "Réinitialisation des dates de verrouillage de périodes effectuée. Vous venez d'effectuer l'enregistrement des données concernant les classes. S'il n'y a pas eu d'erreurs, vous pouvez aller à l'étape suivante pour enregistrer les données concernant les élèves.";
echo " Remarque sur les périodes : Le nombre de périodes doit correspondre au nombre de bulletins qui sera édité pour chaque élève sur l'année.
";
}
else {
echo "Erreur lors de la réinitialisation des dates de verrouillage de périodes.
";
}
// On efface les classes qui ne sont pas réutilisées cette année ainsi que les entrées correspondantes dans j_groupes_classes
$sql = mysqli_query($GLOBALS["mysqli"], "select distinct id_classe from periodes where verouiller='T'");
$k = 0;
while ($k < mysqli_num_rows($sql)) {
$id_classe = old_mysql_result($sql, $k);
$res1 = mysqli_query($GLOBALS["mysqli"], "delete from classes where id='".$id_classe."'");
$res2 = mysqli_query($GLOBALS["mysqli"], "delete from j_groupes_classes where id_classe='".$id_classe."'");
$res3 = mysqli_query($GLOBALS["mysqli"], "delete from d_dates_evenements_classes where id_classe='".$id_classe."'");
$k++;
}
// On supprime les groupes qui n'ont plus aucune affectation de classe
$res = mysqli_query($GLOBALS["mysqli"], "delete from groupes g, j_groupes_classes jgc, j_eleves_groupes jeg, j_groupes_professeurs jgp, j_groupes_matieres jgm WHERE (" .
"g.id != jgc.id_groupe and jeg.id_groupe != jgc.id_groupe and jgp.id_groupe != jgc.id_groupe and jgm.id_groupe != jgc.id_groupe)");
$res = mysqli_query($GLOBALS["mysqli"], "delete from periodes where verouiller='T'");
echo "
En collège par exemple, on saisira trois périodes (trimestres).
Cela n'empêchera pas d'éditer six relevés de notes par élève au cours de l'année si vous souhaitez des relevés de notes de demi-période.
Il ne serait en revanche pas possible d'éditer un bulletin fusion de deux périodes.