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(); } // INSERT INTO `droits` VALUES ('/responsables/maj_import1.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour Sconet', ''); 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 ***************** echo "

"; echo "Retour Retour"; echo "

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

Import/mise à jour des élèves

\n"; echo "

Cette page est destinée à effectuer l'import des élèves et responsables d'après les modifications et ajouts effectués sur Sconet.

\n"; echo "

Vous allez importer les fichiers CSV (générés à partir des exports XML de Sconet).
\nLes fichiers requis au cours de la procédure sont dans un premier temps ELEVES.CSV, puis les deux fichiers PERSONNES.CSV et ADRESSES.CSV, et enfin le fichier RESPONSABLES.CSV

\n"; echo "
\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 "

Il est recommandé d'importer les informations élèves et de ne passer qu'ensuite à l'import des informations responsables.
\n"; echo "Passer néanmoins à la page d'importation des responsables

"; } else{ check_token(); //if(!isset($_POST['step'])){ switch($step){ case 1: // Affichage des informations élèves echo "

Import/mise à jour des élèves

\n"; echo "

Dans le tableau, les classes ne sont mentionnées qu'à titre informatif.
L'affectation dans les classes n'est pas (encore) assurée depuis cette page.

\n"; echo "
\n"; echo add_token_field(); //echo "\n"; echo "\n"; $csv_file = isset($_FILES["ele_file"]) ? $_FILES["ele_file"] : NULL; if(mb_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{ //$tabchamps = array("ELENOET","ELE_ID"); $tabchamps = array("ELENOM","ELEPRE","ELESEXE","ELEDATNAIS","ELENOET","ELE_ID","ELEDOUBL","ELENONAT","ELEREG","DIVCOD","ETOCOD_EP", "ELEOPT1", "ELEOPT2", "ELEOPT3", "ELEOPT4", "ELEOPT5", "ELEOPT6", "ELEOPT7", "ELEOPT8", "ELEOPT9", "ELEOPT10", "ELEOPT11", "ELEOPT12"); $erreur=0; $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 "\n"; echo "Enregistrer
\n"; echo ""; echo "Tout cocher"; echo " / "; echo ""; echo "Tout décocher"; echo "\n"; echo "Statut\n"; echo "elenoet\n"; echo "ele_id\n"; echo "Nom\n"; echo "Prénom\n"; echo "Sexe\n"; echo "Naissance\n"; echo "Doublement\n"; echo "N°NAT\n"; echo "Régime\n"; echo "Classe\n"; echo "\n"; $cpt_modif=0; $cpt_new=0; $alt=1; for($k = 1; ($k < $nblignes+1); $k++){ $temoin_modif=""; $temoin_nouveau=""; if(!feof($fp)){ //========================= // MODIF: boireaus 20071024 //$ligne = fgets($fp, 4096); $ligne = my_ereg_replace('"','',fgets($fp, 4096)); //========================= if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); $affiche=array(); for($i = 0; $i < count($tabchamps); $i++) { $affiche[$i] = traitement_magic_quotes(corriger_caracteres(dbase_filter(trim($tabligne[$tabindice[$i]])))); } //$sql="SELECT * FROM eleves WHERE elenoet='$affiche[4]'"; $sql="SELECT * FROM eleves WHERE (elenoet='$affiche[4]' OR elenoet='".sprintf("%05d",$affiche[4])."')"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)>0){ //$sql="UPDATE eleves SET ele_id='$affiche[5]' WHERE elenoet='$affiche[4]'"; // FAUT-IL FAIRE LES UPDATE SANS CONTRÔLE OU SIGNALER LES MODIFS SEULEMENT... //$sql="UPDATE eleves SET ele_id='$affiche[5]' WHERE elenoet='$affiche[4]'"; // STOCKER DANS UN TABLEAU ET AFFICHER SEULEMENT LES MODIFS DANS UN PREMIER TEMPS // CASES A COCHER POUR VALIDER //$eleves[$cpt] $lig_ele=mysqli_fetch_object($res1); //$tabtmp=explode("/",$affiche[3]); // $lig_ele->naissance!=$tabtmp[2]."-".$tabtmp[1]."-".$tabtmp[0])|| /* if(($lig_ele->nom!=$affiche[0])|| ($lig_ele->prenom!=$affiche[1])|| ($lig_ele->sexe!=$affiche[2])|| ($lig_ele->naissance!=mb_substr($affiche[3],0,4)."-".mb_substr($affiche[3],4,2)."-".mb_substr($affiche[3],6,2))){ */ // On ne retient que le premier prénom: $tab_prenom = explode(" ",$affiche[1]); $affiche[1] = traitement_magic_quotes(corriger_caracteres($tab_prenom[0])); $new_date=mb_substr($affiche[3],0,4)."-".mb_substr($affiche[3],4,2)."-".mb_substr($affiche[3],6,2); // Des stripslashes() pour les apostrophes dans les noms if((stripslashes($lig_ele->nom)!=stripslashes($affiche[0]))|| (stripslashes($lig_ele->prenom)!=stripslashes($affiche[1]))|| ($lig_ele->sexe!=$affiche[2])|| ($lig_ele->naissance!=$new_date)|| ($lig_ele->no_gep!=$affiche[7])){ $temoin_modif='y'; $cpt_modif++; } else{ if($lig_ele->ele_id!=$affiche[5]){ // GROS PROBLEME SI LES elenoet et ele_id ne sont plus des clés primaires } } // TESTER DANS j_eleves_regime pour doublant et regime /* table -> $affiche[] ext. -> 0 d/p -> 2 if ($reg_regime == "0") {$regime = "ext.";} if ($reg_regime == "2") {$regime = "d/p";} if ($reg_regime == "3") {$regime = "int.";} if ($reg_regime == "4") {$regime = "i-e";} R pour doublant -> O - pour doublant -> N */ $sql="SELECT * FROM j_eleves_regime WHERE (login='$lig_ele->login')"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)>0){ $tmp_regime=""; $lig2=mysqli_fetch_object($res2); //========================= // MODIF: boireaus 20071024 $tmp_new_regime=traite_regime_sconet($affiche[8]); //switch($affiche[8]){ /* switch($tmp_new_regime){ case 0: $tmp_regime="ext."; break; case 2: $tmp_regime="d/p"; break; case 3: $tmp_regime="int."; break; case 4: $tmp_regime="i-e"; break; } */ $temoin_pb_regime_inhabituel="n"; if("$tmp_new_regime"=="ERR"){ $tmp_regime="d/p"; $temoin_pb_regime_inhabituel="y"; } else{ $tmp_regime=$tmp_new_regime; } //========================= if($tmp_regime!=$lig2->regime){ $temoin_modif='y'; $cpt_modif++; } $tmp_doublant=""; switch($affiche[6]){ case "O": $tmp_doublant="R"; break; case "N": $tmp_doublant="-"; break; } if($tmp_doublant!=$lig2->doublant){ $temoin_modif='y'; $cpt_modif++; } } else{ // Apparemment, aucune info n'est encore saisie dans j_eleves_regime } // Rechercher s'il y a un changement de classe? } else{ $temoin_nouveau='y'; $cpt_new++; // C'est un nouvel arrivant... // AFFICHER ET STOCKER DANS UN TABLEAU... // SUR VALIDATION, INSéRER DANS 'eleves' ET PAR LA SUITE AFFECTER DANS DES CLASSES POUR TELLES ET TELLES PERIODES ET COCHER LES OPTIONS POUR TELLES ET TELLES PERIODES. // TRANSMETTRE VIA UN FORMULAIRE POUR PROCEDER AUX AJOUTS, ET POUR LES eleves ENCHAINER AVEC LE CHOIX DE CLASSE ET D'OPTIONS } if($temoin_modif=='y'){ //echo "\n"; //echo "\n"; $alt=$alt*(-1); echo "\n"; /* echo "$affiche[4]\n"; echo "$affiche[5]\n"; echo "$affiche[0]\n"; echo "$affiche[1]\n"; echo "$affiche[2]\n"; echo "$affiche[3]\n"; echo "$affiche[6]\n"; echo "$affiche[7]\n"; echo "$affiche[8]\n"; echo "$affiche[9]\n"; */ /* echo "$lig_ele->elenoet -> $affiche[4]\n"; echo "$lig_ele->ele_id -> $affiche[5]\n"; echo "$lig_ele->nom -> $affiche[0]\n"; echo "$lig_ele->prenom -> $affiche[1]\n"; echo "$lig_ele->sexe -> $affiche[2]\n"; echo "$lig_ele->naissance -> $affiche[3]\n"; echo "$affiche[6]\n"; echo "$affiche[7]\n"; echo "$affiche[8]\n"; echo "$affiche[9]\n"; */ echo "\n"; echo "Modif\n"; // ELENOET: echo ""; echo "$affiche[4]"; echo "\n"; echo "\n"; // ELE_ID: echo ""; echo "$affiche[5]"; echo "\n"; echo "\n"; echo "\n"; echo ""; if($lig_ele->nom!=''){ echo stripslashes($lig_ele->nom)." ->\n"; } } else{ echo "'>"; } echo stripslashes($affiche[0]); echo "\n"; echo "\n"; echo ""; if($lig_ele->prenom!=''){ echo stripslashes($lig_ele->prenom)." ->\n"; } } else{ echo "'>"; } echo stripslashes($affiche[1]); echo "\n"; echo "\n"; echo ""; if($lig_ele->sexe!=''){ echo "$lig_ele->sexe ->\n"; } } else{ echo "'>"; } echo "$affiche[2]"; echo "\n"; echo "\n"; echo ""; if($lig_ele->naissance!=''){ echo "$lig_ele->naissance ->\n"; } } else{ echo "'>"; } echo "$new_date"; echo "\n"; echo "\n"; //echo "$affiche[6]\n"; echo ""; if($lig2->doublant!=''){ echo "$lig2->doublant ->\n"; } } else{ echo "'>"; } //echo "$affiche[6]"; echo "$tmp_doublant"; echo "\n"; echo "\n"; echo ""; if($lig_ele->no_gep!=''){ echo "$lig_ele->no_gep ->\n"; } } else{ echo "'>"; } echo "$affiche[7]"; echo "\n"; echo "\n"; //echo "$affiche[8]\n"; echo ""; if($lig2->regime!=''){ echo "$lig2->regime ->\n"; } } else{ echo "'>"; } //echo "$affiche[8]"; if($temoin_pb_regime_inhabituel=="y"){ echo "$tmp_regime"; } else{ echo "$tmp_regime"; } //echo " DEBUG: ".$affiche[8]." "; echo "\n"; echo "\n"; //echo ""; echo ""; echo "$affiche[9]"; echo "\n"; echo "\n"; } elseif($temoin_nouveau=='y'){ //echo "\n"; //echo "\n"; $alt=$alt*(-1); echo "\n"; echo "\n"; echo "Nouveau\n"; /* echo "$affiche[4]\n"; echo "$affiche[5]\n"; echo "$affiche[0]\n"; echo "$affiche[1]\n"; echo "$affiche[2]\n"; echo "$affiche[3]\n"; echo "$affiche[6]\n"; echo "$affiche[7]\n"; echo "$affiche[8]\n"; echo "$affiche[9]\n"; */ echo ""; echo "$affiche[4]"; echo "\n"; echo "\n"; echo ""; echo "$affiche[5]"; echo "\n"; echo "\n"; echo ""; echo stripslashes($affiche[0]); echo "\n"; echo "\n"; echo ""; echo stripslashes($affiche[1]); echo "\n"; echo "\n"; echo ""; echo "$affiche[2]"; echo "\n"; echo "\n"; $new_date=mb_substr($affiche[3],0,4)."-".mb_substr($affiche[3],4,2)."-".mb_substr($affiche[3],6,2); echo ""; echo "$new_date"; echo "\n"; echo "\n"; $tmp_doublant=""; switch($affiche[6]){ case "O": $tmp_doublant="R"; break; case "N": $tmp_doublant="-"; break; } echo ""; echo "$tmp_doublant"; echo "\n"; echo "\n"; echo ""; echo "$affiche[7]"; echo "\n"; echo "\n"; $tmp_regime=""; //========================= // MODIF: boireaus 20071024 $tmp_new_regime=traite_regime_sconet($affiche[8]); //switch($affiche[8]){ /* switch($tmp_new_regime){ case 0: $tmp_regime="ext."; break; case 2: $tmp_regime="d/p"; break; case 3: $tmp_regime="int."; break; case 4: $tmp_regime="i-e"; break; } */ if("$tmp_new_regime"=="ERR"){ $tmp_regime="d/p"; echo ""; echo "$tmp_regime"; //echo " DEBUG: ".$affiche[8]." "; echo "\n"; } else{ $tmp_regime=$tmp_new_regime; echo ""; echo "$tmp_regime"; //echo " DEBUG: ".$affiche[8]." "; echo "\n"; } //========================= echo "\n"; echo ""; echo "$affiche[9]"; echo "\n"; echo "\n"; } $cpt++; } } } echo "\n"; echo "

