function pmb_init_hash_passwords()
{
    global $dbh, $msg;
    //Encodage des mots de passe lecteurs
    $result = pmb_mysql_query("SELECT id_empr, empr_password, empr_login FROM empr where empr_password_is_encrypted=0", $dbh);
    if ($result) {
        $count = pmb_mysql_num_rows($result);
        if ($count) {
            while ($row = pmb_mysql_fetch_object($result)) {
                emprunteur::update_digest($row->empr_login, $row->empr_password);
                emprunteur::hash_password($row->empr_login, $row->empr_password);
            }
            pmb_indexation_display($msg["hash_empr_password_status"], $count . " " . $msg["hash_empr_password_status_end"]);
        }
    }
}
function connector_out_check_credentials($username, $password, $source_id)
{
    global $dbh;
    $source_id += 0;
    if (!$username) {
        //--Utilisateur anonyme
        //Verifions si le groupe anonyme a le droit d'utiliser la source
        $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = " . $source_id . ' AND connectors_out_source_esgroup_esgroupnum = -1';
        $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0);
        $allowed = $count > 0;
        if ($allowed) {
            $sql = 'SELECT esgroup_pmbusernum FROM es_esgroups WHERE esgroup_id = -1';
            $res = pmb_mysql_query($sql, $dbh);
            if (!pmb_mysql_num_rows($res)) {
                return 1;
            } else {
                return pmb_mysql_result($res, 0, 0);
            }
        }
        return false;
    } else {
        if (strpos($username, "@") !== false) {
            //--Lecteur
            $login_info = explode("@", $username);
            if (count($login_info) != 2) {
                return false;
            }
            $empr_name = $login_info[0];
            $es_group = $login_info[1];
            if (!$empr_name || !$es_group) {
                return false;
            }
            //Cherchons le lecteur
            $empr_id = 0;
            $sql = "SELECT id_empr FROM empr WHERE empr_login = '******' AND empr_password = '******'";
            $res = pmb_mysql_query($sql, $dbh);
            if (pmb_mysql_num_rows($res)) {
                $empr_id = pmb_mysql_result($res, 0, 0);
            }
            //Pas trouvé? Plouf!
            if (!$empr_id) {
                return false;
            }
            //Cherchons le groupe
            $sql = "SELECT esgroup_id FROM es_esgroups WHERE esgroup_name = '" . addslashes($es_group) . "'";
            $res = pmb_mysql_query($sql, $dbh);
            //Pas trouvé? Plouf!
            if (!pmb_mysql_num_rows($res)) {
                return false;
            }
            $esgroup_id = pmb_mysql_result($res, 0, 0);
            $es_group = new es_esgroup($esgroup_id);
            //Vérifions que le lecteur est dans le groupe
            $sql = "SELECT SUM(EXISTS(SELECT 1 FROM empr_groupe WHERE empr_id = " . $empr_id . " AND groupe_id = esgroupuser_usernum)) > 0 AS in_group FROM es_esgroup_esusers WHERE esgroupuser_usertype = 2 AND esgroupuser_groupnum = " . $esgroup_id;
            $res = pmb_mysql_query($sql, $dbh);
            $empr_in_group = pmb_mysql_result($res, 0, 0);
            if (!$empr_in_group) {
                //Vil faquin, tu as cru pouvoir rentré en mentant sur ton groupe d'origine? Ca marche pas ici; plouf!
                return false;
            }
            //Verifions si le groupe a le droit d'utiliser la source
            $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = " . $source_id . ' AND connectors_out_source_esgroup_esgroupnum = ' . $esgroup_id;
            $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0);
            $allowed = $count > 0;
            //Pas le droit? Plouf!
            if (!$allowed) {
                return false;
            }
            //Et voilà, tout est bon, ça passe
            return $es_group->esgroup_pmbuserid;
        } else {
            //--Utilisateur classique
            //Cherchons si cet utilisateur existe, et si oui, récupérons son groupe
            $esuser = es_esuser::create_from_credentials($username, $password);
            if (!$esuser) {
                return false;
            }
            $esgroup_id = $esuser->esuser_group;
            //Si l'utilisateur n'est pas dans un groupe, il ne peut pas avoir de droits, donc plouf
            if (!$esgroup_id) {
                return false;
            }
            //Verifions si le groupe a le droit d'utiliser la source
            $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = " . $source_id . ' AND connectors_out_source_esgroup_esgroupnum = ' . $esgroup_id;
            $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0);
            $allowed = $count > 0;
            //Pas le droit? Plouf!
            if (!$allowed) {
                return false;
            }
            //Sinon on renvoi le pmbuserid associé au groupe
            $esgroup = new es_esgroup($esgroup_id);
            return $esgroup->esgroup_pmbuserid;
        }
    }
    return false;
}
    if (!$start) {
        $requete = "CREATE TABLE if not exists empr_passwords (\n\t\t\tid_empr INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,\n\t\t\tempr_password VARCHAR( 255 ) NOT NULL default '')";
        pmb_mysql_query($requete, $dbh);
        $requete = "INSERT IGNORE INTO empr_passwords SELECT id_empr, empr_password FROM empr where empr_password_is_encrypted=0";
        pmb_mysql_query($requete, $dbh);
    }
    // définition de l'état de la jauge
    $state = floor($start / ($count / $jauge_size));
    // mise à jour de l'affichage de la jauge
    print "<table border='0' align='center' width='{$jauge_size}' cellpadding='0' border='0'><tr><td class='jauge'>";
    print "<img src='../../images/jauge.png' width='{$state}' height='16'></td></tr></table>";
    // calcul pourcentage avancement
    $percent = floor($start / $count * 100);
    // affichage du % d'avancement et de l'état
    print "<div align='center'>{$percent}%</div>";
    while ($row = pmb_mysql_fetch_object($query)) {
        emprunteur::update_digest($row->empr_login, $row->empr_password);
        emprunteur::hash_password($row->empr_login, $row->empr_password);
    }
    pmb_mysql_free_result($query);
    $next = $start + $lot;
    print "\n\t<form class='form-{$current_module}' name='current_state' action='./clean.php' method='post'>\n\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t\t<input type='hidden' name='start' value=\"{$next}\">\n\t\t<input type='hidden' name='count' value=\"{$count}\">\n\t</form>\n\t<script type=\"text/javascript\">\n\t<!--\n\t\tdocument.forms['current_state'].submit();\n\t-->\n\t</script>";
} else {
    $spec = $spec - HASH_EMPR_PASSWORD;
    $v_state .= "<br /><img src=../../images/d.gif hspace=3>" . htmlentities($msg["hash_empr_password_status"], ENT_QUOTES, $charset);
    $v_state .= $count . " " . htmlentities($msg["hash_empr_password_status_end"], ENT_QUOTES, $charset);
    $opt = pmb_mysql_query('OPTIMIZE TABLE empr');
    // mise à jour de l'affichage de la jauge
    print "\n\t<table border='0' align='center' width='{$table_size}' cellpadding='0'><tr><td class='jauge'>\n\t<img src='../../images/jauge.png' width='{$jauge_size}' height='16'></td></tr></table>\n\t<div align='center'>100%</div>";
    print "\n\t<form class='form-{$current_module}' name='process_state' action='./clean.php' method='post'>\n\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t</form>\n\t<script type=\"text/javascript\">\n\t<!--\n\t\tdocument.forms['process_state'].submit();\n\t-->\n\t</script>";
}
<?php

// +-------------------------------------------------+
// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
// +-------------------------------------------------+
// $Id: valid_change_password.inc.php,v 1.14 2015-06-02 13:24:51 dgoron Exp $
if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) {
    die("no access");
}
require_once "{$class_path}/emprunteur.class.php";
if (!$allow_pwd) {
    die;
}
print "<h3>" . $msg["empr_modify_password"] . "</h3>\n";
// contrôle de l'ancien mot de passe ok
if ($new_password == $confirm_new_password) {
    emprunteur::hash_password($empr_login, $new_password);
    // contrôle du nouveau mot de passe par double ok
    // donc tout baigne, on lance la màj
    print $msg["empr_password_changed"] . "<br /><br />";
} else {
    // contrôle du nouveau mot de passe par double non validé
    print $msg["empr_password_does_not_match"] . "<br /><br />";
}
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&eacute;c&eacute;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);
    }
}
示例#6
0
 function check_emprunteur_adhesion_false($id_empr)
 {
     global $msg;
     global $pmb_pret_adhesion_depassee;
     $empr_temp = new emprunteur($id_empr, '', FALSE, 0);
     $empr_date_depassee = $empr_temp->adhesion_depassee();
     //Si l'adhésion de l'emprunteur dépassée
     if (!($pmb_pret_adhesion_depassee == 0 && $empr_date_depassee)) {
         $this->error_message = "";
         return 0;
     }
     $this->error_message = $msg['pret_impossible_adhesion'];
     return -1;
 }
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&eacute;ro auto", "Nom", "Pr&eacute;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&eacute;c&eacute;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 &ecirc;tre t&eacute;l&eacute;charg&eacute;. 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&eacute; : </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>&Eacute;chec de la cr&eacute;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>&Eacute;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>&Eacute;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&eacute;&eacute;s. <br />";
        }
        if ($cpt_maj) {
            print $cpt_maj . " Professeurs modifi&eacute;s. <br />";
        }
        fclose($fichier);
    }
}
function import_eleves_ensai($separateur, $dbh, $type_import)
{
    global $idchamp, $id_grp, $empr_location_lib, $id_categ_empr, $idemprcaddie;
    if (!isset($id_grp)) {
        $id_grp = array();
    }
    //La structure du fichier texte doit être la suivante :
    //empr_nom	empr_prenom	empr_mail	categ	Groupe1	Groupe2	statut_libelle	location_libelle	Pays	empr_date_adhesion
    //empr_date_expiration	Numéro	Identifiant OPAC
    $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);
    $empr_codestat_local = gestion_empr_idcode_codestat(8, $dbh);
    $empr_codestat_etranger = gestion_empr_idcode_codestat(9, $dbh);
    //Upload du fichier
    if (!$_FILES['import_lec']['tmp_name']) {
        print "Cliquez sur Pr&eacute;c&eacute;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) {
        $totallignes = 0;
        while (!feof($fichier)) {
            $buffer = fgets($fichier, 4096);
            $tab = explode($separateur, $buffer);
            $cb = trim(str_replace(" ", "", $tab[13]));
            if ($cb != "Numéro" && $cb != "") {
                // ce n'est pas la première ligne d'entête de colonne
                $nom = trim($tab[0]);
                $prenom = trim($tab[1]);
                $emails = trim($tab[2]);
                $mail_perso = $tab[3];
                if (trim($mail_perso)) {
                    //Si valorisé, alors on concatène.
                    if (trim($emails)) {
                        $emails .= ";" . trim($mail_perso);
                    } else {
                        $emails = trim($mail_perso);
                    }
                }
                $categ = trim($tab[4]);
                $groupe1 = trim($tab[5]);
                $groupe2 = trim($tab[6]);
                $groupe3 = trim($tab[7]);
                $statut_libelle = trim($tab[8]);
                $location_libelle = trim($tab[9]);
                $pays = trim($tab[10]);
                $empr_date_adhesion = trim($tab[11]);
                $empr_date_expiration = trim($tab[12]);
                // cb en 13
                $identifiant_opac = trim($tab[14]);
                $tel1 = trim($tab[15]);
                $tel2 = trim($tab[16]);
                $liste_date = explode('/', $empr_date_adhesion);
                if ($liste_date[2] < 100) {
                    $liste_date[2] += 2000;
                }
                $date_adhesion = $liste_date[2] . "-" . $liste_date[1] . "-" . $liste_date[0];
                $liste_date = explode('/', $empr_date_expiration);
                if ($liste_date[2] < 100) {
                    $liste_date[2] += 2000;
                }
                $date_fin_adhesion = $liste_date[2] . "-" . $liste_date[1] . "-" . $liste_date[0];
                if ($pays) {
                    $empr_codestat = $empr_codestat_etranger;
                } else {
                    $empr_codestat = $empr_codestat_local;
                }
                // recherche de id catégorie
                $id_categ_empr = gestion_empr_categ($categ, $dbh);
                // recherche des groupes
                $id_groupe1 = quel_groupe($groupe1);
                $id_groupe2 = quel_groupe($groupe2);
                $id_groupe3 = quel_groupe($groupe3);
                // recherche de id statut
                $id_statut_empr = gestion_empr_statut($statut_libelle, $dbh);
                if (!$id_statut_empr) {
                    $id_statut_empr = "4";
                }
                // Traitement de l'élève
                $rqt = "select * from empr where empr_cb='" . addslashes($cb) . "'  ";
                $nb = pmb_mysql_query($rqt, $dbh);
                $nb_enreg = pmb_mysql_num_rows($nb);
                switch ($nb_enreg) {
                    case 0:
                        //Cet élève n'est pas enregistré
                        if (!$identifiant_opac) {
                            $login = cre_login($nom, $prenom, $dbh);
                        } else {
                            $login = $identifiant_opac;
                        }
                        $req_insert = "insert into empr SET empr_nom='" . addslashes($nom) . "', empr_prenom='" . addslashes($prenom) . "', empr_cb='" . addslashes($cb) . "', empr_pays='" . addslashes($pays) . "', ";
                        $req_insert .= "empr_tel1='" . addslashes($tel1) . "', empr_tel2='" . addslashes($tel2) . "', empr_categ ={$id_categ_empr}, empr_codestat={$empr_codestat}, ";
                        $req_insert .= "empr_login='******', empr_password='******', empr_mail='" . addslashes($emails) . "', ";
                        $req_insert .= "empr_prof='', empr_lang='fr_FR', empr_statut='" . $id_statut_empr . "', ";
                        //4=Inactif
                        $req_insert .= "empr_location='17', ";
                        //17=ENSAI
                        $req_insert .= "empr_creation='{$date_auj}', empr_modif='{$date_auj}', empr_date_adhesion = '{$date_adhesion}', empr_date_expiration = '{$date_fin_adhesion}' ";
                        $insert = pmb_mysql_query($req_insert, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $req_insert);
                        if (!$insert) {
                            print "<b>Echec de la création de l'élève suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />";
                            print "<br />";
                        } else {
                            $id_cree = pmb_mysql_insert_id();
                            emprunteur::update_digest($login, $login);
                            emprunteur::hash_password($login, $login);
                            gestion_groupe_add($id_groupe1, $id_cree, $dbh);
                            gestion_groupe_add($id_groupe2, $id_cree, $dbh);
                            gestion_groupe_add($id_groupe3, $id_cree, $dbh);
                            $cpt_insert++;
                        }
                        $j++;
                        break;
                    default:
                        print "<ul><li><font color=red><b>Echec pour l'élève suivant déjà présent: </b></font></li>\n\t\t\t\t\t\t\t\t<li><font color=red>{$nom}</font></li>\n\t\t\t\t\t\t\t\t<li><font color=red>{$prenom}</font></li>\n\t\t\t\t\t\t\t\t<li><font color=red>{$cb}</font></li>\n\t\t\t\t\t\t\t\t</ul>";
                        print "<br />";
                        break;
                }
                $totallignes++;
            }
            // fin if pas première ligne ni vide
        }
        // while
        //Affichage des insert et update
        if ($cpt_insert) {
            print $cpt_insert . " élèves créés. <br />";
        }
        print "<br />_____________________<br />";
        print $totallignes . " lignes ont été traitées dans ce fichier.<br />";
        fclose($fichier);
    }
}
示例#9
0
 function list_loans($session_id, $loan_type)
 {
     global $dbh, $msg;
     if (!$session_id) {
         return array();
     }
     $session_info = $this->retrieve_session_information($session_id);
     $empr_id = $session_info["empr_id"];
     if (!$empr_id) {
         return array();
     }
     $empr = new emprunteur($empr_id);
     switch ($loan_type) {
         case LIST_LOAN_LATE:
         case LIST_LOAN_CURRENT:
             $empr->fetch_info_suite();
             $results = array();
             foreach ($empr->prets as $apret) {
                 if ($loan_type == LIST_LOAN_LATE && !$apret["pret_retard"]) {
                     continue;
                 }
                 $expl_object = new exemplaire($apret["cb"]);
                 $aresult = array("empr_id" => $empr_id, "notice_id" => $expl_object->id_notice, "bulletin_id" => $expl_object->id_bulletin, "expl_id" => $apret["id"], "expl_cb" => utf8_normalize($apret["cb"]), "expl_support" => utf8_normalize($apret["typdoc"]), "expl_location_id" => $expl_object->location_id, "expl_location_caption" => utf8_normalize($apret["location"]), "expl_section_id" => $expl_object->section_id, "expl_section_caption" => utf8_normalize($apret["section"]), "expl_libelle" => utf8_normalize(strip_tags($apret["libelle"])), "loan_startdate" => $apret["date_pret"], "loan_returndate" => $apret["date_retour"]);
                 $results[] = $aresult;
             }
             break;
         case LIST_LOAN_PRECEDENT:
             $sql = "SELECT arc_expl_notice, arc_expl_bulletin, arc_expl_id, tdoc_libelle,";
             $sql .= "group_concat(distinct date_format(arc_debut, '" . $msg["format_date"] . "') separator '<br />') as aff_pret_debut, ";
             $sql .= "group_concat(distinct date_format(arc_fin, '" . $msg["format_date"] . "') separator '<br />') as aff_pret_fin, ";
             $sql .= "trim(concat(ifnull(notices_m.tit1,''),ifnull(notices_s.tit1,''),' ',ifnull(bulletin_numero,''), if(mention_date, concat(' (',mention_date,')') ,if (date_date, concat(' (',date_format(date_date, '" . $msg["format_date"] . "'),')') ,'')))) as tit, if(notices_m.notice_id, notices_m.notice_id, notices_s.notice_id) as not_id ";
             $sql .= "FROM (((pret_archive LEFT JOIN notices AS notices_m ON arc_expl_notice = notices_m.notice_id ) ";
             $sql .= "        LEFT JOIN bulletins ON arc_expl_bulletin = bulletins.bulletin_id) ";
             $sql .= "        LEFT JOIN notices AS notices_s ON bulletin_notice = notices_s.notice_id) ";
             $sql .= "        LEFT JOIN docs_type ON docs_type.idtyp_doc = pret_archive.arc_expl_typdoc, ";
             $sql .= "        empr ";
             $sql .= "WHERE empr.id_empr = arc_id_empr and arc_id_empr='{$empr_id}' ";
             $sql .= "group by arc_expl_notice, arc_expl_bulletin, tit, not_id ";
             $sql .= "order by arc_debut desc";
             $res = mysql_query($sql, $dbh);
             while ($row = mysql_fetch_assoc($res)) {
                 $expl_object = new exemplaire('', $row["arc_expl_id"]);
                 $expl_libelle = "";
                 if ($expl_object->id_bulletin) {
                     $bulletin_display = new bulletinage_display($expl_object->id_bulletin);
                     $expl_libelle = $bulletin_display->header;
                 } else {
                     $notice_display = new mono_display($expl_object->id_notice, 0);
                     $expl_libelle = $notice_display->header;
                 }
                 $aresult = array("empr_id" => $empr_id, "notice_id" => $expl_object->id_notice, "bulletin_id" => $expl_object->id_bulletin, "expl_id" => $row["arc_expl_id"], "expl_cb" => utf8_normalize($expl_object->cb), "expl_support" => utf8_normalize($row["tdoc_libelle"]), "expl_location_id" => $expl_object->location_id, "expl_location_caption" => utf8_normalize($expl_object->location), "expl_section_id" => $expl_object->section_id, "expl_section_caption" => utf8_normalize($expl_object->section), "expl_libelle" => utf8_normalize($expl_libelle), "loan_startdate" => $row["aff_pret_debut"], "loan_returndate" => $row["aff_pret_fin"]);
                 $results[] = $aresult;
             }
             break;
     }
     return $results;
 }
