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(); ?>

Première phase d'initialisation
Importation des élèves, constitution des classes et affectation des élèves dans les classes

"; echo "

Deuxième étape : Enregistrement des classes

"; include("../lib/initialisation_annee.inc.php"); $liste_tables_del = $liste_tables_del_etape_eleves; if (!isset($step2)) { $j=0; $flag=0; while (($j < count($liste_tables_del)) and ($flag==0)) { $test = mysqli_num_rows(mysqli_query($GLOBALS["mysqli"], "SHOW TABLES LIKE '$liste_tables_del[$j]'")); if($test==1){ if (old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM $liste_tables_del[$j]"),0)!=0) { $flag=1; } } $j++; } if ($flag != 0){ echo "

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 !

\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "
\n"; require("../lib/footer.inc.php"); die(); } } if (isset($is_posted)) { echo "

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;$loopErreur lors de l'enregistrement de la classe $classe.";} // On enregistre les périodes pour cette classe // On teste d'abord : $id_classe = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "select id from classes where classe='$classe'"),0,'id'); $test = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM periodes WHERE (id_classe='$id_classe')"),0); if ($test == "0") { $j = '0'; while ($j < $reg_periodes_num[$classe]) { $num = $j+1; $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"; $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.
"; } 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 "

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 "

Accéder à l'étape 3

"; } else { // On commence par "marquer" les classes existantes dans la base $sql = mysqli_query($GLOBALS["mysqli"], "UPDATE periodes SET verouiller='T'"); // //$call_data = mysql_query("SELECT distinct(DIVCOD) classe FROM temp_gep_import WHERE DIVCOD!='' ORDER BY DIVCOD"); $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"; echo "
"; echo add_token_field(); echo ""; echo "

Les classes en vert indiquent des classes déjà existantes dans la base GEPI.
Les classes en rouge indiquent des classes nouvelles et qui vont être ajoutées à la base GEPI.

"; echo "

Pour les nouvelles classes, des noms standards sont utilisés pour les périodes (période 1, période 2...), et seule la première période n'est pas verrouillée. Vous pourrez modifier ces paramètres ultérieurement

"; echo "

Attention !!! Il n'y a pas de tests sur les champs entrés. Soyez vigilant à ne pas mettre des caractères spéciaux dans les champs ...

"; echo "

Essayez de remplir tous les champs, cela évitera d'avoir à le faire ultérieurement.

"; echo "

N'oubliez pas d'enregistrer les données en cliquant sur le bouton en bas de la page

"; ?>

Aide au remplissage
           
  Vous pouvez remplir les cases une à une et/ou globalement grâce aux fonctionnalités offertes ci-dessous :
  1) D'abord, cochez les lignes une à une
  Vous pouvez aussi   COCHER ou DECOCHER toutes les lignes , ou INVERSER la sélection
  2) Puis, pour les lignes cochées :
  le nom au bas du bulletin sera  : 
  la formule au bas du bulletin sera  : 
  3) Cliquez sur les boutons "Recopier" pour remplir les champs selectionnés.

"; echo "

Aide
Remplissage

Identifiant de la classe

Nom complet

Nom apparaissant au bas du bulletin

formule au bas du bulletin

Nombres de périodes

\n"; $alt=1; while ($i < $nb) { $classe_id = old_mysql_result($call_data, $i, "classe"); $test_classe_exist = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM classes WHERE classe='$classe_id'"); $nb_test_classe_exist = mysqli_num_rows($test_classe_exist); if ($nb_test_classe_exist==0) { $nom_complet = $classe_id; $nom_court = "".$classe_id.""; $suivi_par = getSettingValue("gepiAdminPrenom")." ".getSettingValue("gepiAdminNom").", ".getSettingValue("gepiAdminFonction"); $formule = ""; $nb_per = '3'; } else { $id_classe = old_mysql_result($test_classe_exist, 0, 'id'); $nb_per = mysqli_num_rows(mysqli_query($GLOBALS["mysqli"], "select num_periode from periodes where id_classe='$id_classe'")); $nom_court = "".$classe_id.""; $nom_complet = old_mysql_result($test_classe_exist, 0, 'nom_complet'); $suivi_par = old_mysql_result($test_classe_exist, 0, 'suivi_par'); $formule = old_mysql_result($test_classe_exist, 0, 'formule'); } $alt=$alt*(-1); echo "\n"; echo "
\n"; echo "\n"; echo "

$nom_court

\n"; //echo ""; echo "\n"; echo "\n"; echo " \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $i++; } echo "\n"; echo "\n"; echo "

\n"; echo "
\n"; } ?>

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.
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.