On compte $cpt_modif champs modifiés et $cpt_new nouveaux élèves.

\n"; fclose($fp); } } else{ echo "

Le nom du fichier proposé ne coïncide pas avec ce qui est attendu: ELEVES.CSV

\n"; echo "

Retour au choix du fichier ELEVES.CSV

\n"; echo "\n"; echo "\n"; echo "\n"; die(); } echo "\n"; //echo "\n"; echo "

\n"; echo "\n"; break; case 2: echo "

Import/mise à jour des élèves

\n"; $erreur=0; if(isset($modif)){ echo "

Mise à jour des informations pour \n"; for($i=0;$i\n"; $cpt=$modif[$i]; $elenoet=$_POST['modif_'.$cpt.'_elenoet']; $ele_id=$_POST['modif_'.$cpt.'_eleid']; $login_eleve=$_POST['modif_'.$cpt.'_login']; $nom=traitement_magic_quotes(corriger_caracteres($_POST['modif_'.$cpt.'_nom'])); $prenom=traitement_magic_quotes(corriger_caracteres($_POST['modif_'.$cpt.'_prenom'])); $sexe=$_POST['modif_'.$cpt.'_sexe']; $naissance=$_POST['modif_'.$cpt.'_naissance']; $doublant=$_POST['modif_'.$cpt.'_doublant']; $regime=$_POST['modif_'.$cpt.'_regime']; $nonat=$_POST['modif_'.$cpt.'_nonat']; //echo "cpt=$cpt
\n"; //echo "nom=$nom
\n"; if($i>0){echo ", ";} echo stripslashes(stripslashes($nom))." ".stripslashes(stripslashes($prenom)); // FAUT-IL UN stripslashes sur les noms pour les apostrophes? // Dans le champ de formulaire soumis, on a des échappements: // Ex.: L\'HERNAULT // Après soumission du formulaire, ce qui est reçu, c'est L\\\'HERNAULT // Est-ce un effet de magic_quotes_gpc? // Puis-je appliquer deux stripslashes() sans risque? //$sql="UPDATE eleves SET nom='".$nom."', // prenom='".$prenom."', $sql="UPDATE eleves SET nom='".stripslashes($nom)."', prenom='".stripslashes($prenom)."', sexe='$sexe', naissance='$naissance', no_gep='$nonat' WHERE (ele_id='$ele_id')"; // WHERE elenoet='$elenoet'"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); //echo "