示例#10
0
 function import($data)
 {
     //champs de data : nom, prenom, cb, adr1, adr2,cp, ville, pays, mail, tel1, sms, tel2, year, sexe, login, password, date_adhesion, date_fin_blocage, date_expiration, date_creation
     //date_modif, prof, total_loans,last_loan_date, lang, msg, type_abt,
     //Pour la localisation : location, location_libelle, location_libelle_create, locdoc_owner
     //Pour la categorie : categ, categ_libelle, categ_libelle_create;
     //Pour le codestat: codestat, codestat_libelle, codestat_libelle_create;
     //Pour le statut: statut, statut_libelle, statut_libelle_create;
     global $dbh, $lang;
     // check sur le type de  la variable passée en paramètre
     if (!sizeof($data) || !is_array($data)) {
         // si ce n'est pas un tableau ou un tableau vide, on retourne 0
         return 0;
     }
     //Check si le lecteur a au moin un nom ou un prenom
     if (!$data['nom']) {
         return 0;
     }
     //Check si le code barre n'est pas déja utilisé
     $this->cb = addslashes($data['cb']);
     $query = "SELECT id_empr FROM empr WHERE empr_cb='" . $this->cb . "' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT in database");
     }
     //On prepare les paramètres
     $this->empr_location = 0;
     if (!$data['location'] and !$data['location_libelle'] and $data['location_libelle_create'] != '') {
         //Dans la cas ou l'on veut creer la location
         $data2 = array();
         $data2['location_libelle'] = $data['location_libelle_create'];
         $data2['locdoc_codage_import'] = $data['location_libelle_create'];
         $data2['locdoc_owner'] = $data['locdoc_owner'];
         $this->empr_location = docs_location::import($data2);
     } elseif ($data['location_libelle'] != '') {
         $q = "select idlocation from docs_location where location_libelle='" . addslashes($data['location_libelle']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->empr_location = pmb_mysql_result($r, 0, 0);
         }
     } else {
         $q = "select idlocation from docs_location where idlocation='" . addslashes($data['location']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->empr_location = pmb_mysql_result($r, 0, 0);
         }
     }
     if (!$this->empr_location) {
         return 0;
     }
     $this->categ = 0;
     if (!$data['categ'] and !$data['categ_libelle'] and $data['categ_libelle_create'] != '') {
         //Dans la cas ou l'on veut creer la location
         $q = "select id_categ_empr from empr_categ where libelle='" . addslashes($data['categ_libelle_create']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->categ = pmb_mysql_result($r, 0, 0);
         } else {
             $q = "insert into empr_categ (libelle) values ('" . addslashes($data['categ_libelle_create']) . "') ";
             $r = pmb_mysql_query($q, $dbh);
             $this->categ = pmb_mysql_insert_id($dbh);
         }
     } elseif ($data['categ_libelle'] != '') {
         $q = "select id_categ_empr from empr_categ where libelle='" . addslashes($data['categ_libelle']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->categ = pmb_mysql_result($r, 0, 0);
         }
     } else {
         $q = "select id_categ_empr from empr_categ where id_categ_empr='" . addslashes($data['categ']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->categ = pmb_mysql_result($r, 0, 0);
         }
     }
     if (!$this->categ) {
         return 0;
     }
     $this->cstat = 0;
     if (!$data['codestat'] and !$data['codestat_libelle'] and $data['codestat_libelle_create'] != '') {
         //Dans la cas ou l'on veut creer la location
         $q = "select idcode from empr_codestat where libelle='" . addslashes($data['codestat_libelle_create']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->cstat = pmb_mysql_result($r, 0, 0);
         } else {
             $q = "insert into empr_codestat (libelle) values ('" . addslashes($data['codestat_libelle_create']) . "') ";
             $r = pmb_mysql_query($q, $dbh);
             $this->cstat = pmb_mysql_insert_id($dbh);
         }
     } elseif ($data['codestat_libelle'] != '') {
         $q = "select idcode from empr_codestat where libelle='" . addslashes($data['codestat_libelle']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->cstat = pmb_mysql_result($r, 0, 0);
         }
     } else {
         $q = "select idcode from empr_codestat where idcode='" . addslashes($data['codestat']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->cstat = pmb_mysql_result($r, 0, 0);
         }
     }
     if (!$this->cstat) {
         return 0;
     }
     $this->empr_statut = 0;
     if (!$data['statut'] and !$data['statut_libelle'] and $data['statut_libelle_create'] != '') {
         //Dans la cas ou l'on veut creer la location
         $q = "select idstatut from empr_statut where statut_libelle='" . addslashes($data['statut_libelle_create']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->empr_statut = pmb_mysql_result($r, 0, 0);
         } else {
             $q = "insert into empr_statut (statut_libelle) values ('" . addslashes($data['statut_libelle_create']) . "') ";
             $r = pmb_mysql_query($q, $dbh);
             $this->empr_statut = pmb_mysql_insert_id($dbh);
         }
     } elseif ($data['statut_libelle'] != '') {
         $q = "select idstatut from empr_statut where statut_libelle='" . addslashes($data['statut_libelle']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->empr_statut = pmb_mysql_result($r, 0, 0);
         }
     } else {
         $q = "select idstatut from empr_statut where idstatut='" . addslashes($data['statut']) . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (pmb_mysql_num_rows($r)) {
             $this->empr_statut = pmb_mysql_result($r, 0, 0);
         }
     }
     if (!$this->empr_statut) {
         return 0;
     }
     $this->nom = addslashes($data['nom']);
     $this->prenom = addslashes($data['prenom']);
     $this->adr1 = addslashes($data['adr1']);
     $this->adr2 = addslashes($data['adr2']);
     $this->cp = addslashes($data['cp']);
     $this->ville = addslashes($data['ville']);
     $this->pays = addslashes($data['pays']);
     $this->mail = addslashes($data['mail']);
     $this->tel1 = addslashes($data['tel1']);
     $this->sms = addslashes($data['sms']);
     $this->tel2 = addslashes($data['tel2']);
     if ($data['sexe'] === 0 or $data['sexe'] == 1 or $data['sexe'] == 2) {
         $this->sexe = $data['sexe'];
     } else {
         $this->sexe = 0;
     }
     $this->birth = addslashes($data['year']);
     $this->date_adhesion = addslashes($data['date_adhesion']);
     $this->date_blocage = addslashes($data['date_fin_blocage']);
     $this->date_expiration = addslashes($data['date_expiration']);
     if (!$data['date_creation']) {
         $this->cdate = today();
     } else {
         $this->cdate = addslashes($data['date_creation']);
     }
     if (!$data['date_modif']) {
         $this->mdate = today();
     } else {
         $this->mdate = addslashes($data['date_modif']);
     }
     $this->pwd = addslashes($data['password']);
     $this->prof = addslashes($data['prof']);
     $this->total_loans = addslashes($data['total_loans']);
     $this->last_loan_date = addslashes($data['last_loan_date']);
     if (!$data['lang']) {
         $this->empr_lang = $lang;
     } else {
         $this->empr_lang = addslashes($data['lang']);
     }
     $this->empr_msg = addslashes($data['msg']);
     $this->type_abt = addslashes($data['type_abt']);
     $this->login = addslashes($data['login']);
     $q = "insert into empr (empr_cb, empr_nom, empr_prenom, empr_adr1, empr_cp, empr_ville, empr_pays, ";
     $q .= "empr_mail, empr_tel1, empr_sms, empr_categ, empr_codestat, empr_sexe, empr_login, empr_date_adhesion, ";
     $q .= "empr_date_expiration, empr_lang, empr_location,empr_msg,empr_year,empr_creation,empr_adr2,empr_tel2, empr_modif,empr_password,empr_prof,type_abt,empr_statut,total_loans,last_loan_date,date_fin_blocage) ";
     $q .= "values ('" . $this->cb . "', '" . $this->nom . "', '" . $this->prenom . "', '" . $this->adr1 . "', '" . $this->cp . "', '" . $this->ville . "', '" . $this->pays . "', ";
     $q .= "'" . $this->mail . "', '" . $this->tel1 . "', '" . $this->sms . "', '" . $this->categ . "', '" . $this->cstat . "', '" . $this->sexe . "', '" . $this->login . "', '" . $this->date_adhesion . "', ";
     $q .= "'" . $this->date_expiration . "', '" . $this->empr_lang . "', '" . $this->empr_location . "', '" . $this->empr_msg . "', '" . $this->birth . "', '" . $this->cdate . "', '" . $this->adr2 . "', '" . $this->tel2 . "', '" . $this->mdate . "', '" . $this->pwd . "', '" . $this->prof . "','" . $this->type_abt . "','" . $this->empr_statut . "','" . $this->total_loans . "', '" . $this->last_loan_date . "', '" . $this->date_blocage . "') ";
     $r = pmb_mysql_query($q, $dbh);
     $id_empr = pmb_mysql_insert_id($dbh);
     emprunteur::update_digest($this->login, $this->pwd);
     emprunteur::hash_password($this->login, $this->pwd);
     return $id_empr;
 }
