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(); } $sql="SELECT 1=1 FROM droits WHERE id='/mod_annees_anterieures/recuperation_donnees_manquantes.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/mod_annees_anterieures/recuperation_donnees_manquantes.php', administrateur='V', professeur='F', cpe='F', scolarite='F', eleve='F', responsable='F', secours='F', autre='F', description='Ajax: Acces aux appreciations et avis des bulletins', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } require_once("./fonctions_annees_anterieures.inc.php"); // Si le module n'est pas activé... if(!getSettingAOui('active_annees_anterieures')) { header("Location: ../logout.php?auto=1"); die(); } $msg=""; $step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL); $debug_import="n"; //**************** EN-TETE ***************** $titre_page = "Récupération de données manquantes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** echo "
\n"; /* - Récup NUMIND et TYPE d'après sts_emp_RNE_ANNEE - Remplissage des champs NUMIND et TYPE dans la table archivage_disciplines ? */ $sql="SELECT DISTINCT u.login, u.nom, u.prenom, u.numind, u.type FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.login=u.login AND u.statut='professeur' AND (numind='' OR type='') ORDER BY u.nom, u.prenom;"; //echo "$sqlTous les professeurs ont leurs NUMIND et TYPE renseignés.
"; require("../lib/footer.inc.php"); die(); } else { if(!isset($step)) { // style='color:red; margin-top:1em; margin-left:7.5em; text-indent:-7.5em;' echo "".mysqli_num_rows($test)." professeur(s) ont leur NUMIND (identifiant STS) ou leur TYPE (\"Emploi Poste Personnel\" ou \"Local\") non renseigné.
Cela posera problème dans le cas où vous souhaiteriez faire remonter les données dans le Livret Scolaire Lycée ou dans le Livret Scolaire Collège (LSU).
Il est recommandé de procéder à l'association professeur/NUMIND avant d'archiver l'année.
Les informations manquantes sont probablement dans le fichier Emplois du temps de STS (sts_emp_RNE_ANNEE.xml)
Veuillez fournir un Export XML réalisé depuis l'application STS-web.
Demandez gentiment à votre secrétaire d'accéder à STS-web et d'effectuer 'Mise à jour/Exports/Emplois du temps'.
Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?
\n"; require("../lib/footer.inc.php"); die(); } $post_max_size=ini_get('post_max_size'); $upload_max_filesize=ini_get('upload_max_filesize'); $max_execution_time=ini_get('max_execution_time'); $memory_limit=ini_get('memory_limit'); if($step==0) { $xml_file=isset($_FILES["xml_file"]) ? $_FILES["xml_file"] : NULL; if(!is_uploaded_file($xml_file['tmp_name'])) { echo "L'upload du fichier a échoué.
\n"; echo "Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "
Le fichier aurait été uploadé... mais ne serait pas présent/conservé.
\n"; echo "Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "et le volume de ".$xml_file['name']." serait
\n";
echo "\$xml_file['size']=".volume_human($xml_file['size'])."
\n";
echo "
Il semblerait que l'absence d'extension .XML puisse aussi provoquer ce genre de symptômes.
Dans ce cas, ajoutez l'extension et ré-essayez.
Le fichier a été uploadé.
\n"; $source_file=$xml_file['tmp_name']; $dest_file="../temp/".$tempdir."/sts.xml"; $res_copy=copy("$source_file" , "$dest_file"); if(!$res_copy) { echo "La copie du fichier vers le dossier temporaire a échoué.
Vérifiez que l'utilisateur ou le groupe apache ou www-data a accès au dossier temp/$tempdir
La copie du fichier vers le dossier temporaire a réussi.
\n"; $dest_file="../temp/".$tempdir."/sts.xml"; $sts_xml=simplexml_load_file($dest_file); if(!$sts_xml) { echo "ECHEC du chargement du fichier avec simpleXML.
\n"; require("../lib/footer.inc.php"); die(); } $nom_racine=$sts_xml->getName(); if(my_strtoupper($nom_racine)!='STS_EDT') { echo "ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML STS_EMP_<RNE>_<ANNEE>.
Sa racine devrait être 'STS_EDT'.
";
echo "Analyse du fichier pour extraire les informations de la section INDIVIDUS... Aucun professeur n'a été trouvé dans votre fichier. Aucun rapprochement n'a été validé. Prise en compte des validations... Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!? ECHEC du chargement du fichier avec simpleXML. ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML STS_EMP_<RNE>_<ANNEE>. Analyse du fichier pour extraire les informations de la section INDIVIDUS... Traitement des rapprochements demandés...
\n";
$prof=array();
$i=0;
$tab_champs_personnels=array("NOM_USAGE",
"NOM_PATRONYMIQUE",
"PRENOM",
"SEXE",
"CIVILITE",
"DATE_NAISSANCE",
"GRADE",
"FONCTION");
$prof=array();
$i=0;
foreach($sts_xml->DONNEES->INDIVIDUS->children() as $individu) {
$prof[$i]=array();
//echo "\$individu->NOM_USAGE=".$individu->NOM_USAGE."
";
foreach($individu->attributes() as $key => $value) {
//
";
}
}
if(isset($individu->PROFS_PRINC)) {
$j=0;
foreach($individu->PROFS_PRINC->children() as $prof_princ) {
//$prof[$i]["prof_princ"]=array();
foreach($prof_princ->children() as $key => $value) {
$prof[$i]["prof_princ"][$j][my_strtolower($key)]=trim(preg_replace('/"/',"",$value));
$temoin_au_moins_un_prof_princ="oui";
}
$j++;
}
}
if(isset($individu->DISCIPLINES)) {
$j=0;
foreach($individu->DISCIPLINES->children() as $discipline) {
foreach($discipline->attributes() as $key => $value) {
if(my_strtoupper($key)=='CODE') {
$prof[$i]["disciplines"][$j]["code"]=trim(preg_replace('/"/',"",$value));
break;
}
}
foreach($discipline->children() as $key => $value) {
$prof[$i]["disciplines"][$j][my_strtolower($key)]=trim(preg_replace('/"/',"",$value));
}
$j++;
}
}
if($debug_import=='y') {
echo "Tableau \$prof[$i] :";
print_r($prof[$i]);
echo "
";
}
$i++;
}
if(count($prof)==0) {
echo "
";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0){
$cpt=0;
while($lig=mysqli_fetch_assoc($test)) {
$nom_prenom=casse_mot($lig['nom'], "maj")." ".casse_mot($lig['prenom'], "majf2");
$tab_prof_gepi[$cpt]=$lig;
$tab_prof_gepi[$cpt]['nom_prenom']=$nom_prenom;
$tab_numind_prof_gepi[$lig['numind']]['cpt']=$cpt;
$tab_numind_prof_gepi[$lig['numind']]['type']=$lig['type'];
$tab_numind_prof_gepi[$lig['numind']]['nom_prenom']=$nom_prenom;
$cpt++;
}
}
/*
echo "tab_prof_gepi";
print_r($tab_prof_gepi);
echo "
";
echo "tab_numind_prof_gepi";
print_r($tab_numind_prof_gepi);
echo "
";
echo "prof";
print_r($prof);
echo "
";
*/
echo "
";
}
}
}
}
else {
// Valider les imports
check_token(false);
$login_gepi=isset($_POST['login_gepi']) ? $_POST['login_gepi'] : NULL;
if(!isset($login_gepi)) {
echo "
Retour
Sa racine devrait être 'STS_EDT'.
\n";
$prof=array();
$i=0;
$tab_champs_personnels=array("NOM_USAGE",
"NOM_PATRONYMIQUE",
"PRENOM",
"SEXE",
"CIVILITE",
"DATE_NAISSANCE",
"GRADE",
"FONCTION");
$prof=array();
$prof2=array();
$i=0;
foreach($sts_xml->DONNEES->INDIVIDUS->children() as $individu) {
$prof[$i]=array();
//echo "\$individu->NOM_USAGE=".$individu->NOM_USAGE."
";
foreach($individu->attributes() as $key => $value) {
//
";
}
}
if(isset($individu->PROFS_PRINC)) {
$j=0;
foreach($individu->PROFS_PRINC->children() as $prof_princ) {
//$prof[$i]["prof_princ"]=array();
foreach($prof_princ->children() as $key => $value) {
$prof[$i]["prof_princ"][$j][my_strtolower($key)]=trim(preg_replace('/"/',"",$value));
$temoin_au_moins_un_prof_princ="oui";
}
$j++;
}
}
if(isset($individu->DISCIPLINES)) {
$j=0;
foreach($individu->DISCIPLINES->children() as $discipline) {
foreach($discipline->attributes() as $key => $value) {
if(my_strtoupper($key)=='CODE') {
$prof[$i]["disciplines"][$j]["code"]=trim(preg_replace('/"/',"",$value));
break;
}
}
foreach($discipline->children() as $key => $value) {
$prof[$i]["disciplines"][$j][my_strtolower($key)]=trim(preg_replace('/"/',"",$value));
}
$j++;
}
}
if($debug_import=='y') {
echo "Tableau \$prof[$i] :";
print_r($prof[$i]);
echo "
";
}
$i++;
}
echo "
\n";
$nb_reg=0;
foreach($login_gepi as $id_prof => $current_login) {
if($current_login!="") {
if(isset($prof2[$id_prof])) {
$i=$prof2[$id_prof];
$sql="UPDATE utilisateurs SET numind='P".$id_prof."', type='".$prof[$i]['type']."' WHERE login='".$current_login."';";
//echo "$sql
";
$update=mysqli_query($mysqli, $sql);
if(!$update) {
echo "ERREUR lors de la requête :
$sql
\n";
}
else {
$nb_reg++;
}
}
}
}
if($nb_reg>0) {
echo $nb_reg." correction(s) effectuée(s).
";
}
echo "