<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: delete.inc.php,v 1.12 2008-09-26 19:45:28 touraine37 Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once "{$class_path}/bannette.class.php"; require_once "{$class_path}/emprunteur.class.php"; // suppression d'un lecteur if ($id) { $total = 0; $total = mysql_result(mysql_query("select count(1) from pret where pret_idempr='" . $id . "' ", $dbh), 0, 0); if ($total == 0) { emprunteur::del_empr($id); } else { error_message($msg[294], $msg[1709], 1, 'circ.php?categ=pret&form_cb=' . rawurlencode($form_cb)); $erreur = 1; } } if (!$erreur) { if ($groupID) { print "<script type=\"text/javascript\">\n\t\t\tdocument.location ='./circ.php?categ=groups&action=showgroup&groupID={$groupID}';\n \t</script>"; } else { get_cb($msg[13], $msg[34], $msg[circ_tit_form_cb_empr], './circ.php?categ=pret', 0); } }
function import_profs($separateur, $dbh, $type_import) { //La structure du fichier texte doit être la suivante : //nom, prénom (le cb est généré automatiquement) $prof = array("Numéro auto", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe pmb_mysql_query("DELETE FROM empr_groupe", $dbh); echo $type_import; //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_cb NOT LIKE 'P%'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } //Récupération dans la table 'empr' du 'empr_cb' maximum $req = pmb_mysql_query("SELECT MAX(empr_cb) AS cbmax FROM empr WHERE empr_categ=2 and empr_codestat=1", $dbh); $cb = pmb_mysql_result($req, 0, "cbmax"); if (!$cb) { $numeroP = "000"; } else { $numeroP = substr($cb, 1, 3); } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); $buf_prenom = explode("\\", $tab[1]); $prenom = $buf_prenom[0]; // Traitement du prof $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_nom = '" . $tab[0] . "' AND empr_prenom = '" . $prenom . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); if (!$tab[0] || $tab[0] == "") { print "<b> Professeur non pris en compte car \"Nom\" non renseigné : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; $nb_enreg = 2; } //Gestion du sexe switch ($tab[8][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } //Génération du code-barre $numeroP = $numeroP + 1; if ($numeroP < 10) { $prof_cb = "P00" . $numeroP; } elseif ($numeroP < 100) { $prof_cb = "P0" . $numeroP; } elseif ($numeroP < 1000) { $prof_cb = "P" . $numeroP; } //Génération du login $login = cre_login($tab[0], $prenom, $dbh); //Pour l'instant login = mdp car lors de l'import des profs, aucune date de naissance n'est fournie switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_mail, empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('{$prof_cb}','{$tab['0']}','{$prenom}', '{$tab['2']}', '{$tab['3']}', '{$tab['4']}', '{$tab['5']}', '{$tab['9']}', '{$tab['6']}', '{$tab['7']}', "; $req_insert .= "2, 1, '{$date_auj}', {$sexe}, '{$login}', replace(replace('" . $tab[7] . "','\n',''),'\r',''), '{$date_auj}', '{$date_an_proch}' )"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $tab[7])); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $tab[7])); $cpt_insert++; } $j++; break; case 1: //Ce prof est déja enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['0']}', empr_prenom = '{$tab['1']}', empr_adr1 = '{$tab['2']}', "; $req_update .= "empr_adr2 = '{$tab['3']}', empr_cp = '{$tab['4']}', empr_ville = '{$tab['5']}', empr_mail = '{$tab['9']}', "; $req_update .= "empr_tel1 = '{$tab['6']}', empr_year = '{$tab['7']}', empr_categ = '2', empr_codestat = '1', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password= replace(replace('" . $tab[7] . "','\n',''),'\r',''), "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}' "; $req_update .= "WHERE empr_nom = '{$tb['0']}' AND empr_prenom = '{$prenom}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $tab[7])); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $tab[7])); $cpt_maj++; } $j++; break; case 2: break; default: print "<b>Echec pour le professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Professeurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Professeurs modifiés. <br />"; } fclose($fichier); } }
function del_item_base($item = 0) { global $dbh; if (!$item) { return CADDIE_ITEM_NULL; } $verif_empr_item = $this->verif_empr_item($item); if (!$verif_empr_item) { emprunteur::del_empr($item); return CADDIE_ITEM_SUPPR_BASE_OK; } elseif ($verif_empr_item == 1) { return CADDIE_ITEM_EXPL_PRET; } else { return CADDIE_ITEM_RESA; } }
function import_profs($separateur, $dbh, $type_import, $mdp_auto, $num_auto, $adr_mail) { //La structure du fichier texte doit être la suivante : //[numéro],nom, prénom, adr1, adr2, code postal, commune, tel, année de naissance, sexe, e-mail,[login,mdp] $prof = array("Numéro auto", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe //$delete_empr_groupe = pmb_mysql_query("DELETE FROM empr_groupe",$dbh); //echo $type_import; //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr, empr_cb FROM groupe, empr_groupe, empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_groupe.empr_id = empr.id_empr and empr_groupe.groupe_id = id_groupe and libelle_groupe like 'Professeurs'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } //Récupération dans la table 'empr' du 'empr_cb' maximum $req = pmb_mysql_query("SELECT MAX(empr_cb) AS cbmax FROM empr WHERE empr_categ=2 and empr_codestat=1", $dbh); $cb = pmb_mysql_result($req, 0, "cbmax"); if (!$cb) { $numeroP = "0000"; } else { $numeroP = substr($cb, 1, 4); } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); if ($num_auto != 'num_auto') { $buf_prenom = explode("\\", $tab[1]); $prenom = $buf_prenom[0]; } else { $buf_prenom = explode("\\", $tab[2]); $prenom = $buf_prenom[1]; } // Traitement du prof $select = pmb_mysql_query("SELECT id_empr, empr_cb FROM empr WHERE empr_nom = '" . $tab[0] . "' AND empr_prenom = '" . $prenom . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); if (!$tab[0] || $tab[0] == "") { if ($tab[1] != "") { print "<b> Professeur non pris en compte car \"Nom\" non renseigné : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } $nb_enreg = 2; } if ($num_auto == 'num_auto') { // Si il y a un numéro en debut de fichier, // on decale les indices du tab à la baisse : $prof_cb = $tab[0]; $tab[0] = $tab[1]; $tab[1] = $tab[2]; $tab[2] = $tab[3]; $tab[3] = $tab[4]; $tab[4] = $tab[5]; $tab[5] = $tab[6]; $tab[6] = $tab[7]; $tab[7] = $tab[8]; $tab[8] = $tab[9]; if ($adr_mail == 'adr_mail') { $tab[9] = $tab[10]; $tab[10] = $tab[11]; $tab[11] = $tab[12]; } else { $tab[9] = ""; } } else { //Génération du code-barre $numeroP = $numeroP + 1; if ($numeroP < 10) { $prof_cb = "P000" . $numeroP; } elseif ($numeroP < 100) { $prof_cb = "P00" . $numeroP; } elseif ($numeroP < 1000) { $prof_cb = "P0" . $numeroP; } elseif ($numeroP < 10000) { $prof_cb = "P" . $numeroP; } } // On verifie que le mail est bien de la forme chaine@chaine : if ($adr_mail == 'adr_mail') { if (preg_match("#.*@.*#", $tab[9]) == false) { $tab[9] = ""; } } //Gestion du sexe switch ($tab[8][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } //Génération du login if ($mdp_auto != 'mdp_auto') { $login = cre_login($tab[0], $prenom, $dbh); $mdp = $tab[7]; } else { $login = $tab[10]; $mdp = $tab[11]; } if (!$mdp || $mdp == "") { $mdp = $login; } switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_mail, empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('{$prof_cb}','{$tab['0']}','{$tab['1']}', '{$tab['2']}', '{$tab['3']}', '{$tab['4']}', '{$tab['5']}', '{$tab['9']}', '{$tab['6']}', '{$tab['7']}', "; $req_insert .= "2, 1, '{$date_auj}', {$sexe}, '{$login}', replace(replace('" . $mdp . "','\n',''),'\r',''), '{$date_auj}', '{$date_an_proch}' )"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Échec de la création du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $mdp)); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $mdp)); $cpt_insert++; } $j++; gestion_groupe("Professeurs", $prof_cb, $dbh); break; case 1: //Ce prof est déja enregistré $empr_cbs = pmb_mysql_fetch_array($select); $prof_cb = $empr_cbs['empr_cb']; $req_update = "UPDATE empr SET empr_nom = '{$tab['0']}', empr_prenom = '{$tab['1']}', empr_adr1 = '{$tab['2']}', "; $req_update .= "empr_adr2 = '{$tab['3']}', empr_cp = '{$tab['4']}', empr_ville = '{$tab['5']}', empr_mail = '{$tab['9']}', "; $req_update .= "empr_tel1 = '{$tab['6']}', empr_year = '{$tab['7']}', empr_categ = '2', empr_codestat = '1', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password=replace(replace('" . $mdp . "','\n',''),'\r',''), "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}' "; $req_update .= "WHERE empr_nom = '{$tb['0']}' AND empr_prenom = '{$prenom}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Échec de la modification du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $mdp)); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $mdp)); $cpt_maj++; } $j++; break; case 2: break; default: print "<b>Échec pour le professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } //gestion_groupe("Professeurs", $prof_cb, $dbh); } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Professeurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Professeurs modifiés. <br />"; } fclose($fichier); } }
function delete_empr($empr_cb = '', $empr_id = '') { global $dbh; global $msg; global $charset; $empr_cb = $this->clean_field($empr_cb); $empr_id += 0; if (!$empr_id && $empr_cb == '') { return $this->build_error("idempr et empr_cb vide."); } if ($empr_id) { $where = " id_empr = {$empr_id} "; } else { $where = " empr_cb = '" . addslashes($empr_cb) . "' "; } $sql = "SELECT id_empr, empr_cb FROM empr WHERE {$where}"; $res = pmb_mysql_query($sql); if (!$res || !pmb_mysql_num_rows($res)) { return $this->build_error("Lecteur inconnu."); } $empr_res = pmb_mysql_fetch_object($res); $empr_id = $empr_res->id_empr; $status = emprunteur::del_empr($empr_id); if ($status == false) { return $this->build_error("Ce lecteur a des prets en cours."); } return $this->build_ok(); }
function erase_exldap_users($uu) { $auu = explode(';', $uu); $nuu = count($auu); $n = 0; foreach ($auu as $u) { $cc = explode('|', $u); $id = $cc[0]; $res = emprunteur::del_empr($id); if ($res) { ++$n; } } // print "<h2> utenti exldap eliminati: $n su $nuu</h2>"; }
print "\n\t\t<div class='row'>\n\t\t\t\t<table class='table-but'><tr>\n\t\t\t\t<td class='td-lbut'>\n\t\t\t\t\t<a href='./admin.php?categ=empr&sub=implec&action=FichierOK&Precedent=1' title='" . $msg[654] . "'>\n\t\t\t\t\t<img name='gg.gif' src='./images/gg.gif' width='38' height='26'/>\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td class='td-rbut'>\n\t\t\t\t\t<input type='submit' class='bouton' name='Effacer' value='" . $msg["del_tout"] . "'/>\n\t\t\t\t</td>\n\t\t\t\t</tr></table>\n\t\t</div>\n\t\t</form>"; break; case 'delall': foreach ($_POST as $cle => $val) { $cmpt = 0; //print $cle.", ". $val; if (substr($cle, 0, 7) == "datedel") { $querry = "select id_empr,empr_cb,empr_nom,empr_prenom From empr where empr_date_expiration = '{$val}';"; $res = mysql_query($querry, $dbh) or die($msg["sqlselect_errdel1"] . "<br />" . $msg["sqlselect_errdel2"] . $querry); while ($row = mysql_fetch_row($res)) { $querry1 = "select * From pret where pret_idempr = " . $row[0] . ";"; $result3 = mysql_query($querry1, $dbh); $row2 = mysql_fetch_row($result3); //print $row2[0]."test"; if ($row2[0] == "") { emprunteur::del_empr($row[0]); } else { $cmpt++; //print "compteur = ".$cmpt."<br />"; if ($cmpt == 1) { $desc_empr = desc_table($dbh, "empr"); print $val . "<br />"; print '<font color="#FF0000" face="Geneva, Arial, Helvetica, sans-serif"><strong>' . $msg["personnes_nodel"] . "<p>"; print '</strong></font>'; print "<table border='2'>"; print " <tr>"; foreach ($desc_empr as $dummykey => $empr) { print " <td>" . $empr[0] . "</td>"; } print " </tr>"; }
function import_lecteurs($type_import) { global $dbh; global $text, $n, $t_xml; global $deflt2docs_location; //La structure du fichier xml doit être la suivante : /* <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <inm:Results productTitle="Superdoc Premium" productVersion="9.00" xmlns:inm="http://www.inmagic.com/webpublisher/query"> <inm:Recordset setCount="3"> <inm:Record setEntry="0"> <inm:Date-de-creation>10/01/2007</inm:Date-de-creation> <inm:ID>103</inm:ID> <inm:Centre>CDI LYC. MENDES FRANCE</inm:Centre> <inm:Numero-Emprunteur>00001987</inm:Numero-Emprunteur> <inm:Nom>SOULIER</inm:Nom> <inm:Prenom>ALAIN</inm:Prenom> <inm:Nom-Prenom>SOULIER ALAIN</inm:Nom-Prenom> <inm:Civilite /> <inm:Service>C.D.I.</inm:Service> <inm:Telephone /> <inm:Fax /> <inm:Mel /> <inm:Adresse /> <inm:Code-Postal /> <inm:Ville /> <inm:Pays /> <inm:Notes /> <inm:Exclusion-du-pret /> <inm:Groupe /> <inm:Droits /> <inm:DateFinDroits /> <inm:DroitEmprunteur>CDI LYC. MENDES FRANCE : Professeur</inm:DroitEmprunteur> </inm:Record>... */ //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; exit; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; exit; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { print "<br /><br />"; print "Téléchargement du fichier effectué.<br /><hr />"; if ($type_import == 'maj_complete') { print "Suppression des groupes et lecteurs sans prêts.<br /><br />"; //Vide la table empr_groupe mysql_query("DELETE FROM empr_groupe", $dbh); //Supprime les lecteurs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null "; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les lecteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } print "Traitement du fichier en cours.<br />"; $nb_ok = 0; $tab_err = array(); //definition header et footer $header = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><inm:results>"; $footer = "</inm:results>"; while (!feof($fichier)) { $buffer = ""; $deb = FALSE; $i = 0; while ($i < 200 && !feof($fichier)) { $line = fgets($fichier, 4096); if (strpos($line, "<inm:Recordset") === FALSE && strpos($line, "<inm:Record") !== FALSE) { $deb = TRUE; } if ($deb) { $buffer .= trim($line); } if (strpos($line, "</inm:Record>") !== FALSE) { $deb = FALSE; $i++; } } if ($buffer) { $buffer = $header . $buffer . $footer; //print "<hr />";print htmlentities($buffer,ENT_QUOTES,$charset);print "<br />"; //parse buffer $text = ''; $t_xml = array(); $n = 0; $encoding = "UTF-8"; $parser = xml_parser_create($encoding); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $encoding); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($parser, "debutBalise", "finBalise"); xml_set_character_data_handler($parser, "texte"); if (!xml_parse($parser, $buffer, TRUE)) { die(sprintf("erreur XML %s à la ligne: %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); //traitement des enregistrements for ($i = 1; $i <= count($t_xml); $i++) { //il faut au minimum un nom ou un prénom $t_xml[$i]['INM:NOM'][0] = trim($t_xml[$i]['INM:NOM'][0]); $t_xml[$i]['INM:PRENOM'][0] = trim($t_xml[$i]['INM:PRENOM'][0]); if ($t_xml[$i]['INM:NOM'][0] != '' || $t_xml[$i]['INM:PRENOM'][0] != '') { $e_data = array(); //print "Enregistrement n° ".$t_xml[$i]['INM:ID'][0]."<br />"; //localisation $e_data['location'] = $deflt2docs_location; //nom + prenom if ($t_xml[$i]['INM:NOM'][0] != '') { $e_data['nom'] = $t_xml[$i]['INM:NOM'][0]; $e_data['prenom'] = $t_xml[$i]['INM:PRENOM'][0]; } else { $e_data['nom'] = $t_xml[$i]['INM:NOM'][0]; $e_data['prenom'] = ''; } //cb emprunteur $t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0] = trim($t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0]); if ($t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0] != '') { $e_data['cb'] = trim($t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0]); } else { $q = "select (count(*)+1) from empr"; $r = mysql_query($q, $dbh); $x = mysql_result($r, 0, 0); $e_data['cb'] = 'PMB_' . $x; } //civilité $t_xml[$i]['INM:CIVILITE'][0] = substr(strtolower(trim($t_xml[$i]['INM:CIVILITE'][0])), 0, 2); switch ($t_xml[$i]['INM:CIVILITE'][0]) { case 'm.': case 'mr': case 'mo': $e_data['sexe'] = 1; break; case 'ma': case 'me': case 'ml': $e_data['sexe'] = 2; break; default: $e_data['sexe'] = 0; break; } //tel $e_data['tel1'] = trim($t_xml[$i]['INM:TELEPHONE'][0]); //mail $e_data['mail'] = trim($t_xml[$i]['INM:MEL'][0]); //adresse $e_data['adr1'] = trim($t_xml[$i]['INM:ADRESSE'][0]); //cp $e_data['cp'] = trim($t_xml[$i]['INM:CP'][0]); //ville $e_data['ville'] = trim($t_xml[$i]['INM:VILLE'][0]); //pays $e_data['pays'] = trim($t_xml[$i]['INM:PAYS'][0]); //notes $e_data['msg'] = trim($t_xml[$i]['INM:NOTES'][0]); //categorie $t_xml[$i]['INM:DROITEMPRUNTEUR'][0] = strtolower($t_xml[$i]['INM:DROITEMPRUNTEUR'][0]); $t_xml[$i]['INM:DROITEMPRUNTEUR'][0] = convert_diacrit($t_xml[$i]['INM:DROITEMPRUNTEUR'][0]); if (strpos($t_xml[$i]['INM:DROITEMPRUNTEUR'][0], "eleve") !== FALSE) { $e_data['categ'] = 1; } elseif (strpos($t_xml[$i]['INM:DROITEMPRUNTEUR'][0], "professeur") !== FALSE) { $e_data['categ'] = 2; } else { $e_data['categ'] = 3; } //code statistique $e_data['codestat'] = 1; //statut if (strtolower(trim($t_xml[$i]['INM:EXCLUSION-DU-PRET'][0])) == 'yes') { $e_data['statut'] = 2; } else { $e_data['statut'] = 1; } //date creation lecteur $t_xml[$i]['INM:DATE-DE-CREATION'][0] = trim($t_xml[$i]['INM:DATE-DE-CREATION'][0]); $e_data['date_creation'] = substr($t_xml[$i]['INM:DATE-DE-CREATION'][0], 6, 4) . '-' . substr($t_xml[$i]['INM:DATE-DE-CREATION'][0], 3, 2) . '-' . substr($t_xml[$i]['INM:DATE-DE-CREATION'][0], 0, 2); //date adhesion $e_data['date_adhesion'] = today(); //date fin adhesion $qda = "select duree_adhesion from empr_categ where id_categ_empr='" . $e_data['categ'] . "' "; $rda = mysql_query($qda, $dbh); if (mysql_num_rows($rda)) { $da = mysql_result($rda, 0, 0); } else { $da = 365; } $qd = "select date_add('" . $e_data['date_adhesion'] . "', INTERVAL " . $da . " DAY) "; $rd = mysql_query($qd, $dbh); if (mysql_num_rows($rd)) { $de = mysql_result($rd, 0, 0); } $e_data['date_expiration'] = $de; //login $e_data['login'] = emprunteur::do_login($e_data['nom'], $e_data['prenom']); //import lecteur $e = new emprunteur(); $e_id = 0; $e_id = $e->import($e_data); if ($e_id) { $nb_ok++; //groupe et champ perso service $t_xml[$i]['INM:SERVICE'][0] = trim($t_xml[$i]['INM:SERVICE'][0]); if ($t_xml[$i]['INM:SERVICE'][0]) { //groupe $qg = "select groupe_id from groupe where libelle_groupe='" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "' limit 1 "; $rg = mysql_query($qg, $dbh); if (mysql_num_rows($rg)) { $g_id = mysql_result($rg, 0, 0); } else { $qg = "insert into groupe set libelle_groupe='" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "' "; mysql_query($qg, $dbh); $g_id = mysql_insert_id($dbh); } $qeg = "insert into empr_groupe (empr_id,groupe_id) values ({$e_id},{$g_id}) "; mysql_query($qeg, $dbh); //champ perso service $qn = "select idchamp from empr_custom where name='service' "; $rn = mysql_query($qn, $dbh); if (mysql_num_rows($rn)) { $idc = mysql_result($rn, 0, 0); $requete = "select max(empr_custom_list_value*1) from empr_custom_lists where empr_custom_champ={$idc} "; $resultat = mysql_query($requete, $dbh); $max = @mysql_result($resultat, 0, 0); $n = $max + 1; $requete = "select empr_custom_list_value from empr_custom_lists where empr_custom_list_lib='" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "' and empr_custom_champ={$idc} "; $resultat = mysql_query($requete, $dbh); if (mysql_num_rows($resultat)) { $value = mysql_result($resultat, 0, 0); } else { $requete = "insert into empr_custom_lists (empr_custom_champ,empr_custom_list_value,empr_custom_list_lib) values({$idc},{$n},'" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "')"; mysql_query($requete, $dbh); $value = $n; $n++; } $requete = "insert into empr_custom_values (empr_custom_champ,empr_custom_origine,empr_custom_integer) values({$idc},{$e_id},{$value})"; mysql_query($requete, $dbh); } } } else { $tab_err[] = $t_xml[$i]['INM:ID'][0]; } } else { $tab_err[] = $t_xml[$i]['INM:ID'][0]; } } } } fclose($fichier); unlink("./temp/" . basename($_FILES['import_lec']['tmp_name'])); print "Traitement du fichier terminé."; print "<br /><hr />"; print "Nombre de lecteurs importés : " . $nb_ok . "<br />"; print "Nombre d'erreurs de traitement : " . count($tab_err) . "<br /><hr />"; if (count($tab_err)) { for ($i = 0; $i < count($tab_err); $i++) { print "Erreur à l'enregistrement n° " . $tab_err[$i] . "<br />"; } print "<hr /><br />"; } } else { print "Le fichier n'a pu être lu ."; } }
function supp_lect_par_lect($tab, $dbh) { global $lect_erreur, $lect_supprime, $lect_interdit; $requete = "select id_empr,pret_idexpl from empr left join pret on id_empr=pret_idempr join empr_custom_values on empr_custom_origine=id_empr where empr_cb like '" . addslashes($tab[1]) . "%' and empr_custom_champ='2' and empr_custom_small_text='" . addslashes($tab[0]) . "' group by id_empr"; $select = mysql_query($requete, $dbh); $nb_enreg = mysql_num_rows($select); if ($nb_enreg == 1) { $id = mysql_result($select, 0, 0); if (!mysql_result($select, 0, 1)) { //Si il n'a pas de pret en cours emprunteur::del_empr($id); $lect_supprime++; } else { //On modifi le statut $q = "select idstatut from empr_statut where statut_libelle='A supprimer' limit 1"; $r = mysql_query($q, $dbh); if (mysql_num_rows($r)) { $id_statut = mysql_result($r, 0, 0); } else { $q = "insert into empr_statut (statut_libelle) values ('A supprimer') "; $r = mysql_query($q, $dbh); $id_statut = mysql_insert_id($dbh); } $requete = "update empr set empr_statut='" . $id_statut . "' where id_empr='" . $id . "' "; if (mysql_query($requete)) { $lect_interdit++; } else { $lect_erreur++; echo "<b>Erreur : Pour le lecteur " . $tab[2] . " " . $tab[3] . " avec le code barre " . $tab[1] . " un problème est survenu lors de la modification de son statut<b><br />"; } } } elseif ($nb_enreg > 1) { $lect_erreur++; echo "<b>Erreur : Attention le code barre " . $tab[1] . " est en double dans la base veuillez le modifier pour l'un des deux lecteurs<b><br />"; return; } else { $lect_erreur++; echo "<b>Erreur : Attention le lecteur " . $tab[2] . " " . $tab[3] . " avec le code barre " . $tab[1] . " n'existe pas dans la base, il ne sera pas supprimé<b><br />"; return; } }
function import_empr($dbh) { global $lect_cree, $lect_erreur, $lect_modif, $lect_non_traite; $lect_tot = 0; $lect_supprime = 0; $lect_cree = 0; $lect_erreur = 0; $lect_modif = 0; $lect_interdit = 0; $lect_non_traite = 0; //La structure du fichier texte doit être la suivante avec ceci comme première ligne: //MATRICULE;NOM_USAGE;PRENOM_USAGE;DAT_DER_ENTREE;DAT_SORTIE;COD_UF;LIB_UF;POSTE;SEXE;TELEPHONE;USER_NAME;BADGE;MAIL //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { //on change la date de mise a jour pour retrouver les lecteurs $requete = "select id_empr from empr where empr_modif='" . addslashes(date('Y-m-j')) . "'"; $select = pmb_mysql_query($requete, $dbh); while ($verif = pmb_mysql_fetch_array($select)) { $requete = "update empr set empr_modif=DATE_SUB(empr_modif, INTERVAL 1 DAY) where id_empr='" . addslashes($verif["id_empr"]) . "' "; if (!pmb_mysql_query($requete, $dbh)) { echo "Erreur : requete echoué : " . $requete . "<br />"; } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); //$buffer = pmb_mysql_escape_string($buffer); $tab = explode(";", $buffer); $nb = 0; $incr = 0; $empr = array(); $valeur = false; for ($i = 0; $i < count($tab); $i++) { $nb = $nb + substr_count($tab[$i], "\""); if ($nb % 2 === 0) { if ($valeur === false) { $valeur = $tab[$i]; } else { $valeur = $valeur . ";" . $tab[$i]; } //$notices[$i][$incr]=trim(trim($valeur,"\"")); $empr[$incr] = preg_replace("/^\"|\"\$|\"\r\n\$/", "", $valeur); $valeur = false; $incr++; $nb = 0; } else { if ($valeur === false) { $valeur = $tab[$i]; } else { $valeur = $valeur . ";" . $tab[$i]; } } } if (count($empr) == 1 or $empr[0] == "MATRICULE") { //Passe ici pour l'entête et les ligne vide (la dernière) } elseif (count($empr) != 14) { $lect_tot++; $lect_erreur++; print "<b>Erreur : Personne non prise en compte car le nombre de champ n'est pas valide : </b><br />"; echo "<pre>"; print_r($empr); echo "</pre>"; } elseif (trim($empr[1]) == "" or trim($empr[12]) === "") { $lect_tot++; $lect_erreur++; print "<b>Erreur : Personne non prise en compte car elle n'a pas de nom : </b><br />"; echo "<pre>"; print_r($empr); echo "</pre>"; } else { //Tout les lecteurs à traiter $lect_tot++; import_lect_par_lect($empr, $dbh); } } //On supprime tout les lecteurs qui ne sont pas dans le fichier et qui n'ont pas de prets en cours $req_select_verif_pret = "SELECT distinct id_empr, pret_idempr FROM empr left join pret on id_empr=pret_idempr WHERE empr_modif != '" . addslashes(date('Y-m-j')) . "' "; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours if ($verif_pret["pret_idempr"]) { $requete = "update empr set empr_statut='2' where id_empr='" . addslashes($verif_pret["id_empr"]) . "' "; if (!pmb_mysql_query($requete, $dbh)) { $lect_erreur++; echo " requete echoué : " . $requete . "<br />"; } else { $lect_interdit++; } } else { emprunteur::del_empr($verif_pret["id_empr"]); $lect_supprime++; } } print "<br />_____________________<br />"; if ($lect_erreur) { echo "<b> Attention " . $lect_erreur . " lecteur(s) n'a(ont) pas été traité(s) : voir erreur(s) ci-dessus </b><br />"; } echo "Nombre de lecteurs créés : " . $lect_cree . "<br />"; echo "Nombre de lecteurs non traité (en double ou déjà traité) : " . $lect_non_traite . "<br />"; echo "Nombre de lecteurs ou la date d'expiration à été repoussée : " . $lect_modif . "<br />"; echo "Nombre total de lecteurs dans le fichier : " . $lect_tot . "<br />"; echo "Nombre d'anciens lecteurs (non présent dans le fichier) supprimés : " . $lect_supprime . "<br />"; echo "Nombre d'anciens lecteurs (non présent dans le fichier) avec un statut interdit (non supprimé car ils ont au moins un prêt en cours) : " . $lect_interdit . "<br />"; fclose($fichier); } }
function import_eleves($separateur, $dbh, $type_import, $commune) { global $code_categorie; global $code_statistique; $code_categorie = 12; $code_statistique = 3; $eleve_abrege = array("Numéro identifiant", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe des élèves qui n'ont pas de prêts en cours et qui sont localisé à la commune sélectionnée et de categorie collectivité eleves $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_location= '{$commune}' and empr_categ = '{$code_categorie}' "; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours $req_delete = "DELETE FROM empr_groupe WHERE empr_id = '" . $verif_pret["id_empr"] . "'"; mysql_query($req_delete); } //$delete_empr_groupe = mysql_query("DELETE FROM empr_groupe",$dbh); //Supprime les élèves qui n'ont pas de prêts en cours et qui sont localisé à la commune sélectionnée et de categorie collectivité eleves $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_location= '{$commune}' and empr_categ = '{$code_categorie}' "; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } // Traitement de l'élève $select = mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '" . $tab[0] . "'", $dbh); $nb_enreg = mysql_num_rows($select); //Test si un numéro id est fourni if (!$tab[0] || $tab[0] == "") { print "<b> Elève non pris en compte car \"Numéro identifiant\" non renseigné : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; $nb_enreg = 2; } $login = cre_login($tab[1], $tab[2], $dbh); switch ($nb_enreg) { case 0: //Ce élève n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration, empr_location) "; $req_insert .= "VALUES ('{$tab['0']}','{$tab['1']}','{$tab['2']}','{$tab['3']}', '{$tab['4']}', '{$tab['5']}', "; //Vérifier dans la table empr_categ si id_categ_empr 1 = élèves //Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_insert .= "'{$tab['6']}', '{$tab['7']}', '{$tab['8']}', {$code_categorie} , '3', '{$date_auj}', '{$sexe}', "; $req_insert .= "'{$login}', '{$tab['8']}', '{$date_auj}', '{$date_an_proch}' , '{$commune}' )"; $insert = mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création de l'élève suivant (Erreur : " . mysql_error() . ") : </b><br />"; print $code_categorie; print "3"; print "{$location}"; print "{$user}"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { $cpt_insert++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 1: //Ce élève est déjà enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['1']}', empr_prenom = '{$tab['2']}', empr_adr1 = '{$tab['3']}', "; $req_update .= "empr_adr2 = '{$tab['4']}', empr_cp = '{$tab['5']}', empr_ville = '{$tab['6']}', "; //Vérifier dans la table empr_categ si id_categ_empr 1 = élèves Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_update .= "empr_tel1 = '{$tab['7']}', empr_year = '{$tab['8']}', empr_categ = '{$code_categorie} ', empr_codestat = '3', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password= '******'8']}', "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}', empr_location = '{$commune}'"; $req_update .= "WHERE empr_cb = '{$tab['0']}'"; $update = mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification de l'élève suivant (Erreur : " . mysql_error() . ") : </b><br />"; print $path; print '$code_categorie'; print "3"; print "{$location}"; print "{$user}"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { $cpt_maj++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print $path; print $code_categorie; print 3; print $location; echo $user; print "<b>Echec pour l'élève suivant (Erreur : " . mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Elèves créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Elèves modifiés. <br />"; } fclose($fichier); } }
function import($separateur, $dbh, $type_import) { global $categorie, $codestat, $localisation; global $pmb_lecteurs_localises; //La structure du fichier texte doit être la suivante : //Code-barres ; Nom ; Prénom ; Rue ; Complément de rue ; Code postal ; Commune ; Téléphone ; Année de date de naissance ; Classe ; Sexe ; Téléphone 2 ; Mail ; Profession ; Message $requete = "SELECT duree_adhesion FROM empr_categ WHERE id_categ_empr='" . $categorie . "'"; $resultat = pmb_mysql_query($requete, $dbh); if (pmb_mysql_num_rows($resultat)) { $duree = pmb_mysql_result($resultat, 0, 0); } else { $duree = 365; } $eleve_abrege = array("Numéro identifiant", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * $duree); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { while (!feof($fichier)) { //initialise la variable tableau, au cas où on ait pas toutes les colonnes dans le fichier csv $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } if ($tab[8] != "0") { $password = $tab[8]; } else { $password = ""; } //pour éviter un saut de ligne dans les trois dernières colonnes qui sont facultatives $tab[12] = str_replace("\\r\\n", "", $tab[12]); $tab[13] = str_replace("\\r\\n", "", $tab[13]); $tab[14] = str_replace("\\r\\n", "", $tab[14]); // Traitement du lecteur $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '" . $tab[0] . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); //Test si un numéro id est fourni, rejet si pas d'id avec message si au moins nom ou au moins prénom contient qqch //si pas d'id, pas de nom, pas de prénom, erreur muette : dernière ligne if ((!$tab[0] || $tab[0] == "") && !($tab[1] == "" && $tab[2] == "" && $tab[3] == "" && $tab[4] == "")) { print "<b> Lecteur non pris en compte car \"Numéro identifiant\" non renseigné : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; $nb_enreg = 2; } $login = cre_login($tab[1], $tab[2], $dbh); switch ($nb_enreg) { case 0: //Ce lecteur n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration, empr_tel2, empr_mail, empr_prof, empr_msg, empr_location) "; $req_insert .= "VALUES ('{$tab['0']}','{$tab['1']}','{$tab['2']}','{$tab['3']}', '{$tab['4']}', '{$tab['5']}', "; $req_insert .= "'{$tab['6']}', '{$tab['7']}', '{$tab['8']}', {$categorie}, {$codestat}, '{$date_auj}', '{$sexe}', "; $req_insert .= "'{$login}', '{$password}', '{$date_auj}', '{$date_an_proch}','{$tab['11']}','{$tab['12']}','{$tab['13']}','{$tab['14']}','{$localisation}')"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création du lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, $password); emprunteur::hash_password($login, $password); $cpt_insert++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 1: //Ce lecteur est déjà enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['1']}', empr_prenom = '{$tab['2']}', empr_adr1 = '{$tab['3']}', "; $req_update .= "empr_adr2 = '{$tab['4']}', empr_cp = '{$tab['5']}', empr_ville = '{$tab['6']}', "; $req_update .= "empr_tel1 = '{$tab['7']}', empr_year = '{$tab['8']}', empr_categ = '" . $categorie . "', empr_codestat = '{$codestat}', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; // on ne modifie ni login ni mot de passe pour éviter d'écraser un mot de passe changé par le lecteur // $req_update .= "empr_login = $login, empr_password= $tab[8], "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}', empr_tel2 = '{$tab['11']}', empr_location='{$localisation}' "; $req_update .= "WHERE empr_cb = '{$tab['0']}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification du lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { if ($tab[12] != "") { $req_update_mail = "UPDATE empr SET empr_mail='{$tab['12']}' WHERE empr_cb = '{$tab['0']}'"; $update_mail = pmb_mysql_query($req_update_mail, $dbh); if (!$update_mail) { print "<b>Echec de la modification du mail du lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } $tab[12] = ""; } if ($tab[13] != "") { $req_update_prof = "UPDATE empr SET empr_prof='{$tab['13']}' WHERE empr_cb = '{$tab['0']}'"; $update_prof = pmb_mysql_query($req_update_prof, $dbh); if (!$update_prof) { print "<b>Echec de la modification de la profession lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } $tab[13] = ""; } if ($tab[14] != "") { $req_update_msg = "UPDATE empr SET empr_msg='{$tab['14']}' WHERE empr_cb = '{$tab['0']}'"; $update_msg = pmb_mysql_query($req_update_msg, $dbh); if (!$update_msg) { print "<b>Echec de la modification du message sur le lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } $tab[14] = ""; } $cpt_maj++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print "<b>Echec pour le lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } if ($type_import == 'maj_complete') { $requete_empr_groupe_delete = "DELETE FROM empr_groupe LEFT JOIN empr ON empr_id=id_empr LEFT JOIN pret ON pret_idempr=id_empr WHERE pret_idempr IS NULL and empr_modif != '{$date_auj}' and empr_categ={$categorie} and empr_codestat= {$codestat}"; if ($pmb_lecteurs_localises == "1") { $requete_empr_where .= " and empr_location={$localisation}"; } pmb_mysql_query($requete_empr_groupe_delete . $requete_empr_where, $dbh); $requete_list_empr_delete = "SELECT id_empr FROM empr LEFT JOIN pret ON pret_idempr=id_empr \n \t\tWHERE pret_idempr IS NULL and empr_modif != '{$date_auj}' and empr_categ={$categorie} and empr_codestat= {$codestat} {$requete_empr_where} "; $list_empr_delete = pmb_mysql_query($requete_list_empr_delete, $dbh); while ($empr_delete = pmb_mysql_fetch_array($list_empr_delete)) { emprunteur::del_empr($empr_delete["id_empr"]); } } //Affichage des insert et update print "<br />"; if ($cpt_delete) { print $cpt_delete . " lecteurs supprimés. <br />"; } if ($cpt_insert) { print $cpt_insert . " lecteurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " lecteurs modifiés. <br />"; } fclose($fichier); } }
function import_profs($separateur, $dbh, $type_import) { //La structure du fichier texte doit être la suivante : //Numéro identifiant/Nom/Prénom/Rue/Complément de rue/Code postal/Commune/Téléphone/Date de naissance/Classe/Sexe $prof_abrege = array("Numéro identifiant", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe pmb_mysql_query("DELETE FROM empr_groupe", $dbh); //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_cb NOT LIKE 'E%'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } // Traitement du prof $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '" . $tab[0] . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); //Test si un numéro id est fourni if (!$tab[0] || $tab[0] == "") { print "<b> Prof non pris en compte car \"Numéro identifiant\" non renseigné : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; $nb_enreg = 2; } $login = cre_login($tab[1], $tab[2], $dbh); switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistre $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('{$tab['0']}','{$tab['1']}','{$tab['2']}','{$tab['3']}', '{$tab['4']}', '{$tab['5']}', "; //Verifier dans la table empr_categ si id_categ_empr 2 = profs Verifier dans la table empr_codestat si idcode 2 = ecole Sinon, changer les valeurs $req_insert .= "'{$tab['6']}', '{$tab['7']}', '{$tab['8']}', 2, 2, '{$date_auj}', '{$sexe}', "; $req_insert .= "'{$login}', '{$tab['8']}', '{$date_auj}', '{$date_an_proch}')"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création du prof suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, $tab[8]); emprunteur::hash_password($login, $tab[8]); $cpt_insert++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 1: //Ce prof est déja enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['1']}', empr_prenom = '{$tab['2']}', empr_adr1 = '{$tab['3']}', "; $req_update .= "empr_adr2 = '{$tab['4']}', empr_cp = '{$tab['5']}', empr_ville = '{$tab['6']}', "; //Vérifier dans la table empr_categ si id_categ_empr 2 = profs Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_update .= "empr_tel1 = '{$tab['7']}', empr_year = '{$tab['8']}', empr_categ = '2', empr_codestat = '2', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password= '******'8']}', "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}' "; $req_update .= "WHERE empr_cb = '{$tab['0']}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification du prof suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, $tab[8]); emprunteur::hash_password($login, $tab[8]); $cpt_maj++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print "<b>Echec pour le prof suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Prof créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Profs modifiés. <br />"; } fclose($fichier); } }
function import_profs($separateur, $dbh, $type_import) { //La structure du fichier texte doit être la suivante : //nom, prénom (le cb est généré automatiquement) $prof = array("Numéro auto", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe mysql_query("DELETE FROM empr_groupe", $dbh); echo $type_import; //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE empr_cb LIKE 'E%'"; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = mysql_escape_string($buffer); $tab = explode($separateur, $buffer); $buf_prenom = explode("\\", $tab[1]); $prenom = $buf_prenom[0]; // Traitement du prof $select = mysql_query("SELECT id_empr FROM empr WHERE empr_nom = '" . $tab[0] . "' AND empr_prenom = '" . $prenom . "'", $dbh); $nb_enreg = mysql_num_rows($select); if (!$tab[0] || $tab[0] == "") { print "<b> Professeur non pris en compte car \"Nom\" non renseigné : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; $nb_enreg = 2; } //Génération du code-barre $prof_cb = "E" . rand(100000, 999999); //Génération du login $login = cre_login($tab[0], $prenom, $dbh); //Pour l'instant login = mdp car lors de l'import des profs, aucune date de naissance n'est fournie switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_categ, empr_codestat, empr_creation, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('{$prof_cb}','{$tab['0']}','{$prenom}', "; $req_insert .= "2, 1, '{$date_auj}', '{$login}', '{$login}', '{$date_auj}', '{$date_an_proch}' )"; $insert = mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création du professeur suivant (Erreur : " . mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { $cpt_insert++; } $j++; break; case 1: //Ce prof est déja enregistré $req_update = "UPDATE empr SET empr_categ = '2', empr_codestat = '1', empr_modif = '{$date_auj}', "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}', "; $req_update .= "empr_login = '******', empr_password= '******' "; $req_update .= "WHERE empr_nom = '{$tab['0']}' AND empr_prenom = '{$prenom}'"; $update = mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification du professeur suivant (Erreur : " . mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { $cpt_maj++; } $j++; break; case 2: break; default: print "<b>Echec pour le professeur suivant (Erreur : " . mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Professeurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Professeurs modifiés. <br />"; } fclose($fichier); } }