示例#11
0
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&eacute;c&eacute;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&eacute;c&eacute;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);
    }
}
示例#13
0
function show_list_recept()
{
    global $msg, $charset, $dbh, $tab_bib;
    global $recept_search_form, $recept_list_form, $recept_search_form_suite, $recept_hrow_form, $recept_row_form, $sel_fou_form, $sel_dem_form, $sel_rub_form, $sel_date_form;
    global $bt_app, $bt_rel, $bt_chk, $link_not, $link_bull, $link_art, $link_sug, $bt_cat;
    global $user_userid;
    global $lgstat_filter, $deflt3lgstatcde;
    global $id_bibli, $id_exer;
    global $f_fou_code, $f_dem_code, $t_dem, $f_rub_code;
    global $cde_query, $all_query, $recept_query;
    global $chk_dev;
    global $lgstat_all, $comment_lg_all, $comment_lo_all;
    global $page, $nb_per_page, $nbr_lignes, $last_param;
    global $date_inf, $date_sup;
    //verifications
    if (!$id_bibli) {
        $id_bibli = entites::getSessionBibliID();
    }
    if (!$id_bibli) {
        $id_bibli = $tab_bib[0][0];
    }
    entites::setSessionBibliId($id_bibli);
    $id_exer = exercices::getSessionExerciceId($id_bibli, $id_exer);
    //Affichage form de recherche
    $titre = htmlentities($msg['recherche'] . ' : ' . $msg['acquisition_recept'], ENT_QUOTES, $charset);
    $recept_form = $recept_search_form;
    $recept_form = str_replace('!!form_title!!', $titre, $recept_form);
    $serialized_search = rawurlencode(serialize(array('id_bibli' => $id_bibli, 'id_exer' => $id_exer, 'f_fou_code' => $f_fou_code, 'f_dem_code' => $f_dem_code, 't_dem' => $t_dem, 'f_rub_code' => $f_rub_code, 'cde_query' => stripslashes($cde_query), 'all_query' => stripslashes($all_query), 'chk_dev' => $chk_dev, 'lgstat_filter' => $lgstat_filter)));
    $recept_form = str_replace('!!serialized_search!!', $serialized_search, $recept_form);
    //Affichage selecteur etablissement
    $sel_bibli = entites::getBibliHtmlSelect(SESSuserid, $id_bibli, FALSE, array('class' => 'saisie-50em', 'id' => 'id_bibli', 'name' => 'id_bibli', 'onChange' => 'submit();'));
    $recept_form = str_replace('<!-- sel_bibli -->', $sel_bibli, $recept_form);
    //Affichage selecteur exercice
    $sel_exer = exercices::getHtmlSelect($id_bibli, $id_exer, FALSE, array('id' => 'id_exer', 'name' => 'id_exer', 'onChange' => 'submit();'));
    $recept_form = str_replace('<!-- sel_exer -->', $sel_exer, $recept_form);
    //Affichage fournisseurs
    $i = 0;
    $tab_fou2 = array();
    if (is_array($f_fou_code) && count($f_fou_code)) {
        $tab_fou = entites::getRaisonSociale($f_fou_code, $id_bibli);
        foreach ($f_fou_code as $v) {
            if ($v && $tab_fou[$v]) {
                $tab_fou2[$v] = $tab_fou[$v];
                if ($i > 0) {
                    $recept_form = str_replace('<!-- sel_fou -->', $sel_fou_form . '<!-- sel_fou -->', $recept_form);
                    $recept_form = str_replace('!!i!!', $i, $recept_form);
                }
                $recept_form = str_replace('!!f_fou_code!!', $v, $recept_form);
                $recept_form = str_replace('!!f_fou!!', htmlentities($tab_fou[$v], ENT_QUOTES, $charset), $recept_form);
                $i++;
            }
        }
        $recept_form = str_replace('!!max_fou!!', $i > 0 ? $i : '1', $recept_form);
    }
    if (!$i) {
        $recept_form = str_replace('!!f_fou_code!!', '0', $recept_form);
        $recept_form = str_replace('!!f_fou!!', '', $recept_form);
        $recept_form = str_replace('!!max_fou!!', '1', $recept_form);
    }
    //Affichage demandeurs
    $i = 0;
    $tab_empr = array();
    $tab_user = array();
    if (is_array($f_dem_code) && count($f_dem_code) && is_array($t_dem) && count($t_dem)) {
        foreach ($f_dem_code as $k => $v) {
            if ($t_dem[$k]) {
                $tab_empr[] = $v;
            } else {
                $tab_user[] = $v;
            }
        }
        $tab_empr = emprunteur::getName($tab_empr);
        $tab_user = getUserName($tab_user);
        foreach ($f_dem_code as $k => $v) {
            if ($v && ($t_dem[$k] === '0' && $tab_user[$v] || $t_dem[$k] === '1' && $tab_empr[$v])) {
                if ($i > 0) {
                    $recept_form = str_replace('<!-- sel_dem -->', $sel_dem_form . '<!-- sel_dem -->', $recept_form);
                    $recept_form = str_replace('!!i!!', $i, $recept_form);
                }
                $recept_form = str_replace('!!f_dem_code!!', $v, $recept_form);
                $recept_form = str_replace('!!t_dem!!', $t_dem[$k], $recept_form);
                if ($t_dem[$k]) {
                    $recept_form = str_replace('!!f_dem!!', htmlentities($tab_empr[$v], ENT_QUOTES, $charset), $recept_form);
                } else {
                    $recept_form = str_replace('!!f_dem!!', htmlentities($tab_user[$v], ENT_QUOTES, $charset), $recept_form);
                }
                $i++;
            }
        }
        $recept_form = str_replace('!!max_dem!!', $i > 0 ? $i : '1', $recept_form);
    }
    if (!$i) {
        $recept_form = str_replace('!!f_dem_code!!', '0', $recept_form);
        $recept_form = str_replace('!!t_dem!!', '0', $recept_form);
        $recept_form = str_replace('!!f_dem!!', '', $recept_form);
        $recept_form = str_replace('!!max_dem!!', '1', $recept_form);
    }
    //Affichage rubriques budgetaires
    $i = 0;
    $tab_rub2 = array();
    if (is_array($f_rub_code) && count($f_rub_code)) {
        $tab_rub = rubriques::getLibelle($f_rub_code, $id_bibli, $id_exer, SESSuserid);
        foreach ($f_rub_code as $v) {
            if ($v && $tab_rub[$v]) {
                $tab_rub2[$v] = $tab_rub[$v];
                if ($i > 0) {
                    $recept_form = str_replace('<!-- sel_rub -->', $sel_rub_form . '<!-- sel_rub -->', $recept_form);
                    $recept_form = str_replace('!!i!!', $i, $recept_form);
                }
                $recept_form = str_replace('!!f_rub_code!!', $v, $recept_form);
                $recept_form = str_replace('!!f_rub!!', htmlentities($tab_rub[$v], ENT_QUOTES, $charset), $recept_form);
                $i++;
            }
        }
        $recept_form = str_replace('!!max_rub!!', $i > 0 ? $i : '1', $recept_form);
    }
    if (!$i) {
        $recept_form = str_replace('!!f_rub_code!!', '0', $recept_form);
        $recept_form = str_replace('!!f_rub!!', '', $recept_form);
        $recept_form = str_replace('!!max_rub!!', '1', $recept_form);
    }
    //Affichage zone commande
    if (!isset($chk_dev)) {
        $chk_dev = TYP_ACT_CDE;
    }
    if ($chk_dev) {
        $recept_form = str_replace('!!dev_checked!!', "checked='checked'", $recept_form);
        $recept_form = str_replace('!!cde_checked!!', '', $recept_form);
    } else {
        $recept_form = str_replace('!!dev_checked!!', '', $recept_form);
        $recept_form = str_replace('!!cde_checked!!', "checked='checked'", $recept_form);
    }
    $recept_form = str_replace('!!cde_query!!', htmlentities(stripslashes($cde_query), ENT_QUOTES, $charset), $recept_form);
    //Affichage selecteur dates
    $sel_date_form[0] = str_replace('!!msg!!', htmlentities($msg['acquisition_recept_date'], ENT_QUOTES, $charset), $sel_date_form[0]);
    if ($date_inf) {
        $date_inf_lib = formatdate($date_inf);
    } else {
        $date_inf_lib = $msg['parperso_nodate'];
    }
    $sel_date_form[1] = str_replace('!!date_inf!!', $date_inf, $sel_date_form[1]);
    $sel_date_form[1] = str_replace('!!date_inf_lib!!', $date_inf_lib, $sel_date_form[1]);
    if ($date_sup) {
        $date_sup_lib = formatdate($date_sup);
    } else {
        $date_sup_lib = $msg['parperso_nodate'];
    }
    $sel_date_form[2] = str_replace('!!date_sup!!', $date_sup, $sel_date_form[2]);
    $sel_date_form[2] = str_replace('!!date_sup_lib!!', $date_sup_lib, $sel_date_form[2]);
    $sel_date_form[0] = sprintf($sel_date_form[0], $sel_date_form[1], $sel_date_form[2]);
    $recept_form = str_replace('<!-- sel_date -->', $sel_date_form[0], $recept_form);
    //Creation selecteur statut de lignes de commandes
    if (!(is_array($lgstat_filter) && count($lgstat_filter))) {
        $lgstat_filter = array(0 => $deflt3lgstatcde);
    }
    $sel_lgstat = lgstat::getHtmlSelect($lgstat_filter, FALSE, array('id' => 'lgstat_filter[]', 'name' => 'lgstat_filter[]', 'multiple' => 'multiple', 'size' => '5'));
    $recept_form = str_replace('<!-- sel_lgstat -->', $sel_lgstat, $recept_form);
    //Affichage zone tous les champs
    $recept_form = str_replace('!!all_query!!', htmlentities(stripslashes($all_query), ENT_QUOTES, $charset), $recept_form);
    //Prise en compte du formulaire de recherche
    // nombre de références par pages
    if (!$nb_per_page) {
        $nb_per_page = 10;
    }
    if (!$page) {
        $page = 1;
    }
    $debut = ($page - 1) * $nb_per_page;
    //La recherche ici
    $recept = new receptions($id_bibli, $id_exer);
    //filtre
    $filtres = $recept->setFiltres(array_keys($tab_fou2), array_keys($tab_empr), array_keys($tab_user), array_keys($tab_rub2), $chk_dev, $cde_query, $lgstat_filter, $date_inf, $date_sup);
    // comptage
    if (!$nbr_lignes) {
        $nbr_lignes = $recept->calcNbLignes($all_query);
        $err = $recept->getError();
    }
    // liste
    if ($nbr_lignes) {
        $t_list = $recept->getLignes();
        //Affichage des lignes
        $recept_form .= $recept_list_form;
        //Affichage zone de reception
        $recept_form = str_replace('!!recept_query!!', htmlentities(stripslashes($recept_query), ENT_QUOTES, $charset), $recept_form);
        $tab_aff = array();
        $lgstat_form = lgstat::getHtmlSelect(array(0 => 0), FALSE, array('id' => 'sel_lgstat_!!id_lig!!', 'onchange' => 'recept_upd_lgstat(this.getAttribute("id"));'));
        $act_form = '';
        $i = 1;
        foreach ($t_list as $id_acte => $t_row) {
            //Affichage lignes à recevoir
            foreach ($t_row as $id_ligne => $row) {
                if (!in_array($id_acte, $tab_aff)) {
                    array_push($tab_aff, $id_acte);
                    $recept_form = str_replace('<!-- actes -->', $act_form . '<!-- actes -->', $recept_form);
                    $act_form = str_replace('!!lib_acte!!', htmlentities($msg['acquisition_recept_fou'], ENT_QUOTES, $charset) . "&nbsp;<a href=\"./acquisition.php?categ=ach&sub=fourn&action=modif&id_bibli=" . $id_bibli . '&id=' . $row['num_fournisseur'] . "\">" . htmlentities($row['raison_sociale'], ENT_QUOTES, $charset) . "</a>" . '&nbsp;' . (htmlentities($row['type_acte'] ? $msg['acquisition_act_num_dev'] : $msg['acquisition_act_num_cde'], ENT_QUOTES, $charset) . "<a href=\"./acquisition.php?categ=ach&sub=" . ($row['type_acte'] ? 'devi' : 'cmde') . "&action=modif&id_bibli=" . $id_bibli . ($row['type_acte'] ? '&id_dev=' : '&id_cde=') . $id_acte . "\">" . htmlentities($row['numero'], ENT_QUOTES, $charset) . "</a>") . '&nbsp;' . htmlentities($msg['653'], ENT_QUOTES, $charset) . '&nbsp;' . formatdate($row['date_acte']), $recept_hrow_form);
                }
                $row_form = $recept_row_form;
                $row_form = str_replace('!!code!!', htmlentities($row['code'], ENT_QUOTES, $charset), $row_form);
                $row_form = str_replace('!!lib!!', nl2br(htmlentities($row['libelle'], ENT_QUOTES, $charset)), $row_form);
                $row_form = str_replace('!!qte_cde!!', $row['nb_cde'], $row_form);
                $row_form = str_replace('!!qte_liv!!', $row['nb_liv'], $row_form);
                $row_form = str_replace('!!qte_sol!!', $row['nb_sol'], $row_form);
                $lgstat_row_form = str_replace("value='" . $row['statut'] . "'", "value='" . $row['statut'] . "' selected='selected' ", $lgstat_form);
                $row_form = str_replace('!!lgstat!!', $lgstat_row_form, $row_form);
                $row_form = str_replace('!!comment_lg!!', nl2br(htmlentities($row['commentaires_gestion'], ENT_QUOTES, $charset)), $row_form);
                $row_form = str_replace('!!comment_lo!!', nl2br(htmlentities($row['commentaires_opac'], ENT_QUOTES, $charset)), $row_form);
                $row_form = str_replace('!!id_lig!!', $id_ligne, $row_form);
                $row_form = str_replace('!!typ_lig!!', $row['type_ligne'], $row_form);
                if ($row['num_produit']) {
                    switch ($row['type_ligne']) {
                        case '1':
                            //notice
                            $row_form = str_replace('<!-- link_cat -->', $link_not, $row_form);
                            break;
                        case '2':
                            //bulletin
                            $row_form = str_replace('<!-- link_cat -->', $link_bull, $row_form);
                            break;
                        case '5':
                            //article
                            $id_bull = analysis::getBulletinIdFromAnalysisId($row['num_produit']);
                            if ($id_bull) {
                                $row_form = str_replace('<!-- link_cat -->', $link_art, $row_form);
                                $row_form = str_replace('!!id_bull!!', $id_bull, $row_form);
                            }
                            break;
                        default:
                            break;
                    }
                } else {
                    $tmp_bt_cat = str_replace('!!id_lig!!', $id_ligne, $bt_cat);
                    $row_form = str_replace('<!-- bt_cat -->', $tmp_bt_cat, $row_form);
                }
                if ($row['num_acquisition']) {
                    $row_form = str_replace('<!-- link_sug -->', $link_sug, $row_form);
                    $row_form = str_replace('!!id_sug!!', $row['num_acquisition'], $row_form);
                }
                $row_form = str_replace('!!id_prod!!', $row['num_produit'], $row_form);
                $row_form = str_replace('!!no!!', $i, $row_form);
                $tab_rel = array();
                $tab_rel = lignes_actes::getRelances($id_ligne);
                $row_form = str_replace('!!nb_relances!!', htmlentities(sprintf($msg['acquisition_recept_hist'], count($tab_rel)), ENT_QUOTES, $charset), $row_form);
                if (count($tab_rel)) {
                    $row_form = str_replace('<!-- relances -->', implode('&nbsp;-&nbsp; ', $tab_rel), $row_form);
                }
                $act_form = str_replace('<!-- lignes -->', $row_form . '<!-- lignes -->', $act_form);
                $i++;
            }
        }
        $recept_form = str_replace('<!-- actes -->', $act_form . '<!-- actes -->', $recept_form);
        $recept_form = str_replace('!!max_no!!', $i * 1 - 1, $recept_form);
        //Affichage commentaires
        $recept_form = str_replace('!!comment_lg_all!!', htmlentities(stripslashes($comment_lg_all), ENT_QUOTES, $charset), $recept_form);
        $recept_form = str_replace('!!comment_lo_all!!', htmlentities(stripslashes($comment_lo_all), ENT_QUOTES, $charset), $recept_form);
        //boutons
        $lgstat_all = lgstat::getHtmlSelect(array(0 => 0), $msg['acquisition_recept_lgstat_none'], array('id' => 'sel_lgstat_all', 'name' => 'sel_lgstat_all'));
        $recept_form = str_replace('<!-- sel_lgstat_all -->', $lgstat_all, $recept_form);
        $recept_form = str_replace('<!-- bt_app -->', $bt_app, $recept_form);
        $recept_form = str_replace('<!-- bt_rel -->', $bt_rel, $recept_form);
        $recept_form = str_replace('<!-- bt_chk -->', $bt_chk, $recept_form);
        //Barre de navigation
        /*
        if (!$last_param) {
        	$nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, true, true) ;
        	    } else {
        	    	$nav_bar = "";
        	    }
        	    $recept_form=str_replace('<!-- nav_bar -->', $nav_bar,$recept_form);
        */
        $recept_form .= $recept_search_form_suite;
        print $recept_form;
    } elseif ($err) {
        //erreur dans la recherche
        $recept_form .= $recept_search_form_suite;
        print $recept_form;
        print $err;
    } else {
        // pas de resultat
        $recept_form .= $recept_search_form_suite;
        print $recept_form;
        $cle = array();
        if ($cde_query) {
            $cle[] = htmlentities($msg['acquisition_recept_act_search'] . ' ' . stripslashes($cde_query), ENT_QUOTES, $charset);
        }
        if ($all_query) {
            $cle[] = htmlentities($msg['acquisition_recept_global_search'] . ' ' . stripslashes($all_query), ENT_QUOTES, $charset);
        }
        error_message($msg['acquisition_recept_rech'], str_replace('!!cle!!', implode(',', $cle), $msg['acquisition_recept_rech_error']), 0);
    }
}
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&eacute;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&eacute;c&eacute;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 &ecirc;tre t&eacute;l&eacute;charg&eacute;. 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&eacute;ro identifiant\" non renseign&eacute; : </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&eacute;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&eacute;s. <br />";
        }
        if ($cpt_insert) {
            print $cpt_insert . " lecteurs cr&eacute;&eacute;s. <br />";
        }
        if ($cpt_maj) {
            print $cpt_maj . " lecteurs modifi&eacute;s. <br />";
        }
        fclose($fichier);
    }
}
示例#15
0
     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>";
                     }
