Exemple #1
0
 public static function get_list($_FORM)
 {
     /*
      *
      * Get a list of task history items with sophisticated filtering and somewhat sophisticated output
      *
      * (n.b., the output from this generally needs to be post-processed to handle the semantic meaning of changes in various fields)
      *
      */
     $filter = audit::get_list_filter($_FORM);
     if (is_array($filter) && count($filter)) {
         $where_clause = " WHERE " . implode(" AND ", $filter);
     }
     if ($_FORM["projectID"]) {
         $entity = new project();
         $entity->set_id($_FORM["projectID"]);
         $entity->select();
     } else {
         if ($_FORM["taskID"]) {
             $entity = new task();
             $entity->set_id($_FORM["taskID"]);
             $entity->select();
         }
     }
     $q = "SELECT *\n            FROM audit\n          {$where_clause}\n        ORDER BY dateChanged";
     $db = new db_alloc();
     $db->query($q);
     $items = array();
     while ($row = $db->next_record()) {
         $audit = new audit();
         $audit->read_db_record($db);
         $rows[] = $row;
     }
     return $rows;
 }
function update_notice_categories_from_form($id_notice = 0, $id_bulletin = 0)
{
    global $dbh;
    global $f_nb_categ;
    if (!$id_notice && $id_bulletin) {
        $query = "select * from bulletins where bulletin_id=" . $id_bulletin;
        $result = pmb_mysql_query($query, $dbh);
        if ($result) {
            $row = mysql_fetch_object($result);
            if ($row->num_notice) {
                $id_notice = $row->num_notice;
            } else {
                //on crée la notice de bulletin
                global $xmlta_doctype_bulletin, $deflt_notice_statut;
                pmb_mysql_query("INSERT INTO notices SET \n\t\t\t\t\ttit1 = '" . $row->bulletin_numero . ($row->mention_date ? " - " . $row->mention_date : "") . ($row->bulletin_titre ? " - " . $row->bulletin_titre : "") . "',\n\t\t\t\t\tstatut = '" . $deflt_notice_statut . "',\t\t\n\t\t\t\t\ttypdoc = '" . $xmlta_doctype_bulletin . "',\n\t\t\t\t\tcreate_date=sysdate(), update_date=sysdate() ", $dbh);
                $id_notice = pmb_mysql_insert_id($dbh);
                // Mise à jour des index de la notice
                notice::majNoticesTotal($id_notice);
                audit::insert_creation(AUDIT_NOTICE, $id_notice);
                //Mise à jour du bulletin
                $requete = "update bulletins set num_notice=" . $id_notice . " where bulletin_id=" . $id_bulletin;
                pmb_mysql_query($requete);
                //Mise à jour des liens bulletin -> notice mère
                $requete = "insert into notices_relations (num_notice,linked_notice,relation_type,rank) values(" . $id_notice . "," . $row->bulletin_notice . ",'b',1)";
                pmb_mysql_query($requete);
            }
        }
    }
    if (!$id_notice) {
        return;
    }
    $query = "SELECT max(ordre_categorie) as ordre FROM notices_categories WHERE notcateg_notice='" . $id_notice . "' ";
    $result = pmb_mysql_query($query);
    $ordre_categ = 0;
    if ($result) {
        $row = mysql_fetch_object($result);
        if (isset($row->ordre)) {
            $ordre_categ = $row->ordre;
        }
    }
    if ($f_nb_categ) {
        $rqt_ins = "INSERT INTO notices_categories (notcateg_notice, num_noeud, ordre_categorie) VALUES ";
        for ($i = 0; $i < $f_nb_categ; $i++) {
            $var_categ = "f_categ{$i}";
            global ${$var_categ};
            if (${$var_categ}) {
                $var_categid = "f_categ_id{$i}";
                global ${$var_categid};
                $rqt_sel = "SELECT notcateg_notice FROM notices_categories WHERE notcateg_notice='" . $id_notice . "' and num_noeud='" . ${$var_categid} . "' ";
                $res_sel = pmb_mysql_query($rqt_sel, $dbh);
                if ($res_sel && !pmb_mysql_num_rows($res_sel)) {
                    $ordre_categ++;
                    $rqt = $rqt_ins . " ('" . $id_notice . "','" . ${$var_categid} . "',{$ordre_categ}) ";
                    $res_ins = @pmb_mysql_query($rqt, $dbh);
                }
            }
        }
    }
}
function create_expl($f_ex_cb, $id, $f_ex_typdoc, $f_ex_cote, $f_ex_section, $f_ex_statut, $f_ex_location, $f_ex_cstat, $f_ex_note, $f_ex_prix, $f_ex_owner, $f_ex_comment = '')
{
    global $dbh;
    $new_expl = 0;
    $expl_retour = 0;
    $requete = "SELECT expl_id FROM exemplaires WHERE expl_cb='{$f_ex_cb}' ";
    $res = pmb_mysql_query($requete, $dbh);
    $nbr_lignes = @pmb_mysql_num_rows($res);
    if ($nbr_lignes) {
        $valid_requete = 0;
        $lu = pmb_mysql_fetch_array($res);
        $expl_retour = $lu['expl_id'];
    } else {
        $valid_requete = 1;
    }
    if ($valid_requete) {
        $requete = 'INSERT INTO exemplaires SET create_date=sysdate(), ';
        $requete .= "expl_cb='{$f_ex_cb}'";
        $requete .= ", expl_notice={$id}";
        $requete .= ", expl_typdoc={$f_ex_typdoc}";
        $requete .= ", expl_cote='{$f_ex_cote}'";
        $requete .= ", expl_section={$f_ex_section}";
        $requete .= ", expl_statut={$f_ex_statut}";
        $requete .= ", expl_location={$f_ex_location}";
        $requete .= ", expl_codestat={$f_ex_cstat}";
        $requete .= ", expl_note='" . ${f_ex_note} . "'";
        $requete .= ", expl_comment='" . ${f_ex_comment} . "'";
        $requete .= ", expl_prix='{$f_ex_prix}'";
        $requete .= ", expl_owner='{$f_ex_owner}'";
        $result = pmb_mysql_query($requete, $dbh);
        $expl_retour = pmb_mysql_insert_id();
        audit::insert_creation(AUDIT_EXPL, $expl_retour);
        $new_expl = 1;
    }
    $retour = array($new_expl, $expl_retour);
    return $retour;
}
 static function import($data)
 {
     // cette méthode prend en entrée un tableau constitué des informations éditeurs suivantes :
     //	$data['name'] 	Nom de la collection
     //	$data['parent']	id de l'éditeur parent de la collection
     //	$data['issn']	numéro ISSN de la collection
     global $dbh;
     // 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 sur les éléments du tableau (data['name'] est requis).
     $long_maxi_name = pmb_mysql_field_len(pmb_mysql_query("SELECT collection_name FROM collections limit 1"), 0);
     $data['name'] = rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['name']))), 0, $long_maxi_name));
     //si on a pas d'id, on peut avoir les infos de l'éditeur
     if (!$data['parent']) {
         if ($data['publisher']) {
             //on les a, on crée l'éditeur
             $data['parent'] = editeur::import($data['publisher']);
         }
     }
     if ($data['name'] == "" || $data['parent'] == 0) {
         /* il nous faut impérativement un éditeur */
         return 0;
     }
     // préparation de la requête
     $key0 = addslashes($data['name']);
     $key1 = $data['parent'];
     $key2 = addslashes($data['issn']);
     /* vérification que l'éditeur existe bien ! */
     $query = "SELECT ed_id FROM publishers WHERE ed_id='{$key1}' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT publishers " . $query);
     }
     if (pmb_mysql_num_rows($result) == 0) {
         return 0;
     }
     /* vérification que la collection existe */
     $query = "SELECT collection_id FROM collections WHERE collection_name='{$key0}' AND collection_parent='{$key1}' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT collections " . $query);
     }
     $collection = pmb_mysql_fetch_object($result);
     /* la collection existe, on retourne l'ID */
     if ($collection->collection_id) {
         return $collection->collection_id;
     }
     // id non-récupérée, il faut créer la forme.
     $query = 'INSERT INTO collections SET collection_name="' . $key0 . '", ';
     $query .= 'collection_parent="' . $key1 . '", ';
     $query .= 'collection_issn="' . $key2 . '", ';
     $query .= 'index_coll=" ' . strip_empty_words($key0) . ' ' . strip_empty_words($key2) . ' ", ';
     $query .= 'collection_comment = "' . addslashes($data['comment']) . '" ';
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't INSERT into database");
     }
     $id = pmb_mysql_insert_id($dbh);
     if ($data['subcollections']) {
         for ($i = 0; $i < count($data['subcollections']); $i++) {
             $subcoll = $data['subcollections'][$i];
             $subcoll['coll_parent'] = $id;
             subcollection::import($subcoll);
         }
     }
     audit::insert_creation(AUDIT_COLLECTION, $id);
     //update authority informations
     $authority = new authority(0, $id, AUT_TABLE_COLLECTIONS);
     $authority->set_num_statut($data['statut']);
     $authority->update();
     collection::update_index($id);
     return $id;
 }
 }
 $transfert_origine = "";
 if ($expl_id) {
     $rqt = "SELECT id_transfert FROM transferts, transferts_demande WHERE num_transfert=id_transfert and etat_transfert=0 AND num_expl='" . $expl_id . "' ";
     $res = pmb_mysql_query($rqt);
     if (!pmb_mysql_num_rows($res)) {
         // pas de transfert en cours, on met à jour transfert_location_origine
         $transfert_origine = ", transfert_location_origine='{$expl_location}', transfert_statut_origine='{$expl_statut}', transfert_section_origine='{$expl_section}' ";
     }
 } else {
     // en création
     $transfert_origine = ", transfert_location_origine='{$expl_location}', transfert_statut_origine='{$expl_statut}', transfert_section_origine='{$expl_section}' ";
 }
 // preparation de la requete
 if ($expl_id) {
     $audit = new audit();
     $audit->get_old_infos("SELECT expl_statut, expl_location, transfert_location_origine, transfert_statut_origine, transfert_section_origine, expl_owner FROM exemplaires WHERE expl_cb='{$expl_cb}' ");
     // update de l'exemplaire
     // on prepare la requete
     $values = "expl_cb='{$expl_cb}'";
     $values .= ", expl_typdoc='{$expl_typdoc}'";
     $values .= ", expl_cote='{$expl_cote}'";
     $values .= ", expl_section='{$expl_section}'";
     $values .= ", expl_statut='{$expl_statut}'";
     $values .= ", expl_location='{$expl_location}' {$transfert_origine} ";
     $values .= ", expl_codestat='{$expl_codestat}'";
     $values .= ", expl_note='{$expl_note}'";
     $values .= ", expl_comment='{$expl_comment}'";
     $values .= ", expl_prix='{$expl_prix}'";
     $values .= ", expl_owner='{$expl_owner}'";
     $values .= ", type_antivol='{$type_antivol}'";
Exemple #6
0
 function move($to_bul)
 {
     global $msg;
     global $dbh;
     global $pmb_synchro_rdf;
     // rattachement du dépouillement
     $requete = 'UPDATE analysis SET analysis_bulletin=' . $to_bul . ' WHERE analysis_notice=' . $this->analysis_id;
     @pmb_mysql_query($requete, $dbh);
     //dates
     $myBul = new bulletinage($to_bul);
     $year = substr($myBul->date_date, 0, 4);
     $date_parution = $myBul->date_date;
     $requete = 'UPDATE notices SET year="' . $year . '", date_parution="' . $date_parution . '", update_date=sysdate() WHERE notice_id=' . $this->analysis_id . ' LIMIT 1';
     @pmb_mysql_query($requete, $dbh);
     //Indexation du dépouillement
     notice::majNoticesTotal($this->analysis_id);
     audit::insert_modif(AUDIT_NOTICE, $this->analysis_id);
     if ($pmb_synchro_rdf) {
         $synchro_rdf = new synchro_rdf();
         $synchro_rdf->delRdf($this->analysis_id, 0);
         $synchro_rdf->addRdf($this->analysis_id, 0);
     }
     return false;
 }
Exemple #7
0
 function save()
 {
     global $dbh, $sujet, $idetat, $titre, $id_theme, $id_type;
     global $date_debut, $date_fin, $date_prevue, $idempr;
     global $iduser, $progression, $demandes_statut_notice, $pmb_type_audit;
     global $gestion_acces_active, $gestion_acces_user_notice, $gestion_acces_empr_notice;
     if ($this->id_demande) {
         //MODIFICATION
         $req = "update demandes set sujet_demande='" . $sujet . "',  \n\t\t\t\tnum_demandeur='" . $idempr . "', \n\t\t\t\tdate_demande='" . $date_debut . "', \n\t\t\t\tdeadline_demande='" . $date_fin . "',\n\t\t\t\tdate_prevue='" . $date_prevue . "', \n\t\t\t\tprogression='" . $progression . "',\n\t\t\t\ttitre_demande='" . $titre . "',\n\t\t\t\ttype_demande='" . $id_type . "',\n\t\t\t\ttheme_demande='" . $id_theme . "'";
         if ($idetat == 4 || $idetat == 5) {
             $req .= " ,num_user_cloture='" . SESSuserid . "'";
         }
         $req .= " where id_demande='" . $this->id_demande . "'";
         mysql_query($req, $dbh);
         $this->titre_demande = stripslashes($titre);
         $this->sujet_demande = stripslashes($sujet);
         $this->date_demande = $date_debut;
         $this->date_prevue = $date_prevue;
         $this->deadline_demande = $date_fin;
         $this->num_user = $iduser;
         $this->progression = $progression;
         $this->num_demandeur = $idempr;
         $this->type_demande = $id_type;
         $this->theme_demande = $id_theme;
     } else {
         //CREATION de la notice associée
         $req = "insert into notices set \n\t\t\t\ttit1='" . $titre . "',\n\t\t\t\tn_contenu='" . $sujet . "',\n\t\t\t\tstatut ='" . $demandes_statut_notice . "'\n\t\t\t\t";
         mysql_query($req, $dbh);
         $id_notice = mysql_insert_id();
         notice::majNotices($id_notice);
         if ($pmb_type_audit) {
             audit::insert_creation(AUDIT_NOTICE, $id_notice);
         }
         //droits d'acces
         if ($gestion_acces_active == 1) {
             $ac = new acces();
             //traitement des droits acces user_notice
             if ($gestion_acces_user_notice == 1) {
                 $dom_1 = $ac->setDomain(1);
                 $dom_1->storeUserRights(0, $id_notice);
             }
             //traitement des droits acces empr_notice
             if ($gestion_acces_empr_notice == 1) {
                 $dom_2 = $ac->setDomain(2);
                 $dom_2->storeUserRights(0, $id_notice);
             }
         }
         //CREATION de la demande
         $req = "insert into demandes set sujet_demande='" . $sujet . "', \n\t\t\t\tetat_demande='" . $idetat . "', \n\t\t\t\tnum_demandeur='" . $idempr . "', \n\t\t\t\tdate_demande='" . $date_debut . "', \n\t\t\t\tdate_prevue='" . $date_prevue . "', \n\t\t\t\tdeadline_demande='" . $date_fin . "', \n\t\t\t\tprogression='" . $progression . "',\n\t\t\t\ttitre_demande='" . $titre . "',\n\t\t\t\ttype_demande='" . $id_type . "',\n\t\t\t\ttheme_demande='" . $id_theme . "',\n\t\t\t\tnum_notice='" . $id_notice . "'";
         mysql_query($req, $dbh);
     }
     //Affectation du libellé du thème et du type
     $this->id_demande ? $id = $this->id_demande : ($id = mysql_insert_id());
     $req = "select libelle_theme, libelle_type from demandes d, demandes_type dy , demandes_theme dt where dt.id_theme=d.theme_demande and dy.id_type=d.type_demande and id_demande='" . $id . "'";
     $res = mysql_query($req, $dbh);
     $row = mysql_fetch_object($res);
     $this->type_libelle = $row->libelle_type;
     $this->theme_libelle = $row->libelle_theme;
     //Enregistrement dans demandes_users
     $date_creation = date("Y-m-d", time());
     if ($this->id_demande && $iduser) {
         $req = "update demandes_users set users_statut=0 where num_user not in (" . implode(',', $iduser) . ") and num_demande='" . $this->id_demande . "'";
         mysql_query($req, $dbh);
         $req = "update demandes_users set users_statut=1 where num_user in (" . implode(',', $iduser) . ") and num_demande='" . $this->id_demande . "'";
         mysql_query($req, $dbh);
         for ($i = 0; $i < sizeof($iduser); $i++) {
             $req = "insert into demandes_users set num_user='******', num_demande='" . $this->id_demande . "', date_creation='" . $date_creation . "', users_statut=1";
             mysql_query($req, $dbh);
         }
     } else {
         if ($iduser) {
             for ($i = 0; $i < sizeof($iduser); $i++) {
                 $req = "insert into demandes_users set num_user='******', num_demande='" . $id . "', date_creation='" . $date_creation . "', users_statut=1";
                 mysql_query($req, $dbh);
             }
         }
     }
     $req = "select num_user, concat(prenom,' ',nom) as nom, username from demandes_users, users where num_user=userid and num_demande='" . $id . "' and users_statut=1";
     $res = mysql_query($req, $dbh);
     $i = 0;
     if (mysql_num_rows($res)) {
         $this->users = array();
         while ($user = mysql_fetch_object($res)) {
             $this->users[$i]['nom'] = trim($user->nom) ? $user->nom : $user->username;
             $this->users[$i]['id'] = $user->num_user;
             $i++;
         }
     }
 }
Exemple #8
0
 static function delete($note)
 {
     global $dbh;
     if ($note->id_note) {
         $req = "delete from demandes_notes where id_note='" . $note->id_note . "'";
         pmb_mysql_query($req, $dbh);
         $req = "delete from demandes_notes where num_note_parent='" . $note->id_note . "'";
         pmb_mysql_query($req, $dbh);
         audit::delete_audit(AUDIT_NOTE, $note->id_note);
     }
 }
Exemple #9
0
 function delete($id_acte = 0)
 {
     global $dbh;
     if (!$id_acte) {
         $id_acte = $this->id_acte;
     }
     actes::deleteLignes($id_acte);
     liens_actes::delete($id_acte);
     $q = "delete from actes where id_acte = '" . $id_acte . "' ";
     mysql_query($q, $dbh);
     audit::delete_audit(AUDIT_ACQUIS, $id_acte);
 }
Exemple #10
0
 static function del_expl($id = 0)
 {
     global $dbh;
     global $explr_invisible, $explr_visible_unmod, $explr_visible_mod, $pmb_droits_explr_localises;
     $sql_pret = pmb_mysql_query("select 1 from pret where pret_idexpl ='{$id}' ");
     if (pmb_mysql_num_rows($sql_pret)) {
         return 0;
     }
     // visibilite de l'exemplaire
     if ($pmb_droits_explr_localises) {
         $query = "select expl_location from exemplaires where expl_id='" . $id . "'";
         $result = pmb_mysql_query($query, $dbh);
         $location_id = pmb_mysql_result($result, 0, 0);
         $tab_mod = explode(",", $explr_visible_mod);
         $as_modif = array_search($location_id, $tab_mod);
         if ($as_modif === false) {
             return 0;
         }
     }
     $requete = "select idcaddie FROM caddie where type='EXPL' ";
     $result = pmb_mysql_query($requete, $dbh);
     for ($i = 0; $i < pmb_mysql_num_rows($result); $i++) {
         $temp = pmb_mysql_fetch_object($result);
         $requete_suppr = "delete from caddie_content where caddie_id='" . $temp->idcaddie . "' and object_id='" . $id . "' ";
         $result_suppr = pmb_mysql_query($requete_suppr, $dbh);
     }
     audit::delete_audit(AUDIT_EXPL, $id);
     $p_perso = new parametres_perso("expl");
     $p_perso->delete_values($id);
     // nettoyage transfert
     $requete_suppr = "delete from transferts_demande where num_expl='{$id}'";
     $result_suppr = pmb_mysql_query($requete_suppr);
     // nettoyage circulation des périodiques
     serialcirc::delete_expl($id);
     // nettoyage doc. à ranger
     $requete_suppr = "delete from resa_ranger where resa_cb in (select expl_cb from exemplaires where expl_id='" . $id . "') ";
     $result_suppr = pmb_mysql_query($requete_suppr, $dbh);
     // nettoyage indexation concepts
     $index_concept = new index_concept($id, TYPE_EXPL);
     $index_concept->delete();
     $sql_del = pmb_mysql_query("delete from exemplaires where expl_id='{$id}' ");
     return 1;
 }
Exemple #11
0
 $requete .= ", thumbnail_url='{$t_notice['thumbnail_url']}'";
 $requete .= ", signature='{$t_notice['signature']}'";
 $requete .= ", date_parution='{$date_parution_notice}'";
 $requete .= ", indexation_lang='{$t_notice['indexation_lang']}'";
 $requete .= ", notice_is_new='{$t_notice['notice_is_new']}'";
 $requete .= $req_notice_date_is_new;
 $requete .= $postrequete;
 $result = pmb_mysql_query($requete, $dbh);
 //traitement audit
 if (!$id) {
     $sav_id = 0;
     $id = pmb_mysql_insert_id($dbh);
     audit::insert_creation(AUDIT_NOTICE, $id);
 } else {
     $sav_id = $id;
     audit::insert_modif(AUDIT_NOTICE, $id);
 }
 // autorité personnalisées
 $authperso = new authperso_notice($id);
 $authperso->save_form();
 // map
 global $pmb_map_activate;
 if ($pmb_map_activate) {
     $map = new map_edition_controler(TYPE_RECORD, $id);
     $map->save_form();
     $map_info = new map_info($id);
     $map_info->save_form();
 }
 // vignette de la notice uploadé dans un répertoire
 if ($_FILES['f_img_load']['name'] && $pmb_notice_img_folder_id) {
     $poids_fichier_max = 1024 * 1024;
Exemple #12
0
 static function import($title, $statut = 1)
 {
     global $dbh;
     // check sur la variable passée en paramètre
     if (!$title) {
         return 0;
     }
     // tentative de récupérer l'id associée dans la base (implique que l'autorité existe)
     // préparation de la requête
     $key = addslashes($title);
     $query = "SELECT serie_id FROM series WHERE serie_name='" . rtrim(substr($key, 0, 255)) . "' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT series " . $query);
     }
     // résultat
     // récupération du résultat de la recherche
     $tserie = pmb_mysql_fetch_object($result);
     // du résultat et récupération éventuelle de l'id
     if ($tserie->serie_id) {
         return $tserie->serie_id;
     }
     // id non-récupérée, il faut créer la forme.
     $index = addslashes(strip_empty_words($title));
     $query = 'INSERT INTO series SET serie_name="' . $key . '", serie_index=" ' . $index . ' "';
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't INSERT into series" . $query);
     }
     $id = pmb_mysql_insert_id($dbh);
     audit::insert_creation(AUDIT_SERIE, $id);
     //update authority informations
     $authority = new authority(0, $id, AUT_TABLE_SERIES);
     $authority->set_num_statut($statut);
     $authority->update();
     serie::update_index($id);
     return $id;
 }
 $values .= ", expl_typdoc='{$expl_typdoc}'";
 $values .= ", expl_cote='{$expl_cote}'";
 $values .= ", expl_section='{$expl_section}'";
 $values .= ", expl_statut='{$expl_statut}'";
 $values .= ", expl_location='{$expl_location}' {$transfert_origine} ";
 $values .= ", expl_codestat='{$expl_codestat}'";
 $values .= ", expl_note='{$expl_note}'";
 $values .= ", expl_comment='{$expl_comment}'";
 $values .= ", expl_prix='{$expl_prix}'";
 $values .= ", expl_owner='{$expl_owner}'";
 $values .= ", type_antivol='{$type_antivol}'";
 $values .= ", expl_abt_num='{$abt_id}'";
 $requete = "INSERT INTO exemplaires set {$values} , create_date=sysdate() ";
 $myQuery = pmb_mysql_query($requete, $dbh);
 $expl_id = pmb_mysql_insert_id();
 audit::insert_creation(AUDIT_EXPL, $expl_id);
 //parametres_perso de l'exemplaire
 $p_perso = new parametres_perso("expl");
 $nberrors = $p_perso->check_submited_fields();
 if (!$nberrors) {
     $p_perso->rec_fields_perso($expl_id);
 }
 $serialcirc_diff = new serialcirc_diff(0, $abt_id);
 if (count($serialcirc_diff->diffusion)) {
     //est-ce qu'il y a des destinataires ?
     // Si c'est à faire circuler
     if ($serialcirc_diff->id) {
         $serialcirc_diff->add_circ_expl($expl_id);
         $serialcir_print = "<br/><input class='bouton' type='button' onclick='serialcirc_print_list_circ({$expl_id},0);return false;' value='" . $msg['serialcirc_circ_list_bull_circulation_imprimer_bt'] . "'>";
     } elseif ($pmb_serialcirc_subst) {
         $print_cote = "<img src='./images/print.gif' alt='Imprimer...' title='Imprimer...' align='middle' border='0'\tstyle='padding-left:7px' onclick='imprime_cote({$expl_id});return false;'\t>";
$requete = "select 1 from pret where pret_idexpl='{$expl_id}' ";
$result = @pmb_mysql_query($requete);
if (pmb_mysql_num_rows($result)) {
    // gestion erreur prêt en cours
    error_message($msg[416], $msg[impossible_expl_del_pret], 1, "./catalog.php?categ=isbd&id={$id}");
} else {
    //archivage
    if ($pmb_archive_warehouse) {
        exemplaire::save_to_agnostic_warehouse(array(0 => $expl_id), $pmb_archive_warehouse);
    }
    // nettoyage doc. à ranger
    $requete_suppr = "delete from resa_ranger where resa_cb in (select expl_cb from exemplaires where expl_id='" . $expl_id . "') ";
    $result_suppr = pmb_mysql_query($requete_suppr, $dbh);
    $requete = "DELETE FROM exemplaires WHERE expl_cb='{$cb}' or expl_id='{$expl_id}'";
    $result = @pmb_mysql_query($requete, $dbh);
    audit::delete_audit(AUDIT_EXPL, $expl_id);
    $query_caddie = "select caddie_id from caddie_content, caddie where type='EXPL' and object_id ='{$expl_id}' and caddie_id=idcaddie ";
    $result_caddie = @pmb_mysql_query($query_caddie, $dbh);
    while ($cad = pmb_mysql_fetch_object($result_caddie)) {
        $req_suppr_caddie = "delete from caddie_content where caddie_id = '{$cad->caddie_id}' and object_id ='{$expl_id}' ";
        @pmb_mysql_query($req_suppr_caddie, $dbh);
    }
    //Supression des champs perso
    if ($expl_id) {
        $p_perso = new parametres_perso("expl");
        $p_perso->delete_values($expl_id);
    }
    // nettoyage transfert
    $requete_suppr = "delete from transferts_demande where num_expl='{$expl_id}'";
    $result_suppr = pmb_mysql_query($requete_suppr);
    // nettoyage indexation concepts
Exemple #15
0
 function del_pret($id_expl)
 {
     // le lien MySQL
     global $dbh;
     global $msg;
     // récupérer la stat insérée pour la supprimer !
     $query = "select pret_arc_id ,pret_temp from pret where pret_idexpl = '" . $id_expl . "' ";
     $result = mysql_query($query, $dbh);
     $stat_id = mysql_fetch_object($result);
     if ($stat_id->pret_temp) {
         $result = mysql_query("delete from pret_archive where arc_id='" . $stat_id->pret_arc_id . "' ", $dbh);
         audit::delete_audit(AUDIT_PRET, $stat_id->pret_arc_id);
         // supprimer le prêt annulé
         $query = "delete from pret where pret_idexpl = '" . $id_expl . "' ";
         $result = mysql_query($query, $dbh);
     }
     $array[0] = $this;
     $buf_xml = array2xml($array);
     return $buf_xml;
 }
Exemple #16
0
 function delete($id_noeud = 0)
 {
     global $dbh;
     if (!$id_noeud && is_object($this)) {
         $id_noeud = $this->id_noeud;
     }
     // Supprime les categories.
     $q = "delete from categories where num_noeud = '" . $id_noeud . "' ";
     mysql_query($q, $dbh);
     //Import d'autorité
     noeuds::delete_autority_sources($id_noeud);
     // Supprime les renvois voir_aussi vers ce noeud.
     $q = "delete from voir_aussi where num_noeud_dest = '" . $id_noeud . "' ";
     mysql_query($q, $dbh);
     // Supprime les renvois voir_aussi depuis ce noeud.
     $q = "delete from voir_aussi where num_noeud_orig = '" . $id_noeud . "' ";
     mysql_query($q, $dbh);
     // Supprime les associations avec des notices.
     $q = "delete from notices_categories where num_noeud = '" . $id_noeud . "' ";
     mysql_query($q, $dbh);
     // Supprime le noeud.
     $q = "delete from noeuds where id_noeud = '" . $id_noeud . "' ";
     mysql_query($q, $dbh);
     audit::delete_audit(AUDIT_CATEG, $id_noeud);
     // liens entre autorités
     $aut_link = new aut_link(AUT_TABLE_CATEG, $id_noeud);
     $aut_link->delete();
     $aut_pperso = new aut_pperso("categ", $id_noeud);
     $aut_pperso->delete();
 }
 function delete($id_noeud = 0)
 {
     global $dbh;
     if (!$id_noeud && is_object($this)) {
         $id_noeud = $this->id_noeud;
     }
     // Supprime les categories.
     $q = "delete from categories where num_noeud = '" . $id_noeud . "' ";
     pmb_mysql_query($q, $dbh);
     //Import d'autorité
     noeuds::delete_autority_sources($id_noeud);
     // Supprime les renvois voir_aussi vers ce noeud.
     $q = "delete from voir_aussi where num_noeud_dest = '" . $id_noeud . "' ";
     pmb_mysql_query($q, $dbh);
     // Supprime les renvois voir_aussi depuis ce noeud.
     $q = "delete from voir_aussi where num_noeud_orig = '" . $id_noeud . "' ";
     pmb_mysql_query($q, $dbh);
     // Supprime les associations avec des notices.
     $q = "delete from notices_categories where num_noeud = '" . $id_noeud . "' ";
     pmb_mysql_query($q, $dbh);
     //Supprime les emprises du noeud
     $req = "select map_emprise_id from map_emprises where map_emprise_type=2 and map_emprise_obj_num=" . $id_noeud;
     $result = pmb_mysql_query($req, $dbh);
     if (pmb_mysql_num_rows($result)) {
         $row = pmb_mysql_fetch_object($result);
         $q = "delete from map_emprises where map_emprise_obj_num ='" . $id_noeud . "' and map_emprise_type = 2";
         pmb_mysql_query($q, $dbh);
         $req_areas = "delete from map_hold_areas where type_obj=2 and id_obj=" . $row->map_emprise_id;
         pmb_mysql_query($req_areas, $dbh);
     }
     //suppression des renvois voir restants
     $q = "update noeuds set num_renvoi_voir = '0' where num_renvoi_voir = '" . $id_noeud . "' ";
     pmb_mysql_query($q, $dbh);
     // Supprime le noeud.
     $q = "delete from noeuds where id_noeud = '" . $id_noeud . "' ";
     pmb_mysql_query($q, $dbh);
     audit::delete_audit(AUDIT_CATEG, $id_noeud);
     // liens entre autorités
     $aut_link = new aut_link(AUT_TABLE_CATEG, $id_noeud);
     $aut_link->delete();
     $aut_pperso = new aut_pperso("categ", $id_noeud);
     $aut_pperso->delete();
     // nettoyage indexation
     indexation_authority::delete_all_index($id_noeud, "authorities", "id_authority", AUT_TABLE_CATEG);
     // effacement de l'identifiant unique d'autorité
     $authority = new authority(0, $id_noeud, AUT_TABLE_CATEG);
     $authority->delete();
 }
 public function delete()
 {
     $result = $this->is_deletable();
     if ($result === true) {
         //documents du portfolio
         $query = "delete from cms_documents_links where document_link_type_object = '" . $this->type . "' and document_link_num_object = " . $this->id;
         pmb_mysql_query($query);
         //l'elément
         $del = "delete from cms_" . $this->type . "s where id_" . $this->type . "='" . $this->id . "'";
         pmb_mysql_query($del);
         //ses descripteurs
         $del_desc = "delete from cms_" . $this->type . "s_descriptors where num_" . $this->type . " = '" . $this->id . "'";
         pmb_mysql_query($del_desc);
         //ses champs persos
         $fields_type = new cms_editorial_parametres_perso($this->num_type);
         $fields_type->delete_values($this->id, $this->type);
         //indexation
         $query = "delete from cms_editorial_fields_global_index where num_obj = " . $this->id . " and type='" . $this->type . "'";
         pmb_mysql_query($query);
         $query = "delete from cms_editorial_words_global_index where num_obj = " . $this->id . " and type='" . $this->type . "'";
         pmb_mysql_query($query);
         //ses extensions
         $query = "delete from cms_modules_extensions_datas where extension_datas_type_element ='" . $this->type . "' and extension_datas_num_element = '" . $this->id . "'";
         pmb_mysql_query($query);
         //audit
         if ($this->type == 'article') {
             audit::delete_audit(AUDIT_EDITORIAL_ARTICLE, $this->id);
         } else {
             audit::delete_audit(AUDIT_EDITORIAL_SECTION, $this->id);
         }
         return true;
     } else {
         return $result;
     }
 }
Exemple #19
0
 }
 if (!$id_notice) {
     die('ERROR PE: aucun id_notice pour exemplaire...');
 }
 // exemplaire express
 if ($pe_excb == "") {
     $pe_excb = 'PE' . rand(0, 100000);
 }
 $requete = "INSERT INTO exemplaires\n\t\t\t\t\t\t\t\tSET expl_cb='{$pe_excb}',\n\t\t\t\t\t\t\t\t\texpl_notice='{$id_notice}',\n\t\t\t\t\t\t\t\t\texpl_typdoc='{$pe_tdoc}',\n\t\t\t\t\t\t\t\t\texpl_location='{$deflt_docs_location}',\n\t\t\t\t\t\t\t\t\texpl_section='{$deflt_docs_section}',\n\t\t\t\t\t\t\t\t\texpl_statut='{$deflt_docs_statut}',\n\t\t\t\t\t\t\t\t\texpl_codestat='{$deflt_docs_codestat}',\n\t\t\t\t\t\t\t\t\texpl_owner='{$deflt_lenders}',\n\t\t\t\t\t\t\t\t\tcreate_date=CURRENT_TIMESTAMP()\n\t\t\t\t\t\t\t\t\t";
 $result = pmb_mysql_query($requete, $dbh);
 if (!$result) {
     error_message($msg[350], $msg['pecb_already_exist'], 1, '');
     exit;
 }
 $id_expl = pmb_mysql_insert_id();
 audit::insert_creation(AUDIT_EXPL, $id_expl);
 if (preg_match('/^PE/', $pe_excb)) {
     //redefine exemplaires.expl_cb if $pe_excb is random
     $pe_excb = 'PE' . $id_expl;
     $requete = "UPDATE exemplaires SET expl_cb='{$pe_excb}' WHERE expl_id='{$id_expl}'";
     $result = pmb_mysql_query($requete, $dbh);
     if (!$result) {
         die('ERROR PE: update exemplaires');
     }
 }
 $cb_doc = $pe_excb;
 $rqtstatut = "select gestion_libelle from notice_statut where id_notice_statut='{$pmb_pret_express_statut}' ";
 $resstatut = pmb_mysql_fetch_object(pmb_mysql_query($rqtstatut, $dbh));
 $noteexpress = addslashes($resstatut->gestion_libelle);
 $requete = "UPDATE exemplaires SET expl_note='{$noteexpress}' WHERE expl_id='{$id_expl}'";
 $result = pmb_mysql_query($requete, $dbh);
Exemple #20
0
function add_pret($id_empr, $id_expl, $cb_doc, $resarc_id = 0, $short_loan = 0)
{
    // le lien MySQL
    global $dbh, $msg;
    global $pmb_quotas_avances, $pmb_utiliser_calendrier;
    global $pmb_gestion_financiere, $pmb_gestion_tarif_prets;
    global $include_path, $lang;
    global $deflt2docs_location;
    global $pmb_pret_date_retour_adhesion_depassee;
    global $pmb_short_loan_management;
    global $pmb_transferts_actif;
    global $pmb_resa_planning;
    $resarc_id += 0;
    /* on prépare la date de début*/
    $pret_date = today();
    $duree_pret = 0;
    // calcul de la duree du pret si la date de fin est definie par les previsions
    if ($resarc_id && $pmb_resa_planning == 1) {
        $q = 'select datediff(resarc_fin,"' . $pret_date . '") from resa_archive where resarc_id =' . $resarc_id . ' and resarc_resa_planning_id_resa!=0 limit 1';
        $r = pmb_mysql_query($q, $dbh);
        if (pmb_mysql_num_rows($r)) {
            $duree_pret = pmb_mysql_result($r, 0, 0);
        }
    }
    if (!$duree_pret) {
        /* on cherche la durée du prêt */
        if ($pmb_short_loan_management && $short_loan) {
            if ($pmb_quotas_avances) {
                //Initialisation de la classe
                $qt = new quota("SHORT_LOAN_TIME_QUOTA");
                $struct["READER"] = $id_empr;
                $struct["EXPL"] = $id_expl;
                $duree_pret = $qt->get_quota_value($struct);
                if ($duree_pret == -1) {
                    $duree_pret = 0;
                }
            } else {
                $query = "SELECT short_loan_duration as duree_pret";
                $query .= " FROM exemplaires, docs_type";
                $query .= " WHERE expl_id='" . $id_expl;
                $query .= "' and idtyp_doc=expl_typdoc LIMIT 1";
                $result = @pmb_mysql_query($query, $dbh) or die("can't SELECT exemplaires " . $query);
                $expl_properties = pmb_mysql_fetch_object($result);
                $duree_pret = $expl_properties->duree_pret;
            }
        } else {
            if ($pmb_quotas_avances) {
                //Initialisation de la classe
                $qt = new quota("LEND_TIME_QUOTA");
                $struct["READER"] = $id_empr;
                $struct["EXPL"] = $id_expl;
                $duree_pret = $qt->get_quota_value($struct);
                if ($duree_pret == -1) {
                    $duree_pret = 0;
                }
            } else {
                $query = "SELECT duree_pret";
                $query .= " FROM exemplaires, docs_type";
                $query .= " WHERE expl_id='" . $id_expl;
                $query .= "' and idtyp_doc=expl_typdoc LIMIT 1";
                $result = @pmb_mysql_query($query, $dbh) or die("can't SELECT exemplaires " . $query);
                $expl_properties = pmb_mysql_fetch_object($result);
                $duree_pret = $expl_properties->duree_pret;
            }
        }
    }
    // calculer la date de retour prévue, tenir compte de la date de fin d'adhésion
    if (!$duree_pret) {
        $duree_pret = '0';
    }
    if ($pmb_pret_date_retour_adhesion_depassee) {
        $rqt_date = "select empr_date_expiration,if(empr_date_expiration>date_add('" . $pret_date . "', INTERVAL '{$duree_pret}' DAY),0,1) as pret_depasse_adhes, date_add('" . $pret_date . "', INTERVAL '{$duree_pret}' DAY) as date_retour from empr where id_empr='" . $id_empr . "'";
    } else {
        $rqt_date = "select empr_date_expiration,if(empr_date_expiration>date_add('" . $pret_date . "', INTERVAL '{$duree_pret}' DAY),0,1) as pret_depasse_adhes, if(empr_date_expiration>date_add('" . $pret_date . "', INTERVAL '{$duree_pret}' DAY),date_add('" . $pret_date . "', INTERVAL '{$duree_pret}' DAY),empr_date_expiration) as date_retour from empr where id_empr='" . $id_empr . "'";
    }
    $resultatdate = pmb_mysql_query($rqt_date) or die(pmb_mysql_error() . "<br /><br />{$rqt_date}<br /><br />");
    $res = pmb_mysql_fetch_object($resultatdate);
    $date_retour = $res->date_retour;
    $pret_depasse_adhes = $res->pret_depasse_adhes;
    $empr_date_expiration = $res->empr_date_expiration;
    if ($pmb_utiliser_calendrier) {
        if ($pret_depasse_adhes == 0 || $pmb_pret_date_retour_adhesion_depassee) {
            $rqt_date = "select date_ouverture from ouvertures where ouvert=1 and to_days(date_ouverture)>=to_days('{$date_retour}') and num_location={$deflt2docs_location} order by date_ouverture ";
            $resultatdate = pmb_mysql_query($rqt_date);
            $res = @pmb_mysql_fetch_object($resultatdate);
            if ($res->date_ouverture) {
                $date_retour = $res->date_ouverture;
            }
        } else {
            $rqt_date = "select date_ouverture from ouvertures where date_ouverture>=sysdate() and ouvert=1 and to_days(date_ouverture)<=to_days('{$date_retour}') and num_location={$deflt2docs_location} order by date_ouverture DESC";
            $resultatdate = pmb_mysql_query($rqt_date);
            $res = @pmb_mysql_fetch_object($resultatdate);
            if ($res->date_ouverture) {
                $date_retour = $res->date_ouverture;
            }
        }
        // Si la date_retour, calculée ci-dessus d'après le calendrier, dépasse l'adhésion, alors que c'est interdit,
        // la date de retour doit etre le dernier jour ouvert
        if (!$pmb_pret_date_retour_adhesion_depassee) {
            $rqt_date = "SELECT DATEDIFF('{$empr_date_expiration}','{$date_retour}')as diff";
            $resultatdate = pmb_mysql_query($rqt_date);
            $res = @pmb_mysql_fetch_object($resultatdate);
            if ($res->diff < 0) {
                $rqt_date = "select date_ouverture from ouvertures where date_ouverture>=sysdate() and ouvert=1 and to_days(date_ouverture)<=to_days('{$empr_date_expiration}') and num_location={$deflt2docs_location} order by date_ouverture DESC";
                $resultatdate = pmb_mysql_query($rqt_date);
                $res = @pmb_mysql_fetch_object($resultatdate);
                if ($res->date_ouverture) {
                    $date_retour = $res->date_ouverture;
                }
            }
        }
    }
    // insérer le prêt
    $query = "INSERT INTO pret SET ";
    $query .= "pret_idempr = '" . $id_empr . "', ";
    $query .= "pret_idexpl = '" . $id_expl . "', ";
    $query .= "pret_date   = sysdate(), ";
    $query .= "pret_retour = '{$date_retour}', ";
    $query .= "retour_initial = '{$date_retour}', ";
    $query .= "short_loan_flag = " . ($pmb_short_loan_management && $short_loan ? "'1'" : "'0'");
    $result = @pmb_mysql_query($query, $dbh) or die(pmb_mysql_error() . "<br />can't INSERT into pret" . $query);
    // insérer la trace en stat, récupérer l'id et le mettre dans la table des prêts pour la maj ultérieure
    $stat_avant_pret = pret_construit_infos_stat($id_expl);
    $stat_id = stat_stuff($stat_avant_pret);
    $query = "update pret SET pret_arc_id='{$stat_id}' where ";
    $query .= "pret_idempr = '" . $id_empr . "' and ";
    $query .= "pret_idexpl = '" . $id_expl . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update pret for stats " . $query);
    audit::insert_creation(AUDIT_PRET, $stat_id);
    //enregistrer les champs perso pret
    $p_perso = new pret_parametres_perso("pret");
    $p_perso->rec_fields_perso($stat_id);
    if ($resarc_id) {
        $rqt_arch = "UPDATE resa_archive SET resarc_arcpretid = {$stat_id} WHERE resarc_id = '" . $resarc_id . "' ";
        @pmb_mysql_query($rqt_arch, $dbh);
    }
    $query = "update exemplaires SET ";
    $query .= "last_loan_date = sysdate() ";
    $query .= "where expl_id= '" . $id_expl . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update last_loan_date in exemplaires : " . $query);
    $query = "update exemplaires SET ";
    $query .= "expl_retloc=0 ";
    $query .= "where expl_id= '" . $id_expl . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update expl_retloc in exemplaires : " . $query);
    $query = "update empr SET ";
    $query .= "last_loan_date = sysdate() ";
    $query .= "where id_empr= '" . $id_empr . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update last_loan_date in empr : " . $query);
    $query = "delete from resa_ranger ";
    $query .= "where resa_cb='" . $cb_doc . "'";
    $result = @pmb_mysql_query($query, $dbh) or die("can't delete cb_doc in resa_ranger : " . $query);
    //Débit du compte lecteur si nécessaire
    if ($pmb_gestion_financiere && $pmb_gestion_tarif_prets) {
        $tarif_pret = 0;
        switch ($pmb_gestion_tarif_prets) {
            case 1:
                //Gestion simple
                $query = "SELECT tarif_pret";
                $query .= " FROM exemplaires, docs_type";
                $query .= " WHERE expl_id='" . $id_expl;
                $query .= "' and idtyp_doc=expl_typdoc LIMIT 1";
                $result = @pmb_mysql_query($query, $dbh) or die("can't SELECT exemplaires " . $query);
                $expl_tarif = pmb_mysql_fetch_object($result);
                $tarif_pret = $expl_tarif->tarif_pret;
                break;
            case 2:
                //Gestion avancée
                //Initialisation Quotas
                global $_parsed_quotas_;
                $_parsed_quotas_ = false;
                $qt_tarif = new quota("COST_LEND_QUOTA", "{$include_path}/quotas/own/{$lang}/finances.xml");
                $struct["READER"] = $id_empr;
                $struct["EXPL"] = $id_expl;
                $tarif_pret = $qt_tarif->get_quota_value($struct);
                break;
        }
        $tarif_pret = $tarif_pret * 1;
        if ($tarif_pret) {
            $compte_id = comptes::get_compte_id_from_empr($id_empr, 3);
            if ($compte_id) {
                $cpte = new comptes($compte_id);
                $explaire = new exemplaire('', $id_expl);
                if ($explaire->id_notice == 0 && $explaire->id_bulletin) {
                    //C'est un exemplaire de bulletin
                    $bulletin = new bulletinage_display($explaire->id_bulletin);
                    $titre = strip_tags($bulletin->display);
                } elseif ($explaire->id_notice) {
                    $notice = new mono_display($explaire->id_notice);
                    $titre = strip_tags($notice->header);
                }
                $libelle_expl = strlen($titre) > 15 ? $explaire->cb . " " . $titre : $explaire->cb . " " . $titre;
                $cpte->record_transaction("", abs($tarif_pret), -1, sprintf($msg["finance_pret_expl"], $libelle_expl), 0);
            }
        }
    }
    if ($pmb_transferts_actif) {
        // si transferts validé (en attente d'envoi), il faut restaurer le statut
        global $PMBuserid;
        $rqt = "SELECT id_transfert FROM transferts,transferts_demande\r\n\t\twhere\r\n\t\tnum_transfert=id_transfert and\r\n\t\tetat_demande=1 and num_expl ={$id_expl} and etat_transfert=0 and sens_transfert=0";
        $res = pmb_mysql_query($rqt);
        if (pmb_mysql_num_rows($res)) {
            $obj = pmb_mysql_fetch_object($res);
            $idTrans = $obj->id_transfert;
            //Récupération des informations d'origine
            $rqt = "SELECT statut_origine, num_expl FROM transferts INNER JOIN transferts_demande ON id_transfert=num_transfert\r\n\t\t\tWHERE id_transfert=" . $idTrans . " AND sens_transfert=0";
            $res = pmb_mysql_query($rqt);
            $obj_data = pmb_mysql_fetch_object($res);
            //on met à jour
            $rqt = "UPDATE exemplaires SET expl_statut=" . $obj_data->statut_origine . " WHERE expl_id=" . $obj_data->num_expl;
            pmb_mysql_query($rqt);
        }
        // cloture les demandes de transfert pour résa, refusée ou pas
        // afin de générer les transfert en automatique dans le circuit classique des résa
        $req = " update transferts,transferts_demande\n\t\tset etat_transfert=1 ,\n\t\tmotif=CONCAT(motif,'. Cloture, car parti en pret (gestion {$PMBuserid}, {$id_empr})')\n\t\twhere\n\t\tnum_transfert=id_transfert and\n\t\t(etat_demande=4 or etat_demande=0 or etat_demande=1)and\n\t\tetat_demande != 3 and etat_demande!=2 and etat_demande!=5 and\n\t\tnum_expl ={$id_expl} and etat_transfert=0 and sens_transfert=0\n\t\t";
        pmb_mysql_query($req, $dbh);
    }
    // invalidation des résas avec ce code-barre, au cas où
    // $query = "update resa SET resa_cb='' where resa_cb='".$cb_doc."' ";
    // $result = @ pmb_mysql_query($query, $dbh) or die("can't update resa ".$query);
}
function add_pret($id_empr, $id_expl, $cb_doc)
{
    // le lien MySQL
    global $dbh;
    global $msg;
    global $pmb_quotas_avances;
    /* on prépare la date de début*/
    $pret_date = time();
    /* on cherche la durée du prêt */
    if ($pmb_quotas_avances) {
        //Initialisation de la classe
        $qt = new quota("LEND_TIME_QUOTA");
        $struct["READER"] = $id_empr;
        $struct["EXPL"] = $id_expl;
        $duree_pret = $qt->get_quota_value($struct);
        if ($duree_pret == -1) {
            $duree_pret = 0;
        }
    } else {
        $query = "SELECT duree_pret";
        $query .= " FROM exemplaires, docs_type";
        $query .= " WHERE expl_id='" . $id_expl;
        $query .= "' and idtyp_doc=expl_typdoc LIMIT 1";
        $result = @pmb_mysql_query($query, $dbh) or die("can't SELECT exemplaires " . $query);
        $expl_properties = pmb_mysql_fetch_object($result);
        $duree_pret = $expl_properties->duree_pret;
    }
    // calculer la date de retour prévue
    $pret_retour = $pret_date + 3600 * 24 * $duree_pret;
    // insérer le prêt
    $query = "INSERT INTO pret SET ";
    $query .= "pret_idempr = '" . $id_empr . "', ";
    $query .= "pret_idexpl = '" . $id_expl . "', ";
    $query .= "pret_date   = sysdate(), ";
    $query .= "pret_retour = '" . date("Y-m-d", $pret_retour) . "', ";
    $query .= "retour_initial = '" . date("Y-m-d", $pret_retour) . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die(pmb_mysql_error() . "<br />can't INSERT into pret" . $query);
    // insérer la trace en stat, récupérer l'id et le mettre dans la table des prêts pour la maj ultérieure
    $stat_avant_pret = pret_construit_infos_stat($id_expl);
    $stat_id = stat_stuff($stat_avant_pret);
    $query = "update pret SET pret_arc_id='{$stat_id}' where ";
    $query .= "pret_idempr = '" . $id_empr . "' and ";
    $query .= "pret_idexpl = '" . $id_expl . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update pret for stats " . $query);
    audit::insert_creation(AUDIT_PRET, $stat_id);
    //enregistrer les champs perso pret
    $p_perso = new pret_parametres_perso("pret");
    $p_perso->rec_fields_perso($stat_id);
    $query = "update exemplaires SET ";
    $query .= "last_loan_date = sysdate() ";
    $query .= "where expl_id= '" . $id_expl . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update last_loan_date in exemplaires : " . $query);
    $query = "update empr SET ";
    $query .= "last_loan_date = sysdate() ";
    $query .= "where id_empr= '" . $id_empr . "' ";
    $result = @pmb_mysql_query($query, $dbh) or die("can't update last_loan_date in empr : " . $query);
}
 public function duplicate($recursive, $num_parent = 0)
 {
     global $dbh;
     if (!$num_parent) {
         $num_parent = $this->num_parent;
     }
     //on place la nouvelle rubrique à la fin par défaut
     $query = "SELECT id_section FROM cms_sections WHERE section_num_parent=" . addslashes($num_parent);
     $result = pmb_mysql_query($query, $dbh);
     if ($result) {
         $order = ",section_order = '" . (pmb_mysql_num_rows($result) + 1) . "' ";
     } else {
         $order = ",section_order = 1";
     }
     $insert = "insert into cms_sections set\r\n\t\tsection_title = '" . addslashes($this->title) . "',\r\n\t\tsection_resume = '" . addslashes($this->resume) . "',\n\t\tsection_logo = '" . addslashes($this->logo->data) . "',\r\n\t\tsection_publication_state ='" . addslashes($this->publication_state) . "',\r\n\t\tsection_start_date = '" . addslashes($this->start_date) . "',\r\n\t\tsection_end_date = '" . addslashes($this->end_date) . "',\r\n\t\tsection_num_parent = '" . addslashes($num_parent) . "' ,\r\n\t\tsection_num_type = '" . $this->num_type . "' ,\r\n\t\tsection_creation_date=sysdate() " . $order;
     pmb_mysql_query($insert, $dbh);
     $id = pmb_mysql_insert_id();
     //au tour des descripteurs...
     for ($i = 0; $i < count($this->descriptors); $i++) {
         $rqt = "insert into cms_sections_descriptors set num_section = '" . $id . "', num_noeud = '" . $this->descriptors[$i] . "',section_descriptor_order='" . $i . "'";
         pmb_mysql_query($rqt, $dbh);
     }
     //on crée la nouvelle instance
     $new_section = new cms_section($id);
     //enfin les éléments du type de contenu
     $types = new cms_editorial_types("section");
     $types->duplicate_type_form($this->num_type, $id, $this->id);
     $new_section->maj_indexation();
     $new_section->documents_linked = $this->documents_linked;
     $new_section->save_documents();
     //audit
     audit::insert_creation(AUDIT_EDITORIAL_SECTION, $id);
     if ($recursive) {
         //on duplique les rubriques enfants
         $query = "select id_section from cms_sections where section_num_parent = " . $this->id . " order by section_order";
         $result = pmb_mysql_query($query, $dbh);
         if ($result && pmb_mysql_num_rows($result)) {
             while ($row = pmb_mysql_fetch_object($result)) {
                 $child = new cms_section($row->id_section);
                 $child->duplicate($recursive, $id);
             }
         }
         //on duplique les articles enfants
         $query = "select id_article from cms_articles where num_section = " . $this->id . " order by article_order";
         $result = pmb_mysql_query($query, $dbh);
         if ($result && pmb_mysql_num_rows($result)) {
             while ($row = pmb_mysql_fetch_object($result)) {
                 $article = new cms_article($row->id_article);
                 $article->duplicate($id);
             }
         }
     }
 }
Exemple #23
0
function maj_stat_pret($stuff)
{
    global $dbh, $empr_archivage_prets, $empr_archivage_prets_purge;
    if (!is_object($stuff)) {
        die("Pb in ./circ/pret_func.inc.php [maj_stat_pret()].");
    }
    $query = "update pret_archive set ";
    $query .= "arc_debut='" . $stuff->pret_date . "', ";
    $query .= "arc_fin=now(), ";
    if ($empr_archivage_prets) {
        $query .= "arc_id_empr='" . addslashes($stuff->id_empr) . "', ";
    }
    $query .= "arc_empr_cp='" . addslashes($stuff->empr_cp) . "', ";
    $query .= "arc_empr_ville='" . addslashes($stuff->empr_ville) . "', ";
    $query .= "arc_empr_prof='" . addslashes($stuff->empr_prof) . "', ";
    $query .= "arc_empr_year='" . addslashes($stuff->empr_year) . "', ";
    $query .= "arc_empr_categ='" . $stuff->empr_categ . "', ";
    $query .= "arc_empr_codestat='" . $stuff->empr_codestat . "', ";
    $query .= "arc_empr_sexe='" . $stuff->empr_sexe . "', ";
    $query .= "arc_empr_statut='" . $stuff->empr_statut . "', ";
    $query .= "arc_empr_location='" . $stuff->empr_location . "', ";
    $query .= "arc_type_abt='" . $stuff->type_abt . "', ";
    $query .= "arc_expl_typdoc='" . $stuff->expl_typdoc . "', ";
    $query .= "arc_expl_id='" . $stuff->expl_id . "', ";
    $query .= "arc_expl_notice='" . $stuff->expl_notice . "', ";
    $query .= "arc_expl_bulletin='" . $stuff->expl_bulletin . "', ";
    $query .= "arc_expl_cote='" . addslashes($stuff->expl_cote) . "', ";
    $query .= "arc_expl_statut='" . $stuff->expl_statut . "', ";
    $query .= "arc_expl_location='" . $stuff->expl_location . "', ";
    $query .= "arc_expl_section='" . $stuff->expl_section . "', ";
    $query .= "arc_expl_codestat='" . $stuff->expl_codestat . "', ";
    $query .= "arc_expl_owner='" . $stuff->expl_owner . "', ";
    $query .= "arc_niveau_relance='" . $stuff->niveau_relance . "', ";
    $query .= "arc_date_relance='" . $stuff->date_relance . "', ";
    $query .= "arc_printed='" . $stuff->printed . "', ";
    $query .= "arc_cpt_prolongation='" . $stuff->cpt_prolongation . "', ";
    $query .= "arc_short_loan_flag='" . $stuff->short_loan_flag . "' ";
    $query .= " where arc_id='" . $stuff->pret_arc_id . "' ";
    $res = mysql_query($query, $dbh);
    audit::insert_modif(AUDIT_PRET, $stuff->pret_arc_id);
    // purge des vieux trucs
    if ($empr_archivage_prets_purge) {
        //on ne purge qu'une fois par session et par jour
        if (!isset($_SESSION["last_empr_archivage_prets_purge_day"]) || $_SESSION["last_empr_archivage_prets_purge_day"] != date("m.d.y")) {
            mysql_query("update pret_archive set arc_id_empr=0 where arc_id_empr!=0 and date_add(arc_fin, interval {$empr_archivage_prets_purge} day) < sysdate()") or die(mysql_error() . "<br />" . "update pret_archive set arc_id_empr=0 where arc_id_empr!=0 and date_add(arc_fin, interval {$empr_archivage_prets_purge} day) < sysdate()");
            $_SESSION["last_empr_archivage_prets_purge_day"] = date("m.d.y");
        }
    }
    return $res;
}
 function update_in_database($id_notice = 0)
 {
     global $dbh;
     global $pmb_synchro_rdf;
     $new_notice = 2;
     $notice_retour = $id_notice;
     if (!$id_notice) {
         $retour = array(2, 0);
         return $retour;
     }
     //synchro_rdf
     if ($pmb_synchro_rdf) {
         $synchro_rdf = new synchro_rdf();
         $synchro_rdf->delRdf($notice_retour, 0);
     }
     // traitement des titres uniformes
     global $pmb_use_uniform_title;
     if ($pmb_use_uniform_title) {
         if (count($this->titres_uniformes)) {
             $ntu = new tu_notice($id_notice);
             $ntu->update($this->titres_uniformes);
         }
     }
     for ($i = 0; $i < 2; $i++) {
         if ($this->editors[$i]['id']) {
             $editor_ids[$i] = $this->editors[$i]['id'];
         } else {
             $editor_ids[$i] = editeur::import($this->editors[$i]);
         }
     }
     if ($this->collection["id"]) {
         $collection_id = $this->collection["id"];
     } else {
         $this->collection['parent'] = $editor_ids[0];
         $collection_id = collection::import($this->collection);
     }
     if ($this->subcollection["id"]) {
         $subcollection_id = $this->subcollection["id"];
     } else {
         $this->subcollection['coll_parent'] = $collection_id;
         $subcollection_id = subcollection::import($this->subcollection);
         $serie_id = serie::import(stripslashes($this->serie));
     }
     /* traitement de Dewey */
     if (!$this->internal_index) {
         if (!$this->dewey["new_comment"]) {
             $this->dewey["new_comment"] = "";
         }
         if (!$this->dewey["new_pclass"]) {
             $this->dewey["new_pclass"] = "";
         }
         $this->internal_index = indexint::import(clean_string($this->dewey[0]), clean_string($this->dewey["new_comment"]), clean_string($this->dewey["new_pclass"]));
     }
     $date_parution_z3950 = notice::get_date_parution($this->year);
     /* Origine de la notice */
     $this->orinot_id = origine_notice::import($this->origine_notice);
     if ($this->orinot_id == 0) {
         $this->orinot_id = 1;
     }
     $sql_ins = "update notices set\n\t\t\ttypdoc           \t='" . $this->document_type . "',\n\t\t\tcode        \t        ='" . $this->isbn . "',\t            \n\t\t\ttit1                    ='" . $this->titles[0] . "',             \n\t\t\ttit2                    ='" . $this->titles[1] . "',             \n\t\t\ttit3                    ='" . $this->titles[2] . "',             \n\t\t\ttit4                    ='" . $this->titles[3] . "',             \n\t\t\ttparent_id              ='" . $serie_id . "',                    \n\t\t\ttnvol                   ='" . $this->nbr_in_serie . "',          \n\t\t\ted1_id                  =" . $editor_ids[0] . " ,                \n\t\t\ted2_id                  =" . $editor_ids[1] . " ,                \n\t\t\tyear                    ='" . $this->year . "',                  \n\t\t\tnpages                  ='" . $this->page_nbr . "',              \n\t\t\till                     ='" . $this->illustration . "',          \n\t\t\tsize                    ='" . $this->size . "',                  \n\t\t\taccomp                  ='" . $this->accompagnement . "',        \n\t\t\tcoll_id                 =" . $collection_id . " ,                \n\t\t\tsubcoll_id              =" . $subcollection_id . " ,             \n\t\t\tnocoll                  ='" . $this->nbr_in_collection . "',     \n\t\t\tmention_edition         ='" . $this->mention_edition . "',       \n\t\t\tn_gen                   ='" . $this->general_note . "',          \n\t\t\tn_contenu               ='" . $this->content_note . "',          \n\t\t\tn_resume                ='" . $this->abstract_note . "',         \n\t\t\tindexint                ='" . $this->internal_index . "',          \n\t\t\tstatut\t\t\t\t\t='" . $this->statut . "',\n\t\t\tcommentaire_gestion\t\t='" . $this->commentaire_gestion . "',\n\t\t\tindexation_lang\t\t\t='" . $this->indexation_lang . "',\n\t\t\tthumbnail_url\t\t\t='" . $this->thumbnail_url . "',\n\t\t\tindex_l                 ='" . clean_tags($this->free_index) . "',                \n\t\t\tniveau_biblio           ='" . $this->bibliographic_level . "',   \n\t\t\tniveau_hierar           ='" . $this->hierarchic_level . "',      \n\t\t\tlien                    ='" . $this->link_url . "',              \n\t\t\teformat                 ='" . $this->link_format . "',           \n\t\t\torigine_catalogage      ='" . $this->orinot_id . "',             \n\t\t\tprix                    ='" . $this->prix . "',\n\t\t\tdate_parution \t\t\t='" . $date_parution_z3950 . "'             \n\t\t\twhere notice_id='{$id_notice}' ";
     //echo "<pre>";
     //print_r($this->aut_array);
     //echo "</pre>";
     //echo $sql_ins."<br />";
     //echo "<pre>";
     //print_r($this->categories);
     //echo "</pre>";
     //exit;
     $sql_result_ins = pmb_mysql_query($sql_ins) or die("Couldn't update notices : " . $sql_ins);
     $notice_retour = $id_notice;
     audit::insert_modif(AUDIT_NOTICE, $id_notice);
     // purge de la base des responsabilités de la notice intégrée...
     if ($notice_retour) {
         $rqt_del = "delete from responsability where responsability_notice='{$notice_retour}'";
         $sql_result_del = pmb_mysql_query($rqt_del) or die("Couldn't purge table responsability : " . $rqt_del);
     }
     $rqt_ins = "insert into responsability (responsability_author, responsability_notice, responsability_fonction, responsability_type, responsability_ordre) VALUES ";
     for ($i = 0; $i < sizeof($this->aut_array); $i++) {
         $aut['id'] = clean_string($this->aut_array[$i]['id']);
         $aut['name'] = clean_string($this->aut_array[$i]['entree']);
         $aut['rejete'] = clean_string($this->aut_array[$i]['rejete']);
         $aut['date'] = clean_string($this->aut_array[$i]['date']);
         $aut['type'] = $this->aut_array[$i]['type_auteur'];
         $aut['subdivision'] = clean_string($this->aut_array[$i]['subdivision']);
         $aut['numero'] = clean_string($this->aut_array[$i]['numero']);
         $aut['lieu'] = clean_string($this->aut_array[$i]['lieu']);
         $aut['ville'] = clean_string($this->aut_array[$i]['ville']);
         $aut['pays'] = clean_string($this->aut_array[$i]['pays']);
         $aut['web'] = clean_string($this->aut_array[$i]['web']);
         $aut['author_comment'] = clean_string($this->aut_array[$i]['author_comment']);
         $aut['authority_number'] = clean_string($this->aut_array[$i]['authority_number']);
         /* Origine de l'autorité : on reprend les infos d'origine de la notice pour les attribuées aux origines des autorités */
         $id_origine_auth = 0;
         $id_origine_auth = origin_authorities::import($this->origine_notice);
         if ($id_origine_auth == 0) {
             $id_origine_auth = 1;
         }
         // import de l'autorité auteur si elle n'existe pas et conservation des infos sur l'origine de l'autorité
         if ($aut['authority_number'] != '' && $id_origine_auth) {
             $this->aut_array[$i]["id"] = $this->insert_authority_infos($aut['authority_number'], "author", $id_origine_auth, $aut);
         }
         if (!$this->aut_array[$i]["id"]) {
             $this->aut_array[$i]["id"] = auteur::import($aut);
         }
         if ($this->aut_array[$i]["id"]) {
             $rqt = $rqt_ins . " (" . $this->aut_array[$i]["id"] . "," . $notice_retour . ",'" . $this->aut_array[$i]['fonction'] . "'," . $this->aut_array[$i]['responsabilite'] . "," . $i . ") ";
             $res_ins = pmb_mysql_query($rqt, $dbh);
         }
     }
     // traitement des categories
     if ($this->categorisation_type == "categorisation_auto") {
         traite_categories_enreg($notice_retour, $this->categories);
     } else {
         $rqt_del = "delete from notices_categories where notcateg_notice='{$notice_retour}' ";
         $res_del = @pmb_mysql_query($rqt_del, $dbh);
         $rqt_ins = "insert into notices_categories (notcateg_notice, num_noeud, ordre_categorie) VALUES ";
         $rqt_ins_values = array();
         foreach ($this->categories as $i => $category) {
             $id_categ = $category['categ_id'];
             if ($id_categ) {
                 $rqt_ins_values[] = " ('{$notice_retour}','{$id_categ}', {$i}) ";
             }
         }
         $rqt_ins .= implode(",", $rqt_ins_values);
         $res_ins = @pmb_mysql_query($rqt_ins, $dbh);
     }
     // traitement des langues
     // langues de la publication
     $rqt_del = "delete from notices_langues where num_notice='{$notice_retour}' ";
     $res_del = pmb_mysql_query($rqt_del, $dbh);
     if (is_array($this->language_code) && count($this->language_code)) {
         $rqt_ins = "insert into notices_langues (num_notice, type_langue, code_langue, ordre_langue) VALUES ";
         foreach ($this->language_code as $ordre_lang => $code_lang) {
             if ($code_lang) {
                 $rqt = $rqt_ins . " ('{$notice_retour}',0, '{$code_lang}', {$ordre_lang}) ";
                 $res_ins = @pmb_mysql_query($rqt, $dbh);
             }
         }
     }
     // langues originales
     if (is_array($this->original_language_code) && count($this->original_language_code)) {
         $rqt_ins = "insert into notices_langues (num_notice, type_langue, code_langue, ordre_langue) VALUES ";
         foreach ($this->original_language_code as $ordre_lang => $code_lang) {
             if ($code_lang) {
                 $rqt = $rqt_ins . " ('{$notice_retour}',1, '{$code_lang}', {$ordre_lang}) ";
                 $res_ins = @pmb_mysql_query($rqt, $dbh);
             }
         }
     }
     //Traitement des champs personnalisés (du formulaire !!!)
     $p_perso = new parametres_perso("notices");
     $nberrors = $p_perso->check_submited_fields();
     $p_perso->rec_fields_perso($notice_retour);
     //Traitement import perso
     global $notice_id, $notice_org, $notice_type_org;
     if (function_exists('z_recup_noticeunimarc_suite') && function_exists('recup_noticeunimarc_suite')) {
         //Suppression des champs persos
         $requete = "delete from notices_custom_values where notices_custom_origine=" . $notice_retour;
         @pmb_mysql_query($requete);
         $notice_id = $notice_retour;
         z_recup_noticeunimarc_suite($notice_org);
         z_import_new_notice_suite();
     }
     // Mise à jour des index de la notice
     notice::majNotices($notice_retour);
     // Mise à jour de la table notices_global_index
     notice::majNoticesGlobalIndex($notice_retour);
     // Mise à jour de la table notices_mots_global_index
     notice::majNoticesMotsGlobalIndex($notice_retour);
     //Documents numériques
     foreach ($this->doc_nums as $doc_num) {
         if (!$doc_num["a"]) {
             continue;
         }
         explnum_add_from_url($notice_retour, $this->bull_id, $doc_num["b"], $doc_num["a"], false, $this->source_id, $doc_num["f"], '', $doc_num["s"]);
     }
     //synchro_rdf
     if ($pmb_synchro_rdf) {
         $synchro_rdf->addRdf($notice_retour, 0);
     }
     $retour = array($new_notice, $notice_retour);
     return $retour;
 }
Exemple #25
0
 static function delete(demandes_actions $action)
 {
     global $dbh, $chk;
     if ($action->id_action) {
         $action->fetch_data($action->id_action, false);
         if (sizeof($action->notes)) {
             foreach ($action->notes as $note) {
                 demandes_notes::delete($note);
             }
         }
         $req = "delete from demandes_actions where id_action='" . $action->id_action . "'";
         pmb_mysql_query($req, $dbh);
         $q = "delete ed,eda from explnum_doc ed join explnum_doc_actions eda on ed.id_explnum_doc=eda.num_explnum_doc where eda.num_action={$action->id_action}";
         pmb_mysql_query($q, $dbh);
         audit::delete_audit(AUDIT_ACTION, $action->id_action);
     }
 }
 function create_notice()
 {
     global $dbh, $iddemande;
     global $demandes_statut_notice, $pmb_type_audit;
     // creation notice à partir de la demande
     $req = "insert into notices set\n\t\t\t\ttit1='" . $this->titre_demande . "',\n\t\t\t\tn_contenu='" . $this->sujet_demande . "',\n\t\t\t\tstatut ='" . $demandes_statut_notice . "'\n\t\t\t\t";
     pmb_mysql_query($req, $dbh);
     $id_notice = pmb_mysql_insert_id();
     notice::majNotices($id_notice);
     if ($pmb_type_audit) {
         audit::insert_creation(AUDIT_NOTICE, $id_notice);
     }
     // mise à jour de la demande
     $req = "UPDATE demandes SET num_notice=" . $id_notice . " WHERE id_demande=" . $this->id_demande;
     pmb_mysql_query($req, $dbh);
     $this->num_notice = $id_notice;
 }
 function delete($id)
 {
     global $dbh;
     $p_perso = new custom_parametres_perso("authperso", "authperso", $this->id);
     $p_perso->delete_values($id);
     // nettoyage indexation concepts
     $index_concept = new index_concept($id, TYPE_AUTHPERSO);
     $index_concept->delete();
     indexation_authperso::delete_all_index($id, "authorities", "id_authority", AUT_TABLE_AUTHPERSO);
     // effacement de l'identifiant unique d'autorité
     $authority = new authority(0, $id, AUT_TABLE_AUTHPERSO);
     $authority->delete();
     $req = "DELETE FROM authperso_authorities where id_authperso_authority=" . $id;
     $resultat = pmb_mysql_query($req);
     audit::delete_audit($this->id + 1000, $id);
 }
 static function import($value, $from_form = 0)
 {
     global $dbh;
     // Si vide on sort
     if (trim($value['name']) == '') {
         return FALSE;
     }
     if (!$from_form) {
         $value['name'] = addslashes($value['name']);
         $value['num_author'] = addslashes($value['num_author']);
         $value['form'] = addslashes($value['form']);
         $value['date'] = addslashes($value['date']);
         $value['subject'] = addslashes($value['subject']);
         $value['place'] = addslashes($value['place']);
         $value['history'] = addslashes($value['history']);
         $value['characteristic'] = addslashes($value['characteristic']);
         $value['intended_termination'] = addslashes($value['intended_termination']);
         $value['intended_audience'] = addslashes($value['intended_audience']);
         $value['context'] = addslashes($value['context']);
         $value['equinox'] = addslashes($value['equinox']);
         $value['coordinates'] = addslashes($value['coordinates']);
         $value['tonalite'] = addslashes($value['tonalite']);
         $value['comment'] = addslashes($value['comment']);
         $value['databnf_uri'] = addslashes($value['databnf_uri']);
         for ($i = 0; $i < count($value['distrib']); $i++) {
             $value['distrib'][$i] = addslashes($value['distrib'][$i]);
         }
         for ($i = 0; $i < count($value['ref']); $i++) {
             $value['ref'][$i] = addslashes($value['ref'][$i]);
         }
         for ($i = 0; $i < count($value['subdiv']); $i++) {
             $value['subdiv'][$i] = addslashes($value['subdiv'][$i]);
         }
         for ($i = 0; $i < count($value['authors']); $i++) {
             // les champs auteurs sont addslashes dans import auteur
             $value['authors'][$i]['type'] = addslashes($value['authors'][$i]['type']);
             $value['authors'][$i]['fonction'] = addslashes($value['authors'][$i]['fonction']);
         }
     }
     $marc_key = new marc_list("music_key");
     $marc_form = new marc_list("music_form");
     $flag_form = false;
     $flag_key = false;
     foreach ($marc_form->table as $value_form => $libelle_form) {
         if ($value_form == $value['form']) {
             $flag_form = true;
         }
     }
     foreach ($marc_key->table as $value_key => $libelle_key) {
         if ($value_key == $value['tonalite']) {
             $flag_key = true;
         }
     }
     if (count($value['authors'])) {
         for ($i = 0; $i < count($value['authors']); $i++) {
             if ($value['authors'][$i]['id']) {
                 $tu_auteur = new auteur($value['authors'][$i]['id']);
                 if (!$tu_auteur->id) {
                     // id non valide
                     $value['authors'][$i]['id'] = 0;
                 }
             }
             if (!$value['authors'][$i]['id']) {
                 // création ou déjà existant. auteur::import addslashes les champs
                 $value['authors'][$i]['id'] = auteur::import($value['authors'][$i]);
             }
         }
     }
     // $value déjà addslashes plus haut -> 1
     $titre = titre_uniforme::import_tu_exist($value, 1);
     if ($titre) {
         return $titre;
     }
     $requete = "INSERT INTO titres_uniformes SET ";
     $requete .= "tu_name='" . $value["name"] . "', ";
     $requete .= "tu_num_author='" . $value["num_author"] . "', ";
     $requete .= (!$flag_form ? "tu_forme='" : "tu_forme_marclist='") . $value['form'] . "', ";
     $requete .= "tu_date='" . $value["date"] . "', ";
     $requete .= "tu_sujet='" . $value["subject"] . "', ";
     $requete .= "tu_lieu='" . $value["place"] . "', ";
     $requete .= "tu_histoire='" . $value["history"] . "', ";
     $requete .= "tu_caracteristique='" . $value["characteristic"] . "', ";
     $requete .= "tu_completude='" . $value["intended_termination"] . "', ";
     $requete .= "tu_public='" . $value["intended_audience"] . "', ";
     $requete .= "tu_contexte='" . $value["context"] . "', ";
     $requete .= "tu_equinoxe='" . $value["equinox"] . "', ";
     $requete .= "tu_coordonnees='" . $value["coordinates"] . "', ";
     $requete .= (!$flag_key ? "tu_tonalite='" : "tu_tonalite_marclist='") . $value['tonalite'] . "', ";
     $requete .= "tu_comment='" . $value["comment"] . "', ";
     $requete .= "tu_databnf_uri='" . $value["databnf_uri"] . "' ";
     // insertion du titre uniforme	et mise à jour de l'index tu
     if (pmb_mysql_query($requete, $dbh)) {
         $tu_id = pmb_mysql_insert_id();
     } else {
         return FALSE;
     }
     if (count($value['authors'])) {
         $ordre = 0;
         $rqt_ins = "INSERT INTO responsability_tu (responsability_tu_author_num, responsability_tu_num, responsability_tu_fonction, responsability_tu_type, responsability_tu_ordre) VALUES ";
         foreach ($value['authors'] as $author) {
             if ($author['id']) {
                 $rqt = $rqt_ins . " ('" . $author['id'] . "','" . $tu_id . "','" . $author['fonction'] . "','" . $author['type'] . "', {$ordre}) ";
                 $res_ins = @pmb_mysql_query($rqt);
                 $ordre++;
             }
         }
     }
     // Distribution instrumentale et vocale (pour la musique)
     for ($i = 0; $i < count($value['distrib']); $i++) {
         $requete = "INSERT INTO tu_distrib SET\n\t\t\tdistrib_num_tu='{$tu_id}',\n\t\t\tdistrib_name='" . $value['distrib'][$i] . "',\n\t\t\tdistrib_ordre='{$i}' ";
         pmb_mysql_query($requete, $dbh);
     }
     // Référence numérique (pour la musique)
     for ($i = 0; $i < count($value['ref']); $i++) {
         $requete = "INSERT INTO tu_ref SET\n\t\t\tref_num_tu='{$tu_id}',\n\t\t\tref_name='" . $value['ref'][$i] . "',\n\t\t\tref_ordre='{$i}' ";
         pmb_mysql_query($requete, $dbh);
     }
     // Subdivision de forme
     for ($i = 0; $i < count($value['subdiv']); $i++) {
         $requete = "INSERT INTO tu_subdiv SET\n\t\t\tsubdiv_num_tu='{$tu_id}',\n\t\t\tsubdiv_name='" . $value['subdiv'][$i] . "',\n\t\t\tsubdiv_ordre='{$i}' ";
         pmb_mysql_query($requete, $dbh);
     }
     audit::insert_creation(AUDIT_TITRE_UNIFORME, $tu_id);
     //update authority informations
     $authority = new authority(0, $tu_id, AUT_TABLE_TITRES_UNIFORMES);
     $authority->set_num_statut($value["statut"]);
     $authority->update();
     // mise à jour du champ index du titre uniforme
     if ($tu_id) {
         titre_uniforme::update_index_tu($tu_id);
         titre_uniforme::tu_enrichment($tu_id);
     }
     return $tu_id;
 }
Exemple #29
0
 function import($name, $comment = "", $id_pclassement = "")
 {
     global $dbh;
     global $pmb_limitation_dewey;
     global $thesaurus_classement_defaut;
     // check sur la variable passée en paramètre
     if (!$name) {
         return 0;
     }
     if ($pmb_limitation_dewey < 0) {
         return 0;
     }
     if ($pmb_limitation_dewey) {
         $name = substr($name, 0, $pmb_limitation_dewey);
     }
     // tentative de récupérer l'id associée dans la base (implique que l'autorité existe)
     // préparation de la requête
     $key = addslashes($name);
     $comment = addslashes($comment);
     if (!$id_pclassement) {
         $num_pclass = $thesaurus_classement_defaut;
     } else {
         $num_pclass = $id_pclassement;
     }
     //On regarde si le plan de classement existe
     $query = "SELECT name_pclass FROM pclassement WHERE id_pclass='" . addslashes($num_pclass) . "' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT pclassement " . $query);
     }
     if (!pmb_mysql_num_rows($result)) {
         //Le plan de classement demandé n'existe pas
         return 0;
         // -> pas d'import
     }
     $query = "SELECT indexint_id FROM indexint WHERE indexint_name='" . rtrim(substr($key, 0, 255)) . "' and num_pclass='{$num_pclass}' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT indexint " . $query);
     }
     // résultat
     // récupération du résultat de la recherche
     $tindexint = pmb_mysql_fetch_object($result);
     // du résultat et récupération éventuelle de l'id
     if ($tindexint->indexint_id) {
         return $tindexint->indexint_id;
     }
     // id non-récupérée >> création
     if (!$id_pclassement) {
         $num_pclass = $thesaurus_classement_defaut;
     } else {
         $num_pclass = $id_pclassement;
     }
     $query = "INSERT INTO indexint SET indexint_name='{$key}', indexint_comment='{$comment}', index_indexint=' " . strip_empty_words($key . " " . $comment) . " ', num_pclass={$num_pclass} ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't INSERT into indexint " . $query);
     }
     $id = pmb_mysql_insert_id($dbh);
     audit::insert_creation(AUDIT_INDEXINT, $id);
     return $id;
 }
