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(); } $liste_tables_del = array( "j_eleves_professeurs" ); if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des professeurs principaux"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** ?>

Retour Retour accueil initialisation

Rétablissement de la matière principale de chaque professeur d'après les enregistrements de l'année précédente.

\n"; $temoin_erreur=0; $temoin_debut_mp=0; while(!feof($fich_mp)) { $ligne=trim(fgets($fich_mp, 4096)); $tab=explode(";",$ligne); if(($tab[0]!="")&&($tab[1]!="")) { $login_prof=$tab[0]; $matiere_prof=$tab[1]; unset($tab_matiere_prof); unset($tab_matiere_prof_reordonne); $tab_matiere_prof=array(); $tab_matiere_prof_reordonne=array(); $sql="SELECT * FROM j_professeurs_matieres WHERE id_professeur='$login_prof' ORDER BY ordre_matieres;"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { while($lig_mp=mysqli_fetch_object($res)) { $tab_matiere_prof[]=$lig_mp->id_matiere; } } if(in_array($matiere_prof,$tab_matiere_prof)) { // On va contrôler si la matière est bien au premier rang if($tab_matiere_prof[0]!=$matiere_prof) { // Il faut réordonner $tab_matiere_prof_reordonne[]=$matiere_prof; for($loop=0;$loopCorrection de la matière principale pour "; } else { echo ", "; } echo "$login_prof"; $sql="DELETE FROM j_professeurs_matieres WHERE id_professeur='$login_prof';"; //echo "$sql
\n"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { echo " (ERREUR)"; $temoin_erreur++; } else { for($loop=0;$loop\n"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if($insert) { echo " (".$tab_matiere_prof_reordonne[$loop].")"; } else { echo " (".$tab_matiere_prof_reordonne[$loop].")"; $temoin_erreur++; } } } $temoin_debut_mp++; } //else { // echo "$login_prof a déjà la bonne matière principale : $matiere_prof
"; //} } } } fclose($fich_mp); if($temoin_erreur==0) { unlink("../temp/".$dirname."/matiere_principale.csv"); } if($temoin_debut_mp>0) { echo ".

\n"; echo "

Remarque : Les professeurs pour lesquels la matière principale est déjà la bonne n'apparaissent pas dans les corrections ci-dessus.

\n"; } } } echo "

Sixième phase
Importation des professeurs principaux

\n"; $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 ...
\n"; echo "Des professeurs principaux sont actuellement définis dans la base GEPI (table 'j_eleves_professeurs')

\n"; //echo "

Si vous poursuivez la procédure ces données seront supprimées et remplacées par celles de votre fichier F_DIV.CSV

\n"; echo "

Si vous poursuivez la procédure ces données seront supprimées et remplacées par celles de votre import XML.

\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "
\n"; echo "
\n"; require("../lib/footer.inc.php"); die(); } } else { echo "

Sixième phase
Importation des professeurs principaux

\n"; } $tempdir=get_user_temp_directory(); if(!$tempdir){ echo "

Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?