示例#16
0
 function display_result()
 {
     global $class_path, $charset, $msg;
     $aff = "";
     if ($this->query) {
         $execute_query = mysql_query($this->query);
         $aff .= "<table class='" . $this->css["table"]["class"] . "' style='" . $this->css["table"]["style"] . "'>";
         $parity = 0;
         $header = "";
         $s = explode(",", $this->displaycolumns);
         for ($n = 0; $n < count($s); $n++) {
             if (substr($s[$n], 0, 1) == "#" && $this->params["REFERENCE"][0]["DYNAMICFIELDS"] == "yes") {
                 //champs perso
                 require_once $class_path . "/parametres_perso.class.php";
                 $cp = new parametres_perso($this->params["REFERENCE"][0]["PREFIXNAME"]);
                 if (!$cp->no_special_fields) {
                     $id = substr($s[$n], 1);
                     $header .= "<th>" . htmlentities($cp->t_fields[$id][TITRE], ENT_QUOTES, $charset) . "</th>";
                 }
             } elseif (array_key_exists($s[$n], $this->fixedfields)) {
                 //champs fixes
                 $header .= "<th>" . $msg[str_replace("msg:", "", $this->fixedfields[$s[$n]]["NAME"])] . "</th>";
             } elseif (array_key_exists($s[$n], $this->specialfields)) {
                 //champs spéciaux
                 $header .= "<th>" . $msg[str_replace("msg:", "", $this->specialfields[$s[$n]]["NAME"])] . "</th>";
             } else {
                 $header .= "<th>&nbsp;</th>";
             }
         }
         $aff .= $header;
         while ($result = mysql_fetch_array($execute_query)) {
             $onmouseout = $this->scripts["row"]["onmouseout"];
             $onmouseover = $this->scripts["row"]["onmouseover"];
             $onmousedown = $this->scripts["row"]["onmousedown"];
             if ($parity % 2) {
                 $pair_impair = $this->css["row_even"]["class"];
                 $pair_impair_style = $this->css["row_even"]["style"];
                 $onmouseout = str_replace('!!parity!!', $this->css["row_even"]["class"], $onmouseout);
                 $onmouseover = str_replace('!!parity!!', $this->css["row_even"]["class"], $onmouseover);
                 $onmouseout = str_replace('!!parity!!', $this->css["row_even"]["class"], $onmouseout);
             } else {
                 $pair_impair = $this->css["row_odd"]["class"];
                 $pair_impair_style = $this->css["row_odd"]["style"];
                 $onmouseout = str_replace('!!parity!!', $this->css["row_odd"]["class"], $onmouseout);
                 $onmouseover = str_replace('!!parity!!', $this->css["row_odd"]["class"], $onmouseover);
                 $onmousedown = str_replace('!!parity!!', $this->css["row_odd"]["class"], $onmousedown);
             }
             $ligne = "";
             $s = explode(",", $this->displaycolumns);
             //parcours des champs
             for ($i = 0; $i < count($s); $i++) {
                 //détermination de la valeur
                 if (substr($s[$i], 0, 1) == "#" && $this->params["REFERENCE"][0]["DYNAMICFIELDS"] == "yes") {
                     //champs perso
                     require_once $class_path . "/parametres_perso.class.php";
                     $cp = new parametres_perso($this->params["REFERENCE"][0]["PREFIXNAME"]);
                     $id = substr($s[$i], 1);
                     $cp->get_values($result[$this->params["REFERENCEKEY"][0]["value"]]);
                     if (!$cp->no_special_fields) {
                         //    						$temp=$result[$this->params["REFERENCE"][0]["PREFIXNAME"]."_custom_".$cp->t_fields[$id]["DATATYPE"].$id];
                         $onmouseout = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseout);
                         $onmouseover = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseover);
                         $onmousedown = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmousedown);
                         $temp = $cp->get_formatted_output($cp->values[$id], $id);
                         if (!$temp) {
                             $temp = "&nbsp;";
                         }
                         $ligne .= "<td class='" . $this->css["cols"][$i]["class"] . "' style='" . $this->css["cols"][$i]["style"] . "'>" . $temp . "</td>";
                     }
                 } elseif (array_key_exists($s[$i], $this->fixedfields)) {
                     //champs fixes
                     $f = array();
                     if ($this->fixedfields[$s[$i]]["LINK"]) {
                         for ($x = 0; $x < count($this->fixedfields[$s[$i]]["LINK"]); $x++) {
                             if ($this->fixedfields[$s[$i]]["LINK"][$x]["TYPE"] == "nn") {
                                 if ($this->fixedfields[$s[$i]]["TABLEALIAS"][0]["NAME"]) {
                                     $f[0] = $this->fixedfields[$s[$i]]["TABLEALIAS"][0]["NAME"];
                                 } else {
                                     $f[0] = $this->fixedfields[$s[$i]]["TABLEFIELD"][0]["NAME"];
                                 }
                             } else {
                                 if ($this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]) {
                                     $f[0] = $this->fixedfields[$s[$i]]["TABLEALIAS"][0][value];
                                 } else {
                                     $f[0] = $this->fixedfields[$s[$i]]["TABLEFIELD"][0][value];
                                 }
                             }
                         }
                     } else {
                         if ($this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]) {
                             $f = explode(",", $this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]);
                         } else {
                             $f = explode(",", $this->fixedfields[$s[$i]]["TABLEFIELD"][0][value]);
                         }
                     }
                     $b = 0;
                     $ligne .= "<td class='" . $this->css["cols"][$i]["class"] . "' style='" . $this->css["cols"][$i]["style"] . "'>";
                     while ($b < count($f)) {
                         $temp = $result[$f[$b]];
                         if ($temp == '') {
                             $temp = "&nbsp;";
                         }
                         $ligne .= $temp . "&nbsp;";
                         $b++;
                     }
                     $ligne .= "</td>";
                     $onmouseout = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseout);
                     $onmouseover = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseover);
                     $onmousedown = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmousedown);
                 } else {
                     $name_function = $this->specialfields[$s[$i]]["FUNCTION"];
                     $r = "";
                     $key = $result[$this->params["REFERENCEKEY"][0][value]];
                     eval("\$r=" . $name_function . "(\$key);");
                     $ligne .= $r;
                 }
             }
             if ($this->filter_name == "empr" && !array_search("b", $s)) {
                 require_once $class_path . "/emprunteur.class.php";
                 $code_b = emprunteur::get_cb_empr($result[$this->params["REFERENCEKEY"][0][value]]);
                 if ($code_b) {
                     $onmouseout = str_replace("!!b!!", $code_b, $onmouseout);
                     $onmouseover = str_replace("!!b!!", $code_b, $onmouseover);
                     $onmousedown = str_replace("!!b!!", $code_b, $onmousedown);
                 }
             }
             $onmouseout = str_replace("!!" . $this->params["REFERENCEKEY"][0][value] . "!!", $result[$this->params["REFERENCEKEY"][0][value]], $onmouseout);
             $onmouseover = str_replace("!!" . $this->params["REFERENCEKEY"][0][value] . "!!", $result[$this->params["REFERENCEKEY"][0][value]], $onmouseover);
             $onmousedown = str_replace("!!" . $this->params["REFERENCEKEY"][0][value] . "!!", $result[$this->params["REFERENCEKEY"][0][value]], $onmousedown);
             $aff .= "<tr class='" . $pair_impair . "' style='{$pair_impair_style}' onmouseover=\"this.className='surbrillance';" . $onmouseover . "\" onmouseout=\"" . $onmouseout . "\" onmousedown='" . $onmousedown . "'>";
             $aff .= $ligne;
             $aff .= "</tr>";
             $parity += 1;
         }
         $aff .= "</table>";
     }
     return $aff;
 }
示例#17
0
 function update_members()
 {
     global $dbh;
     global $msg;
     if ($this->id) {
         if ($this->nb_members) {
             while (list($cle, $membre) = each($this->members)) {
                 $date_prolong = "form_expiration_" . $membre['id'];
                 global ${$date_prolong};
                 if (${$date_prolong} != "") {
                     //Ne pas débiter l'abonnement deux fois..
                     $requete = "SELECT empr_date_expiration FROM empr WHERE id_empr=" . $membre['id'];
                     $resultat = pmb_mysql_query($requete, $dbh);
                     if ($resultat) {
                         if (str_replace("-", "", pmb_mysql_result($resultat, 0, 0)) != str_replace("-", "", ${$date_prolong})) {
                             // mise à jour
                             $requete = "UPDATE empr";
                             $requete .= " SET empr_date_expiration='" . ${$date_prolong} . "'";
                             $requete .= " WHERE id_empr=" . $membre['id'] . " LIMIT 1";
                             @pmb_mysql_query($requete, $dbh);
                             if (!pmb_mysql_errno($dbh)) {
                                 global $debit;
                                 if ($debit) {
                                     if ($debit == 2) {
                                         $rec_caution = true;
                                     } else {
                                         $rec_caution = false;
                                     }
                                     emprunteur::rec_abonnement($membre['id'], $membre['id_abt'], $membre['id_categ'], $rec_caution);
                                 }
                             } else {
                                 error_message($msg[540], "erreur modification emprunteur", 1, './circ.php?categ=groups&action=showgroup&groupID=".$this->id."');
                             }
                         }
                     }
                 }
             }
         }
     }
 }