$sql

\n"; if(!$res1){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } $sql="UPDATE j_eleves_regime SET doublant='$doublant', regime='$regime' WHERE (login='$login_eleve')"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res2){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } //echo "

\n"; } echo "

\n"; } if(isset($new)){ echo "

Insertion de \n"; for($i=0;$i\n"; $cpt=$new[$i]; $elenoet=$_POST['new_'.$cpt.'_elenoet']; $ele_id=$_POST['new_'.$cpt.'_eleid']; //$ele_login=$_POST['new_'.$cpt.'_login']; $nom=traitement_magic_quotes(corriger_caracteres($_POST['new_'.$cpt.'_nom'])); $prenom=traitement_magic_quotes(corriger_caracteres($_POST['new_'.$cpt.'_prenom'])); $sexe=$_POST['new_'.$cpt.'_sexe']; $naissance=$_POST['new_'.$cpt.'_naissance']; $doublant=$_POST['new_'.$cpt.'_doublant']; $regime=$_POST['new_'.$cpt.'_regime']; $nonat=$_POST['new_'.$cpt.'_nonat']; // Générer un login... $temp1 = mb_strtoupper($nom); $temp1 = mb_strtr($temp1, " '-", "___"); $temp1 = mb_substr($temp1,0,7); $temp2 = mb_strtoupper($prenom); $temp2 = mb_strtr($temp2, " '-", "___"); $temp2 = mb_substr($temp2,0,1); $login_eleve = $temp1.'_'.$temp2; // On teste l'unicité du login que l'on vient de créer $k = 2; $test_unicite = 'no'; $temp = $login_eleve; while ($test_unicite != 'yes') { //$test_unicite = test_unique_e_login($login_eleve,$i); $test_unicite = test_unique_login($login_eleve); if ($test_unicite != 'yes') { $login_eleve = $temp.$k; $k++; } } if($i>0){echo ", ";} echo stripslashes(stripslashes($nom))." ".stripslashes(stripslashes($prenom)); // FAUT-IL UN stripslashes sur les noms pour les apostrophes? //$sql="INSERT INTO eleves SET nom='".$nom."', // prenom='".$prenom."', $sql="INSERT INTO eleves SET nom='".stripslashes($nom)."', prenom='".stripslashes($prenom)."', sexe='$sexe', naissance='$naissance', no_gep='$nonat', login='$login_eleve', elenoet='$elenoet', ele_id='$ele_id'"; //, login='$login_eleve' //echo "$sql
\n"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res1){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } else{ $sql="SELECT 1=1 FROM j_eleves_regime WHERE (login='$login_eleve')"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)==0){ $sql="INSERT INTO j_eleves_regime SET doublant='$doublant', regime='$regime', login='$login_eleve'"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } else{ $sql="UPDATE j_eleves_regime SET doublant='$doublant', regime='$regime', WHERE (login='$login_eleve')"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } } } echo "

\n"; } switch($erreur){ case 0: echo "

Passer à l'étape d'import/mise à jour des personnes (responsables) et adresses.

\n"; break; case 1: echo "

Une erreur s'est produite.
\nVous devriez en chercher la cause avant de passer à l'étape d'import/mise à jour des personnes (responsables) et adresses.

\n"; break; default: echo "

$erreur erreurs se sont produites.
\nVous devriez en chercher la cause avant de passer à l'étape d'import/mise à jour des personnes (responsables) et adresses.

\n"; break; } break; case 3: echo "

Import/mise à jour des personnes (responsables) et adresses

\n"; //echo "

Vous allez importer les fichiers CSV (générés à partir des exports XML de Sconet).
\nLes fichiers requis ici sont les trois fichiers PERSONNES.CSV, RESPONSABLES.CSV et ADRESSES.CSV

\n"; echo "

Vous allez importer les fichiers CSV (générés à partir des exports XML de Sconet).
\nLes fichiers requis ici sont les deux fichiers PERSONNES.CSV et ADRESSES.CSV

\n"; echo "
\n"; echo add_token_field(); //echo "\n"; echo "\n"; //echo "\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 "

