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(); } // Page bourrinée... la gestion du token n'est pas faite... et ne sera faite que si quelqu'un utilise encore ce mode d'initialisation et le manifeste sur la liste de diffusion gepi-users 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

"; $liste_tables_del = array( "absences", "absences_gep", "aid", "aid_appreciations", //"aid_config", "avis_conseil_classe", //"classes", //"droits", "eleves", "responsables", "responsables2", "resp_pers", "resp_adr", //"etablissements", "j_aid_eleves", "j_aid_utilisateurs", "j_aid_eleves_resp", "j_aid_utilisateurs_gest", "j_eleves_classes", //========================== // On ne vide plus la table chaque année // Problème avec Sconet qui récupère seulement l'établissement de l'année précédente qui peut être l'établissement courant //"j_eleves_etablissements", //========================== "j_eleves_professeurs", "j_eleves_regime", //"j_professeurs_matieres", //"log", //"matieres", "matieres_appreciations", "matieres_notes", "matieres_appreciations_grp", "matieres_appreciations_tempo", //========================== // Tables notanet 'notanet', 'notanet_avis', 'notanet_app', 'notanet_verrou', 'notanet_socles', 'notanet_ele_type', //========================== //"periodes", "tempo2", //"temp_gep_import", "tempo", //"utilisateurs", "cn_cahier_notes", "cn_conteneurs", "cn_devoirs", "cn_notes_conteneurs", "cn_notes_devoirs", //"setting" ); if (!isset($step2)) { $j=0; $flag=0; while (($j < count($liste_tables_del)) and ($flag==0)) { 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 ...
"; 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 !

"; echo "
"; echo ""; echo ""; echo "
"; die(); } } if (isset($is_posted)) { $j=0; while ($j < count($liste_tables_del)) { if (old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM $liste_tables_del[$j]"),0)!=0) { $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM $liste_tables_del[$j]"); } $j++; } // 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_import 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 = mysql_query("INSERT INTO classes SET classe='".traitement_magic_quotes(corriger_caracteres($classe))."',nom_complet='".traitement_magic_quotes(corriger_caracteres($reg_nom_complet[$classe]))."',suivi_par='".traitement_magic_quotes(corriger_caracteres($reg_suivi[$classe]))."',formule='".traitement_magic_quotes(corriger_caracteres($reg_formule[$classe]))."', format_nom='np'"); $reg_classe = mysqli_query($GLOBALS["mysqli"], "INSERT INTO classes SET classe='".traitement_magic_quotes(corriger_caracteres($classe))."',nom_complet='".traitement_magic_quotes(corriger_caracteres($reg_nom_complet[$classe]))."',suivi_par='".traitement_magic_quotes(corriger_caracteres($reg_suivi[$classe]))."',formule='".html_entity_decode(traitement_magic_quotes(corriger_caracteres($reg_formule[$classe])))."', format_nom='np'"); } else { //$reg_classe = mysql_query("UPDATE classes SET classe='".traitement_magic_quotes(corriger_caracteres($classe))."',nom_complet='".traitement_magic_quotes(corriger_caracteres($reg_nom_complet[$classe]))."',suivi_par='".traitement_magic_quotes(corriger_caracteres($reg_suivi[$classe]))."',formule='".traitement_magic_quotes(corriger_caracteres($reg_formule[$classe]))."', format_nom='np' WHERE classe='$classe'"); $reg_classe = mysqli_query($GLOBALS["mysqli"], "UPDATE classes SET classe='".traitement_magic_quotes(corriger_caracteres($classe))."',nom_complet='".traitement_magic_quotes(corriger_caracteres($reg_nom_complet[$classe]))."',suivi_par='".traitement_magic_quotes(corriger_caracteres($reg_suivi[$classe]))."',formule='".html_entity_decode(traitement_magic_quotes(corriger_caracteres($reg_formule[$classe])))."', format_nom='np' WHERE classe='$classe'"); } if (!$reg_classe) echo "

Erreur 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."'"); $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

"; // On sauvegarde le témoin du fait qu'il va falloir convertir pour remplir les nouvelles tables responsables: saveSetting("conv_new_resp_table", 0); } else { // On commence par "marquer" les classes existantes dans la base $sql = mysqli_query($GLOBALS["mysqli"], "UPDATE periodes SET verouiller='T'"); // $call_data = mysqli_query($GLOBALS["mysqli"], "SELECT distinct(DIVCOD) classe FROM temp_gep_import WHERE DIVCOD!='' ORDER BY DIVCOD"); $nb = mysqli_num_rows($call_data); $i = "0"; echo "
"; 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

"; 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'); } echo ""; echo "
"; echo ""; echo "

$nom_court

"; echo ""; echo ""; echo ""; echo " "; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $i++; } echo ""; echo ""; echo "
"; echo "
"; } echo "


\n"; require("../lib/footer.inc.php"); ?>