\n"; // Il ne faut pas aller plus loin... // SITUATION A GERER } if (!isset($is_posted)) { if(isset($step1)) { check_token(false); $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) { //echo "DELETE FROM $liste_tables_del[$j]
"; $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM $liste_tables_del[$j]"); } $j++; } } if(!file_exists("../temp/$tempdir/f_div.csv")){ echo "

Le fichier f_div.csv n'est pas présent dans votre dossier temporaire.
Auriez-vous sauté l'étape de l'importation des professeurs???

\n"; require("../lib/footer.inc.php"); die(); } echo "

ATTENTION ...
Vous ne devez procéder à cette opération uniquement si la constitution des classes a été effectuée et si les professeurs ont été importés !

\n"; //echo "

Importation du fichier F_div.csv (généré lors de l'importation des professeurs) contenant les associations classe/professeur principal.

\n"; echo "

Importation des associations classe/professeur principal.

\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; //echo "

"; echo "

\n"; echo "
\n"; } else { check_token(false); $fp = fopen("../temp/$tempdir/f_div.csv","r"); if(!$fp) { echo "

Impossible d'ouvrir le fichier CSV normalement généré lors de l'import des professeurs.

\n"; echo "

Cliquer ici pour recommencer !

\n"; } else { // on constitue le tableau des champs à extraire $tabchamps = array("DIVCOD","NUMIND"); $nblignes=0; while (!feof($fp)) { $ligne = fgets($fp, 4096); if($nblignes==0){ // Quand on enregistre en CSV des fichiers DBF de GEP avec OpenOffice, les champs sont renommés avec l'ajout de ',...' en fin de nom de champ. // On ne retient pas ces ajouts pour $en_tete $temp=explode(";",$ligne); for($i=0;$i\n"; echo "

Classe

Professeur principal

\n"; //========================= $fp = fopen("../temp/$tempdir/f_div.csv","r"); // On lit une ligne pour passer la ligne d'entête: $ligne = fgets($fp, 4096); //========================= $nb_reg_no = 0; $nb_reg_ok = 0; for($k = 1; ($k < $nblignes+1); $k++){ if(!feof($fp)){ //==================== // Suppression des guillemets éventuels $ligne = preg_replace('/"/','',fgets($fp, 4096)); //==================== if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); $temoin_erreur="non"; for($i = 0; $i < count($tabchamps); $i++) { //$affiche[$i] = traitement_magic_quotes(corriger_caracteres(dbase_filter(trim($tabligne[$tabindice[$i]])))); $affiche[$i] = trim($tabligne[$tabindice[$i]]); //echo "|\$affiche[$i]|=|$affiche[$i]|"; if($affiche[$i]==""){ $temoin_erreur="oui"; $nb_reg_no++; } } if($temoin_erreur!="oui"){ $sql="SELECT id FROM classes WHERE classe='$affiche[0]'"; $res_classe=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_classe)==1){ $lig_classe=mysqli_fetch_object($res_classe); $id_classe=$lig_classe->id; $sql="SELECT col1 FROM tempo2 WHERE col2='$affiche[1]'"; //echo "$sql\n"; $res_prof=mysqli_query($GLOBALS["mysqli"], $sql); $lig_prof=mysqli_fetch_object($res_prof); $sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$id_classe' ORDER BY login"; $res_eleve=mysqli_query($GLOBALS["mysqli"], $sql); $temoin_erreur_classe=0; while($lig_eleve=mysqli_fetch_object($res_eleve)){ $sql="INSERT INTO j_eleves_professeurs VALUES('$lig_eleve->login','$lig_prof->col1','$id_classe')"; $res_prof_eleve=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_prof_eleve){ $temoin_erreur_classe++; //echo "$sql\n"; } } if($temoin_erreur_classe==0){ echo "$affiche[0]$lig_prof->col1\n"; $nb_reg_ok++; } else{ echo "$affiche[0]$lig_prof->col1\n"; $nb_reg_no++; } //echo "$affiche[0]$lig_prof->col1\n"; } } else{ echo "$affiche[0]$affiche[1]\n"; } } } } echo "\n"; fclose($fp); if ($nb_reg_no != 0) { echo "

Lors de l'enregistrement des données, il y a eu $nb_reg_no erreurs.
Essayez d'en trouver la cause et recommencez la procédure avant de passer à l'étape suivante.

\n"; } else { if($nb_reg_ok>0){ echo "

L'importation des professeurs principaux dans la base GEPI a été effectuée avec succès !

\n"; } else{ echo "

Aucun professeur principal n'a été inscrit dans la base GEPI !

\n"; } if(getSettingValue("mode_sauvegarde")=="mysqldump") {$mode_sauvegarde="system_dump";} else {$mode_sauvegarde="dump";} echo "

Avant de procéder à un nettoyage des tables pour supprimer les données inutiles, vous devriez effectuer une sauvegarde
\n"; echo "Après cette sauvegarde, effectuez le nettoyage en repassant par 'Gestion générale/Initialisation des données à partir de fichiers DBF et XML/Procéder à la septième phase'.
\n"; echo "Si les données sont effectivement inutiles, c'est terminé.
\n"; echo "Sinon, vous pourrez restaurer votre sauvegarde et vous aurez pu noter les associations profs/matières/classes manquantes... à effectuer par la suite manuellement dans 'Gestion des bases'.

\n"; echo "

Vous pouvez procéder à l'étape suivante de nettoyage des tables GEPI.

\n"; echo "

Suppression des données inutiles

\n"; } } } echo "


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