Il est recommandé d'importer les informations élèves et de ne passer qu'ensuite à l'import des associations responsables/élèves.
\n"; echo "Passer néanmoins à la page d'importation des associations responsables/élèves

"; break; case 4: // Affichage des informations echo "

Import/mise à jour des personnes (responsables) et adresses

\n"; echo "
\n"; echo add_token_field(); //echo "\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["adr_file"]) ? $_FILES["adr_file"] : NULL; if(mb_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{ //$cpt=0; $adresse=array(); $adr_new=array(); $adr_modif=array(); // on constitue le tableau des champs à extraire $tabchamps=array("adr_id","adr1","adr2","adr3","adr4","cp","pays","commune"); $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"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)==0){ $sql="SELECT * FROM resp_pers WHERE (adr_id='$affiche[0]')"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)==0){ $adr_new[]=$affiche[0]; $temoin_nouvelle_adresse="y"; //echo "Ajout de l'adresse n°$affiche[0]
\n"; } } if($temoin_nouvelle_adresse=="y"){ $adr_new[]=$affiche[0]; //echo "Ajout de l'adresse n°$affiche[0]
\n"; } else{ $lig=mysqli_fetch_object($res1); if((stripslashes($lig->adr1)!=stripslashes($affiche[1]))|| (stripslashes($lig->adr2)!=stripslashes($affiche[2]))|| (stripslashes($lig->adr3)!=stripslashes($affiche[3]))|| (stripslashes($lig->adr4)!=stripslashes($affiche[4]))|| (stripslashes($lig->cp)!=stripslashes($affiche[5]))|| (stripslashes($lig->pays)!=stripslashes($affiche[6]))|| (stripslashes($lig->commune)!=stripslashes($affiche[7]))){ $adr_modif[]=$affiche[0]; //echo "Modification de l'adresse n°$affiche[0]
\n"; } } } } } //dbase_close($fp); fclose($fp); /* if ($nb_reg_no2 != 0) { echo "

Lors de l'enregistrement des données de ADRESSES.CSV, il y a eu $nb_reg_no2 erreurs. 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"; } */ } } 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"; echo "\n\n"; die(); } else { echo "

Le(s) fichier(s) sélectionné(s) n'est(ne sont) pas valide(s) !
\n"; echo "Contrôlez que le(s) nom(s) de fichier(s) coïncide(nt) avec ce qui est réclamé.
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; echo "\n\n"; die(); } $csv_file = isset($_FILES["pers_file"]) ? $_FILES["pers_file"] : NULL; if(mb_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{ $personne=array(); $pers_new=array(); $pers_modif=array(); // on constitue le tableau des champs à extraire //$tabchamps=array("pers_id","nom","prenom","tel_pers","tel_port","tel_prof","mel","adr_id"); $tabchamps=array("pers_id","nom","prenom","civilite","tel_pers","tel_port","tel_prof","mel","adr_id"); //echo "\$tabchamps=array(\"pers_id\",\"nom\",\"prenom\",\"civilite\",\"tel_pers\",\"tel_port\",\"tel_prof\",\"mel\",\"adr_id\");
\n"; $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"; } $nbchamps=sizeof($en_tete); } $nblignes++; } fclose ($fp); // On range dans tabindice les indices des champs retenus $cpt_tmp=0; for ($k = 0; $k < count($tabchamps); $k++) { for ($i = 0; $i < count($en_tete); $i++) { if (trim($en_tete[$i]) == $tabchamps[$k]) { //if (trim($en_tete[$i]) == trim($tabchamps[$k])) { //$tabindice[] = $i; //echo "\$tabindice[] = $i
\n"; $tabindice[$cpt_tmp]=$i; //echo "\$tabindice[$cpt_tmp]=$i
\n"; $cpt_tmp++; } } } //========================= $fp=fopen($csv_file['tmp_name'],"r"); // On lit une ligne pour passer la ligne d'entête: $ligne = fgets($fp, 4096); //========================= $nb_reg_no3=0; $nb_record3=0; for($k = 1; ($k < $nblignes+1); $k++){ //$ligne = dbase_get_record($fp,$k); if(!feof($fp)){ //========================= // MODIF: boireaus 20071024 //$ligne = fgets($fp, 4096); $ligne = my_ereg_replace('"','',fgets($fp, 4096)); //========================= if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); for($i = 0; $i < count($tabchamps); $i++) { //$ind = $tabindice[$i]; $affiche[$i] = traitement_magic_quotes(corriger_caracteres(dbase_filter(trim($tabligne[$tabindice[$i]])))); //echo "\$affiche[$i]=traitement_magic_quotes(corriger_caracteres(dbase_filter(trim(\$tabligne[\$tabindice[$i]]))))=traitement_magic_quotes(corriger_caracteres(dbase_filter(trim(\$tabligne[$tabindice[$i]]))))=traitement_magic_quotes(corriger_caracteres(dbase_filter(trim(".$tabligne[$tabindice[$i]]."))));
\n"; } // Stockage des données: $personne[$affiche[0]]=array(); for($i=1;$i\n"; } $sql="SELECT * FROM resp_pers WHERE (pers_id='$affiche[0]')"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)==0){ $pers_new[]=$affiche[0]; //echo "Ajout de pers_id=$affiche[0] pour $affiche[1] $affiche[2]
\n"; } else{ $lig=mysqli_fetch_object($res1); if((stripslashes($lig->nom)!=stripslashes($affiche[1]))|| (stripslashes($lig->prenom)!=stripslashes($affiche[2]))|| (mb_strtolower(stripslashes($lig->civilite))!=(mb_strtolower(stripslashes($affiche[3]))))|| (stripslashes($lig->tel_pers)!=stripslashes($affiche[4]))|| (stripslashes($lig->tel_port)!=stripslashes($affiche[5]))|| (stripslashes($lig->tel_prof)!=stripslashes($affiche[6]))|| (stripslashes($lig->mel)!=stripslashes($affiche[7]))|| (stripslashes($lig->adr_id)!=stripslashes($affiche[8]))) { $pers_modif[]=$affiche[0]; //echo "Modification de pers_id=$affiche[0] pour $affiche[1] $affiche[2]
\n"; } } } } } //dbase_close($fp); fclose($fp); //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"; } */ } } 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"; echo "\n\n"; die(); } else { echo "

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

"; echo "Cliquer ici pour recommencer !

