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(); } //**************** EN-TETE ***************** $titre_page = "Mise à jour eleves/responsables"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** // Passer à 'y' pour afficher les requêtes $debug_resp="n"; echo "

"; echo "Retour Retour"; echo "

\n"; // Traitement particulier LCS : on met à jour l'identifiant national dans eleves (np_gep) if(getSettingValue('auth_sso')=="lcs") { echo "

Mise à jour des données élèves et responsables

\n"; } else { echo "

Conversion eleves/responsables

\n"; } // Suppression de l'adresse de retour mise pour permettre la génération des CSV if(isset($_SESSION['ad_retour'])){ unset($_SESSION['ad_retour']); } // Solution de conversion d'une part... // ... et proposer d'autre part une mise à jour par import Sconet $sql="SELECT value FROM setting WHERE name='conv_new_resp_table'"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test) > 0){ $ligtmp=mysqli_fetch_object($test); if($ligtmp->value>0){ echo "

La mise à jour a déjà été effectuée.

\n"; require("../lib/footer.inc.php"); die(); } else{ $temoin=1; } } else{ $temoin=1; } if($temoin==1){ $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); // Ajout, si nécessaire, du champ 'ele_id' à la table 'eleves': $sql="SHOW FIELDS FROM eleves"; $test=mysqli_query($GLOBALS["mysqli"], $sql); $temoin_ele_id=""; while($tabtmp=mysqli_fetch_array($test)){ if(my_strtolower($tabtmp[0])=="ele_id"){ $temoin_ele_id="oui"; } } if($temoin_ele_id==""){ $sql="ALTER TABLE `eleves` ADD `ele_id` VARCHAR( 10 ) NOT NULL ;"; $res_ele_id=mysqli_query($GLOBALS["mysqli"], $sql); } $sql="CREATE TABLE IF NOT EXISTS `responsables2` ( `ele_id` varchar(10) NOT NULL, `pers_id` varchar(10) NOT NULL, `resp_legal` varchar(1) NOT NULL, `pers_contact` varchar(1) NOT NULL ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $res_create=mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS `resp_adr` ( `adr_id` varchar(10) NOT NULL, `adr1` varchar(100) NOT NULL, `adr2` varchar(100) NOT NULL, `adr3` varchar(100) NOT NULL, `adr4` varchar(100) NOT NULL, `cp` varchar(6) NOT NULL, `pays` varchar(50) NOT NULL, `commune` varchar(50) NOT NULL, PRIMARY KEY (`adr_id`) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $res_create=mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS `resp_pers` ( `pers_id` varchar(10) NOT NULL, `login` varchar(50) NOT NULL, `nom` varchar(30) NOT NULL, `prenom` varchar(30) NOT NULL, `civilite` varchar(5) NOT NULL, `tel_pers` varchar(255) NOT NULL, `tel_port` varchar(255) NOT NULL, `tel_prof` varchar(255) NOT NULL, `mel` varchar(100) NOT NULL, `adr_id` varchar(10) NOT NULL, PRIMARY KEY (`pers_id`) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $res_create=mysqli_query($GLOBALS["mysqli"], $sql); if(!isset($mode)){ echo "

Vous pouvez effectuer la mise à jour des tables:

\n"; echo ""; $sql="SELECT * FROM eleves WHERE elenoet=''"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)>0){ echo "

Les élèves suivants n'ont pas leur ELENOET renseigné.
Ils ne seront donc pas identifiés/associés par la suite avec les élèves inscrits dans Sconet.
Si vous envisagez le mode avec Sconet (recommandé quand c'est possible), vous devriez commencer par rechercher les ELENOET manquants et les renseigner dans la Gestion des élèves.

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; while($lig1=mysqli_fetch_object($res1)){ echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
LoginNomPrenomNaissance
$lig1->login$lig1->nom$lig1->prenom$lig1->naissance
\n"; } } elseif($mode==2){ if(!isset($confirmer)){ echo "

ATTENTION: Le mode sans SCONET ne permet pas de mises à jour en cours d'année.
\nCela signifie que les corrections effectuées sur votre logiciel de gestion des élèves et responsables (changements d'adresses, corrections,...) ne pourront pas être automatiquement importées dans GEPI.
Vous aurez donc une double-saisie à effectuer pour gérer ces mises à jour.
\nLe mode avec SCONET, lui, permettrait d'importer les corrections en cours d'année.

\n"; echo "

Ce choix est irréversible.
\nEtes-vous sûr que vous ne souhaitez pas utiliser l'import avec SCONET?

\n"; echo "

OUI ou NON

\n"; } else{ check_token(false); $nb_login_retrouves=0; $erreur=0; $sql="SELECT * FROM eleves ORDER BY nom,prenom"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)>0){ // On vide les tables avant traitement (au cas où il aurait fallu s'y prendre à deux fois) $sql="TRUNCATE TABLE resp_adr"; $res_truncate=mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE resp_pers"; $res_truncate=mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE responsables2"; $res_truncate=mysqli_query($GLOBALS["mysqli"], $sql); while($lig1=mysqli_fetch_object($res1)){ //if($lig1->ele_id==''){ unset($ele_id); if(!isset($lig1->ele_id)){ $ele_id=""; } else{ $ele_id=$lig1->ele_id; } if($ele_id==''){ //echo "

On va générer un ele_id pour $lig1->nom $lig1->prenom ($lig1->elenoet)
\n"; // Recherche du plus grand ele_id: $sql="SELECT ele_id FROM eleves WHERE ele_id LIKE 'e%' ORDER BY ele_id DESC"; //echo "$sql
\n"; $res_ele_id_eleve=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele_id_eleve)>0){ $tmp=0; $lig_ele_id_eleve=mysqli_fetch_object($res_ele_id_eleve); $tmp=mb_substr($lig_ele_id_eleve->ele_id,1); $tmp++; $max_ele_id=$tmp; } else{ $max_ele_id=1; } $sql="SELECT ele_id FROM responsables2 WHERE ele_id LIKE 'e%' ORDER BY ele_id DESC"; //echo "$sql
\n"; $res_ele_id_responsables2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele_id_responsables2)>0){ $tmp=0; $lig_ele_id_responsables2=mysqli_fetch_object($res_ele_id_responsables2); $tmp=mb_substr($lig_ele_id_responsables2->ele_id,1); $tmp++; $max_ele_id2=$tmp; } else{ $max_ele_id2=1; } $tmp=max($max_ele_id,$max_ele_id2); $ele_id="e".sprintf("%09d",max($max_ele_id,$max_ele_id2)); //$sql="UPDATE eleves SET ele_id='$ele_id' WHERE elenoet='$lig1->elenoet'"; $sql="UPDATE eleves SET ele_id='$ele_id' WHERE login='$lig1->login'"; //echo "$sql
\n"; $res_update=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_update){ //echo "Erreur lors de la définition de l'ele_id $ele_id pour $lig1->nom $lig1->prenom ($lig1->elenoet).
\n"; echo "Erreur lors de la définition de l'ele_id $ele_id pour $lig1->nom $lig1->prenom ($lig1->login).
\n"; $erreur++; } else{ //echo "

Définition de l'ele_id $ele_id pour $lig1->nom $lig1->prenom ($lig1->elenoet).
\n"; echo "

Définition de l'ele_id $ele_id pour $lig1->nom $lig1->prenom ($lig1->login).
\n"; } } else{ //echo "

$lig1->nom $lig1->prenom ($lig1->elenoet) dispose déjà d'un ele_id
\n"; $ele_id=$lig1->ele_id; } /* echo "

nom=$lig1->nom
\n"; echo "prenom=$lig1->prenom
\n"; echo "elenoet=$lig1->elenoet
\n"; echo "ereno=$lig1->ereno
\n"; echo "ele_id=$ele_id

\n"; */ if($lig1->ereno!=''){ $sql="SELECT * FROM responsables WHERE ereno='$lig1->ereno'"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)>0){ while($lig2=mysqli_fetch_object($res2)){ // Est-ce que cet ereno a déjà fait l'objet d'une insertion dans les nouvelles tables? // Recherche des pers_id ou recherche du plus grand pers_id affecté. $sql="SELECT r2.* FROM responsables2 r2, responsables r, eleves e WHERE r2.ele_id=e.ele_id AND r.ereno=e.ereno AND e.ereno='$lig1->ereno'"; //echo "$sql
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { // Le couple de responsables correspondant à $lig1->ereno est déjà dans les nouvelles tables. while($ligtmp=mysqli_fetch_object($test)){ //$sql="SELECT 1=1 FROM responsables2 WHERE pers_id='$ligtmp->pers_id' AND ele_id='$lig1->ele_id'"; $sql="SELECT 1=1 FROM responsables2 WHERE pers_id='$ligtmp->pers_id' AND ele_id='$ele_id'"; //echo "$sql
\n"; $test2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test2)==0){ // L'élève courant n'est pas encore inscrit... //$sql="INSERT INTO responsables2 SET ele_id='$lig1->ele_id', pers_id='$ligtmp->pers_id', resp_legal='$ligtmp->resp_legal', pers_contact='$ligtmp->pers_contact'"; $sql="INSERT INTO responsables2 SET ele_id='$ele_id', pers_id='$ligtmp->pers_id', resp_legal='$ligtmp->resp_legal', pers_contact='$ligtmp->pers_contact'"; //echo "$sql
\n"; $res_insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert){ echo "Erreur lors de l'insertion de l'association avec le responsable ($ligtmp->resp_legal) $ligtmp->pers_id
\n"; $erreur++; } else{ echo "Insertion de l'association avec le responsable ($ligtmp->resp_legal) $ligtmp->pers_id
\n"; } } } } else { // Le couple n'a pas encore été inscrit dans les nouvelles tables. // Recherche du plus grand pers_id: $sql="SELECT pers_id FROM resp_pers WHERE pers_id LIKE 'p%' ORDER BY pers_id DESC"; //echo "$sql
\n"; $restmp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($restmp)==0){ $nb1=1; } else{ $ligtmp=mysqli_fetch_object($restmp); $nb1=mb_substr($ligtmp->pers_id,1); $nb1++; } $pers_id="p".sprintf("%09d",$nb1); // Recherche du plus grand adr_id: $sql="SELECT adr_id FROM resp_adr WHERE adr_id LIKE 'a%' ORDER BY adr_id DESC"; //echo "$sql
\n"; $restmp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($restmp)==0){ $nb2=1; } else{ $ligtmp=mysqli_fetch_object($restmp); $nb2=mb_substr($ligtmp->adr_id,1); $nb2++; } $adr_id="a".sprintf("%09d",$nb2); if($lig2->nom1!=''){ $sql="INSERT INTO responsables2 SET pers_id='$pers_id', ele_id='$ele_id', resp_legal='1', pers_contact='1'"; //echo "$sql
\n"; $res_insert1=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert1){ echo "Erreur lors de l'insertion de l'association de l'élève $ele_id avec le responsable (1) $pers_id
\n"; $erreur++; } else{ echo "Insertion de l'association de l'élève $ele_id avec le responsable (1) $pers_id
\n"; } // 20160930: Tenter de récupérer le login d'après tempo_utilisateurs et en cas d'incertitude, proposer de confirmer/faire le rapprochement. // Peut-être ajouter un champ ereno dans resp_pers pour gérer resp_pers.ereno->responsables.ereno->tempo_utilisateurs.identifiant2 $login_resp=""; //$sql="SELECT * FROM tempo_utilisateurs WHERE identifiant2 LIKE '%|$lig1->ereno|%'"; $sql="SELECT * FROM tempo_utilisateurs WHERE identifiant2 LIKE '%|$lig1->ereno|%' AND nom LIKE '".mysqli_real_escape_string($GLOBALS["mysqli"], preg_replace("/[^A-Za-z]/","%",$lig2->nom1))."' AND prenom LIKE '".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->prenom1)."' AND statut='responsable';"; //echo "$sql
\n"; $res_tmp_u=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_tmp_u)==1) { $lig_tmp_u=mysqli_fetch_object($res_tmp_u); $login_resp=$lig_tmp_u->login; // On vérifie si le login existe déjà: $test_unicite = test_unique_login($login_resp, "y"); if ($test_unicite!='yes') { $login_resp=""; } } //$sql="INSERT INTO resp_pers SET pers_id='$pers_id', nom='$lig2->nom1',prenom='$lig2->prenom1',adr_id='$adr_id'"; $sql="INSERT INTO resp_pers SET pers_id='$pers_id', nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->nom1)."',prenom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->prenom1)."',adr_id='$adr_id';"; //echo "$sql
\n"; $res_insert2=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert2){ echo "Erreur lors de l'insertion du responsable ($pers_id): $lig2->nom1 $lig2->prenom1 (avec le n° adresse $adr_id).
\n"; $erreur++; } else{ echo "Insertion du responsable ($pers_id): $lig2->nom1 $lig2->prenom1 (avec le n° adresse $adr_id).
\n"; if($login_resp!="") { $sql="INSERT INTO utilisateurs SET login='".$login_resp."', nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->nom1)."', prenom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->prenom1)."', "; $sql.="password='".$lig_tmp_u->password."', salt='".$lig_tmp_u->salt."', email='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig_tmp_u->email)."', statut='responsable', etat='inactif', change_mdp='n', auth_mode='".$lig_tmp_u->auth_mode."';"; //echo "$sql
\n"; //if($debug_resp=='y') {echo "$sql
";} $insert_u=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert_u) { echo "Erreur lors de la création du compte utilisateur pour ".$lig2->nom1." ".$lig2->prenom1." :
$sql
"; } else { $sql="UPDATE resp_pers SET login='".$lig_tmp_u->login."' WHERE pers_id='".$pers_id."';"; //if($debug_resp=='y') {echo "$sql
";} $update_rp=mysqli_query($GLOBALS["mysqli"], $sql); $sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$lig_tmp_u->identifiant1."' AND statut='responsable';"; if($debug_resp=='y') {echo "$sql
";} $update_tmp_u=mysqli_query($GLOBALS["mysqli"], $sql); $nb_login_retrouves++; } } } //$sql="INSERT INTO resp_adr SET adr1='$lig2->adr1',adr2='$lig2->adr1_comp',cp='$lig2->cp1',commune='$lig2->commune1',adr_id='$adr_id'"; $sql="INSERT INTO resp_adr SET adr1='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->adr1)."',adr2='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->adr1_comp)."',cp='$lig2->cp1',commune='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->commune1)."',adr_id='$adr_id'"; //echo "$sql
\n"; $res_insert3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert3){ echo "Erreur lors de l'insertion de l'adresse $lig2->adr1, $lig2->adr1_comp, $lig2->cp1, $lig2->commune1 avec le n° adresse $adr_id.
\n"; $erreur++; } else{ echo "Insertion de l'adresse $lig2->adr1, $lig2->adr1_comp, $lig2->cp1, $lig2->commune1 avec le n° adresse $adr_id.
\n"; } } if($lig2->nom2!=''){ // Pour le deuxième responsable: $nb1++; $pers_id="p".sprintf("%09d",$nb1); if(($lig2->adr2!=$lig2->adr1)||($lig2->adr2_comp!=$lig2->adr1_comp)||($lig2->cp2!=$lig2->cp1)||($lig2->commune2!=$lig2->commune1)){ if(($lig2->adr2!='')||($lig2->adr2_comp!='')||($lig2->cp2!='')||($lig2->commune2!='')){ $nb2++; $adr_id="a".sprintf("%09d",$nb2); echo "Le deuxième responsable n'a pas la même adresse.
\n"; //$sql="INSERT INTO resp_adr SET adr1='$lig2->adr2',adr2='$lig2->adr2_comp',cp='$lig2->cp2',commune='$lig2->commune2',adr_id='$adr_id'"; $sql="INSERT INTO resp_adr SET adr1='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->adr2)."',adr2='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->adr2_comp)."',cp='$lig2->cp2',commune='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->commune2)."',adr_id='$adr_id'"; //echo "$sql
\n"; $res_insert3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert3){ echo "Erreur lors de l'insertion de l'adresse $lig2->adr2, $lig2->adr2_comp, $lig2->cp2, $lig2->commune2 avec le n° adresse $adr_id.
\n"; $erreur++; } else{ echo "Insertion de l'adresse $lig2->adr2, $lig2->adr2_comp, $lig2->cp2, $lig2->commune2 avec le n° adresse $adr_id.
\n"; } } } $sql="INSERT INTO responsables2 SET pers_id='$pers_id', ele_id='$ele_id', resp_legal='2', pers_contact='1'"; //echo "$sql
\n"; $res_insert1=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert1){ echo "Erreur de l'insertion de l'association de l'élève $ele_id avec le responsable (2) $pers_id
\n"; $erreur++; } else{ echo "Insertion de l'association de l'élève $ele_id avec le responsable (2) $pers_id
\n"; } // 20160930: Tenter de récupérer le login d'après tempo_utilisateurs et en cas d'incertitude, proposer de confirmer/faire le rapprochement. // Peut-être ajouter un champ ereno dans resp_pers pour gérer resp_pers.ereno->responsables.ereno->tempo_utilisateurs.identifiant2 $login_resp=""; //$sql="SELECT * FROM tempo_utilisateurs WHERE identifiant2 LIKE '%|$lig1->ereno|%'"; $sql="SELECT * FROM tempo_utilisateurs WHERE identifiant2 LIKE '%|$lig1->ereno|%' AND nom LIKE '".mysqli_real_escape_string($GLOBALS["mysqli"], preg_replace("/[^A-Za-z]/","%",$lig2->nom2))."' AND prenom LIKE '".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->prenom2)."' AND statut='responsable';"; //echo "$sql
\n"; $res_tmp_u=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_tmp_u)==1) { $lig_tmp_u=mysqli_fetch_object($res_tmp_u); $login_resp=$lig_tmp_u->login; // On vérifie si le login existe déjà: $test_unicite = test_unique_login($login_resp, "y"); if ($test_unicite!='yes') { $login_resp=""; } } //$sql="INSERT INTO resp_pers SET pers_id='$pers_id', nom='$lig2->nom2',prenom='$lig2->prenom2',adr_id='$adr_id'"; $sql="INSERT INTO resp_pers SET pers_id='$pers_id', nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->nom2)."',prenom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->prenom2)."',adr_id='$adr_id'"; //echo "$sql
\n"; $res_insert2=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert2){ echo "Erreur de l'insertion du responsable ($pers_id): $lig2->nom2 $lig2->prenom2 (avec le n° adresse $adr_id).
\n"; $erreur++; } else{ echo "Insertion du responsable ($pers_id): $lig2->nom2 $lig2->prenom2 (avec le n° adresse $adr_id).
\n"; if($login_resp!="") { $sql="INSERT INTO utilisateurs SET login='".$login_resp."', nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->nom2)."', prenom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig2->prenom2)."', "; $sql.="password='".$lig_tmp_u->password."', salt='".$lig_tmp_u->salt."', email='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig_tmp_u->email)."', statut='responsable', etat='inactif', change_mdp='n', auth_mode='".$lig_tmp_u->auth_mode."';"; //if($debug_resp=='y') {echo "$sql
";} $insert_u=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert_u) { echo "Erreur lors de la création du compte utilisateur pour ".$lig2->nom1." ".$lig2->prenom1." :
$sql
"; } else { $sql="UPDATE resp_pers SET login='".$lig_tmp_u->login."' WHERE pers_id='".$pers_id."';"; //if($debug_resp=='y') {echo "$sql
";} $update_rp=mysqli_query($GLOBALS["mysqli"], $sql); $sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$lig_tmp_u->identifiant1."' AND statut='responsable';"; if($debug_resp=='y') {echo "$sql
";} $update_tmp_u=mysqli_query($GLOBALS["mysqli"], $sql); $nb_login_retrouves++; } } } } } } } } } if($erreur==0){ echo "

L'opération s'est correctement déroulée.

\n"; echo "

Retourner à l'accueil

\n"; // On renseigne le témoin de mise à jour effectuée: saveSetting("conv_new_resp_table", 1); saveSetting("import_maj_xml_sconet", 0); } else{ echo "

Des erreurs se sont produites.

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

$nb_login_retrouves login(s) responsable(s) ont été récupérés.

"; } $sql="SELECT pers_id,nom,prenom,COUNT(*) AS nb_doublons FROM resp_pers GROUP BY nom,prenom HAVING COUNT(*)>1 ORDER BY nom,prenom;"; $test_resp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_resp)>0) { echo "

Dédoublonner les responsables (".mysqli_num_rows($test_resp).")

\n"; } } else{ echo "

Il semble que la table 'eleves' soit vide.

\n"; } echo "


\n"; } } elseif($mode==1) { // On fournit les fichiers CSV générés depuis les XML de SCONET... if (!isset($is_posted)) { echo "

Vous allez importer les fichiers CSV (générés à partir des exports XML de Sconet).

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

Sélectionnez le fichier ELEVES.CSV:

\n"; echo "

Et les fichiers de responsables:

\n"; echo "

Sélectionnez le fichier PERSONNES.CSV:
\n"; echo "

Sélectionnez le fichier RESPONSABLES.CSV:
\n"; echo "

Sélectionnez le fichier ADRESSES.CSV:
\n"; echo "

\n"; echo "
\n"; echo "


\n"; } else { check_token(); unset($tab_elenoet_non_trouves); $tab_elenoet_non_trouves=array(); $csv_file = isset($_FILES["ele_file"]) ? $_FILES["ele_file"] : NULL; if(my_strtoupper($csv_file['name']) == "ELEVES.CSV"){ //$fp = dbase_open($csv_file['tmp_name'], 0); $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier ELEVES.CSV !

"; echo "

Cliquer ici pour recommencer !

\n"; } else{ echo "

Dans un premier temps, on renseigne le nouveau champ 'ele_id' dans la table 'eleves'\n"; if(getSettingValue('auth_sso')=="lcs") { echo " et on met à jour les donnnées élèves (regime, doublant, identifiant national, établissement d'origine)"; // Par sécurité, on vide la table j_eleves_etablissements (établissement d'origine) mysqli_query($GLOBALS["mysqli"], "TRUNCATE TABLE j_eleves_etablissements"); } echo ".

"; echo "\n"; echo "

Afficher / Masquer les détails.

\n"; echo "


\n"; } } // Et la partie responsables: // C'est la copie de la page /init_xml/responsables.php $nb_reg_no1=-1; $nb_reg_no2=-1; $nb_reg_no3=-1; $csv_file = isset($_FILES["pers_file"]) ? $_FILES["pers_file"] : NULL; //echo strtoupper($csv_file['name'])."
"; if(my_strtoupper($csv_file['name']) == "PERSONNES.CSV") { $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier PERSONNES.CSV.

\n"; echo "

Cliquer ici pour recommencer !

\n"; } else{ echo "

Lecture du PERSONNES.CSV pour renseigner la nouvelle table 'resp_pers' avec les nom, prénom, téléphone,... des responsables.

"; echo "\n"; if ($nb_reg_no3 != 0) { echo "

Lors de l'enregistrement des données de PERSONNES.CSV, il y a eu $nb_reg_no3 erreurs. Essayez de trouvez la cause de l'erreur.

\n"; } else { echo "

L'importation des personnes (responsables) dans la base GEPI a été effectuée avec succès (".$nb_record3." enregistrements au total).

\n"; } echo "

Afficher / Masquer les détails.

\n"; echo "


\n"; } } else if (trim($csv_file['name'])=='') { echo "

Aucun fichier PERSONNES.CSV n'a été sélectionné !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } else { echo "

Le fichier sélectionné n'est pas valide !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } $csv_file = isset($_FILES["resp_file"]) ? $_FILES["resp_file"] : NULL; //echo strtoupper($csv_file['name'])."
"; if(my_strtoupper($csv_file['name']) == "RESPONSABLES.CSV") { $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier RESPONSABLES.CSV.

"; echo "

Cliquer ici pour recommencer !

"; } else{ echo "

Lecture du fichier RESPONSABLES.CSV pour renseigner les associations eleves/responsables.

\n"; echo "\n"; if ($nb_reg_no1 != 0) { echo "

Lors de l'enregistrement des données de RESPONSABLES.CSV, il y a eu $nb_reg_no1 erreur(s). Essayez de trouvez la cause de l'erreur.

\n"; } else { echo "

L'importation des relations eleves/responsables dans la base GEPI a été effectuée avec succès (".$nb_record1." enregistrements au total).

\n"; } echo "

Afficher / Masquer les détails.

\n"; echo "


\n"; } } else if (trim($csv_file['name'])=='') { echo "

Aucun fichier RESPONSABLES.CSV n'a été sélectionné !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } else { echo "

Le fichier sélectionné n'est pas valide !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } $csv_file = isset($_FILES["adr_file"]) ? $_FILES["adr_file"] : NULL; //echo strtoupper($csv_file['name'])."
"; if(my_strtoupper($csv_file['name']) == "ADRESSES.CSV") { $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier ADRESSES.CSV.

"; echo "

Cliquer ici pour recommencer !

"; } else{ echo "

Lecture du fichier ADRESSES.CSV

"; echo "\n"; if ($nb_reg_no2 != 0) { echo "

Lors de l'enregistrement des données de ADRESSES.CSV, il y a eu $nb_reg_no2 erreur(s). Essayez de trouvez la cause de l'erreur.

\n"; } else { echo "

L'importation des adresses de responsables dans la base GEPI a été effectuée avec succès (".$nb_record2." enregistrements au total).

\n"; } echo "

Afficher / Masquer les détails.

\n"; echo "


\n"; if(count($tab_elenoet_non_trouves)>0){ echo "

ATTENTION

\n"; echo "

Le fichier 'eleves.csv' fourni contenait des ELENOET d'élèves non présents dans la table 'eleves' de votre base GEPI.
Ces nouveaux élèves inscrits dans Sconet n'ont pas été créés.
Seule la conversion des données existantes a été effectuée.
Vous pourrez procéder à un nouvel import par mise à jour pour créer ces élèves.

\n"; echo "


\n"; echo "

Récapitulatif des ELENOET non trouvés dans votre table 'eleves':
\n"; echo "$tab_elenoet_non_trouves[0]"; for($i=1;$i\n"; } } } else if (trim($csv_file['name'])=='') { echo "

Aucun fichier ADRESSES.CSV n'a été sélectionné !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } else { echo "

Le fichier sélectionné n'est pas valide !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } if(($nb_reg_no1==0)&&($nb_reg_no2==0)&&($nb_reg_no3==0)&&($erreur==0)){ echo "

L'opération s'est correctement déroulée.

\n"; echo "

Retourner à l'accueil

\n"; // On renseigne le témoin de mise à jour effectuée: saveSetting("conv_new_resp_table", 1); saveSetting("import_maj_xml_sconet", 1); } else{ echo "

Des erreurs se sont produites.

\n"; } echo "


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