function resa_transfert($id_resa, $cb) { global $transferts_choix_lieu_opac, $transferts_site_fixe; global $deflt_docs_location; $res_trans = 0; //pour la gestion des transferts $trans = new transfert(); //les informations de l'exemplaire $rqt = "SELECT expl_location FROM exemplaires WHERE expl_cb='" . $cb . "'"; $res = pmb_mysql_query($rqt); $expl_loc = pmb_mysql_result($res, 0); switch ($transferts_choix_lieu_opac) { case "1": //retrait de la resa sur lieu choisi par le lecteur $rqt = "SELECT resa_loc_retrait FROM resa WHERE id_resa='" . $id_resa . "'"; $res = pmb_mysql_query($rqt); $loc_retrait = pmb_mysql_result($res, 0); if ($loc_retrait != $expl_loc) { //l'exemplaire n'est pas sur le bon site //on genere un transfert du site de l'exemplaire vers le site de retrait $trans->transfert_pour_resa($cb, $loc_retrait, $id_resa); $res_trans = $loc_retrait; } break; case "2": //retrait de la resa sur lieu fixé if ($transferts_site_fixe != $expl_loc) { //l'exemplaire n'est pas sur le bon site //on genere un transfert du site de l'exemplaire vers le site fixé $trans->transfert_pour_resa($cb, $transferts_site_fixe, $id_resa); $res_trans = $transferts_site_fixe; } break; case "3": //retrait de la resa sur lieu exemplaire //==>on fait rien ! break; default: //retrait de la resa sur lieu lecteur //on recupere la localisation de l'emprunteur $rqt = "SELECT empr_location FROM resa INNER JOIN empr ON resa_idempr = id_empr WHERE id_resa=" . $id_resa; $res = pmb_mysql_query($rqt); $empr_location = pmb_mysql_result($res, 0); if ($empr_location != $expl_loc) { //l'exemplaire n'est pas sur le bon site //on genere un transfert du site de l'exemplaire vers le site du lecteur $trans->transfert_pour_resa($cb, $empr_location, $id_resa); $res_trans = $empr_location; } break; } return $res_trans; }
function get_expl($expl, $show_in_reception = 0, $return_count = false) { global $msg, $dbh, $charset; global $base_path, $class_path; global $cart_link_non; global $explr_invisible, $explr_visible_unmod, $explr_visible_mod, $pmb_droits_explr_localises; global $pmb_transferts_actif; global $pmb_expl_list_display_comments; global $pmb_sur_location_activate; global $pmb_expl_data; // attention, $bul est un array if (!sizeof($expl) || !is_array($expl)) { return $msg["bull_no_expl"]; } $explr_tab_invis = explode(",", $explr_invisible); $explr_tab_unmod = explode(",", $explr_visible_unmod); $explr_tab_modif = explode(",", $explr_visible_mod); // $th_sur_location=""; // if($pmb_sur_location_activate)$th_sur_location="<th>".$msg["sur_location_expl"]."</th>"; // // $result = "<table border=\"0\" cellspacing=\"1\">"; // $result .= "<tr><th>".$msg[293]."</th><th>".$msg[4016]."</th>$th_sur_location<th>".$msg[4017]."</th><th>".$msg[4018]."</th><th>".$msg[4019]."</th><th>".$msg[4015]."</th><th></th>"; // while(list($cle, $valeur) = each($expl)) { // $requete = "SELECT pret_idempr, "; // $requete .= " date_format(pret_retour, '".$msg["format_date"]."') as aff_pret_retour "; // $requete .= " FROM pret "; // $requete .= " WHERE pret_idexpl='$valeur->expl_id' "; // $result_prets = pmb_mysql_query($requete, $dbh) or die ("<br />".pmb_mysql_error()."<br />".$requete); // if (pmb_mysql_num_rows($result_prets)) $expl_pret = pmb_mysql_fetch_object($result_prets) ; // else $expl_pret=""; // $situation = ""; // // prêtable ou pas s'il est prêté, on affiche son état // if (is_object($expl_pret) && $expl_pret->pret_idempr) { // // exemplaire sorti // $rqt_empr = "SELECT empr_nom, empr_prenom, id_empr, empr_cb FROM empr WHERE id_empr='$expl_pret->pret_idempr' "; // $res_empr = pmb_mysql_query($rqt_empr, $dbh) ; // $res_empr_obj = pmb_mysql_fetch_object($res_empr) ; // $situation = "<strong>${msg[358]} ".$expl_pret->aff_pret_retour."</strong>"; // global $empr_show_caddie, $selector_prop_ajout_caddie_empr; // if (!$show_in_reception && $empr_show_caddie && (SESSrights & CIRCULATION_AUTH)) { // $img_ajout_empr_caddie="<img src='./images/basket_empr.gif' align='middle' alt='basket' title=\"${msg[400]}\" onClick=\"openPopUp('./cart.php?object_type=EMPR&item=".$expl->pret_idempr."', 'cart', 600, 700, -2, -2, '$selector_prop_ajout_caddie_empr')\"> "; // } else { // $img_ajout_empr_caddie=""; // } // if (!$show_in_reception) { // $situation .= "<br />$img_ajout_empr_caddie<a href='./circ.php?categ=pret&form_cb=".rawurlencode($res_empr_obj->empr_cb)."'>$res_empr_obj->empr_prenom $res_empr_obj->empr_nom</a>"; // } else { // $situation .= "<br />$res_empr_obj->empr_prenom $res_empr_obj->empr_nom"; // } // } else { // // tester si réservé // $result_resa = pmb_mysql_query("select 1 from resa where resa_cb='".addslashes($valeur->expl_cb)."' ", $dbh) or die (); // $reserve = pmb_mysql_num_rows($result_resa); // if ($reserve) // $situation = "<strong>".$msg['expl_reserve']."</strong>"; // exemplaire réservé // elseif ($valeur->pret_flag) // $situation = "<strong>${msg[359]}</strong>"; // exemplaire disponible // else // $situation = ""; // } // // if(!$show_in_reception && (SESSrights & CATALOGAGE_AUTH)){ // $selector_prop = "toolbar=no, dependent=yes, resizable=yes, scrollbars=yes"; // $cart_click_expl = "onClick=\"openPopUp('./cart.php?object_type=EXPL&item=!!item!!', 'cart', 600, 700, -2, -2, '$selector_prop')\""; // $cart_link = "<img src='./images/basket_small_20x20.gif' align='center' alt='middle' title=\"${msg[400]}\" $cart_click_expl>"; // $ajout_expl_panier = str_replace('!!item!!', $valeur->expl_id, $cart_link) ; // }else{ // $ajout_expl_panier =""; // } // // //si les transferts sont activés // if (!$show_in_reception && $pmb_transferts_actif) { // //si l'exemplaire n'est pas transferable on a une image vide // $dispo_pour_transfert = transfert::est_transferable ( $valeur->expl_id ); // if (SESSrights & TRANSFERTS_AUTH && $dispo_pour_transfert) // //l'icon de demande de transfert // $ajout_expl_panier .= "<a href=\"#\" onClick=\"openPopUp('./catalog/transferts/transferts_popup.php?expl=" . $valeur->expl_id . "', 'cart', 600, 450, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');\">" . "<img src='./images/peb_in.png' align='center' border=0 alt=\"" . $msg ["transferts_alt_libelle_icon"] . "\" title=\"" . $msg ["transferts_alt_libelle_icon"] . "\"></a>"; // else // $ajout_expl_panier .= "<img src='./images/spacer.gif' align='center' height=20 width=20>"; // // } // // $as_invis = false; // $as_unmod = false; // $as_modif = true; // global $flag_no_delete_bulletin; // $flag_no_delete_bulletin=0; // //visibilité des exemplaires // if ($pmb_droits_explr_localises) { // $as_invis = in_array($valeur->expl_location,$explr_tab_invis); // $as_unmod = in_array($valeur->expl_location,$explr_tab_unmod); // //$as_modif = in_array($valeur->expl_location,$explr_tab_modif); // // if(!($as_modif=in_array ($valeur->expl_location,$explr_tab_modif) )) $flag_no_delete_bulletin=1; // // } // if ($show_in_reception || $cart_link_non || !(SESSrights & CATALOGAGE_AUTH)) // $link = htmlentities($valeur->expl_cb,ENT_QUOTES, $charset); // else { // if ($as_modif) { // $link = "<a href=\"./catalog.php?categ=serials&sub=bulletinage&action=expl_form&bul_id=".$valeur->expl_bulletin."&expl_id=".$valeur->expl_id."\">".htmlentities($valeur->expl_cb,ENT_QUOTES, $charset)."</a>"; // } else { // $link = htmlentities($valeur->expl_cb,ENT_QUOTES, $charset); // } // } // // if ($situation) $situation="<br />".$situation; // if(!$show_in_reception && SESSrights & CATALOGAGE_AUTH){ // $ajout_expl_panier.="<span id='EXPL_drag_".$valeur->expl_id."' dragicon=\"$base_path/images/icone_drag_notice.png\" dragtext=\"".htmlentities($valeur->expl_cb,ENT_QUOTES, $charset)."\" draggable=\"yes\" dragtype=\"notice\" callback_before=\"show_carts\" callback_after=\"\" style=\"padding-left:7px\"><img src=\"".$base_path."/images/notice_drag.png\"/></span>"; // } // // $line = "<tr>"; // if (($valeur->expl_note || $valeur->expl_comment) && $pmb_expl_list_display_comments) $line .= "<td rowspan='2'>$link</td>"; // else $line .= "<td>$link</td>"; // $line .= "<td>$valeur->expl_cote</td>"; // if($pmb_sur_location_activate) $line .= "<td>$valeur->sur_loc_libelle</td>"; // $line .= "<td>$valeur->location_libelle</td>"; // $line .= "<td>$valeur->section_libelle</td>"; // $line .= "<td>$valeur->statut_libelle.$situation</td>"; // $line .= "<td>$valeur->tdoc_libelle</td>"; // $line .= "<td>$ajout_expl_panier</td>"; // if (($valeur->expl_note || $valeur->expl_comment) && $pmb_expl_list_display_comments) { // $notcom=array(); // $line .= "<tr><td colspan='6'>"; // if ($valeur->expl_note && ($pmb_expl_list_display_comments & 1)) $notcom[] .= "<span class='erreur'>$valeur->expl_note</span>"; // if ($valeur->expl_comment && ($pmb_expl_list_display_comments & 2)) $notcom[] .= "$valeur->expl_comment"; // $line .= implode("<br />",$notcom); // $line .= "</tr>"; // } // $result .= $line; // } //while(list($cle, $valeur) = each($expl)) // // $result .= "</table>"; // //maintenant //Liste des champs d'exemplaires if ($pmb_sur_location_activate) { $surloc_field = "surloc_libelle,"; } if (!$pmb_expl_data) { $pmb_expl_data = "expl_cb,expl_cote," . $surloc_field . "location_libelle,section_libelle,statut_libelle,tdoc_libelle"; } $colonnesarray = explode(",", $pmb_expl_data); if (!in_array("expl_cb", $colonnesarray)) { array_unshift($colonnesarray, "expl_cb"); } $total_columns = count($colonnesarray); //Présence de champs personnalisés if (strstr($pmb_expl_data, "#")) { require_once $class_path . "/parametres_perso.class.php"; $cp = new parametres_perso("expl"); } if ($return_count) { return count($expl); } if (count($expl)) { $result .= "<table border=\"0\" cellspacing=\"1\">"; //un premier tour pour aller chercher les libellés... for ($i = 0; $i < count($colonnesarray); $i++) { if (substr($colonnesarray[$i], 0, 1) == "#") { //champs personnalisés if (!$cp->no_special_fields) { $id = substr($colonnesarray[$i], 1); $entry .= "<th>" . htmlentities($cp->t_fields[$id][TITRE], ENT_QUOTES, $charset) . "</th>"; } } else { eval("\$colencours=\$msg['expl_header_" . $colonnesarray[$i] . "'];"); $entry .= "<th>" . htmlentities($colencours, ENT_QUOTES, $charset) . "</th>"; } } $result .= "<tr>" . $entry . "<th> </th></tr>"; foreach ($expl as $exemplaire) { $requete = "SELECT pret_idempr, "; $requete .= " date_format(pret_retour, '" . $msg["format_date"] . "') as aff_pret_retour "; $requete .= " FROM pret "; $requete .= " WHERE pret_idexpl='{$exemplaire->expl_id}' "; $result_prets = pmb_mysql_query($requete, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); if (pmb_mysql_num_rows($result_prets)) { $expl_pret = pmb_mysql_fetch_object($result_prets); } else { $expl_pret = ""; } $situation = ""; // prêtable ou pas s'il est prêté, on affiche son état if (is_object($expl_pret) && $expl_pret->pret_idempr) { // exemplaire sorti $rqt_empr = "SELECT empr_nom, empr_prenom, id_empr, empr_cb FROM empr WHERE id_empr='{$expl_pret->pret_idempr}' "; $res_empr = pmb_mysql_query($rqt_empr, $dbh); $res_empr_obj = pmb_mysql_fetch_object($res_empr); $situation = "<strong>{$msg[358]} " . $expl_pret->aff_pret_retour . "</strong>"; global $empr_show_caddie, $selector_prop_ajout_caddie_empr; if (!$show_in_reception && $empr_show_caddie && SESSrights & CIRCULATION_AUTH) { $img_ajout_empr_caddie = "<img src='./images/basket_empr.gif' align='middle' alt='basket' title=\"{$msg[400]}\" onClick=\"openPopUp('./cart.php?object_type=EMPR&item=" . $exemplaire->pret_idempr . "', 'cart', 600, 700, -2, -2, '{$selector_prop_ajout_caddie_empr}')\"> "; } else { $img_ajout_empr_caddie = ""; } if (!$show_in_reception) { $situation .= "<br />{$img_ajout_empr_caddie}<a href='./circ.php?categ=pret&form_cb=" . rawurlencode($res_empr_obj->empr_cb) . "'>{$res_empr_obj->empr_prenom} {$res_empr_obj->empr_nom}</a>"; } else { $situation .= "<br />{$res_empr_obj->empr_prenom} {$res_empr_obj->empr_nom}"; } } else { // tester si réservé $result_resa = pmb_mysql_query("select 1 from resa where resa_cb='" . addslashes($exemplaire->expl_cb) . "' ", $dbh) or die; $reserve = pmb_mysql_num_rows($result_resa); if ($reserve) { $situation = "<strong>" . $msg['expl_reserve'] . "</strong>"; // exemplaire réservé } elseif ($exemplaire->pret_flag) { $situation = "<strong>{$msg[359]}</strong>"; // exemplaire disponible } else { $situation = ""; } } if (!$show_in_reception && SESSrights & CATALOGAGE_AUTH) { $selector_prop = "toolbar=no, dependent=yes, resizable=yes, scrollbars=yes"; $cart_click_expl = "onClick=\"openPopUp('./cart.php?object_type=EXPL&item=!!item!!', 'cart', 600, 700, -2, -2, '{$selector_prop}')\""; $cart_link = "<img src='./images/basket_small_20x20.gif' align='center' alt='middle' title=\"{$msg[400]}\" {$cart_click_expl}>"; $ajout_expl_panier = str_replace('!!item!!', $exemplaire->expl_id, $cart_link); } else { $ajout_expl_panier = ""; } //si les transferts sont activés if (!$show_in_reception && $pmb_transferts_actif) { //si l'exemplaire n'est pas transferable on a une image vide $dispo_pour_transfert = transfert::est_transferable($exemplaire->expl_id); if (SESSrights & TRANSFERTS_AUTH && $dispo_pour_transfert) { //l'icon de demande de transfert $ajout_expl_panier .= "<a href=\"#\" onClick=\"openPopUp('./catalog/transferts/transferts_popup.php?expl=" . $exemplaire->expl_id . "', 'cart', 600, 450, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');\">" . "<img src='./images/peb_in.png' align='center' border=0 alt=\"" . $msg["transferts_alt_libelle_icon"] . "\" title=\"" . $msg["transferts_alt_libelle_icon"] . "\"></a>"; } else { $ajout_expl_panier .= "<img src='./images/spacer.gif' align='center' height=20 width=20>"; } } $as_invis = false; $as_unmod = false; $as_modif = true; global $flag_no_delete_bulletin; $flag_no_delete_bulletin = 0; //visibilité des exemplaires if ($pmb_droits_explr_localises) { $as_invis = in_array($exemplaire->expl_location, $explr_tab_invis); $as_unmod = in_array($exemplaire->expl_location, $explr_tab_unmod); //$as_modif = in_array($exemplaire->expl_location,$explr_tab_modif); if (!($as_modif = in_array($exemplaire->expl_location, $explr_tab_modif))) { $flag_no_delete_bulletin = 1; } } if ($show_in_reception || $cart_link_non || !(SESSrights & CATALOGAGE_AUTH)) { $link = htmlentities($exemplaire->expl_cb, ENT_QUOTES, $charset); } else { if ($as_modif) { $link = "<a href=\"./catalog.php?categ=serials&sub=bulletinage&action=expl_form&bul_id=" . $exemplaire->expl_bulletin . "&expl_id=" . $exemplaire->expl_id . "\">" . htmlentities($exemplaire->expl_cb, ENT_QUOTES, $charset) . "</a>"; } else { $link = htmlentities($exemplaire->expl_cb, ENT_QUOTES, $charset); } } if ($situation) { $situation = "<br />" . $situation; } if (!$show_in_reception && SESSrights & CATALOGAGE_AUTH) { $ajout_expl_panier .= "<span id='EXPL_drag_" . $exemplaire->expl_id . "' dragicon=\"{$base_path}/images/icone_drag_notice.png\" dragtext=\"" . htmlentities($exemplaire->expl_cb, ENT_QUOTES, $charset) . "\" draggable=\"yes\" dragtype=\"notice\" callback_before=\"show_carts\" callback_after=\"\" style=\"padding-left:7px\"><img src=\"" . $base_path . "/images/notice_drag.png\"/></span>"; } global $pmb_serialcirc_subst; if ($pmb_serialcirc_subst) { $ajout_expl_panier .= "<img src='./images/print.gif' alt='Imprimer...' title='Imprimer...' align='middle' border='0'\tstyle='padding-left:7px' \t\t\t\n\t\t\t\t\tonclick=\"openPopUp('./ajax.php?module=circ&categ=periocirc&sub=print_cote&expl_id=" . $exemplaire->expl_id . "', 'circulation', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes');\"\n\t\t\t\t>"; } $line = "<tr>"; for ($i = 0; $i < count($colonnesarray); $i++) { if ($i == 0 && ($exemplaire->expl_note || $exemplaire->expl_comment) && $pmb_expl_list_display_comments) { $expl_rowspan = "rowspan='2'"; } else { $expl_rowspan = ""; } $aff_column = ""; if (substr($colonnesarray[$i], 0, 1) == "#") { //champs personnalisés $id = substr($colonnesarray[$i], 1); $cp->get_values($exemplaire->expl_id); if (!$cp->no_special_fields) { $temp = $cp->get_formatted_output($cp->values[$id], $id); if (!$temp) { $temp = " "; } $aff_column .= $temp; } } else { eval("\$colencours=\$exemplaire->" . $colonnesarray[$i] . ";"); if ($colonnesarray[$i] == "expl_cb") { $aff_column = $link; } else { if ($colonnesarray[$i] == "expl_cote") { $aff_column = "<strong>" . htmlentities($colencours, ENT_QUOTES, $charset) . "</strong>"; } else { if ($colonnesarray[$i] == "surloc_libelle") { $aff_column = htmlentities($exemplaire->sur_loc_libelle, ENT_QUOTES, $charset); } else { if ($colonnesarray[$i] == "statut_libelle") { $aff_column = htmlentities($colencours, ENT_QUOTES, $charset) . $situation; } else { $aff_column = htmlentities($colencours, ENT_QUOTES, $charset); } } } } } $line .= "<td {$expl_rowspan}>" . $aff_column . "</td>"; } $line .= "<td>{$ajout_expl_panier}</td>"; $line .= "</tr>"; if (($exemplaire->expl_note || $exemplaire->expl_comment) && $pmb_expl_list_display_comments) { $notcom = array(); $line .= "<tr><td colspan='" . $total_columns . "'>"; if ($exemplaire->expl_note && $pmb_expl_list_display_comments & 1) { $notcom[] .= "<span class='erreur'>{$exemplaire->expl_note}</span>"; } if ($exemplaire->expl_comment && $pmb_expl_list_display_comments & 2) { $notcom[] .= "{$exemplaire->expl_comment}"; } $line .= implode("<br />", $notcom); $line .= "</tr>"; } $result .= $line; } $result .= "</table>"; } return $result; }
$alert_sound_list[] = "question"; $erreur_affichage .= "<input type='button' class='bouton' value='{$msg[76]}' onClick=\"document.location='./circ.php?categ=pret&id_empr={$id_empr}" . ($pmb_short_loan_management == 1 ? "&short_loan='+document.getElementById('short_loan').value;" : "'") . "\" />"; $confirm = $statut->flag; $erreur_affichage .= " <input type='button' class='bouton' value='{$msg[389]}' onClick=\"document.location='./circ.php?categ=pret&id_empr={$id_empr}&cb_doc={$cb_doc}&expl_todo={$expl_todo}&confirm={$confirm}"a={$quota}&pret_arc={$pret_arc}" . ($pmb_short_loan_management == 1 ? "&short_loan='+document.getElementById('short_loan').value;" : "'") . "\" />"; $erreur_affichage .= " <input class='bouton' type='button' value=\"" . $msg[375] . "\" onClick=\"document.location='circ.php?categ=visu_ex&form_cb_expl=" . $cb_doc . "';\" />"; $erreur_affichage .= "</div></div><br />"; $empr = new emprunteur($id_empr, $erreur_affichage, FALSE, 1); $affichage = $empr->fiche; } else { // else if !confirm // il y a eu confirmation du prêt if ($statut->flag == $confirm) { // ajout du prêt // si transfert activé, faire le néçessaire en cas de forçage if ($pmb_transferts_actif) { $transfert = new transfert(); $statut_trans = $transfert->check_pret($cb_doc, 1); } if ($statut->flag & HAS_RESA_GOOD) { // archivage resa $rqt_arch = "UPDATE resa_archive, resa SET resarc_pretee = 1 WHERE id_resa = '" . $statut->id_resa . "' AND resa_arc = resarc_id "; pmb_mysql_query($rqt_arch, $dbh); $rqt_arch = "select resarc_id from resa_archive, resa WHERE id_resa = '" . $statut->id_resa . "' AND resa_arc = resarc_id "; $resarc_res = pmb_mysql_query($rqt_arch, $dbh); $resarc = pmb_mysql_fetch_object($resarc_res); $resarc_id = $resarc->resarc_id; // suppression de la resa pour ce lecteur del_resa($id_empr, $statut->idnotice, $statut->idbulletin, $statut->expl_cb); } if ($statut->flag & HAS_RESA_FALSE) { // dévalider la resa correspondante
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: retour_change_loc.inc.php,v 1.1 2008-06-04 14:54:25 ohennequin Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once $class_path . "/transfert.class.php"; $trans = new transfert(); //supprime le transfert $trans->retour_exemplaire_supprime_transfert($idexpl, $param); //change la localisation de l'exemplaire $num = $trans->retour_exemplaire_change_localisation($idexpl); ajax_http_send_response($num, "text/xml");
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: refuse.inc.php,v 1.8 2015-04-03 11:16:26 jpermanne Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } // Titre de la fenêtre echo window_title($database_window_title . $msg[transferts_circ_menu_refuse] . $msg[1003] . $msg[1001]); //creation de l'objet transfert $obj_transfert = new transfert(); switch ($action) { case "aff_supp": //on affiche l'écran de validation de suppression echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_refuse] . "</h1>"; echo affiche_liste_valide($transferts_refus_liste_valide, $transferts_refus_liste_valide_ligne, "SELECT num_notice, num_bulletin, " . "expl_cb as val_ex, lender_libelle, location_libelle as val_source, " . "transferts_demande.date_creation as val_date_creation, date_visualisee as val_date_refus," . "motif_refus as val_refusMotif, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_source=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=4", "circ.php?categ=trans&sub=" . $sub); break; case "supp": //on supprime les transferts sélectionner $obj_transfert->cloture_transferts($liste_transfert); $action = ""; break; case "aff_redem": $transferts_refus_redemande_global = "\n\t\t<br />\n\t\t<form name='form_circ_trans_redemande' class='form-circ' method='post' action='!!action_formulaire!!&action=redem'>\n\t\t<h3>" . $msg["transferts_circ_refus_relance"] . "</h3>\n\t\t<div class='form-contenu' >\n\t\t\t!!detail_notice!!\n\t\t\t<div class='row'> </div>\t\t\n\t\t\t<div class='row'>\n\t\t\t\t!!liste_sites!!\n\t\t\t</div>\n\t\t\t<div class='row'> </div>\t\t\n\t\t\t<div class='row'>\t\t\n\t\t\t\t<label class='etiquette'>" . $msg["transferts_circ_refus_relance_motif"] . "</label><br />\n\t\t\t\t<textarea name='motif' cols=40 rows=5></textarea>\n\t\t\t</div>\n\t\t\t<div class='row'> </div>\t\t\n\t\t\t<div class='row'>\t\t\n\t\t\t\t<label class='etiquette'>" . $msg["transferts_circ_refus_relance_retour"] . "</label>\n\t\t\t\t<input type='button' class='bouton' name='bt_date_retour' value='!!date_retour!!' onClick=\"var reg=new RegExp('(-)', 'g'); openPopUp('" . $base_path . "/select.php?what=calendrier&caller=form_circ_trans_redemande&date_caller='+form_circ_trans_redemande.date_retour.value.replace(reg,'')+'¶m1=date_retour¶m2=bt_date_retour&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 250, 320, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\">\n\t\t\t\t<input type='hidden' name='date_retour' value='!!date_retour_mysql!!'>\n\t\t\t</div>\n\t\t</div>\n\t\t<input type='submit' class='bouton' name='" . $msg["89"] . "' value='" . $msg["89"] . "'>\n\t\t \n\t\t<input type='button' class='bouton' name='" . $msg["76"] . "' value='" . $msg["76"] . "' onclick='document.location=\"!!action_formulaire!!\"'>\n\t\t<input type='hidden' name='transid' value='!!trans_id!!'>\n\t\t</form>\n\t\t"; //affiche l'ecran pour proposer de relancer une nouvelle demande de transfert echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_refuse] . "</h1>"; //on recupere les id de l'exemplaire $idNotice = pmb_sql_value("SELECT num_notice FROM transferts WHERE id_transfert=" . $transid); $idBulletin = pmb_sql_value("SELECT num_bulletin FROM transferts WHERE id_transfert=" . $transid);
admin_affiche_statuts_defaut(); break; default: //on affiche le tableau admin_affiche_statuts_defaut(); break; } break; case 'purge': //gere le statut par défaut de l'exemplaire lors de la réception $admin_layout = str_replace('!!menu_sous_rub!!', $msg["admin_tranferts_purge"], $admin_layout); print $admin_layout . "<br />"; switch ($action) { case "purge": //on enregistre les modifications transfert::admin_purge_historique($date_purge); //le message de purge effectuée echo str_replace("!!date_purge!!", formatdate($date_purge), $msg["admin_transferts_message_purge"]); //puis on affiche l'ecran admin_affiche_purge(); break; default: //on affiche l'ecran de purge admin_affiche_purge(); break; } break; default: //affiche l'écran d'information par défaut $admin_layout = str_replace('!!menu_sous_rub!!', "", $admin_layout); print $admin_layout . "<br />";
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: reception.inc.php,v 1.11.6.1 2014-07-23 11:47:15 dgoron Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once $class_path . "/resa.class.php"; // Titre de la fenêtre print window_title($database_window_title . $msg[transferts_circ_menu_reception] . $msg[1003] . $msg[1001]); //creation de l'objet transfert $obj_transfert = new transfert(); switch ($action) { case "aff_recep": echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_reception] . "</h1>"; $transferts_reception_liste_valide_reception = str_replace("!!liste_sections!!", do_liste_section(0), $transferts_reception_liste_valide_reception); $tmpString = affiche_liste_valide($transferts_reception_liste_valide_reception, $transferts_reception_liste_valide_reception_ligne, "SELECT num_notice, num_bulletin, id_transfert as val_id, " . "expl_cb as val_ex,lender_libelle, transferts.date_creation as val_date_creation, " . "date_visualisee as val_date_accepte, motif as val_motif, location_libelle as val_dest, " . "expl_section as val_section, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_dest=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=2", "circ.php?categ=trans&sub=" . $sub); //on récupere l'id du statut par défaut du site de l'utilisateur $rqt = "SELECT transfert_statut_defaut FROM docs_location " . "INNER JOIN users ON idlocation=deflt_docs_location " . "WHERE userid=" . $PMBuserid; $res = mysql_query($rqt); $statut_defaut = mysql_result($res, 0); //on remplit le select avec la liste des statuts $tmpString = str_replace("!!liste_statuts!!", do_liste_statut($statut_defaut), $tmpString); echo $tmpString; break; case "recep": //on valide les receptions $obj_transfert->enregistre_reception($liste_transfert, $statut_reception, $section_reception, $info); $motif = $info[0]["motif"];
<?php // +-------------------------------------------------+ // � 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: chg_date_retour.inc.php,v 1.1 2008-06-04 14:54:25 ohennequin Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once $class_path . "/transfert.class.php"; transfert::change_date_retour($id, $dt); ajax_http_send_response("1", "text/xml");
function do_retour_selfservice() { global $deflt_docs_location, $pmb_transferts_actif, $pmb_lecteurs_localises; global $transferts_retour_origine, $transferts_retour_origine_force; global $selfservice_loc_autre_todo, $selfservice_resa_ici_todo, $selfservice_resa_loc_todo; global $selfservice_loc_autre_todo_msg, $selfservice_resa_ici_todo_msg, $selfservice_resa_loc_todo_msg; if (!$this->expl_id) { // l'exemplaire est inconnu $this->status = -1; return false; } if ($pmb_transferts_actif == "1") { $trans = new transfert(); // transfert actif if (transfert::is_retour_exemplaire_loc_origine($this->expl_id)) { // retour sur le site d'origne, il faut nettoyer $trans->retour_exemplaire_loc_origine($this->expl_id); $this->expl->expl_location = $deflt_docs_location; } if ($this->expl->expl_location != $deflt_docs_location) { // l'exemplaire n'appartient pas à cette localisation if ($transferts_retour_origine == "1" && $transferts_retour_origine_force == "0") { //pas de forcage possible, on interdit le retour $non_retournable = 1; } else { // Quoi faire? switch ($selfservice_loc_autre_todo) { case '4': // Refuser le retour $non_retournable = 1; break; case '1': // Accepter et Générer un transfert $trans->retour_exemplaire_genere_transfert_retour($this->expl_id); $non_reservable = 1; break; case '2': // Accepter et changer la localisation $trans->retour_exemplaire_change_localisation($this->expl_id); break; case '3': // Accepter sans changer la localisation break; default: // Accepter et sera traiter plus tard $non_reservable = 1; $plus_tard = 1; break; } } $this->message_loc = $selfservice_loc_autre_todo_msg; if (!$non_retournable) { if ($this->expl->pret_idempr) { $this->message_del_pret = $this->del_pret(); } if (!$non_reservable) { $resa_id = $this->calcul_resa(); if ($this->flag_resa_is_affecte) { // Déjà affecté: il aurai du ne pas etre en prêt $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_ici) { switch ($selfservice_resa_ici_todo) { case '1': // Valider la rservation alert_empr_resa($this->affecte_resa(), 0, 1); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_autre_site) { switch ($selfservice_resa_loc_todo) { case '1': // Valider la rservation //Gen transfert sur site de la résa.... $trans->transfert_pour_resa($this->expl_cb, $this->resa_loc_trans, $resa_id); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_loc_todo_msg; } else { // pas de résa à gérer } } } } else { // c'est la bonne localisation ( et transfert actif) if ($this->expl->pret_idempr) { $this->message_del_pret = $this->del_pret(); } $this->calcul_resa(); if ($this->flag_resa_is_affecte) { // Déjà affecté: il aurai du ne pas etre en prêt $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_ici) { switch ($selfservice_resa_ici_todo) { case '1': // Valider la rservation alert_empr_resa($this->affecte_resa(), 0, 1); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_autre_site) { switch ($selfservice_resa_loc_todo) { case '1': // Valider la rservation //Gen transfert sur site de la résa.... $trans->transfert_pour_resa($this->expl_cb, $this->resa_loc_trans, $resa_id); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_loc_todo_msg; } else { // pas de résa à gérer } //Fin bonne localisation } //Fin transfert actif } else { // transfert inactif $pmb_lecteurs_localises if ($pmb_lecteurs_localises && $this->expl->expl_location != $deflt_docs_location) { //ce n'est pas la bonne localisation switch ($selfservice_loc_autre_todo) { case '4': // Refuser le retour $non_retournable = 1; break; case '3': // Accepter sans changer la localisation break; default: // Accepter et sera traiter plus tard $non_reservable = 1; $plus_tard = 1; break; } $this->message_loc = $selfservice_loc_autre_todo_msg; if (!$non_retournable) { if (!$non_reservable) { $this->calcul_resa(); if ($this->flag_resa_ici || $this->flag_resa_is_affecte) { if ($selfservice_resa_ici_todo == 4) { $this->message_resa = $selfservice_resa_ici_todo_msg; $non_retournable = 1; } } elseif ($this->flag_resa_autre_site) { if ($selfservice_resa_loc_todo == 4) { $this->message_resa = $selfservice_resa_loc_todo_msg; $non_retournable = 1; } } if ($non_retournable) { $this->status = -1; return false; } if ($this->expl->pret_idempr) { $this->message_del_pret = $this->del_pret(); } if ($this->flag_resa_is_affecte) { $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_ici) { switch ($selfservice_resa_ici_todo) { case '1': // Valider la rservation alert_empr_resa($this->affecte_resa(), 0, 1); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_autre_site) { switch ($selfservice_resa_loc_todo) { case '1': // Valider la rservation alert_empr_resa($this->affecte_resa(), 0, 1); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_loc_todo_msg; } } else { if ($this->expl->pret_idempr) { $this->message_del_pret = $this->del_pret(); } } } } else { // c'est une bonne localisation ou lecteur non localisé: $this->calcul_resa(); if ($this->flag_resa_ici || $this->flag_resa_is_affecte) { $this->message_resa = $selfservice_resa_ici_todo_msg; if ($selfservice_resa_ici_todo == 4) { $non_retournable = 1; } } elseif ($this->flag_resa_autre_site) { $this->message_resa = $selfservice_resa_loc_todo_msg; if ($selfservice_resa_loc_todo == 4) { $non_retournable = 1; } } if ($non_retournable) { $this->status = -1; return false; } if ($this->expl->pret_idempr) { $this->message_del_pret = $this->del_pret(); } // $this->calcul_resa(); if ($this->flag_resa_is_affecte) { $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_ici) { switch ($selfservice_resa_ici_todo) { case '1': // Valider la rservation alert_empr_resa($this->affecte_resa(), 0, 1); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_ici_todo_msg; } elseif ($this->flag_resa_autre_site) { switch ($selfservice_resa_loc_todo) { case '1': // Valider la rservation alert_empr_resa($this->affecte_resa(), 0, 1); break; default: // A traiter plus tard $plus_tard = 1; break; } $this->message_resa = $selfservice_resa_loc_todo_msg; } else { // pas de résa à gérer } // fin bonne loc } // fin transfert inactif } if ($non_retournable) { $this->status = -1; return false; } if ($plus_tard) { // il y a des pieges, on marque comme exemplaire à problème dans la localisation qui fait le retour $sql = "UPDATE exemplaires set expl_retloc='" . $deflt_docs_location . "' where expl_cb='" . addslashes($this->expl_cb) . "' limit 1"; } else { // pas de pièges, ou pièges résolus, on démarque $sql = "UPDATE exemplaires set expl_retloc=0 where expl_cb='" . addslashes($this->expl_cb) . "' limit 1"; } pmb_mysql_query($sql); return true; }
function check_group_transferability($group_id) { $expl_ids = get_group_expls($group_id); $transferable = true; foreach ($expl_ids as $expl_id) { if (!transfert::est_transferable($expl_id)) { $transferable = false; } } return $transferable; }
// +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: transferts_popup.php,v 1.4 2015-04-03 11:16:29 jpermanne Exp $ // d?finition du minimum n?c?ssaire $base_path = "../.."; $base_auth = "TRANSFERTS_AUTH"; $base_title = "\$msg[6]"; require_once $base_path . "/includes/init.inc.php"; require_once $class_path . "/transfert.class.php"; if ($action == "enregistre") { //on enregistre la demande de transfert //on transforme la liste en tableau $tab_id = explode(",", $expl_ids); $trans = new transfert(); //pour chaque exemplaire foreach ($tab_id as $id_expl) { //on genere les transferts $trans->creer_transfert_catalogue($id_expl, $dest_id, $date_retour, stripslashes($motif)); } //le script pour fermer la popup echo $transferts_popup_enregistre_demande; } else { //on affiche la confirmation de la demande $rqt = "SELECT expl_cb, expl_cote, location_libelle, section_libelle, tdoc_libelle, lender_libelle" . " FROM exemplaires" . " LEFT JOIN docs_location ON exemplaires.expl_location=docs_location.idlocation" . " LEFT JOIN docs_section ON exemplaires.expl_section=docs_section.idsection " . " LEFT JOIN docs_type ON exemplaires.expl_typdoc=docs_type.idtyp_doc " . " LEFT JOIN lenders ON idlender=expl_owner " . " WHERE expl_id IN (" . $expl . ")"; $res = pmb_mysql_query($rqt); $nb = 0; //le nombre de colonnes dans la requete pour remplacer les champs dans le template $nbCols = pmb_mysql_num_fields($res); while ($values = pmb_mysql_fetch_array($res)) {
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: envoi.inc.php,v 1.6 2012-08-20 08:06:32 ngantier Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } // Titre de la fenetre echo window_title($database_window_title . $msg[transferts_circ_menu_envoi] . $msg[1003] . $msg[1001]); //creation de l'objet transfert $obj_transfert = new transfert(); switch ($action) { case "aff_env": echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_envoi] . "</h1>"; echo affiche_liste_valide($transferts_envoi_liste_valide_envoi, $transferts_envoi_liste_valide_envoi_ligne, "SELECT num_notice, num_bulletin, " . "expl_cb as val_ex, lender_libelle, transferts.date_creation as val_date_creation, " . "date_visualisee as val_date_accepte, motif as val_motif, location_libelle as val_dest, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_dest=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=1", "circ.php?categ=trans&sub=" . $sub); break; case "env": //on valide les envois $obj_transfert->enregistre_envoi($liste_transfert); //on affiche l'ecran principal $action = ""; break; case "aff_refus": //on affiche l'écran de saisie du refus echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_envoi] . "</h1>"; echo affiche_liste_valide($transferts_validation_liste_refus, $transferts_validation_liste_valide_ligne, "SELECT num_notice, num_bulletin, " . "expl_cb as val_ex, lender_libelle, transferts.date_creation as val_date_creation, " . "motif as val_motif, location_libelle as val_dest, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_dest=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=1", "circ.php?categ=trans&sub=" . $sub); break; case "refus": //on enregistre les refus
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: validation.inc.php,v 1.8 2013-04-18 14:59:07 mbertin Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } // Titre de la fenêtre echo window_title($database_window_title . $msg[transferts_circ_menu_validation] . $msg[1003] . $msg[1001]); //creation de l'objet transfert $obj_transfert = new transfert(); switch ($action) { case "aff_val": //on affiche l'écran de validation echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_validation] . "</h1>"; echo affiche_liste_valide($transferts_validation_liste_valide, $transferts_validation_liste_valide_ligne, "SELECT num_notice, num_bulletin, " . "expl_cb as val_ex, lender_libelle, transferts.date_creation as val_date_creation, " . "transferts.date_retour as val_date_retour, motif as val_motif, location_libelle as val_dest, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_dest=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=0", "circ.php?categ=trans&sub=" . $sub); break; case "val": //on enregistre les validations des exemplaires sélectionnés $obj_transfert->enregistre_validation($liste_transfert); $action = ""; break; case "aff_refus": //on affiche l'écran de saisie du refus echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_validation] . "</h1>"; echo affiche_liste_valide($transferts_validation_liste_refus, $transferts_validation_liste_valide_ligne, "SELECT num_notice, num_bulletin, " . "expl_cb as val_ex, lender_libelle, transferts.date_creation as val_date_creation, " . "transferts.date_retour as val_date_retour, motif as val_motif, location_libelle as val_dest, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_dest=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=0", "circ.php?categ=trans&sub=" . $sub); break; case "refus": //on enregistre les refus
function do_retour($stuff, $confirmed = 1) { global $dbh; global $msg; global $alert_sound_list, $pmb_play_pret_sound; global $pmb_gestion_amende, $pmb_gestion_financiere, $pmb_blocage_retard, $pmb_blocage_max, $pmb_blocage_delai, $pmb_blocage_coef; global $deflt_docs_location; $erreur_affichage = ''; if (!is_object($stuff)) { die("erreur dans le module ./circ/retour.inc [do_retour()]. Contactez l'admin"); } // récupération localisation exemplaire $query = "SELECT t.tdoc_libelle as type_doc"; $query .= ", l.location_libelle as location"; $query .= ", s.section_libelle as section"; $query .= " FROM docs_type t"; $query .= ", docs_location l"; $query .= ", docs_section s"; $query .= " WHERE t.idtyp_doc=" . $stuff->expl_typdoc; $query .= " AND l.idlocation=" . $stuff->expl_location; $query .= " AND s.idsection=" . $stuff->expl_section; $query .= " LIMIT 1"; $result = mysql_query($query, $dbh); $info_doc = mysql_fetch_object($result); print pmb_bidi("<br /><form><div class='row'><div class='left'><strong>" . $stuff->libelle . "</strong></div>"); // flag confirm retour if (!$confirmed and $stuff->pret_idempr) { print "\n\t\t\t<div class='right'>\n\t\t\t<input type='button' class='bouton' \n\t\t\t\t\tname='confirm_ret' value='" . $msg['retour_confirm'] . "'\n\t\t\t\t\tonClick=\"document.location='./circ.php?categ=retour&cb_expl=" . $stuff->expl_cb . "'\">\n\t\t\t</div>"; } elseif ($stuff->pret_idempr) { print "\n\t\t\t\t<div class='right'>\n\t\t\t\t\t<font color='RED'><b>{$msg['retour_ok']}</b></font>\n\t\t\t\t</div>"; } print "</div>"; print pmb_bidi("<br /><b>" . $stuff->expl_cb . "</b> " . $info_doc->type_doc); print pmb_bidi('. ' . $info_doc->location); print pmb_bidi('. ' . $info_doc->section); print pmb_bidi('. ' . $stuff->expl_cote); print " <input class='bouton' type='button' value=\"" . $msg[375] . "\" onClick=\"document.location='circ.php?categ=visu_ex&form_cb_expl=" . $stuff->expl_cb . "';\" />"; print "</form>"; //Champs personalisés $p_perso = new parametres_perso("expl"); $perso_aff = ""; if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($stuff->expl_id); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($p["AFF"]) { $perso_aff .= "<br />" . $p["TITRE"] . " " . $p["AFF"]; } } } if ($perso_aff) { print "<div class='row'>" . $perso_aff . "</div>"; } $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');\t\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"; global $pmb_antivol; if ($pmb_antivol > 0) { if ($stuff->type_antivol == 1) { // c'est un support non magnétique (livre, revue...) print "{$script_magnetique}" . "magnetise('RRR');</script>"; } if ($stuff->type_antivol == 2) { //c'est un support magnétique (cassette) print "{$script_magnetique}" . "magnetise('SSS');</script>"; } } //si le retour se passe sur un site différent de ce lui de l'exemplaire global $pmb_transferts_actif; $transfert_mauvais_site = false; if ($stuff->expl_location != $deflt_docs_location) { $alert_sound_list[] = "critique"; $html_erreur_site = "<hr /><div class='erreur'>"; //on agit pour faire l'action par defaut //et que c'est un retour d'emprunt if ($pmb_transferts_actif && $stuff->pret_idempr) { global $transferts_retour_action_defaut; global $transferts_retour_action_autorise_autre; $trans = new transfert(); //pour afficher le site de l'exemplaire $rqtSite = "SELECT location_libelle FROM docs_location WHERE idlocation=" . $stuff->expl_location; $resSite = mysql_result(mysql_query($rqtSite), 0); //si on propose une autre action if ($transferts_retour_action_autorise_autre == "1") { $texte_change_loc = str_replace("!!lbl_site!!", $resSite, $msg["transferts_circ_retour_lbl_change_localisation"]); } $texte_change_loc = str_replace("!!liste_sections!!", "<select onchange='enregLoc(this)'>!!liste!!</select>", $texte_change_loc); //on genere la liste des sections $rqt = "SELECT idsection, section_libelle FROM docs_section ORDER BY section_libelle"; $res_section = mysql_query($rqt); $liste_section = ""; while ($value = mysql_fetch_object($res_section)) { $liste_section .= "<option value='" . $value->idsection . "'"; if ($value->idsection == $stuff->expl_section) { $liste_section .= " selected"; $expl_section_libelle = $value->section_libelle; } $liste_section .= ">" . $value->section_libelle . "</option>"; } $texte_change_loc = addslashes(str_replace("!!liste!!", $liste_section, $texte_change_loc)); $html_erreur_site .= "\n<form name='actionTrans'>\n<input type='hidden' name='typeTrans' value='" . $transferts_retour_action_defaut . "'>\n<input type='hidden' name='explTrans' value='" . $stuff->expl_id . "'>\n<script language='javascript'>\nmsg_inf_loc = '" . $texte_change_loc . "';\nmsg_bt_loc = '" . str_replace("'", "\\'", $msg["transferts_circ_retour_bt_retour_mauvaise_localisation"]) . "';\nmsg_inf_trans = '" . str_replace("'", "\\'", str_replace("!!lbl_site!!", $resSite, $msg["transferts_circ_retour_lbl_transfert"])) . "';\nmsg_bt_trans = '" . str_replace("'", "\\'", $msg["transferts_circ_retour_bt_changement_localisation"]) . "';\n\nfunction changeAction() {\n\n\tvar actionTrans = new http_request();\n\tvar url= './ajax.php?module=circ&categ=transferts&idexpl=' + document.actionTrans.explTrans.value + '&action=';\n\t\t\t\t\n\tswitch (document.actionTrans.typeTrans.value) {\n\t\tcase '0':\n\t\t\t//il y a eu un changement localisation\n\t\t\t//on propose un transfert\n\t\t\tif (confirm('" . addslashes($msg["transferts_circ_retour_confirm_gen_transfert"]) . "')) {\n\n\t\t\t\turl = url + 'gen_transfert¶m=' + document.actionTrans.paramTrans.value ;\n\t\t\t\n\t\t\t\tif (actionTrans.request(url)) {\n\t\t\t\t\t// Il y a une erreur. Afficher le message retourné\n\t\t\t\t\talert ( '" . addslashes($msg["540"]) . " : ' + actionTrans.get_text() );\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t//tout c'est bien passe\n\t\t\t\t\t\n\t\t\t\t\t//on recupere les infos\n\t\t\t\t\tdocument.actionTrans.typeTrans.value = '1';\n\t\t\t\t\tdocument.actionTrans.paramTrans.value = actionTrans.get_text();\n\t\t\t\t\t\n\t\t\t\t\t//on change les textes\n\t\t\t\t\tdocument.actionTrans.btActionTrans.value = msg_bt_trans;\n\t\t\t\t\tdocument.getElementById('libInfoTransfert').innerHTML = msg_inf_trans; \n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t}//if confirm\n\t\t\t\n\t\t\t\n\t\t\tbreak;\n\t\n\t\tcase '1':\n\t\t\t//il y a eu un transfert\n\t\t\t//on propose un changement de localisation\n\t\t\tif (confirm('" . addslashes($msg["transferts_circ_retour_confirm_change_loc"]) . "')) {\n\n\t\t\t\turl = url + 'change_loc¶m=' + document.actionTrans.paramTrans.value ;\n\t\t\t\n\t\t\t\tif (actionTrans.request(url)) {\n\t\t\t\t\t// Il y a une erreur. Afficher le message retourné\n\t\t\t\t\talert ( '" . addslashes($msg["540"]) . " : ' + actionTrans.get_text() );\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t//tout c'est bien passe\n\t\t\t\t\t\n\t\t\t\t\t//on recupere les infos\n\t\t\t\t\tdocument.actionTrans.typeTrans.value = '0';\n\t\t\t\t\tdocument.actionTrans.paramTrans.value = actionTrans.get_text();\n\t\t\t\t\t\n\t\t\t\t\t//on change les textes\n\t\t\t\t\tdocument.actionTrans.btActionTrans.value = msg_bt_loc;\n\t\t\t\t\tdocument.getElementById('libInfoTransfert').innerHTML = msg_inf_loc; \n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t} //if confirm\n\t\t\tbreak;\n\t} //switch\n\t\t\n}\n\nfunction enregLoc(obj) {\n\tval = obj.options[obj.selectedIndex].value;\n\t\n\tvar actionTrans = new http_request();\n\tvar url= './ajax.php?module=circ&categ=transferts&idexpl=' + document.actionTrans.explTrans.value + '&action=change_section¶m='+val;\n\t\n\tif (actionTrans.request(url)) {\n\t\t// Il y a une erreur. Afficher le message retourné\n\t\talert ( '" . addslashes($msg["540"]) . " : ' + actionTrans.get_text() );\t\t\t\n\t}\n}\n</script>"; if ($stuff->resa_idempr) { // le doc en retour peut servir à valider une résa suivante if (!verif_cb_utilise($stuff->expl_cb)) { $affect = affecte_cb($stuff->expl_cb); } } if (!$affect) { switch ($transferts_retour_action_defaut) { case "0": //change la localisation d'origine $param = $trans->retour_exemplaire_change_localisation($stuff->expl_id); //le message a l'ecran $html_erreur_site .= "<div id='libInfoTransfert'>" . str_replace("!!lbl_site!!", $resSite, $msg["transferts_circ_retour_lbl_change_localisation"]) . "</div>"; if ($transferts_retour_action_autorise_autre == "1") { //on propose de générer le transfert $html_erreur_site .= " <input class='bouton' name='btActionTrans' type='button' value=\"" . $msg["transferts_circ_retour_bt_retour_mauvaise_localisation"] . "\" " . " onclick=\"changeAction();\"" . ">"; } break; case "1": //genere le transfert automatique de l'exemplaire $param = $trans->retour_exemplaire_genere_transfert_retour($stuff->expl_id); //le message a l'ecran $html_erreur_site .= "<div id='libInfoTransfert'>" . $msg["transferts_circ_retour_lbl_transfert"] . "</div>"; if ($transferts_retour_action_autorise_autre == "1") { //on propose de changer la localisation $html_erreur_site .= " <input class='bouton' name='btActionTrans' type='button' value=\"" . $msg["transferts_circ_retour_bt_changement_localisation"] . "\" " . " onclick=\"changeAction();\"" . ">"; } break; } //switch } if ($transferts_retour_action_autorise_autre == "1") { $html_erreur_site .= "<input type='hidden' name='paramTrans' value='" . $param . "'></form>"; } $html_erreur_site = str_replace("!!lbl_site!!", $resSite, $html_erreur_site); $html_erreur_site = str_replace("!!liste_sections!!", $expl_section_libelle, $html_erreur_site); $transfert_mauvais_site = true; } else { //if (($pmb_transferts_actif)&&($stuff->pret_idempr)) //le message à l'écran $html_erreur_site .= $msg[expl_retour_bad_location]; } $html_erreur_site .= "</div>"; print pmb_bidi($html_erreur_site); // fin de if ($stuff->expl_location != $deflt_docs_location) } if ($stuff->expl_note) { $alert_sound_list[] = "critique"; print pmb_bidi("<hr /><div class='erreur'>{$msg[377]} :</div><div class='message_important'>" . $stuff->expl_note . "</div>"); } elseif ($pmb_play_pret_sound) { $alert_sound_list[] = "information"; } // zone du dernier emrunteur if ($stuff->expl_lastempr) { $dernier_empr = "<hr /><div class='row'>{$msg['expl_prev_empr']} "; $link = "<a href='./circ.php?categ=pret&form_cb=" . rawurlencode($stuff->lastempr_cb) . "'>"; $dernier_empr .= $link . $stuff->lastempr_prenom . ' ' . $stuff->lastempr_nom . ' (' . $stuff->lastempr_cb . ')</a>'; $dernier_empr .= "</div><hr />"; } if ($stuff->pret_idempr) { // l'exemplaire était effectivement emprunté // calcul du retard éventuel $rqt_date = "select ((TO_DAYS(CURDATE()) - TO_DAYS('{$stuff->pret_retour}'))) as retard "; $resultatdate = mysql_query($rqt_date); $resdate = mysql_fetch_object($resultatdate); $retard = $resdate->retard; if ($retard > 0) { //Calcul du vrai nombre de jours $date_debut = explode("-", $stuff->pret_retour); $ndays = calendar::get_open_days($date_debut[2], $date_debut[1], $date_debut[0], date("d"), date("m"), date("Y")); if ($ndays > 0) { $retard = (int) $ndays; print "<br /><div class='erreur'>" . $msg[369] . " : " . $retard . " " . $msg[370] . "</div>"; $alert_sound_list[] = "critique"; } } //Calcul du blocage if ($pmb_blocage_retard) { $date_debut = explode("-", $stuff->pret_retour); $ndays = calendar::get_open_days($date_debut[2], $date_debut[1], $date_debut[0], date("d"), date("m"), date("Y")); if ($ndays > $pmb_blocage_delai) { $ndays = $ndays * $pmb_blocage_coef; if ($ndays > $pmb_blocage_max && $pmb_blocage_max != 0) { $ndays = $pmb_blocage_max; } } else { $ndays = 0; } if ($ndays > 0) { //Le lecteur est-il déjà bloqué ? $date_fin_blocage_empr = mysql_result(mysql_query("select date_fin_blocage from empr where id_empr='" . $stuff->pret_idempr . "'"), 0, 0); //Calcul de la date de fin $date_fin = calendar::add_days(date("d"), date("m"), date("Y"), $ndays); if ($date_fin > $date_fin_blocage_empr) { //Mise à jour mysql_query("update empr set date_fin_blocage='" . $date_fin . "' where id_empr='" . $stuff->pret_idempr . "'"); print "<br /><div class='erreur'>" . sprintf($msg["blocage_retard_pret"], formatdate($date_fin)) . "</div>"; $alertsound_list[] = "critique"; } else { print "<br /><div class='erreur'>" . sprintf($msg["blocage_already_retard_pret"], formatdate($date_fin_blocage_empr)) . "</div>"; $alertsound_list[] = "critique"; } } } //Vérification des amendes if ($pmb_gestion_financiere && $pmb_gestion_amende) { $amende = new amende($stuff->pret_idempr); $amende_t = $amende->get_amende($stuff->pret_idexpl); //Si il y a une amende, je la débite if ($amende_t["valeur"]) { print pmb_bidi("<br /><div class='erreur'>" . $msg["finance_retour_amende"] . " : " . comptes::format($amende_t["valeur"])); $alert_sound_list[] = "critique"; $compte_id = comptes::get_compte_id_from_empr($stuff->pret_idempr, 2); if ($compte_id) { $cpte = new comptes($compte_id); if ($cpte->id_compte) { $cpte->record_transaction("", $amende_t["valeur"], -1, sprintf($msg["finance_retour_amende_expl"], $stuff->pret_idexpl), 0); print " " . $msg["finance_retour_amende_recorded"]; } } print "</div>"; } } // zone du dernier emrunteur print pmb_bidi($dernier_empr); // code de suppression prêt et la mise en table de stat if ($confirmed) { if (del_pret($stuff)) { if (!maj_stat_pret($stuff)) { // impossible de maj en table stat print "<div class='erreur'>{$msg[371]}</div>"; } } else { // impossible de supprimer en table pret print "<div class='erreur'>{$msg[372]}</div>"; } // traitement de l'éventuelle réservation if ($stuff->resa_idempr) { // le doc en retour peut servir à valider une résa suivante if (!verif_cb_utilise($stuff->expl_cb) || $affect) { if (!$affect) { $affect = affecte_cb($stuff->expl_cb); } // affichage message de réservation if ($affect) { $trans_en_cours = false; $msg_trans = ""; if ($pmb_transferts_actif == "1" && !$transfert_mauvais_site) { //si le transfert est actif et qu'un transfert n'est pas deja fait $res_transfert = resa_transfert($affect, $stuff->expl_cb); if ($res_transfert != 0) { $rqt = "SELECT location_libelle FROM docs_location WHERE idlocation=" . $res_transfert; $lib_loc = mysql_result(mysql_query($rqt), 0); $msg_trans = "<strong>" . str_replace("!!site_dest!!", $lib_loc, $msg["transferts_circ_resa_validation_alerte"]) . "</strong><br />"; $trans_en_cours = true; } } $query = "select distinct "; $query .= "empr_prenom, empr_nom, empr_cb "; $query .= "from (((resa LEFT JOIN notices AS notices_m ON resa_idnotice = notices_m.notice_id ) LEFT JOIN bulletins ON resa_idbulletin = bulletins.bulletin_id) LEFT JOIN notices AS notices_s ON bulletin_notice = notices_s.notice_id), empr "; $query .= "where id_resa in (" . $affect . ") and resa_idempr=id_empr"; $result = mysql_query($query, $dbh); $empr = @mysql_fetch_object($result); print pmb_bidi("<div class='message_important'>{$msg['352']}</div>\n\t\t\t\t\t\t\t<div class='row'>{$msg_trans}\n\t\t\t\t\t\t\t{$msg[373]}\n\t\t\t\t\t\t\t<strong><a href='./circ.php?categ=pret&form_cb=" . rawurlencode($empr->empr_cb) . "'>" . $empr->empr_prenom . " " . $empr->empr_nom . "</a></strong>\n\t\t\t\t\t\t\t ({$empr->empr_cb} )\n\t\t\t\t\t\t\t</div>"); $alert_sound_list[] = "critique"; if (!$trans_en_cours) { alert_empr_resa($affect); } } // fin if affect } // fin if !verif_cb_utilise } // fin if resa } // fin confirmed $empr = new emprunteur($stuff->pret_idempr, $erreur_affichage, FALSE, 2); print pmb_bidi($empr->fiche_affichage); } else { print "<div class='erreur'>{$msg[605]}</div>"; $alert_sound_list[] = "critique"; } // show_report($stuff); // this stands for debugging }
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: retour_gen_transfert.inc.php,v 1.1 2008-06-04 14:54:25 ohennequin Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once $class_path . "/transfert.class.php"; $trans = new transfert(); //annule changement de localisation $trans->retour_exemplaire_restaure_localisation($idexpl, $param); //genere le transfert $num = $trans->retour_exemplaire_genere_transfert_retour($idexpl); ajax_http_send_response($num, "text/xml");
function show_expl_per_notice($no_notice, $link_expl = '', $expl_bulletin = 0) { global $msg, $dbh, $base_path, $class_path; global $explr_invisible, $explr_visible_unmod, $explr_visible_mod, $pmb_droits_explr_localises, $transferts_gestion_transferts; global $pmb_expl_list_display_comments; global $pmb_sur_location_activate; global $pmb_url_base, $pmb_expl_data, $charset; global $pmb_expl_display_location_without_expl; global $pmb_html_allow_expl_cote; // params : // $no_notice= id de la notice // $link_expl= lien associé à l'exemplaire avec !!expl_id!! et !!expl_cb!! à mettre à jour if (!$no_notice && !$expl_bulletin) { return; } $explr_tab_invis = explode(",", $explr_invisible); $explr_tab_unmod = explode(",", $explr_visible_unmod); $explr_tab_modif = explode(",", $explr_visible_mod); // récupération du nombre total d'exemplaires if ($expl_bulletin) { $requete = "SELECT COUNT(1) FROM exemplaires WHERE expl_bulletin='{$expl_bulletin}' "; } else { $requete = "SELECT COUNT(1) FROM exemplaires WHERE expl_notice='{$no_notice}' "; } $res = pmb_mysql_query($requete, $dbh); $nb_ex = pmb_mysql_result($res, 0, 0); if ($nb_ex) { // on récupère les données des exemplaires // visibilité des exemplaires: if ($pmb_droits_explr_localises && $explr_invisible) { $where_expl_localises = "and expl_location not in ({$explr_invisible})"; } else { $where_expl_localises = ""; } //Liste des champs d'exemplaires if ($pmb_sur_location_activate) { $surloc_field = "surloc_libelle,"; } if (!$pmb_expl_data) { $pmb_expl_data = "expl_cb,expl_cote," . $surloc_field . "location_libelle,section_libelle,statut_libelle,tdoc_libelle"; } $colonnesarray = explode(",", $pmb_expl_data); if (!in_array("expl_cb", $colonnesarray)) { array_unshift($colonnesarray, "expl_cb"); } $total_columns = count($colonnesarray); //Présence de champs personnalisés if (strstr($pmb_expl_data, "#")) { require_once $class_path . "/parametres_perso.class.php"; $cp = new parametres_perso("expl"); } if ($expl_bulletin) { $where_expl_notice_expl_bulletin = " expl_bulletin='{$expl_bulletin}' "; } else { $where_expl_notice_expl_bulletin = " expl_notice='{$no_notice}' "; } $requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_codestat.*, lenders.*, tdoc_libelle, "; if (in_array("surloc_libelle", $colonnesarray)) { $requete .= "sur_location.*, "; } $requete .= " date_format(pret_date, '" . $msg["format_date"] . "') as aff_pret_date, "; $requete .= " date_format(pret_retour, '" . $msg["format_date"] . "') as aff_pret_retour, "; $requete .= " IF(pret_retour>sysdate(),0,1) as retard "; $requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl "; $requete .= " left join docs_location on exemplaires.expl_location=docs_location.idlocation "; if (in_array("surloc_libelle", $colonnesarray)) { $requete .= " left join sur_location on docs_location.surloc_num=sur_location.surloc_id "; } $requete .= " left join docs_section on exemplaires.expl_section=docs_section.idsection "; $requete .= " left join docs_statut on exemplaires.expl_statut=docs_statut.idstatut "; $requete .= " left join docs_codestat on exemplaires.expl_codestat=docs_codestat.idcode "; $requete .= " left join lenders on exemplaires.expl_owner=lenders.idlender "; $requete .= " left join docs_type on exemplaires.expl_typdoc=docs_type.idtyp_doc "; $requete .= " WHERE {$where_expl_notice_expl_bulletin} {$where_expl_localises} "; if (in_array("surloc_libelle", $colonnesarray)) { $requete .= " order by surloc_libelle,location_libelle, section_libelle, expl_cote, expl_cb "; } else { $requete .= " order by location_libelle, section_libelle, expl_cote, expl_cb "; } $result = pmb_mysql_query($requete, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); $nbr_expl = pmb_mysql_num_rows($result); if ($nbr_expl) { while ($expl = pmb_mysql_fetch_object($result)) { //visibilité des exemplaires if ($pmb_droits_explr_localises) { $as_invis = array_search($expl->idlocation, $explr_tab_invis); $as_unmod = array_search($expl->idlocation, $explr_tab_unmod); $as_modif = array_search($expl->idlocation, $explr_tab_modif); } else { $as_invis = false; $as_unmod = false; $as_modif = true; } if ($link_expl) { if ($expl_bulletin) { $tlink = "./catalog.php?categ=serials&sub=bulletinage&action=expl_form&bul_id=!!bull_id!!&expl_id=!!expl_id!!"; $tlink = str_replace('!!bull_id!!', $expl_bulletin, $tlink); $tlink = str_replace('!!expl_id!!', $expl->expl_id, $tlink); $tlink = str_replace('!!expl_cb!!', rawurlencode($expl->expl_cb), $tlink); } else { $tlink = str_replace('!!expl_id!!', $expl->expl_id, $link_expl); $tlink = str_replace('!!expl_cb!!', rawurlencode($expl->expl_cb), $tlink); $tlink = str_replace('!!notice_id!!', $expl->expl_notice, $tlink); } } $expl_liste .= "<tr>"; for ($i = 0; $i < count($colonnesarray); $i++) { if (!(substr($colonnesarray[$i], 0, 1) == "#")) { eval("\$colencours=\$expl->" . $colonnesarray[$i] . ";"); } if ($i == 0 && ($expl->expl_note || $expl->expl_comment) && $pmb_expl_list_display_comments) { $expl_rowspan = "rowspan='2'"; } else { $expl_rowspan = ""; } $aff_column = ""; if (substr($colonnesarray[$i], 0, 1) == "#") { //champs personnalisés $id = substr($colonnesarray[$i], 1); $cp->get_values($expl->expl_id); if (!$cp->no_special_fields) { $temp = $cp->get_formatted_output($cp->values[$id], $id); if (!$temp) { $temp = " "; } $aff_column .= $temp; } } else { if ($colonnesarray[$i] == "expl_cb") { if ($tlink && ($as_modif !== FALSE && $as_modif !== NULL)) { $aff_column .= "<a href='{$tlink}'>" . $colencours . "</a>"; } else { $aff_column .= $colencours; } } else { if ($colonnesarray[$i] == "expl_cote") { if ($pmb_html_allow_expl_cote) { $aff_column .= "<strong>" . $colencours . "</strong>"; } else { $aff_column .= "<strong>" . htmlentities($colencours, ENT_QUOTES, $charset) . "</strong>"; } } else { if ($colonnesarray[$i] == "statut_libelle") { if ($expl->pret_retour) { // exemplaire sorti $rqt_empr = "SELECT empr_nom, empr_prenom, id_empr, empr_cb FROM empr WHERE id_empr='{$expl->pret_idempr}' "; $res_empr = pmb_mysql_query($rqt_empr, $dbh); $res_empr_obj = pmb_mysql_fetch_object($res_empr); $situation = "<strong>{$msg[358]} " . $expl->aff_pret_retour . "</strong>"; global $empr_show_caddie, $selector_prop_ajout_caddie_empr; if ($empr_show_caddie && SESSrights & CIRCULATION_AUTH) { $img_ajout_empr_caddie = "<img src='" . $base_path . "/images/basket_empr.gif' align='middle' alt='basket' title=\"{$msg[400]}\" onClick=\"openPopUp('" . $base_path . "/cart.php?object_type=EMPR&item=" . $expl->pret_idempr . "', 'cart', 600, 700, -2, -2, '{$selector_prop_ajout_caddie_empr}')\"> "; } else { $img_ajout_empr_caddie = ""; } switch ($this->print_mode) { case '2': $situation .= "<br />{$res_empr_obj->empr_prenom} {$res_empr_obj->empr_nom}"; break; default: $situation .= "<br />{$img_ajout_empr_caddie}<a href='" . $base_path . "/circ.php?categ=pret&form_cb=" . rawurlencode($res_empr_obj->empr_cb) . "'>{$res_empr_obj->empr_prenom} {$res_empr_obj->empr_nom}</a>"; break; } } else { // tester si réservé $result_resa = pmb_mysql_query("select 1 from resa where resa_cb='" . addslashes($expl->expl_cb) . "' ", $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); $reserve = pmb_mysql_num_rows($result_resa); // tester à ranger $result_aranger = pmb_mysql_query(" select 1 from resa_ranger where resa_cb='" . addslashes($expl->expl_cb) . "' ", $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); $aranger = pmb_mysql_num_rows($result_aranger); if ($reserve) { $situation = "<strong>" . $msg['expl_reserve'] . "</strong>"; } elseif ($expl->expl_retloc) { $situation = $msg['resa_menu_a_traiter']; } elseif ($aranger) { $situation = "<strong>" . $msg['resa_menu_a_ranger'] . "</strong>"; } elseif ($expl->pret_flag) { $situation = "<strong>{$msg[359]}</strong>"; } else { $situation = ""; } } $aff_column .= htmlentities($colencours, ENT_QUOTES, $charset); if ($situation) { $aff_column .= "<br />{$situation}"; } } else { $aff_column = htmlentities($colencours, ENT_QUOTES, $charset); } } } } $expl_liste .= "<td {$expl_rowspan}>" . $aff_column . "</td>"; } if ($this->print_mode) { $expl_liste .= "<td> </td>"; } else { if (SESSrights & CATALOGAGE_AUTH) { //le panier d'exemplaire $cart_click = "onClick=\"openPopUp('" . $base_path . "/cart.php?object_type=EXPL&item=" . $expl->expl_id . "', 'cart', 600, 700, -2, -2, 'toolbar=no, dependent=yes, width=500, height=400, resizable=yes, scrollbars=yes')\""; $cart_link = "<a href='#' {$cart_click}><img src='" . $base_path . "/images/basket_small_20x20.gif' align='center' alt='basket' title=\"{$msg[400]}\"></a>"; //l'icon pour le drag&drop de panier $drag_link = "<span onMouseOver='if(init_drag) init_drag();' id='EXPL_drag_" . $expl->expl_id . "' dragicon=\"" . $base_path . "/images/icone_drag_notice.png\" dragtext=\"" . htmlentities($expl->expl_cb, ENT_QUOTES, $charset) . "\" draggable=\"yes\" dragtype=\"notice\" callback_before=\"show_carts\" callback_after=\"\" style=\"padding-left:7px\"><img src=\"" . $base_path . "/images/notice_drag.png\"/></span>"; } else { $cart_click = ""; $cart_link = ""; $drag_link = ""; } //l'impression de la fiche exemplaire $fiche_click = "onClick=\"openPopUp('" . $base_path . "/pdf.php?pdfdoc=fiche_catalographique&expl_id=" . $expl->expl_id . "', 'Fiche', 500, 400, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\""; $fiche_link = "<a href='#' {$fiche_click}><img src='" . $base_path . "/images/print.gif' align='center' alt='" . $msg['print_fiche_catalographique'] . "' title='" . $msg['print_fiche_catalographique'] . "'></a>"; global $pmb_transferts_actif; //si les transferts sont activés if ($pmb_transferts_actif) { //si l'exemplaire n'est pas transferable on a une image vide $transfer_link = "<img src='" . $base_path . "/images/spacer.gif' align='center' height=20 width=20>"; $dispo_pour_transfert = transfert::est_transferable($expl->expl_id); if (SESSrights & TRANSFERTS_AUTH && $dispo_pour_transfert) { //l'icon de demande de transfert $transfer_link = "<a href=\"#\" onClick=\"openPopUp('" . $base_path . "/catalog/transferts/transferts_popup.php?expl=" . $expl->expl_id . "', 'cart', 600, 450, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');\"><img src='" . $base_path . "/images/peb_in.png' align='center' border=0 alt=\"" . $msg["transferts_alt_libelle_icon"] . "\" title=\"" . $msg["transferts_alt_libelle_icon"] . "\"></a>"; } } //on met tout dans la colonne $expl_liste .= "<td>{$fiche_link} {$cart_link} {$transfer_link} {$drag_link}</td>"; } $expl_liste .= "</tr>"; if (($expl->expl_note || $expl->expl_comment) && $pmb_expl_list_display_comments) { $notcom = array(); $expl_liste .= "<tr><td colspan='" . $total_columns . "'>"; if ($expl->expl_note && $pmb_expl_list_display_comments & 1) { $notcom[] .= "<span class='erreur'>{$expl->expl_note}</span>"; } if ($expl->expl_comment && $pmb_expl_list_display_comments & 2) { $notcom[] .= "{$expl->expl_comment}"; } $expl_liste .= implode("<br />", $notcom); $expl_liste .= "</tr>"; } } // fin while } // fin il y a des expl visibles if ($expl_liste) { $entry = "<table border='0' class='expl-list'><tr>"; for ($i = 0; $i < count($colonnesarray); $i++) { if (substr($colonnesarray[$i], 0, 1) == "#") { //champs personnalisés if (!$cp->no_special_fields) { $id = substr($colonnesarray[$i], 1); $entry .= "<th>" . htmlentities($cp->t_fields[$id][TITRE], ENT_QUOTES, $charset) . "</th>"; } } else { eval("\$colencours=\$msg[expl_header_" . $colonnesarray[$i] . "];"); $entry .= "<th>" . htmlentities($colencours, ENT_QUOTES, $charset) . "</th>"; } } $entry .= "<th> </th></tr>{$expl_liste}</table>"; } else { $entry = ""; } if ($pmb_expl_display_location_without_expl) { if ($pmb_sur_location_activate) { $array_surloc = array(); $requete = "SELECT * FROM sur_location ORDER BY surloc_libelle"; $result = pmb_mysql_query($requete, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); $nb_surloc = pmb_mysql_num_rows($result); if ($nb_surloc) { while ($surloc = pmb_mysql_fetch_object($result)) { $array_surloc[] = array("id" => $surloc->surloc_id, "libelle" => $surloc->surloc_libelle, "locations" => array()); } } if (count($array_surloc)) { foreach ($array_surloc as $key => $surloc) { $requete = "SELECT idlocation, location_libelle from docs_location where surloc_num=" . $surloc["id"] . " AND \n\t\t\t\t\t\tidlocation not in (SELECT expl_location from exemplaires WHERE expl_notice={$no_notice}) order by location_libelle"; $result = pmb_mysql_query($requete, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); $nb_loc = pmb_mysql_num_rows($result); if ($nb_loc) { while ($loc = pmb_mysql_fetch_object($result)) { $array_surloc[$key]["locations"][] = array("id" => $loc->idlocation, "libelle" => $loc->location_libelle); } } else { unset($array_surloc[$key]); } } } //Au moins une surloc à afficher if (count($array_surloc)) { $tr_surloc = ""; foreach ($array_surloc as $key => $surloc) { $tr_surloc .= "<tr><td>"; $tr_loc = ""; foreach ($surloc["locations"] as $keyloc => $loc) { $tr_loc .= "<tr><td>" . $loc["libelle"] . "</td></tr>"; } $tpl_surloc = "\n\t\t\t\t\t\t\t<table border='0' class='expl-list'>\n\t\t\t\t\t\t\t\t{$tr_loc}\n\t\t\t\t\t\t\t</table>"; $tr_surloc .= gen_plus('surlocation_without_expl' . $key . '_' . $no_notice, $surloc["libelle"], $tpl_surloc, 0); $tr_surloc .= "</td></tr>"; } $tpl = "\n\t\t\t\t\t<table border='0' class='expl-list'>\n\t\t\t\t\t\t{$tr_surloc}\n\t\t\t\t\t</table>"; $entry .= gen_plus('location_without_expl' . $no_notice, $msg['expl_surlocation_without_expl'], $tpl, 0); } } else { $requete = "SELECT location_libelle from docs_location where\n\t\t\t\tidlocation not in (SELECT expl_location from exemplaires WHERE expl_notice={$no_notice}) order by location_libelle"; $result = pmb_mysql_query($requete, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $requete); $nb_loc = pmb_mysql_num_rows($result); if ($nb_loc) { $items = ""; while ($loc = pmb_mysql_fetch_object($result)) { $items .= "<tr><td>" . $loc->location_libelle . "</td></tr>"; } $tpl = "\n\t\t\t\t\t<table border='0' class='expl-list'>\n\t\t\t\t\t\t{$items}\n\t\t\t\t\t</table>"; $tpl = gen_plus('location_without_expl' . $no_notice, $msg['expl_location_without_expl'], $tpl, 0); $entry .= $tpl; } } } $this->nb_expl = $nbr_expl; return $entry; } else { return ""; } }
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: retours.inc.php,v 1.7 2012-08-20 08:06:32 ngantier Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } // Titre de la fenêtre echo window_title($database_window_title . $msg[transferts_circ_menu_retour] . $msg[1003] . $msg[1001]); //creation de l'objet transfert $obj_transfert = new transfert(); switch ($action) { case "aff_ret": //on affiche l'écran de validation echo "<h1>" . $msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_retour] . "</h1>"; echo affiche_liste_valide($transferts_retour_liste_valide, $transferts_retour_liste_valide_ligne, "SELECT num_notice, num_bulletin, " . "expl_cb as val_ex,lender_libelle, transferts.date_retour as val_date_retour, " . "date_reception as val_date_reception, motif as val_motif, location_libelle as val_dest, empr_cb as val_empr " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN lenders ON idlender=expl_owner " . "INNER JOIN docs_location ON num_location_source=idlocation " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE " . "id_transfert IN (!!liste_numeros!!) " . "AND etat_demande=3", "circ.php?categ=trans&sub=" . $sub); break; case "ret": //on enregistre les validations des exemplaires sélectionnés $obj_transfert->enregistre_retour($liste_transfert); $action = ""; break; } if ($action == "") { //pas d'action donc affichage de la liste des validations en attente get_cb_expl($msg[transferts_circ_menu_titre] . " > " . $msg[transferts_circ_menu_retour], $msg[661], $msg[transferts_circ_retour_exemplaire], "./circ.php?categ=trans&sub=" . $sub . "&f_destination=" . $f_destination . "&nb_per_page=" . $nb_per_page, 0); //pour la validation d'un exemplaire if ($form_cb_expl != "") { //enregistre l'acceptation du transfert