\n"; echo "\n\n"; die(); } // *************************************** /* // DEBUG: echo "count(\$adr_modif)=".count($adr_modif)."
"; echo "count(\$adr_new)=".count($adr_new)."
"; echo "count(\$pers_modif)=".count($pers_modif)."
"; echo "count(\$pers_new)=".count($pers_new)."
"; */ // Recherche des personnes sans modif dans personnes.csv, // mais avec modif de l'adresse pour l'ajouter au tableau $pers_modif for($i=0;$ipers_id; $personne[$pers_id]=array(); $pers_modif[]=$pers_id; $personne[$pers_id]["nom"]=$lig1->nom; $personne[$pers_id]["prenom"]=$lig1->prenom; $personne[$pers_id]["civilite"]=ucfirst(mb_strtolower($lig1->civilite)); $personne[$pers_id]["tel_pers"]=$lig1->tel_pers; $personne[$pers_id]["tel_port"]=$lig1->tel_port; $personne[$pers_id]["tel_prof"]=$lig1->tel_prof; $personne[$pers_id]["mel"]=$lig1->mel; $personne[$pers_id]["adr_id"]=$adr_modif[$i]; } } } } // *************************************** // On passe à l'affichage du tableau 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"; echo "\n"; echo "\n"; //echo "\n"; //echo "\n"; //echo "\n"; echo "\n"; $alt=1; $cpt=0; for($i=0;$i\n"; $alt=$alt*(-1); echo "\n"; //echo "\n"; echo "\n"; echo "\n"; echo "\n"; $sql="SELECT * FROM resp_pers WHERE (pers_id='$pers_id')"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); $lig1=mysqli_fetch_object($res1); echo "\n"; echo "\n"; //====================================== echo "\n"; //====================================== echo "\n"; // Adresse echo "\n"; /* echo "\n"; echo "\n"; echo "\n"; */ echo "\n"; $cpt++; } for($i=0;$i\n"; $alt=$alt*(-1); echo "\n"; //echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //====================================== echo "\n"; //====================================== echo "\n"; // Adresse echo "\n"; /* echo "\n"; echo "\n"; echo "\n"; */ echo "\n"; $cpt++; } echo "
EnregistrerEnregistrer
\n"; echo ""; echo "Tout cocher"; echo " / "; echo ""; echo "Tout décocher"; echo "
 ResponsableAdresseElève