Exemple #30
0
$base_auth = "CATALOGAGE_AUTH";
$base_title = "\$msg[audit_titre]";
require_once "{$base_path}/includes/init.inc.php";
switch ($pmb_type_audit) {
    case '1':
        $audit = new audit($type_obj, $object_id);
        $audit->get_all();
        if (count($audit->all_audit) == 1) {
            $all[0] = $audit->get_creation();
        } else {
            $all[0] = $audit->get_creation();
            $all[1] = $audit->get_last();
        }
        break;
    case '2':
        $audit = new audit($type_obj, $object_id);
        $audit->get_all();
        $all = $audit->all_audit;
        break;
    default:
    case '0':
        echo "<script> self.close(); </script>";
        break;
}
$audit_list = "<script type='text/javascript' src='./javascript/sorttable.js'></script>\n<table class='sortable' ><tr><th>" . $msg['audit_col_userid'] . "</th><th>" . $msg['audit_col_username'] . "</th><th>" . $msg['audit_col_type_action'] . "</th><th>" . $msg['audit_col_date_heure'] . "</th><th>" . $msg['audit_col_nom'] . "</th><th>" . $msg['audit_comment'] . "</th></tr>";
while (list($cle, $valeur) = each($all)) {
    //user_id, user_name, type_modif, quand, concat(prenom, ' ', nom) as prenom_nom
    $info = json_decode($valeur->info);
    $info_display = "";
    if (is_object($info)) {
        if ($info->comment) {