示例#18
0
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&eacute;c&eacute;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&eacute;l&eacute;charg&eacute;. 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&eacute;l&eacute;chargement du fichier effectu&eacute;.<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&eacute;.";
        print "<br /><hr />";
        print "Nombre de lecteurs import&eacute;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 &agrave; l&apos;enregistrement n° " . $tab_err[$i] . "<br />";
            }
            print "<hr /><br />";
        }
    } else {
        print "Le fichier n&apos;a pu &ecirc;tre lu .";
    }
}
示例#19
0
function show_empr_form($form_action, $form_cancel, $link, $id, $cb, $duplicate_empr_from_id = "")
{
    global $empr_form;
    global $dbh, $msg, $charset;
    global $biblio_email;
    global $aff_list_empr;
    global $deflt2docs_location;
    global $pmb_lecteurs_localises;
    global $pmb_gestion_abonnement, $pmb_gestion_financiere, $empr_abonnement_default_debit;
    global $empr_prolong_calc_date_adhes_depassee;
    global $database_window_title;
    global $lang;
    global $pmb_rfid_activate, $pmb_rfid_serveur_url;
    global $pmb_opac_view_activate;
    // si $id est fourni, il s'agit d'une modification. on recupere les donnees dans $link
    if ($id) {
        // modification
        echo window_title($database_window_title . $msg[55]);
        $entete = $msg[55];
        if ($pmb_rfid_activate == 1 && $pmb_rfid_serveur_url) {
            $script_rfid_encode = "if(script_rfid_encode()==false) return false;";
        } else {
            $script_rfid_encode = '';
        }
        $empr_form = str_replace("!!questionrfid!!", $script_rfid_encode, $empr_form);
        $requete = "SELECT * FROM empr WHERE id_empr='{$id}' ";
        $res = mysql_query($requete, $link);
        if ($res) {
            $empr = mysql_fetch_object($res);
        } else {
            error_message($msg[53], $msg[54], 0);
        }
    } else {
        // création
        $empr = new stdClass();
        $entete = $msg[15];
        $empr_form = str_replace("!!questionrfid!!", '', $empr_form);
    }
    if ($duplicate_empr_from_id) {
        $empr_form = str_replace("!!id!!", "", $empr_form);
        $empr_form = str_replace("!!entete!!", $msg["empr_duplicate"], $empr_form);
    } else {
        $empr_form = str_replace("!!id!!", $id, $empr_form);
        $empr_form = str_replace("!!entete!!", $entete, $empr_form);
    }
    $empr_form = str_replace("!!form_action!!", $form_action, $empr_form);
    if ($empr->empr_cb) {
        //Si il y a un code lecteur
        if (!$duplicate_empr_from_id) {
            $empr_form = str_replace("!!cb!!", $empr->empr_cb, $empr_form);
        } else {
            $empr_form = str_replace("!!cb!!", $cb, $empr_form);
        }
        $date_adhesion = !$duplicate_empr_from_id ? $empr->empr_date_adhesion : date('Y-m-d');
        $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=empr_form&date_caller=" . preg_replace('/-/', '', $date_adhesion) . "&param1=form_adhesion&param2=form_adhesion_lib&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 250, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\"  ";
        $adhesion = "\n\t\t\t\t<input type='hidden' name='form_adhesion' value='" . preg_replace('/-/', '', $date_adhesion) . "' />\n\t\t\t\t<input class='bouton' type='button' name='form_adhesion_lib' value='" . formatdate($date_adhesion) . "' " . $date_clic . " />";
        $empr_form = str_replace("!!adhesion!!", $adhesion, $empr_form);
        $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=empr_form&date_caller=" . preg_replace('/-/', '', $empr->empr_date_expiration) . "&param1=form_expiration&param2=form_expiration_lib&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 205, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\"  ";
        $expiration = "\n\t\t\t\t<input type='hidden' id='form_expiration' name='form_expiration' value='" . preg_replace('/-/', '', $empr->empr_date_expiration) . "' />\n\t\t\t\t<input class='bouton' type='button' id='form_expiration_lib' name='form_expiration_lib' value='" . formatdate($empr->empr_date_expiration) . "' " . $date_clic . " />";
        $empr_form = str_replace("!!expiration!!", $expiration, $empr_form);
        // ajout ici des trucs sur la relance adhésion
        $empr_temp = new emprunteur($id, '', FALSE, 0);
        $aff_relance = "";
        if ($empr_temp->adhesion_renouv_proche() || $empr_temp->adhesion_depassee()) {
            if ($empr_temp->adhesion_depassee()) {
                $mess_relance = $msg[empr_date_depassee];
            } else {
                $mess_relance = $msg[empr_date_renouv_proche];
            }
            $rqt = "select duree_adhesion from empr_categ where id_categ_empr='{$empr_temp->categ}'";
            $res_dur_adhesion = mysql_query($rqt, $dbh);
            $row = mysql_fetch_row($res_dur_adhesion);
            $nb_jour_adhesion_categ = $row[0];
            if ($empr_prolong_calc_date_adhes_depassee && $empr_temp->adhesion_depassee()) {
                $rqt_date = "select date_add(curdate(),INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\tdate_add(curdate(),INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin ";
            } else {
                $rqt_date = "select date_add('{$empr_temp->date_expiration}',INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\tdate_add('{$empr_temp->date_expiration}',INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin ";
            }
            $resultatdate = mysql_query($rqt_date) or die("<br /> {$rqt_date} " . mysql_error());
            $resdate = mysql_fetch_object($resultatdate);
            $nouv_date_debut = $resdate->nouv_date_debut;
            $nouv_date_fin = $resdate->nouv_date_fin;
            $nouv_date_debut_formatee = formatdate($nouv_date_debut);
            $nouv_date_fin_formatee = formatdate($nouv_date_fin);
            // on conserve la date d'adhésion initiale
            $action_prolonger = "this.form.form_expiration.value = '{$nouv_date_fin}';\n\t\t\t\tthis.form.form_expiration_lib.value = '{$nouv_date_fin_formatee}';\n\t\t\t\t";
            $action_relance_courrier = "openPopUp('./pdf.php?pdfdoc=lettre_relance_adhesion&id_empr={$id}', 'lettre', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes'); return(false) ";
            $aff_relance = "<div class='row'>\n\t\t\t\t\t\t<span class='erreur'>{$mess_relance}</span><br />\n\t\t\t\t\t\t<input class='bouton' type='button' value=\"" . $msg[prolonger] . "\" onClick=\"{$action_prolonger}\" />&nbsp;\n\t\t\t\t\t\t<input class='bouton' type='button' value=\"" . $msg[prolong_courrier] . "\" onClick=\"{$action_relance_courrier}\" />";
            if ($empr_temp->mail && $biblio_email) {
                $action_relance_mail = "if (confirm('" . $msg["mail_retard_confirm"] . "')) {openPopUp('./mail.php?type_mail=mail_relance_adhesion&id_empr={$id}', 'mail', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes'); } return(false) ";
                $aff_relance .= "&nbsp;<input class='bouton' type='button' value=\"" . $msg['prolong_mail'] . "\" onClick=\"{$action_relance_mail}\" />";
            }
            $aff_relance .= "</div>";
            if ($pmb_gestion_financiere && $pmb_gestion_abonnement) {
                $aff_relance .= "<div class='row'><input type='radio' name='debit' value='0' id='debit_0' " . (!$empr_abonnement_default_debit ? "checked" : "") . " /><label for='debit_0'>" . $msg["finance_abt_no_debit"] . "</label>&nbsp;<input type='radio' name='debit' value='1' id='debit_1' " . ($empr_abonnement_default_debit == 1 ? "checked" : "") . " />";
                $aff_relance .= "<label for='debit_1'>" . $msg["finance_abt_debit_wo_caution"] . "</label>&nbsp;";
                if ($pmb_gestion_abonnement == 2) {
                    $aff_relance .= "<input type='radio' name='debit' value='2' id='debit_2' " . ($empr_abonnement_default_debit == 2 ? "checked" : "") . " /><label for='debit_2'>" . $msg["finance_abt_debit_wt_caution"] . "</label>";
                }
                $aff_relance .= "</div>";
            }
        }
        $empr_form = str_replace("!!adhesion_proche_depassee!!", $aff_relance, $empr_form);
        //Liste des types d'abonnement
        $list_type_abt = "";
        if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) {
            $requete = "select * from type_abts order by type_abt_libelle ";
            $resultat_abt = mysql_query($requete);
            $user_loc = $deflt2docs_location;
            $t_type_abt = array();
            while ($res_abt = mysql_fetch_object($resultat_abt)) {
                $locs = explode(",", $res_abt->localisations);
                $as = array_search($user_loc, $locs);
                if ($as !== false && $as !== null || !$res_abt->localisations) {
                    $t_type_abt[] = $res_abt;
                }
            }
            if (count($t_type_abt)) {
                $list_type_abt = "<div class='row'>\n<label for='type_abt'>" . $msg["finance_type_abt"] . "</label></div>\n<div class='row'>\n<select name='type_abt' id='type_abt'>\n";
                for ($i = 0; $i < count($t_type_abt); $i++) {
                    $list_type_abt .= "<option value='" . $t_type_abt[$i]->id_type_abt . "'";
                    if ($empr->type_abt == $t_type_abt[$i]->id_type_abt) {
                        $list_type_abt .= " selected";
                    }
                    $list_type_abt .= ">" . htmlentities($t_type_abt[$i]->type_abt_libelle, ENT_QUOTES, $charset) . "</option>\n";
                }
                $list_type_abt .= "</select></div>";
            }
        }
        $empr_form = str_replace("!!typ_abonnement!!", $list_type_abt, $empr_form);
    } else {
        // création de lecteur
        $empr->empr_date_adhesion = today();
        $empr_form = str_replace('!!cb!!', $cb, $empr_form);
        $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=empr_form&date_caller=" . preg_replace('/-/', '', $empr->empr_date_adhesion) . "&param1=form_adhesion&param2=form_adhesion_lib&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 250, 260, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\"  ";
        $adhesion = "{$msg['1401']}{$msg['1901']}\n\t\t\t\t<input type='hidden' name='form_adhesion' value='" . preg_replace('/-/', '', $empr->empr_date_adhesion) . "'>\n\t\t\t\t<input class='bouton' type='button' name='form_adhesion_lib' value='" . formatdate($empr->empr_date_adhesion) . "' " . $date_clic . " />";
        $empr_form = str_replace("!!adhesion!!", $adhesion, $empr_form);
        $empr_form = str_replace("!!adhesion_proche_depassee!!", "", $empr_form);
        $empr_form = str_replace("!!expiration!!", "<input type='hidden' name='form_expiration' value=''>", $empr_form);
        //Liste des types d'abonnement
        $list_type_abt = "";
        if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) {
            $requete = "select * from type_abts";
            $resultat_abt = mysql_query($requete);
            $user_loc = $deflt2docs_location;
            $t_type_abt = array();
            while ($res_abt = mysql_fetch_object($resultat_abt)) {
                $locs = explode(",", $res_abt->localisations);
                $as = array_search($user_loc, $locs);
                if ($as !== false && $as !== null || !$res_abt->localisations) {
                    $t_type_abt[] = $res_abt;
                }
            }
            if (count($t_type_abt)) {
                $list_type_abt = "<div class='row'>\n<label for='type_abt'>" . $msg["finance_type_abt"] . "</label></div>\n<div class='row'>\n<select name='type_abt' id='type_abt'>\n";
                for ($i = 0; $i < count($t_type_abt); $i++) {
                    $list_type_abt .= "<option value='" . $t_type_abt[$i]->id_type_abt . "'>" . htmlentities($t_type_abt[$i]->type_abt_libelle, ENT_QUOTES, $charset) . "</option>\n";
                }
                $list_type_abt .= "</select></div>";
            }
        }
        $empr_form = str_replace("!!typ_abonnement!!", $list_type_abt, $empr_form);
    }
    $empr_form = str_replace("!!nom!!", htmlentities($empr->empr_nom, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!prenom!!", htmlentities($empr->empr_prenom, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!adr1!!", htmlentities($empr->empr_adr1, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!adr2!!", htmlentities($empr->empr_adr2, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!cp!!", htmlentities($empr->empr_cp, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!ville!!", htmlentities($empr->empr_ville, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!pays!!", htmlentities($empr->empr_pays, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!mail!!", htmlentities($empr->empr_mail, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!tel1!!", htmlentities($empr->empr_tel1, ENT_QUOTES, $charset), $empr_form);
    if (!$empr->empr_sms) {
        $empr_sms_chk = '';
    } else {
        $empr_sms_chk = "checked='checked'";
    }
    $empr_form = str_replace('!!sms!!', $empr_sms_chk, $empr_form);
    $empr_form = str_replace("!!tel2!!", htmlentities($empr->empr_tel2, ENT_QUOTES, $charset), $empr_form);
    $empr_form = str_replace("!!prof!!", htmlentities($empr->empr_prof, ENT_QUOTES, $charset), $empr_form);
    if ($empr->empr_year != 0) {
        $empr_form = str_replace("!!year!!", htmlentities($empr->empr_year, ENT_QUOTES, $charset), $empr_form);
    } else {
        $empr_form = str_replace("!!year!!", "", $empr_form);
    }
    if (!$empr->empr_lang) {
        $empr->empr_lang = $lang;
    }
    $empr_form = str_replace('!!combo_empr_lang!!', make_empr_lang_combo($empr->empr_lang), $empr_form);
    if (!$duplicate_empr_from_id) {
        $empr_form = str_replace('!!empr_login!!', $empr->empr_login, $empr_form);
        $empr_form = str_replace("!!empr_msg!!", htmlentities($empr->empr_msg, ENT_QUOTES, $charset), $empr_form);
    } else {
        $empr_form = str_replace('!!empr_login!!', "", $empr_form);
        $empr_form = str_replace("!!empr_msg!!", "", $empr_form);
    }
    // on récupère le select catégorie
    $requete = "SELECT id_categ_empr, libelle, duree_adhesion FROM empr_categ ORDER BY libelle ";
    $res = mysql_query($requete, $link);
    $nbr_lignes = mysql_num_rows($res);
    $categ_content = '';
    $empr_grille_categ = "<select id='empr_grille_categ' style='display:none;'><option value='0' selected='selected' >" . $msg['all_categories_empr'] . "</value>";
    for ($i = 0; $i < $nbr_lignes; $i++) {
        $row = mysql_fetch_row($res);
        $categ_content .= "<option value='{$row['0']}'";
        if ($row[0] == $empr->empr_categ) {
            $categ_content .= " selected='selected'";
        }
        $categ_content .= ">{$row['1']}</option>";
        $empr_grille_categ .= "<option value='{$row['0']}'>{$row['1']}</option>";
    }
    $empr_grille_categ .= '</select>';
    $empr_form = str_replace("!!categ!!", $categ_content, $empr_form);
    // Ajout des categories et localisations pour edition des grilles
    $empr_form = str_replace("<!-- empr_grille_categ -->", $empr_grille_categ, $empr_form);
    if ($pmb_lecteurs_localises) {
        $empr_grille_location = docs_location::get_html_select(array(0), array('id' => 0, 'msg' => $msg['all_locations_empr']), array('id' => 'empr_grille_location', 'class' => 'saisie-20em', 'style' => 'display:none;'));
    } else {
        $empr_grille_location = "<input type='hidden' id='empr_grille_location' value='0' />";
    }
    $empr_form = str_replace("<!-- empr_grille_location -->", $empr_grille_location, $empr_form);
    $requete = "SELECT id_categ_empr, libelle, duree_adhesion FROM empr_categ ORDER BY libelle ";
    $res = mysql_query($requete, $link);
    $grille_categ = "<option value='0' selected='selected'>" . $msg['all_categories_empr'] . "</value>";
    for ($i = 0; $i < $nbr_lignes; $i++) {
        $row = mysql_fetch_row($res);
        $categ_content .= "<option value='{$row['0']}'";
        if ($row[0] == $empr->empr_categ) {
            $categ_content .= " selected='selected'";
        }
        $categ_content .= ">{$row['1']}</option>";
        $grille_categ .= "<option value='{$row['0']}'>{$row['1']}</option>";
    }
    $empr_form = str_replace("!!categ!!", $categ_content, $empr_form);
    // on récupère le select statut
    $requete = "SELECT idstatut, statut_libelle FROM empr_statut ORDER BY statut_libelle ";
    //Si il n'y a pas de statut on prend celui définit pour l'utilisateur
    if (!$empr->empr_statut) {
        global $deflt_empr_statut;
        $empr->empr_statut = $deflt_empr_statut;
    }
    $res = mysql_query($requete, $link);
    $nbr_lignes = mysql_num_rows($res);
    for ($i = 0; $i < $nbr_lignes; $i++) {
        $row = mysql_fetch_row($res);
        $statut_content .= "<option value='{$row['0']}'";
        if ($row[0] == $empr->empr_statut) {
            $statut_content .= " selected='selected'";
        }
        $statut_content .= ">{$row['1']}</option>";
    }
    $empr_form = str_replace("!!statut!!", $statut_content, $empr_form);
    // et le select code stat
    // on récupère le select cod stat
    $requete = "SELECT idcode, libelle FROM empr_codestat ORDER BY libelle ";
    $res = mysql_query($requete, $link);
    $nbr_lignes = mysql_num_rows($res);
    for ($i = 0; $i < $nbr_lignes; $i++) {
        $row = mysql_fetch_row($res);
        $cstat_content .= "<option value='{$row['0']}'";
        if ($row[0] == $empr->empr_codestat) {
            $cstat_content .= " selected='selected'";
        }
        $cstat_content .= ">{$row['1']}</option>";
    }
    // mise à jour du sexe
    switch ($empr->empr_sexe) {
        case 1:
            $empr_form = str_replace("sexe_select_1", 'selected', $empr_form);
            break;
        case 2:
            $empr_form = str_replace("sexe_select_2", 'selected', $empr_form);
            break;
        default:
            $empr_form = str_replace("sexe_select_0", 'selected', $empr_form);
            break;
    }
    $empr_form = preg_replace("/sexe_select_[0-2]/m", '', $empr_form);
    $empr_form = str_replace("!!cstat!!", $cstat_content, $empr_form);
    // mise à jour du groupe
    if ($id) {
        $requete = "SELECT id_groupe, libelle_groupe, ifnull(empr_id,0) as inscription FROM groupe left join empr_groupe on (id_groupe=groupe_id  and empr_id=" . $id . ")  ORDER BY libelle_groupe";
    } else {
        $requete = "SELECT id_groupe, libelle_groupe, 0 as inscription FROM groupe ORDER BY libelle_groupe";
    }
    $groupe_form_aff = gen_liste_multiple($requete, "id_groupe", "libelle_groupe", "inscription", "id_grp[]", "", $id, 0, $msg[empr_form_aucungroupe], 0, $msg[empr_form_nogroupe], 5);
    $empr_form = str_replace("!!groupe_ajout!!", $groupe_form_aff, $empr_form);
    $empr_form = str_replace('!!cancel!!', $form_cancel, $empr_form);
    // ldap MaxMan
    if ($empr->empr_ldap) {
        $form_ldap = "checked";
    } else {
        $form_ldap = "";
    }
    //$empr_form = str_replace('!!empr_password!!', $empr_password, $empr_form);
    $empr_form = str_replace("!!ldap!!", $form_ldap, $empr_form);
    $empr_form = str_replace('!!empr_password!!', '', $empr_form);
    if (!$empr->empr_location) {
        $empr->empr_location = $deflt2docs_location;
    }
    if ($pmb_lecteurs_localises) {
        $loc = "\n\t\t<div class='row' id='g2_r1' etirable='yes' recept='yes' recepttype='circrow' highlight='circrow_highlight' downlight='circrow_downlight' >\n\t\t\t<div class='colonne4' id='g2_r1_f0' movable='yes' draggable='yes' dragtype='circcell' recept='yes' recepttype='circcell' highlight='circcell_highlight' downlight='circcell_downlight' title='" . htmlentities($msg['empr_location'], ENT_QUOTES, $charset) . "'>\n\t\t\t\t<div class='row'>\n\t\t\t\t\t<label for='form_empr_location' class='etiquette'>" . $msg['empr_location'] . "</label>\n\t\t\t\t\t</div>\n\t\t\t\t<div class='row'>\n\t\t\t\t\t!!localisation!!\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t<div class='row'></div>\n\t\t</div>";
        //$loc = str_replace('!!localisation!!', docs_location::gen_combo_box_empr($empr->empr_location, 0), $loc);
        $loc = str_replace('!!localisation!!', docs_location::get_html_select(array($empr->empr_location), array(), array('id' => 'empr_location_id', 'name' => 'empr_location_id')), $loc);
    } else {
        $loc = "<input type='hidden' name='empr_location_id' id='empr_location_id' value='" . $empr->empr_location . "'>";
        $empr_form = str_replace('<!-- !!localisation!! -->', $loc, $empr_form);
    }
    $empr_form = str_replace('<!-- !!localisation!! -->', $loc, $empr_form);
    if ($pmb_opac_view_activate) {
        $opac_view_tpl = "\n\t\t\t<div class='row' id='g4_r1_f0' movable='yes' draggable='yes' dragtype='circcell' recept='yes' recepttype='circcell' highlight='circcell_highlight' downlight='circcell_downlight' title='" . htmlentities($msg['empr_form_opac_view'], ENT_QUOTES, $charset) . "'>\t\t\t\t\n\t\t\t\t\t!!opac_view!!\n\t\t\t</div>";
        $opac_view = new opac_view(0, $id);
        $opac_view_tpl = str_replace("!!opac_view!!", gen_plus("opac_view", $msg["empr_form_opac_view"], $opac_view->do_sel_list(), 0), $opac_view_tpl);
    }
    $empr_form = str_replace('<!-- !!opac_view!! -->', $opac_view_tpl, $empr_form);
    //Champs persos
    $p_perso = new parametres_perso("empr");
    $perso_ = $p_perso->show_editable_fields($id);
    if (count($perso_["FIELDS"])) {
        $perso = "<div class='row'></div>";
    } else {
        $perso = "";
    }
    $class = "colonne2";
    for ($i = 0; $i < count($perso_["FIELDS"]); $i++) {
        $p = $perso_["FIELDS"][$i];
        $perso .= "<div class='{$class}' id='g6_r0_f" . $i . "' movable='yes' draggable='yes' dragtype='circcell' recept='yes' recepttype='circcell' highlight='circcell_highlight' downlight='circcell_downlight' title='" . htmlentities($p['TITRE'], ENT_QUOTES, $charset) . "' >";
        $perso .= "<div class='row'><label for='" . $p["NAME"] . "' class='etiquette'>" . $p["TITRE"] . "</label></div>\n";
        $perso .= "<div class='row'>";
        $perso .= $p["AFF"] . "</div>";
        $perso .= "</div>";
        if ($class == "colonne2") {
            $class = "colonne_suite";
        } else {
            $class = "colonne2";
        }
    }
    if ($class == "colonne_suite") {
        $perso .= "<div class='{$class}'>&nbsp;</div>";
    }
    $perso .= $perso_["CHECK_SCRIPTS"];
    $empr_form = str_replace("!!champs_perso!!", $perso, $empr_form);
    $empr_form = str_replace('!!empr_notice_override!!', get_rights_form($id), $empr_form);
    print pmb_bidi($empr_form);
}
示例#20
0
     $pair_impair = "even";
 } else {
     $pair_impair = "odd";
 }
 $parity += 1;
 $nb_pret = get_nombre_pret($membre['id']);
 $nb_resa = get_nombre_resa($membre['id']);
 $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='" . $pair_impair . "'\" ";
 $dn_javascript = "onmousedown=\"document.location='./circ.php?categ=pret&form_cb=" . rawurlencode($membre['cb']) . "&groupID={$groupID}';\" style='cursor: pointer' ";
 print pmb_bidi("<tr class='{$pair_impair}' {$tr_javascript}>\n\t\t\t<td {$dn_javascript}><a href=\"./circ.php?categ=pret&form_cb=" . rawurlencode($membre['cb']) . "&groupID={$groupID}\">" . $membre['nom']);
 if ($membre['prenom']) {
     print pmb_bidi(", {$membre['prenom']}");
 }
 print pmb_bidi("\n\t\t\t</a></td>\n\t\t\t<td {$dn_javascript}>{$membre['cb']}</td>\n\t\t\t<td {$dn_javascript}>" . $nb_pret . "</td>\n\t\t\t<td {$dn_javascript}>" . $nb_resa . "</td>");
 if ($empr_allow_prolong_members_group) {
     $empr_temp = new emprunteur($membre['id'], '', FALSE, 0);
     print pmb_bidi("\n\t\t\t\t<td {$dn_javascript}>" . $empr_temp->aff_date_adhesion . "</td>\n\t\t\t\t<td {$dn_javascript}>" . $empr_temp->aff_date_expiration . "</td>");
     if ($empr_temp->adhesion_renouv_proche() || $empr_temp->adhesion_depassee()) {
         $rqt = "select duree_adhesion from empr_categ where id_categ_empr='{$empr_temp->categ}'";
         $res_dur_adhesion = pmb_mysql_query($rqt, $dbh);
         $row = pmb_mysql_fetch_row($res_dur_adhesion);
         $nb_jour_adhesion_categ = $row[0];
         if ($empr_prolong_calc_date_adhes_depassee && $empr_temp->adhesion_depassee()) {
             $rqt_date = "select date_add(curdate(),INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\t\tdate_add(curdate(),INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin ";
         } else {
             $rqt_date = "select date_add('{$empr_temp->date_expiration}',INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\t\tdate_add('{$empr_temp->date_expiration}',INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin ";
         }
         $resultatdate = pmb_mysql_query($rqt_date) or die("<br /> {$rqt_date} " . pmb_mysql_error());
         $resdate = pmb_mysql_fetch_object($resultatdate);
         $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=group_form&date_caller=" . preg_replace('/-/', '', $resdate->nouv_date_fin) . "&param1=form_expiration_" . $membre['id'] . "&param2=form_expiration_lib_" . $membre['id'] . "&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 205, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\"  ";
         $expiration = "\n\t\t\t\t<input type='hidden' id='form_expiration_" . $membre['id'] . "' name='form_expiration_" . $membre['id'] . "' value='" . preg_replace('/-/', '', $resdate->nouv_date_fin) . "' />\n\t\t\t\t<input class='bouton' type='button' id='form_expiration_lib_" . $membre['id'] . "' name='form_expiration_lib_" . $membre['id'] . "' value='" . formatdate($resdate->nouv_date_fin) . "' " . $date_clic . " />";
示例#21
0
 function update_empr($empr_cb = '', $empr_id = 0, $fields)
 {
     global $dbh, $lang;
     global $msg;
     global $charset;
     global $pmb_num_carte_auto, $deflt2docs_location, $pmb_gestion_abonnement, $pmb_gestion_financiere;
     object_to_array($fields);
     $empr_cb = $this->clean_field((string) $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_cb' = {$empr_cb} ou id_empr = {$empr_id} .");
     }
     $empr_res = pmb_mysql_fetch_object($res);
     $empr_id = $empr_res->id_empr;
     // clean des entrées
     $fields = $this->clean_fields($fields);
     /*
     		$fields['nom']=$this->clean_field($fields['nom']);
     		$fields['prenom']=$this->clean_field($fields['prenom']);
     		$fields['adr1']=$this->clean_field($fields['adr1']);
     		$fields['adr2']=$this->clean_field($fields['adr2']);
     		$fields['cp']=$this->clean_field($fields['cp']);
     		$fields['ville']=$this->clean_field($fields['ville']);
     		$fields['pays']=$this->clean_field($fields['pays']);
     		$fields['mail']=$this->clean_field($fields['mail']);
     		$fields['tel1']=$this->clean_field($fields['tel1']);
     		$fields['sms']=$this->clean_field($fields['sms'])+0;
     		$fields['tel2']=$this->clean_field($fields['tel2']);
     		$fields['prof']=$this->clean_field($fields['prof']);
     		$fields['birth']=$this->clean_field($fields['birth']);
     		$fields['sexe']=$this->clean_field($fields['sexe'])+0;
     		$fields['login']=$this->clean_field($fields['login']);
     		$fields['pwd']=$this->clean_field($fields['pwd']);
     		$fields['msg']=$this->clean_field($fields['msg']);
     		$fields['lang']=$this->clean_field($fields['lang']);
     		$fields['location']=$this->clean_field($fields['location']+0);
     		$fields['date_adhesion']=$this->clean_field($fields['date_adhesion']);
     		$fields['date_expiration']=$this->clean_field($fields['date_expiration']);
     		$fields['categ']=$this->clean_field($fields['categ'])+0;
     		$fields['statut']=$this->clean_field($fields['statut']+0);
     		$fields['lang']=$this->clean_field($fields['lang']);
     		$fields['cstat']=$this->clean_field($fields['cstat'])+0;
     		$fields['type_abt']=$this->clean_field($fields['type_abt']+0);
     		$fields['ldap']=$this->clean_field($fields['ldap'])+0;*/
     $fields['sexe'] += 0;
     $fields['location'] += 0;
     $fields['categ'] += 0;
     $fields['statut'] += 0;
     $fields['lang'] += 0;
     $fields['cstat'] += 0;
     $fields['type_abt'] += 0;
     $fields['ldap'] += 0;
     // vérification des champs obligatoires
     if (!$fields['nom']) {
         return $this->build_error("Le champ 'nom' n'est pas renseigne.");
     }
     if (!$fields['categ']) {
         return $this->build_error("Le champ 'categ' n'est pas renseigne.");
     }
     if (!$fields['statut']) {
         return $this->build_error("Le champ 'statut' n'est pas renseigne.");
     }
     if (!$fields['cstat']) {
         return $this->build_error("Le champ 'cstat' n'est pas renseigne.");
     }
     // vérification des relations
     $q = "select idstatut from empr_statut where idstatut='" . $fields['statut'] . "' limit 1";
     $r = pmb_mysql_query($q, $dbh);
     if (!pmb_mysql_num_rows($r)) {
         return $this->build_error("Le champ 'statut' = " . $fields['statut'] . " n'est pas un Id present dans la base de donnee.");
     }
     $q = "select idcode from empr_codestat where idcode='" . $fields['cstat'] . "' limit 1";
     $r = pmb_mysql_query($q, $dbh);
     if (!pmb_mysql_num_rows($r)) {
         return $this->build_error("Le champ 'cstat' = " . $fields['cstat'] . " n'est pas un Id present dans la base de donnee.");
     }
     $q = "select id_categ_empr from empr_categ where id_categ_empr='" . $fields['categ'] . "' limit 1";
     $r = pmb_mysql_query($q, $dbh);
     if (!pmb_mysql_num_rows($r)) {
         return $this->build_error("Le champ 'categ' = " . $fields['categ'] . " n'est pas un Id present dans la base de donnee.");
     }
     if ($fields['location']) {
         $q = "select idlocation from docs_location where idlocation='" . $fields['location'] . "' limit 1";
         $r = pmb_mysql_query($q, $dbh);
         if (!pmb_mysql_num_rows($r)) {
             $fields['location'] = 0;
         }
     }
     if (!$fields['location']) {
         $loca = pmb_mysql_query("select min(idlocation) as idlocation from docs_location", $dbh);
         $locaid = pmb_mysql_fetch_object($loca);
         $fields['location'] = $locaid->idlocation;
     }
     if ($fields['mail']) {
         if (!filter_var($fields['mail'], FILTER_VALIDATE_EMAIL)) {
             return $this->build_error("Le champ 'mail' = " . $fields['mail'] . " n'est pas un mail valide.");
         }
     }
     if (!$fields['sexe']) {
         $fields['sexe'] = 0;
     }
     if (!$fields['lang']) {
         $fields['lang'] = $lang;
     }
     $requete = "UPDATE empr SET ";
     $requete .= "empr_nom='" . addslashes($fields['nom']) . "', ";
     $requete .= "empr_prenom='" . addslashes($fields['prenom']) . "', ";
     $requete .= "empr_adr1='" . addslashes($fields['adr1']) . "', ";
     $requete .= "empr_adr2='" . addslashes($fields['adr2']) . "', ";
     $requete .= "empr_cp='" . addslashes($fields['cp']) . "', ";
     $requete .= "empr_ville='" . addslashes($fields['ville']) . "', ";
     $requete .= "empr_pays='" . addslashes($fields['pays']) . "', ";
     $requete .= "empr_mail='" . addslashes($fields['mail']) . "', ";
     $requete .= "empr_tel1='" . addslashes($fields['tel1']) . "', ";
     $requete .= "empr_sms='" . addslashes($fields['sms']) . "', ";
     $requete .= "empr_tel2='" . addslashes($fields['tel2']) . "', ";
     $requete .= "empr_prof='" . addslashes($fields['prof']) . "', ";
     $requete .= "empr_year='" . addslashes($fields['birth']) . "', ";
     $requete .= "empr_categ='" . $fields['categ'] . "', ";
     $requete .= "empr_statut='" . $fields['statut'] . "', ";
     $requete .= "empr_lang='" . addslashes($fields['lang']) . "', ";
     if ($fields['date_adhesion'] == "") {
         $requete .= "empr_date_adhesion=CURRENT_DATE(), ";
     } else {
         $requete .= "empr_date_adhesion='" . addslashes($fields['date_adhesion']) . "', ";
     }
     if ($fields['date_expiration'] == "" or $fields['date_expiration'] == $fields['date_adhesion']) {
         /* AJOUTER ICI LE CALCUL EN FONCTION DE LA CATEGORIE */
         $rqt_empr_categ = "select duree_adhesion from empr_categ where id_categ_empr = " . $fields['categ'] . " ";
         $res_empr_categ = pmb_mysql_query($rqt_empr_categ, $dbh);
         $empr_categ = pmb_mysql_fetch_object($res_empr_categ);
         if ($fields['date_adhesion']) {
             $rqt_date = "select date_add('" . addslashes($fields['date_adhesion']) . "', INTERVAL " . $empr_categ->duree_adhesion . " DAY) as date_expiration ";
         } else {
             $rqt_date = "select date_add(CURRENT_DATE(), INTERVAL " . $empr_categ->duree_adhesion . " DAY) as date_expiration ";
         }
         $resultatdate = pmb_mysql_query($rqt_date);
         $resdate = pmb_mysql_fetch_object($resultatdate);
         $requete .= "empr_date_expiration='" . $resdate->date_expiration . "', ";
     } else {
         $requete .= "empr_date_expiration='" . $fields['date_expiration'] . "', ";
     }
     $requete .= "empr_codestat=" . $fields['cstat'] . ", ";
     $requete .= "empr_modif=CURRENT_DATE(), ";
     $requete .= "empr_sexe='" . $fields['sexe'] . "', ";
     $requete .= "empr_msg='" . addslashes($fields['msg']) . "', ";
     $requete .= "empr_login='******'login']) . "', ";
     $requete .= "empr_location='" . $fields['location'] . "', ";
     // ldap - MaxMan
     if ($fields['ldap']) {
         $requete .= "empr_ldap='1', ";
         $fields['pwd'] = "";
     } else {
         $requete .= "empr_ldap='0', ";
     }
     //Gestion financière
     if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) {
         $requete .= "type_abt='" . $fields['type_abt'] . "', ";
     } else {
         $requete .= "type_abt=0, ";
     }
     if ($fields['pwd'] != "") {
         $requete .= "empr_password='******'pwd']) . "' ";
     } else {
         $requete .= "empr_password='******'birth']) . "' ";
     }
     $requete .= " WHERE id_empr=" . $empr_id . " limit 1";
     $res = pmb_mysql_query($requete, $dbh);
     if (!$res) {
         return $this->build_error("Impossible de modifier le lecteur: {$requete}");
     }
     if ($fields['pwd'] != "") {
         emprunteur::update_digest($fields['login'], $fields['pwd']);
         emprunteur::hash_password($fields['login'], $fields['pwd']);
     } else {
         emprunteur::update_digest($fields['login'], $fields['birth']);
         emprunteur::hash_password($fields['login'], $fields['birth']);
     }
     if (is_array($fields['pperso_list'])) {
         $p_perso = new parametres_perso("empr");
         foreach ($fields['pperso_list'] as $pp) {
             $name = $pp["name"];
             global ${$name};
             ${$name} = $pp["value_list"];
         }
         $p_perso->rec_fields_perso($empr_id);
     }
     if (is_array($fields['groupe_list'])) {
         emprunteur::rec_groupe_empr($empr_id, $fields['groupe_list']);
     }
     emprunteur::ins_lect_categ_dsi($empr_id, $fields['categ'], 0);
     if ($pmb_gestion_financiere && $pmb_gestion_abonnement) {
         emprunteur::rec_abonnement($empr_id, $type_abt, $fields['categ']);
     }
     return $this->build_ok();
 }
示例#22
0
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;
    }
}
示例#23
0
文件: pret.inc.php 项目: hogsim/PMB
     $p_perso->delete_values($stat_id->pret_arc_id);
     // supprimer le prêt annulé
     $query = "delete from pret ";
     $query .= "where pret_idexpl = '" . $id_expl . "' ";
     $result = pmb_mysql_query($query, $dbh);
     $erreur_affichage = "<hr />\n\t\t\t\t\t<div class='row'>\n\t\t\t\t\t<div class='colonne10'><img src='./images/info.png' /></div>\n\t\t\t\t\t<div class='colonne-suite'><span class='erreur'>" . str_replace('!!cb_expl!!', $cb_doc, $msg[607]) . "</span></div>\n\t\t\t\t\t</div><br />";
     $alert_sound_list[] = "information";
     $empr = new emprunteur($id_empr, $erreur_affichage, FALSE, 1);
     $affichage = $empr->fiche;
 } else {
     $script_magnetique = "\n<script language='javascript' type='text/javascript'>\nvar requete = null;\n\nfunction creerRequette(){\n\tif(window.XMLHttpRequest) // Firefox\n\t\trequete = new XMLHttpRequest();\n\telse if(window.ActiveXObject) // Internet Explorer\n  \t\trequete = new ActiveXObject('Microsoft.XMLHTTP');\n\telse { // XMLHttpRequest non supporté par le navigateur\n   \t\talert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');\n    \treturn;\n\t}\n}\n\nfunction magnetise(commande){\n\tcreerRequette();\n\tif(netscape.security.PrivilegeManager)netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');\n\trequete.open('GET', 'http://localhost:30000/?send_value='+commande+'&command=Send', false);\n\trequete.send(null);\n\tif(requete.readyState != 4) alert('Requête antivol non effectuée !');\n}\n\n";
     //Si il y a un emprunteur
     if ($id_empr) {
         // Vérification id, on dispose d'un id pour l'emprunteur, donc on est en situation de prêt
         if (check_empr($id_empr)) {
             $empr_temp = new emprunteur($id_empr, '', FALSE, 0);
             $empr_date_depassee = $empr_temp->adhesion_depassee();
             //Si adhésion dépassée
             if (!($pmb_pret_adhesion_depassee == 0 && $empr_date_depassee)) {
                 //Si un exemplaire ou un code barres a été fourni
                 if ($cb_doc || $id_expl) {
                     if ($id_expl = get_expl_id_from_cb($cb_doc)) {
                         // Gestion Antivol
                         if ($pmb_antivol > 0) {
                             $rqt = "SELECT type_antivol FROM exemplaires WHERE expl_id='" . $id_expl . "' ";
                             $result = pmb_mysql_query($rqt, $dbh);
                             $expl = pmb_mysql_fetch_object($result);
                             $type_antivol = $expl->type_antivol;
                             if ($type_antivol == 1) {
                                 // c'est un support non magnétique (livre, revue...)
                                 print "{$script_magnetique}" . "magnetise('DDD');</script>";
示例#24
0
 if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) {
     $requete .= "type_abt='" . $type_abt . "', ";
 } else {
     $requete .= "type_abt=0, ";
 }
 if ($form_empr_password != "") {
     $requete .= "empr_password='******', ";
 }
 $requete .= "empr_msg='{$form_empr_msg}', ";
 $requete .= "empr_login='******' ";
 $requete .= " WHERE id_empr='{$id}' ";
 $res = pmb_mysql_query($requete, $dbh);
 if (!pmb_mysql_errno($dbh)) {
     if ($form_empr_password != "") {
         emprunteur::update_digest($form_empr_login, $form_empr_password);
         emprunteur::hash_password($form_empr_login, $form_empr_password);
     }
     $p_perso->rec_fields_perso($id);
     rec_groupe_empr($id, $id_grp);
     // DSI : sur modification de lecteur, pas de mofification de ses inscriptions aux bannettes.
     // ins_lect_categ_dsi($id, $form_categ, $anc_categ) ;
     if ($debit) {
         if ($debit == 2) {
             $rec_caution = true;
         } else {
             $rec_caution = false;
         }
         rec_abonnement($id, $type_abt, $form_categ, $rec_caution);
     }
     if ($pmb_opac_view_activate) {
         $opac_view = new opac_view(0, $id);
示例#25
0
 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;
     }
 }
示例#26
0
function verif_validite_compte()
{
    global $dbh, $msg, $opac_default_lang;
    global $f_nom, $f_prenom, $f_email, $f_login, $f_password;
    global $f_msg, $f_adr1, $f_adr2, $f_cp, $f_ville, $f_pays, $f_tel1;
    global $base_path, $opac_websubscribe_num_carte_auto;
    global $opac_websubscribe_show, $lvl;
    $ret = array();
    $rqt = "select id_empr from empr where empr_mail like '%" . $f_email . "%' ";
    $res = pmb_mysql_query($rqt, $dbh);
    if (pmb_mysql_num_rows($res) > 0) {
        $ret[0] = PBINSC_MAIL;
        $ret[1] = str_replace("!!email!!", urlencode($f_email), $msg[subs_pb_email]);
        return $ret;
    }
    $rqt = "select id_empr from empr where empr_login ='******' ";
    $res = pmb_mysql_query($rqt, $dbh);
    if (pmb_mysql_num_rows($res) > 0) {
        $ret[0] = PBINSC_LOGIN;
        $ret[1] = str_replace("!!f_login!!", $f_login, $msg[subs_pb_login]) . generate_form_inscription();
        return $ret;
    }
    // préparation des données:
    // langue:
    if ($_COOKIE['PhpMyBibli-LANG']) {
        $lang = $_COOKIE['PhpMyBibli-LANG'];
    }
    if (!$lang) {
        if ($opac_default_lang) {
            $lang = $opac_default_lang;
        } else {
            $lang = "fr_FR";
        }
    }
    // paramétrage :
    global $opac_websubscribe_empr_status, $opac_websubscribe_empr_categ, $opac_websubscribe_empr_stat, $opac_websubscribe_valid_limit;
    $opac_websubscribe_empr_status_array = explode(",", $opac_websubscribe_empr_status);
    if (!$opac_websubscribe_empr_categ) {
        $ret[0] = PBINSC_PARAM;
        $ret[1] = $msg[subs_pb_empr_categ];
        return $ret;
    }
    if (!$opac_websubscribe_empr_stat) {
        $ret[0] = PBINSC_PARAM;
        $ret[1] = $msg[subs_pb_empr_codestat];
        return $ret;
    }
    // codes-barres emprunteur bidon :
    $pe_emprcb = 'wwwtmp' . rand(0, 100000);
    // durée d'adhésion de la categ web
    $rqt = "select duree_adhesion from empr_categ where id_categ_empr='" . $opac_websubscribe_empr_categ . "' ";
    $res = pmb_mysql_query($rqt, $dbh);
    $obj = pmb_mysql_fetch_object($res);
    $duree_adhesion = $obj->duree_adhesion;
    global $pmb_lecteurs_localises, $opac_websubscribe_show_location;
    if ($pmb_lecteurs_localises && $opac_websubscribe_show_location) {
        global $empr_location_id;
        $websubscribe_empr_location = $empr_location_id ? $empr_location_id : 0;
    } else {
        global $opac_websubscribe_empr_location;
        $websubscribe_empr_location = $opac_websubscribe_empr_location;
    }
    // clé de validation :
    $alphanum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    $cle_validation = substr(str_shuffle($alphanum), 0, 20);
    $subscription_action = get_others_informations_from_globals();
    $rqt = "insert into empr set ";
    $rqt .= "id_empr=0, ";
    $rqt .= "empr_cb ='" . $pe_emprcb . "', ";
    $rqt .= "empr_login ='******', ";
    $rqt .= "empr_mail='" . $f_email . "', ";
    $rqt .= "empr_nom='" . $f_nom . "', ";
    $rqt .= "empr_prenom='" . $f_prenom . "', ";
    $rqt .= "empr_password='******', ";
    $rqt .= "empr_creation=sysdate(), ";
    $rqt .= "empr_modif=sysdate(), ";
    $rqt .= "empr_date_adhesion=sysdate(), ";
    $rqt .= "empr_date_expiration=date_add(sysdate(), INTERVAL {$duree_adhesion} DAY), ";
    $rqt .= "empr_lang='" . $lang . "', ";
    $rqt .= "empr_statut='" . $opac_websubscribe_empr_status_array[0] . "', ";
    $rqt .= "empr_location='" . $websubscribe_empr_location . "', ";
    $rqt .= "empr_categ='" . $opac_websubscribe_empr_categ . "', ";
    $rqt .= "empr_codestat='" . $opac_websubscribe_empr_stat . "', ";
    $rqt .= "empr_msg='" . $f_msg . "', ";
    $rqt .= "empr_adr1='" . $f_adr1 . "', ";
    $rqt .= "empr_adr2='" . $f_adr2 . "', ";
    $rqt .= "empr_cp='" . $f_cp . "', ";
    $rqt .= "empr_ville='" . $f_ville . "', ";
    $rqt .= "empr_pays='" . $f_pays . "', ";
    $rqt .= "empr_tel1='" . $f_tel1 . "', ";
    $rqt .= "cle_validation='" . $cle_validation . "' ";
    if (count($subscription_action)) {
        $rqt .= ",empr_subscription_action = '" . addslashes(serialize($subscription_action)) . "'";
    } else {
        $rqt .= ",empr_subscription_action = '" . addslashes(serialize(array())) . "'";
    }
    $res = pmb_mysql_query($rqt, $dbh) or die(pmb_mysql_error() . "<br /><br />{$rqt}");
    $id_empr = pmb_mysql_insert_id();
    emprunteur::update_digest($f_login, $f_password);
    emprunteur::hash_password($f_login, $f_password);
    if ($id_empr) {
        //redefine empr.empr_cb
        $pe_emprcb = 'www' . $id_empr;
        $opac_websubscribe_num_carte_auto_array = array();
        $opac_websubscribe_num_carte_auto_array = explode(",", $opac_websubscribe_num_carte_auto);
        if ($opac_websubscribe_num_carte_auto_array[0] == "2") {
            $long_prefixe = $opac_websubscribe_num_carte_auto_array[1];
            $nb_chiffres = $opac_websubscribe_num_carte_auto_array[2];
            $prefix = $opac_websubscribe_num_carte_auto_array[3];
            $rqt = "SELECT CAST(SUBSTRING(empr_cb," . ($long_prefixe + 1) . ") AS UNSIGNED) AS max_cb, SUBSTRING(empr_cb,1," . $long_prefixe * 1 . ") AS prefixdb FROM empr ORDER BY max_cb DESC limit 0,1";
            // modif f cerovetti pour sortir dernier code barre tri par ASCII
            $res = pmb_mysql_query($rqt, $dbh);
            $cb_initial = pmb_mysql_fetch_object($res);
            $pe_emprcb = $cb_initial->max_cb * 1 + 1;
            if (!$nb_chiffres) {
                $nb_chiffres = strlen($pe_emprcb);
            }
            if (!$prefix) {
                $prefix = $cb_initial->prefixdb;
            }
            $pe_emprcb = $prefix . substr((string) str_pad($pe_emprcb, $nb_chiffres, "0", STR_PAD_LEFT), -$nb_chiffres);
        } elseif ($opac_websubscribe_num_carte_auto_array[0] == '3') {
            $num_carte_auto_filename = $base_path . '/circ/empr/' . trim($opac_websubscribe_num_carte_auto_array[1]) . '.inc.php';
            $num_carte_auto_fctname = trim($opac_websubscribe_num_carte_auto_array[1]);
            if (file_exists($num_carte_auto_filename)) {
                require_once $num_carte_auto_filename;
                if (function_exists($num_carte_auto_fctname)) {
                    $pe_emprcb = $num_carte_auto_fctname();
                }
            }
        }
        $rqt = "UPDATE empr SET empr_cb='{$pe_emprcb}' WHERE id_empr='{$id_empr}'";
        $res = pmb_mysql_query($rqt, $dbh) or die(pmb_mysql_error() . "<br /><br />{$rqt}");
        // envoyer le mail de demande de confirmation
        global $opac_biblio_name, $opac_biblio_email, $opac_url_base;
        $obj = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_mail_obj]);
        $corps = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_mail_corps]);
        $lien_validation = "<a href='" . $opac_url_base . "subscribe.php?subsact=validation&login={$f_login}&cle_validation={$cle_validation}'>" . $opac_url_base . "subscribe.php?subsact=validation&login={$f_login}&cle_validation={$cle_validation}</a>";
        $corps = str_replace("!!lien_validation!!", $lien_validation, $corps);
        $headers = "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\n";
        $res_envoi = @mailpmb(trim(stripslashes($f_prenom . " " . $f_nom)), stripslashes($f_email), $obj, $corps, $opac_biblio_name, $opac_biblio_email, $headers);
        if (!$res_envoi) {
            $ret[0] = PBINSC_MAIL;
            $ret[1] = str_replace("!!f_email!!", $f_email, $msg[subs_pb_mail]);
            return $ret;
        }
        $ret[0] = PBINSC_OK;
        $ret[1] = str_replace("!!f_email!!", $f_email, $msg[subs_ok_inscrit]);
        $ret[1] = str_replace("!!nb_h_valid!!", $opac_websubscribe_valid_limit, $ret[1]);
        //alerte pour les utilisateurs
        $query_users = "select nom, prenom, user_email from users where user_email like('%@%') and user_alert_subscribemail=1";
        $result_users = @pmb_mysql_query($query_users, $dbh);
        if ($result_users) {
            if (pmb_mysql_num_rows($result_users) > 0) {
                global $pmb_url_base;
                $obj = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_alert_user_mail_obj]);
                $obj = str_replace("!!empr_name!!", stripslashes($f_nom), $obj);
                $obj = str_replace("!!empr_first_name!!", stripslashes($f_prenom), $obj);
                $corps = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_alert_user_mail_corps]);
                $corps = str_replace("!!empr_name!!", stripslashes($f_nom), $corps);
                $corps = str_replace("!!empr_first_name!!", stripslashes($f_prenom), $corps);
                $empr_link = str_replace("!!pmb_url_base!!", $pmb_url_base, $msg[subs_alert_user_mail_empr_link]);
                $empr_link = str_replace("!!empr_cb!!", $pe_emprcb, $empr_link);
                $corps = str_replace("!!empr_link!!", $empr_link, $corps);
                while ($user = @pmb_mysql_fetch_object($result_users)) {
                    @mailpmb(trim($user->prenom . " " . $user->nom), $user->user_email, $obj, $corps, $opac_biblio_name, $opac_biblio_email, $headers);
                }
            }
        }
        return $ret;
    } else {
        $ret[0] = PBINSC_BDD;
        $ret[1] = $msg[subs_pb_bdd];
        return $ret;
    }
}
示例#27
0
<?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);
    }
}
示例#28
0
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>";
}
示例#29
0
require_once "{$class_path}/editor.class.php";
require_once "{$class_path}/collection.class.php";
require_once "{$class_path}/subcollection.class.php";
require_once "{$class_path}/serie.class.php";
require_once "{$class_path}/indexint.class.php";
require_once "{$class_path}/category.class.php";
require_once "{$include_path}/notice_authors.inc.php";
require_once "{$include_path}/notice_categories.inc.php";
require_once "{$include_path}/expl_info.inc.php";
require_once "{$include_path}/explnum.inc.php";
require_once "{$include_path}/resa_func.inc.php";
require_once "{$include_path}/isbn.inc.php";
require_once "{$class_path}/docs_location.class.php";
require_once "{$class_path}/bannette.class.php";
if ($categ == 'pretrestrict' && $form_login && $form_password) {
    $query = "select id_empr, empr_cb from empr where empr_login='******' and empr_password='******' ";
    $result = pmb_mysql_query($query, $dbh);
    $id_empr = @pmb_mysql_result($result, '0', 'id_empr');
    $form_cb = @pmb_mysql_result($result, '0', 'empr_cb');
    if ($id_empr && $form_cb) {
        $categ = 'pret';
    }
}
if (SESSrights & RESTRICTCIRC_AUTH) {
    $sub = "";
}
switch ($categ) {
    case 'pret':
        echo window_title($database_window_title . $msg["5"] . " : " . $msg["13"]);
        switch ($sub) {
            case 'pret_prolongation':
示例#30
0
 function hashEmprPassword()
 {
     global $msg, $dbh, $charset, $PMBusername;
     if (SESSrights & ADMINISTRATION_AUTH) {
         $result .= "<h3>" . htmlentities($msg["hash_empr_password"], ENT_QUOTES, $charset) . "</h3>";
         $rqt = "SHOW COLUMNS FROM empr LIKE 'empr_password_is_encrypted'";
         $res = pmb_mysql_query($rqt, $dbh);
         if (pmb_mysql_num_rows($res)) {
             $empr = pmb_mysql_query("SELECT count(1) FROM empr where empr_password_is_encrypted=0", $dbh);
             $count = pmb_mysql_result($empr, 0, 0);
             $query = pmb_mysql_query("SELECT id_empr, empr_password, empr_login FROM empr where empr_password_is_encrypted=0");
             if (pmb_mysql_num_rows($query)) {
                 $requete = "CREATE TABLE if not exists empr_passwords (\n\t\t\t\t\tid_empr INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,\n\t\t\t\t\tempr_password VARCHAR( 255 ) NOT NULL default '')";
                 pmb_mysql_query($requete, $dbh);
                 $requete = "INSERT INTO empr_passwords SELECT id_empr, empr_password FROM empr where empr_password_is_encrypted=0";
                 pmb_mysql_query($requete, $dbh);
                 while ($row = pmb_mysql_fetch_object($query)) {
                     emprunteur::update_digest($row->empr_login, $row->empr_password);
                     emprunteur::hash_password($row->empr_login, $row->empr_password);
                 }
             }
             $result .= $count . " " . htmlentities($msg['hash_empr_password_status_end'], ENT_QUOTES, $charset);
         } else {
             $result .= htmlentities($msg['pmb_v_db_pas_a_jour'], ENT_QUOTES, $charset);
         }
     } else {
         $result .= sprintf($msg["planificateur_rights_bad_user_rights"], $PMBusername);
     }
     return $result;
 }