pers_idNomPrénomCivilitéContactele_idNomPrénom
"; //echo "Modif$pers_id"; echo "\n"; //echo "\n"; echo ""; if($lig1->nom!=''){ echo stripslashes($lig1->nom)." ->\n"; } } else{ echo "'>"; } echo stripslashes($personne[$pers_id]["nom"]); echo "\n"; echo ""; if($lig1->prenom!=''){ echo stripslashes($lig1->prenom)." ->\n"; } } else{ echo "'>"; } echo stripslashes($personne[$pers_id]["prenom"]); echo "\n"; echo ""; if($lig1->civilite!=''){ echo stripslashes($lig1->civilite)." ->\n"; } } else{ echo "'>"; } //echo stripslashes($personne[$pers_id]["civilite"]); echo ucfirst(mb_strtolower(stripslashes($personne[$pers_id]["civilite"]))); 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"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Tel"; if($lig1->tel_pers!=''){ echo $lig1->tel_pers." ->\n"; } } else{ echo "'>"; } } else{ echo "'>"; } echo $personne[$pers_id]["tel_pers"]; echo "\n"; echo "
TPo"; if($lig1->tel_port!=''){ echo $lig1->tel_port." ->\n"; } } else{ echo "'>"; } } else{ echo "'>"; } echo $personne[$pers_id]["tel_port"]; echo "\n"; echo "
TPr"; if($lig1->tel_prof!=''){ echo $lig1->tel_prof." ->\n"; } } else{ echo "'>"; } } else{ echo "'>"; } echo $personne[$pers_id]["tel_prof"]; echo "\n"; echo "
mel"; if($lig1->mel!=''){ echo $lig1->mel." ->\n"; } } else{ echo "'>"; } } else{ echo "'>"; } echo $personne[$pers_id]["mel"]; echo "\n"; echo "
\n"; echo "
"; if(($lig2->adr1!="")||($lig2->adr2!="")||($lig2->adr3!="")||($lig2->adr4!="")||($lig2->cp!="")||($lig2->commune!="")||($lig2->pays!="")){ $chaine_adr=""; if($lig2->adr1!=""){ //echo "$lig2->adr1, "; $chaine_adr.=stripslashes("$lig2->adr1, "); } if($lig2->adr2!=""){ //echo "$lig2->adr2, "; $chaine_adr.=stripslashes("$lig2->adr2, "); } if($lig2->adr3!=""){ //echo "$lig2->adr3, "; $chaine_adr.=stripslashes("$lig2->adr3, "); } if($lig2->adr4!=""){ //echo "$lig2->adr4, "; $chaine_adr.=stripslashes("$lig2->adr4, "); } if($lig2->cp!=""){ //echo "$lig2->cp, "; $chaine_adr.=stripslashes("$lig2->cp, "); } if($lig2->commune!=""){ //echo "$lig2->commune, "; $chaine_adr.=stripslashes("$lig2->commune, "); } if($lig2->pays!=""){ //echo "$lig2->pays"; $chaine_adr.=stripslashes("$lig2->pays"); } echo $chaine_adr; echo " ->
\n"; } $tabadr=array("adr_id","adr1","adr2","adr3","adr4","cp","pays","commune"); $temoin_non_vide=""; for($k=1;$k\n"; //echo "\n"; } if($temoin_non_vide=="oui"){ if($adresse[$adr_id]["$tabadr[1]"]!=""){echo stripslashes($adresse[$adr_id]["$tabadr[1]"]);} for($k=2;$k"; if(($lig2->adr1!="")||($lig2->adr2!="")||($lig2->adr3!="")||($lig2->adr4!="")||($lig2->cp!="")||($lig2->commune!="")||($lig2->pays!="")){ $chaine_adr=""; if($lig2->adr1!=""){ //echo "$lig2->adr1, "; $chaine_adr.=stripslashes("$lig2->adr1, "); } if($lig2->adr2!=""){ //echo "$lig2->adr2, "; $chaine_adr.=stripslashes("$lig2->adr2, "); } if($lig2->adr3!=""){ //echo "$lig2->adr3, "; $chaine_adr.=stripslashes("$lig2->adr3, "); } if($lig2->adr4!=""){ //echo "$lig2->adr4, "; $chaine_adr.=stripslashes("$lig2->adr4, "); } if($lig2->cp!=""){ //echo "$lig2->cp, "; $chaine_adr.=stripslashes("$lig2->cp, "); } if($lig2->commune!=""){ //echo "$lig2->commune, "; $chaine_adr.=stripslashes("$lig2->commune, "); } if($lig2->pays!=""){ //echo "$lig2->pays"; $chaine_adr.=stripslashes("$lig2->pays"); } echo $chaine_adr; } //echo "TEMOIN 0:"; } //echo "$sql"; //echo "TEMOIN:"; echo "\n"; //echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "
"; //echo "Nouveau$pers_id"; echo "\n"; echo ""; echo stripslashes($personne[$pers_id]["nom"]); echo "\n"; echo ""; echo stripslashes($personne[$pers_id]["prenom"]); echo "\n"; echo "\n"; echo ucfirst(mb_strtolower(stripslashes($personne[$pers_id]["civilite"]))); 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"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Tel"; echo $personne[$pers_id]["tel_pers"]; echo "\n"; echo "
TPo\n"; echo $personne[$pers_id]["tel_port"]; echo "\n"; echo "
TPr\n"; echo $personne[$pers_id]["tel_prof"]; echo "\n"; echo "
mel\n"; echo $personne[$pers_id]["mel"]; echo "\n"; echo "
\n"; echo "
0){ $lig2=mysqli_fetch_object($res2); } if((in_array($personne[$pers_id]["adr_id"],$adr_modif))||(in_array($personne[$pers_id]["adr_id"],$adr_new))){ if(isset($lig2)){ echo " background-color:lightgreen;'>"; if(($lig2->adr1!="")||($lig2->adr2!="")||($lig2->adr3!="")||($lig2->adr4!="")||($lig2->cp!="")||($lig2->commune!="")||($lig2->pays!="")){ // Normalement, il ne devrait pas y avoir d'antislashes dans la BDD. $chaine_adr=""; if($lig2->adr1!=""){ //echo "$lig2->adr1, "; $chaine_adr.=stripslashes("$lig2->adr1, "); } if($lig2->adr2!=""){ //echo "$lig2->adr2, "; $chaine_adr.=stripslashes("$lig2->adr2, "); } if($lig2->adr3!=""){ //echo "$lig2->adr3, "; $chaine_adr.=stripslashes("$lig2->adr3, "); } if($lig2->adr4!=""){ //echo "$lig2->adr4, "; $chaine_adr.=stripslashes("$lig2->adr4, "); } if($lig2->cp!=""){ //echo "$lig2->cp, "; $chaine_adr.=stripslashes("$lig2->cp, "); } if($lig2->commune!=""){ //echo "$lig2->commune, "; $chaine_adr.=stripslashes("$lig2->commune, "); } if($lig2->pays!=""){ //echo "$lig2->pays"; $chaine_adr.=stripslashes("$lig2->pays"); } echo $chaine_adr; echo " ->
\n"; } } else{ echo "'>"; } $tabadr=array("adr_id","adr1","adr2","adr3","adr4","cp","pays","commune"); $temoin_non_vide=""; for($k=1;$k\n"; //echo "\n"; } if($temoin_non_vide=="oui"){ if($adresse[$adr_id]["$tabadr[1]"]!=""){echo stripslashes($adresse[$adr_id]["$tabadr[1]"]);} for($k=2;$k"; if(isset($lig2)){ if(($lig2->adr1!="")||($lig2->adr2!="")||($lig2->adr3!="")||($lig2->adr4!="")||($lig2->cp!="")||($lig2->commune!="")||($lig2->pays!="")){ // Normalement, il ne devrait pas y avoir d'antislashes dans la BDD. $chaine_adr=""; if($lig2->adr1!=""){ //echo "$lig2->adr1, "; $chaine_adr.=stripslashes("$lig2->adr1, "); } if($lig2->adr2!=""){ //echo "$lig2->adr2, "; $chaine_adr.=stripslashes("$lig2->adr2, "); } if($lig2->adr3!=""){ //echo "$lig2->adr3, "; $chaine_adr.=stripslashes("$lig2->adr3, "); } if($lig2->adr4!=""){ //echo "$lig2->adr4, "; $chaine_adr.=stripslashes("$lig2->adr4, "); } if($lig2->cp!=""){ //echo "$lig2->cp, "; $chaine_adr.=stripslashes("$lig2->cp, "); } if($lig2->commune!=""){ //echo "$lig2->commune, "; $chaine_adr.=stripslashes("$lig2->commune, "); } if($lig2->pays!=""){ //echo "$lig2->pays"; $chaine_adr.=stripslashes("$lig2->pays"); } echo $chaine_adr; } } } echo "\n"; //echo "\n"; echo "
"; echo ""; echo ""; echo "
\n"; echo "\n"; echo "

\n"; echo "\n"; break; case 5: // Import des informations personnes et adresses echo "

Import/mise à jour des personnes (responsables) et adresses

\n"; $erreur=0; if(isset($modif)){ echo "

Mise à jour des informations pour "; for($i=0;$i0){echo ", ";} //echo "$pers_id - $nom - $prenom
\n"; echo "$prenom $nom ($pers_id)\n"; $sql="UPDATE resp_pers SET nom='$nom', prenom='$prenom', civilite='$civilite', tel_pers='$tel_pers', tel_port='$tel_port', tel_prof='$tel_prof', mel='$mel', adr_id='$adr_id' WHERE (pers_id='$pers_id')"; //echo "$sql
\n"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res1){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } // Partie adresse (contrôler si c'est une modif ou un ajout) $modif_adresse=isset($_POST['modif_'.$cpt.'_adr1']) ? 1 : NULL; if(isset($modif_adresse)){ $adr1=$_POST['modif_'.$cpt.'_adr1']; $adr2=$_POST['modif_'.$cpt.'_adr2']; $adr3=$_POST['modif_'.$cpt.'_adr3']; $adr4=$_POST['modif_'.$cpt.'_adr4']; $cp=$_POST['modif_'.$cpt.'_cp']; $commune=$_POST['modif_'.$cpt.'_commune']; $pays=$_POST['modif_'.$cpt.'_pays']; $sql="SELECT 1=1 FROM resp_adr WHERE (adr_id='$adr_id')"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)==0){ $sql="INSERT INTO resp_adr SET adr_id='$adr_id', adr1='$adr1', adr2='$adr2', adr3='$adr3', adr4='$adr4', cp='$cp', commune='$commune', pays='$pays'"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } else{ $sql="UPDATE resp_adr SET adr1='$adr1', adr2='$adr2', adr3='$adr3', adr4='$adr4', cp='$cp', commune='$commune', pays='$pays' WHERE (adr_id='$adr_id')"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } } //echo "$pers_id - $nom - $prenom
\n"; } echo "

\n"; } if(isset($new)){ echo "

Insertion des informations pour "; for($i=0;$i0){echo ", ";} echo "$prenom $nom ($pers_id)\n"; $sql="INSERT INTO resp_pers SET pers_id='$pers_id', nom='$nom', prenom='$prenom', civilite='$civilite', tel_pers='$tel_pers', tel_port='$tel_port', tel_prof='$tel_prof', mel='$mel', adr_id='$adr_id'"; //echo "$sql
\n"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res1){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } // Partie adresse (contrôler si c'est une new ou un ajout) $new_adresse=isset($_POST['new_'.$cpt.'_adr1']) ? 1 : NULL; if(isset($new_adresse)){ $adr1=$_POST['new_'.$cpt.'_adr1']; $adr2=$_POST['new_'.$cpt.'_adr2']; $adr3=$_POST['new_'.$cpt.'_adr3']; $adr4=$_POST['new_'.$cpt.'_adr4']; $cp=$_POST['new_'.$cpt.'_cp']; $commune=$_POST['new_'.$cpt.'_commune']; $pays=$_POST['new_'.$cpt.'_pays']; $sql="SELECT 1=1 FROM resp_adr WHERE (adr_id='$adr_id')"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)==0){ $sql="INSERT INTO resp_adr SET adr_id='$adr_id', adr1='$adr1', adr2='$adr2', adr3='$adr3', adr4='$adr4', cp='$cp', commune='$commune', pays='$pays'"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } else{ $sql="UPDATE resp_adr SET adr1='$adr1', adr2='$adr2', adr3='$adr3', adr4='$adr4', cp='$cp', commune='$commune', pays='$pays' WHERE (adr_id='$adr_id')"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } } //echo "$pers_id - $nom - $prenom
\n"; } echo "

\n"; } //echo "

Passer à l'étape d'import/mise à jour des responsables.

\n"; switch($erreur){ case 0: echo "

Passer à l'étape d'import/mise à jour des responsables.

\n"; break; case 1: echo "

Une erreur s'est produite.
\nVous devriez en chercher la cause avant de passer à l'étape d'import/mise à jour des responsables.

\n"; break; default: echo "

$erreur erreurs se sont produites.
\nVous devriez en chercher la cause avant de passer à l'étape d'import/mise à jour des responsables.

\n"; break; } break; case 6: echo "

Import/mise à jour des responsables

\n"; // Formulaire pour fournir le fichier RESPONSABLES.CSV echo "
\n"; echo add_token_field(); //echo "\n"; echo "\n"; //echo "\n"; echo "

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

\n"; echo "
\n"; break; case 7: // Affichage des informations responsables echo "

Import/mise à jour des associations responsables/élèves

\n"; $cpt=0; $csv_file = isset($_FILES["resp_file"]) ? $_FILES["resp_file"] : NULL; if(mb_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 "
\n"; echo add_token_field(); //echo "\n"; echo "\n"; $responsable=array(); $resp_new=array(); $resp_modif=array(); // on constitue le tableau des champs à extraire $tabchamps=array("ele_id","pers_id","resp_legal","pers_contact"); $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 "\n"; echo "Enregistrer
\n"; echo ""; echo "Tout cocher"; echo " / "; echo ""; echo "Tout décocher"; echo "\n"; echo " \n"; echo "Responsable\n"; echo "Elève\n"; echo "\n"; echo "\n"; echo "pers_id\n"; echo "Nom\n"; echo "Prénom\n"; echo "resp_legal\n"; echo "pers_contact\n"; echo "Nom\n"; echo "Prénom\n"; echo "ele_id\n"; echo "\n"; $alt=1; $nb_reg_no1=0; $nb_record1=0; for($k = 1; ($k < $nblignes+1); $k++){ //$ligne = dbase_get_record($fp,$k); if(!feof($fp)){ $ligne = fgets($fp, 4096); if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); for($i = 0; $i < count($tabchamps); $i++) { //$ind = $tabindice[$i]; $affiche[$i] = traitement_magic_quotes(corriger_caracteres(dbase_filter(trim($tabligne[$tabindice[$i]])))); } // Stockage des données: $responsable[$affiche[0]]=array(); for($i=1;$i\n"; //$sql="SELECT * FROM responsables2 WHERE ele_id='$affiche[0]' AND pers_id='$affiche[1]'"; $sql="SELECT * FROM responsables2 WHERE (ele_id='$ele_id' AND pers_id='$pers_id')"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)==0){ // L'association responsable/eleve n'existe pas encore $resp_new[]="$affiche[0]:$affiche[1]"; $alt=$alt*(-1); echo "\n"; $sql="SELECT nom,prenom FROM resp_pers WHERE (pers_id='$pers_id')"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)==0){ // Problème: On ne peut pas importer l'association sans que la personne existe. // Est-ce que l'étape d'import de la personne a été refusée? echo " \n"; echo " \n"; echo " \n"; //echo "Aucune personne associée???\n"; echo "Aucune personne associée???\n"; } else{ $lig2=mysqli_fetch_object($res2); echo "\n"; echo ""; echo "\n"; echo "Nouveau\n"; echo "\n"; echo "$pers_id"; echo "\n"; echo "\n"; echo "\n"; echo "$lig2->nom"; echo "nom\" />\n"; echo "\n"; echo "\n"; echo "$lig2->prenom"; echo "prenom\" />\n"; echo "\n"; // Existe-t-il déjà un numéro de responsable légal correspondant au nouvel arrivant? echo "\n"; } else{ echo " background-color: lightgreen;'>\n"; } echo "$resp_legal"; echo "\n"; echo "\n"; echo "\n"; echo "$pers_contact"; echo "\n"; echo "\n"; // Elève(s) associé(s) $sql="SELECT nom,prenom FROM eleves WHERE (ele_id='$ele_id')"; $res4=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res4)==0){ echo "\n"; echo "Aucun élève pour ele_id=$ele_id ???"; echo "\n"; } else{ $lig4=mysqli_fetch_object($res4); echo "\n"; echo "$lig4->nom"; echo "nom\" />\n"; echo "\n"; echo "\n"; echo "$lig4->prenom"; echo "prenom\" />\n"; echo "\n"; echo "\n"; echo "$ele_id"; echo "\n"; echo "\n"; } } echo "\n"; } else{ $lig1=mysqli_fetch_object($res1); if((stripslashes($lig1->resp_legal)!=stripslashes($affiche[2]))|| (stripslashes($lig1->pers_contact)!=stripslashes($affiche[3]))){ // L'un des champs resp_legal ou pers_contact au moins a changé $resp_modif[]="$affiche[0]:$affiche[1]"; /* echo ""; echo "\$ele_id=$ele_id"; echo "\$pers_id=$pers_id"; echo "\$resp_legal=$resp_legal"; echo "\$pers_contact=$pers_contact"; echo ""; */ $alt=$alt*(-1); echo "\n"; $sql="SELECT nom,prenom FROM resp_pers WHERE (pers_id='$pers_id')"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res2)==0){ // Problème: On ne peut pas importer l'association sans que la personne existe. // Est-ce que l'étape d'import de la personne a été refusée? echo " \n"; echo " \n"; echo " \n"; echo "Aucune personne associée???\n"; } else{ $lig2=mysqli_fetch_object($res2); echo "\n"; echo ""; echo "\n"; echo "Modif\n"; echo "\n"; echo "$pers_id"; echo "\n"; echo "\n"; echo "\n"; echo "$lig2->nom"; //echo "nom)."\" />\n"; echo "nom."\" />\n"; echo "\n"; echo "\n"; echo "$lig2->prenom"; //echo "nom)."\" />\n"; echo "prenom."\" />\n"; echo "\n"; // Existe-t-il déjà un numéro de responsable légal correspondant au nouvel arrivant? echo "\n"; } else{ echo " background-color: lightgreen;'>\n"; } echo "$resp_legal"; echo "\n"; echo "\n"; echo "\n"; echo "$pers_contact"; echo "\n"; echo "\n"; // Elève(s) associé(s) $sql="SELECT nom,prenom FROM eleves WHERE (ele_id='$ele_id')"; $res4=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res4)==0){ echo "\n"; echo "Aucun élève pour ele_id=$ele_id ???"; echo "\n"; } else{ $lig4=mysqli_fetch_object($res4); echo "\n"; echo "$lig4->nom"; //echo "nom)."\" />\n"; echo "nom."\" />\n"; echo "\n"; echo "\n"; echo "$lig4->prenom"; //echo "prenom)."\" />\n"; echo "prenom."\" />\n"; echo "\n"; echo "\n"; echo "$ele_id"; echo "\n"; echo "\n"; } } echo "\n"; } // Sinon, il n'est pas nécessaire de refaire l'inscription déjà présente. } //echo "\n"; $cpt++; } } } echo "\n"; //dbase_close($fp); fclose($fp); 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 erreurs. 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 "

\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"; echo "\n\n"; die(); } else { echo "

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

"; echo "Cliquer ici pour recommencer !

\n"; echo "\n\n"; die(); } break; case 8: // Import des informations responsables echo "

Import/mise à jour des associations responsables/élèves

\n"; $erreur=0; if(isset($modif)){ echo "

Mise à jour des informations pour "; for($i=0;$i0){echo ", ";} //echo "$pers_id - $nom - $prenom
\n"; //echo "$resp_prenom $resp_nom ($pers_id) / $ele_prenom $ele_nom ($ele_id)\n"; echo stripslashes("$resp_prenom $resp_nom")." ($pers_id) / ".stripslashes("$ele_prenom $ele_nom")." ($ele_id)\n"; $sql="UPDATE responsables2 SET resp_legal='$resp_legal', pers_contact='$pers_contact' WHERE (pers_id='$pers_id' AND ele_id='$ele_id')"; //echo "

$sql

\n"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res1){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } } echo "

\n"; } if(isset($new)){ echo "

Insertion des informations pour "; for($i=0;$i0){echo ", ";} //echo "$pers_id - $nom - $prenom
\n"; //echo "$resp_prenom $resp_nom ($pers_id) / $ele_prenom $ele_nom ($ele_id)\n"; echo stripslashes("$resp_prenom $resp_nom")." ($pers_id) / ".stripslashes("$ele_prenom $ele_nom")." ($ele_id)\n"; // On supprime l'inscription précédente si elle existe: $sql="SELECT pers_id FROM responsables2 WHERE (pers_id='$pers_id' AND ele_id='$ele_id')"; //echo "$sql
\n"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)>0){ $sql="DELETE FROM responsables2 WHERE (pers_id='$pers_id' AND ele_id='$ele_id')"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); } // On teste s'il faut supprimer un autre responsable de même rang resp_legal: $sql="SELECT pers_id FROM responsables2 WHERE (pers_id!='$pers_id' AND ele_id='$ele_id' AND resp_legal='$resp_legal')"; $res1=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res1)==0){ $sql="INSERT INTO responsables2 SET pers_id='$pers_id', ele_id='$ele_id', resp_legal='$resp_legal', pers_contact='$pers_contact'"; //echo "$sql
\n"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res2){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } else{ $lig1=mysqli_fetch_object($res1); $sql="DELETE FROM responsables2 WHERE (pers_id='$lig1->pers_id' AND ele_id='$ele_id' AND resp_legal='$resp_legal')"; $res2=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res2){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } else{ $sql="INSERT INTO responsables2 SET pers_id='$pers_id', ele_id='$ele_id', resp_legal='$resp_legal', pers_contact='$pers_contact'"; //echo "$sql
\n"; $res3=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res3){ //echo " (erreur)"; echo "
\nErreur: $sql
\n"; $erreur++; } } } } } echo "

\n"; } //echo "

Passer à l'étape d'import/mise à jour des responsables.

\n"; switch($erreur){ case 0: echo "

L'importation s'est correctement passée.

\n"; break; case 1: echo "

Une erreur s'est produite.
\nVous devriez en chercher la cause.

\n"; break; default: echo "

$erreur erreurs se sont produites.
\nVous devriez en chercher la cause.

\n"; break; } break; } /* 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); } else{ echo "

Des erreurs se sont produites.

\n"; } */ } echo "


\n"; echo "

NOTES:

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

    Les noms de fichiers fournis dans les champs de formulaires doivent coïncider avec le nom indiqué ELEVES.CSV, ADRESSES.CSV,...\n"; echo "

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

    Il reste aussi à assurer l'import de l'établissement d'origine avec les fichiers etablissements.csv et eleves_etablissements.csv
    \n"; echo "Par ailleurs, l'inscription des élèves dans telle ou telle classe, avec telle et telle option n'est pas encore assurée par cette page d'importation/mise à jour.
    \n"; echo "(il faut donc par la suite affecter les nouveaux élèves dans les classes et les inscrire dans les groupes/options/matières)
    \n"; echo "Il faut également, pour les nouveaux élèves inscrits (s'il y en a), faire l'association avec le CPE responsable et le ".getSettingValue('gepi_prof_suivi')."."; echo "

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