function del_item_base($item = 0, $forcage = array()) { global $dbh; if (!$item) { return CADDIE_ITEM_NULL; } switch ($this->type) { case "EXPL": if (!$this->verif_expl_item($item)) { if ($forcage['source_id']) { exemplaire::save_to_agnostic_warehouse(array(0 => $item), $forcage['source_id']); } if (exemplaire::del_expl($item)) { return CADDIE_ITEM_SUPPR_BASE_OK; } else { return 0; } } else { return CADDIE_ITEM_EXPL_PRET; } break; case "BULL": if (!$this->verif_bull_item($item, $forcage)) { // aucun prêt d'exemplaire de ce bulletin en cours, on supprime : $myBulletinage = new bulletinage($item); $myBulletinage->delete(); return CADDIE_ITEM_SUPPR_BASE_OK; } else { return CADDIE_ITEM_BULL_USED; } break; case "NOTI": if (!$this->verif_noti_item($item, $forcage)) { if ($forcage['source_id']) { notice::save_to_agnostic_warehouse(array(0 => $item), $forcage['source_id']); } $requete = "SELECT niveau_biblio, niveau_hierar FROM notices WHERE notice_id='" . $item . "'"; $res = pmb_mysql_query($requete, $dbh); if (pmb_mysql_num_rows($res) && pmb_mysql_result($res, 0, 0) == "s" && pmb_mysql_result($res, 0, 1) == "1") { $myBulletinage = new serial($item); $myBulletinage->serial_delete(); } else { notice::del_notice($item); } return CADDIE_ITEM_SUPPR_BASE_OK; } else { return CADDIE_ITEM_NOTI_USED; } break; } return CADDIE_ITEM_OK; }
} echo str_replace('!!page_title!!', $msg[4000] . $msg[1003] . $msg['catalog_serie_suppression'], $serial_header); //verification des droits de modification notice $acces_m = 1; if ($serial_id != 0 && $gestion_acces_active == 1 && $gestion_acces_user_notice == 1) { require_once "{$class_path}/acces.class.php"; $ac = new acces(); $dom_1 = $ac->setDomain(1); $acces_m = $dom_1->getRights($PMBuserid, $serial_id, 8); } if ($acces_m == 0) { error_message('', htmlentities($dom_1->getComment('mod_seri_error'), ENT_QUOTES, $charset), 1, ''); } else { print "<div class=\"row\"><div class=\"msg-perio\">" . $msg['catalog_notices_suppression'] . "</div></div>"; $requete = "select 1 from pret, exemplaires, bulletins, notices where notice_id='{$serial_id}' and expl_notice=0 "; $requete .= "and pret_idexpl=expl_id and expl_bulletin=bulletin_id and bulletin_notice=notice_id"; $result = @mysql_query($requete); if (mysql_num_rows($result)) { // gestion erreur pret en cours error_message($msg[416], $msg['impossible_perio_del_pret'], 1, "./catalog.php?categ=serials&sub=view&serial_id={$serial_id}"); } else { //suppression du périodique $serial = new serial($serial_id); if ($pmb_archive_warehouse) { serial::save_to_agnostic_warehouse(array(0 => $serial_id), $pmb_archive_warehouse); } $serial->serial_delete(); $retour = "./catalog.php?categ=serials"; print "\n\t\t\t<form class='form-{$current_module}' name=\"dummy\" method=\"post\" action=\"{$retour}\" style=\"display:none\">\n\t\t\t\t<input type=\"hidden\" name=\"id_form\" value=\"{$id_form}\">\n\t\t\t</form>\n\t\t\t<script type=\"text/javascript\">document.dummy.submit();</script>\n\t\t\t"; } }
function creer_bulletinage_et_articles($bull = array(), $art = array()) { global $notice_id, $dbh, $notices_a_creer, $bulletins_crees, $notices_crees, $tit_200a, $isbn_OK, $id_unimarc, $msg; global $force_creation_notice_perio; //On regarde si la notice n'existe pas déjà dans la base $requete = "select notice_id from notices where tit1 LIKE '" . addslashes(clean_string(implode(" ; ", $tit_200a))) . "' and niveau_biblio='s' and niveau_hierar='1' and notice_id !='" . addslashes($notice_id) . "' "; if ($isbn_OK) { $requete .= "and code = '" . addslashes($isbn_OK) . "'"; } $res = mysql_query($requete, $dbh); if ((!isset($force_creation_notice_perio) || !$force_creation_notice_perio) && mysql_num_rows($res)) { $id_perio_garde = 0; while (($r = mysql_fetch_object($res)) && !$id_perio_garde) { if (!array_search($r->notice_id, $notices_crees)) { //Si le periodique ne fait pas parti des notices créées (il était déja dans la base) $id_perio_garde = $r->notice_id; } } if ($id_perio_garde) { mysql_query("insert into error_log (error_origin, error_text) values ('import_" . addslashes(SESSid) . ".inc', '" . $msg[542] . " {$id_unimarc} " . " {$isbn_OK} " . addslashes(clean_string(implode(" ; ", $tit_200a))) . "') ", $dbh); //Si j'ai déja une notice dans la base avec ce titre et ce code je supprime celle que je suis en train d'importer $perio_traite = new serial($notice_id); $perio_traite->replace($id_perio_garde); $perio_traite->serial_delete(); //Je travail avec le periodique qui était dans la base $notice_id = $id_perio_garde; $notices_crees[$id_unimarc] = $id_perio_garde; } } if ($bull) { for ($i = 0; $i < sizeof($bull); $i++) { $bulletin = array(); $bulletin = array("titre" => $bull[$i]['t'][0], "date" => $bull[$i]['d'][0], "mention" => $bull[$i]['e'][0], "num" => $bull[$i]['v'][0]); creer_bulletin($notice_id, $bulletin, "", ""); } } if ($art) { for ($i = 0; $i < sizeof($art); $i++) { if (!$notices_crees[get_valeur_champ9($art[$i]['9'], 'id')] && !$art[$i]['0'][0]) { $bulletin = array(); $bulletin = array("titre" => $art[$i]['t'][1], "date" => $art[$i]['d'][0], "mention" => $art[$i]['e'][0], "num" => $art[$i]['v'][0]); creer_notice_article(get_valeur_champ9($art[$i]['9'], 'id'), $art[$i]['t'][0], get_valeur_champ9($art[$i]['9'], 'page'), 0, $bulletin, "", "", $notice_id); } elseif ($art[$i]['0'][0]) { $id = get_valeur_champ9($art[$i]['9'], 'id'); $type_lien = get_valeur_champ9($art[$i]['9'], 'type_lnk'); $lien = get_valeur_champ9($art[$i]['9'], 'lnk'); $rank = get_valeur_champ9($art[$i]['9'], 'rank') * 1; $page = get_valeur_champ9($art[$i]['9'], 'page'); //On enregistre les informations pour créer l'article plus tard $notices_a_creer[$id][] = array("type_lnk" => $type_lien, "lnk" => $lien, "rank" => $rank, "titre_art" => $art[$i]['t'][0], "titre" => $art[$i]['t'][1], "num" => $art[$i]['v'][0], "mention" => $art[$i]['e'][0], "date" => $art[$i]['d'][0], "id_asso" => $notice_id, "page" => $page); } } } }