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 }
function extrait_info_empr($sql = "", $entete = 1, $flag = "") { global $dbh; global $dest; global $worksheet; global $entete_bloc; global $msg; global $charset; global $debligne_excel; global $etat_table; // permet de savoir si les tag table sont ouverts ou fermés global $max_perso; global $res_compte1; if (!$debligne_excel) { $debligne_excel = 0; } $res = @pmb_mysql_query($sql, $dbh); $nbr_lignes = @pmb_mysql_num_rows($res); $nbr_champs = @pmb_mysql_num_fields($res); if ($nbr_lignes) { switch ($dest) { case "TABLEAU": if ($entete) { $worksheet->write_string(1 + $debligne_excel, 0, $msg["caddie_mess_edition_" . $entete_bloc]); $debligne_excel++; } for ($i = 0; $i < $nbr_champs; $i++) { // entête de colonnes $fieldname = pmb_mysql_field_name($res, $i); if ($entete) { $worksheet->write_string(1 + $debligne_excel, 0, $msg['caddie_action_marque']); $worksheet->write_string(1 + $debligne_excel, $i + 1, ${fieldname}); } } if ($entete) { $worksheet->write_string(1 + $debligne_excel, $nbr_champs + 1, "DESCR"); for ($i = 0; $i < $max_perso; $i++) { $perso = pmb_mysql_fetch_object($res_compte1); $worksheet->write_string(1 + $debligne_excel, $nbr_champs + 2 + $i, $perso->titre); } } if ($entete) { $debligne_excel++; } for ($i = 0; $i < $nbr_lignes; $i++) { $debligne_excel++; $row = pmb_mysql_fetch_row($res); $id_notice = $row[0]; if ($flag) { $worksheet->write_string($i + $debligne_excel, 0, "X"); } $j = 0; foreach ($row as $dummykey => $col) { if (!$col) { $col = " "; } $worksheet->write_string($i + $debligne_excel, $j + 1, $col); $j++; } $p_perso = new parametres_perso("empr"); //Champs personalisés if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id_notice); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; $worksheet->write_string($debligne_excel, $nbr_champs + 2 + $i, html_entity_decode($p["AFF"], ENT_QUOTES | ENT_COMPAT, $charset)); } } } break; case "TABLEAUHTML": if ($entete) { if ($etat_table) { echo "\n</table>"; } echo "<h3>" . $msg["caddie_mess_edition_" . $entete_bloc] . "</h3>"; echo "\n<table><th align='left'>" . $msg['caddie_action_marque'] . "</th>"; $etat_table = 1; for ($i = 0; $i < $nbr_champs; $i++) { $fieldname = pmb_mysql_field_name($res, $i); print "<th align='left'>{$fieldname}</th>"; } print "<th align='left'>DESCR</th>"; for ($i = 0; $i < $max_perso; $i++) { $perso = pmb_mysql_fetch_object($res_compte1); print "<th align='left'>" . $perso->titre . "</th>"; } } for ($i = 0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_row($res); $id_notice = $row[0]; echo "<tr>"; if ($flag) { print "<td>X</td>"; } else { print "<td> </td>"; } foreach ($row as $dummykey => $col) { if (is_numeric($col)) { $col = "'" . $col; } if (!$col) { $col = " "; } print pmb_bidi("<td>{$col}</td>"); } print "<td> </td>"; $p_perso = new parametres_perso("empr"); //Champs personalisés if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id_notice); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; print "<td>" . $p["AFF"] . "</td>"; } } echo "</tr>"; } break; default: if ($entete) { if ($etat_table) { echo "\n</table>"; } echo "<h3>" . $msg["caddie_mess_edition_" . $entete_bloc] . "</h3>"; echo "\n<table><th align='left'>" . $msg['caddie_action_marque'] . "</th>"; $etat_table = 1; for ($i = 0; $i < $nbr_champs; $i++) { $fieldname = pmb_mysql_field_name($res, $i); print "<th align='left'>{$fieldname}</th>"; } print "<th align='left'>DESCR</th>"; for ($i = 0; $i < $max_perso; $i++) { $perso = pmb_mysql_fetch_object($res_compte1); print "<th align='left'>" . $perso->titre . "</th>"; } } $odd_even = 0; for ($i = 0; $i < $nbr_lignes; $i++) { $row = pmb_mysql_fetch_row($res); $id_notice = $row[0]; if ($odd_even == 0) { echo "\t<tr class='odd'>"; $odd_even = 1; } else { if ($odd_even == 1) { echo "\t<tr class='even'>"; $odd_even = 0; } } if ($flag) { print "<td>X</td>"; } else { print "<td> </td>"; } foreach ($row as $dummykey => $col) { if (!$col) { $col = " "; } print pmb_bidi("<td>{$col}</td>"); } print "<td> </td>"; $p_perso = new parametres_perso("empr"); //Champs personalisés if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id_notice); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; print "<td>" . $p["AFF"] . "</td>"; } } echo "</tr>"; } break; } // fin switch } // fin if nbr_lignes }
function show_consult_form($last_modified = 0) { global $idetat, $iduser, $idempr, $user_input; global $date_debut, $date_fin, $id_type, $id_theme, $dmde_loc; global $form_consult_dmde, $charset, $msg, $dbh, $demandes_init_workflow, $form_consult_linked_record; global $pmb_type_audit, $opac_demandes_no_action, $opac_demandes_allow_from_record; $form_consult_dmde = str_replace('!!form_title!!', htmlentities($this->titre_demande, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!sujet_dmde!!', htmlentities($this->sujet_demande, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!etat_dmde!!', htmlentities($this->workflow->getStateCommentById($this->etat_demande), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!date_dmde!!', htmlentities(formatdate($this->date_demande), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!date_butoir_dmde!!', htmlentities(formatdate($this->deadline_demande), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!date_prevue_dmde!!', htmlentities(formatdate($this->date_prevue), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!progression_dmde!!', htmlentities($this->progression . '%', ENT_QUOTES, $charset), $form_consult_dmde); for ($i = 0; $i < sizeof($this->users); $i++) { if ($i == sizeof($this->users) - 1) { $users .= htmlentities($this->users[$i]['nom'], ENT_QUOTES, $charset); } else { $users .= htmlentities($this->users[$i]['nom'], ENT_QUOTES, $charset) . " / "; } } $carac_empr = $this->getCaracEmpr($this->num_demandeur); $nom = $carac_empr['nom']; $cb = $carac_empr['empr_cb']; $nom_emprunteur = ""; if (SESSrights & CIRCULATION_AUTH) { $nom_emprunteur = "<a href=\"circ.php?categ=pret&form_cb={$cb}\" >" . htmlentities($nom, ENT_QUOTES, $charset) . "</a>"; } $form_consult_dmde = str_replace('!!demandeur!!', $nom_emprunteur ? $nom_emprunteur : $nom, $form_consult_dmde); $form_consult_dmde = str_replace('!!attribution!!', $users, $form_consult_dmde); $form_consult_dmde = str_replace('!!iddemande!!', $this->id_demande, $form_consult_dmde); $form_consult_dmde = str_replace('!!theme_dmde!!', htmlentities($this->theme_libelle, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!type_dmde!!', htmlentities($this->type_libelle, ENT_QUOTES, $charset), $form_consult_dmde); if ($opac_demandes_allow_from_record && $this->num_linked_notice) { $record_datas = record_display::get_record_datas($this->num_linked_notice); $form_consult_dmde = str_replace('!!form_linked_record!!', $form_consult_linked_record, $form_consult_dmde); $form_consult_dmde = str_replace('!!linked_record!!', htmlentities($record_datas->get_tit1(), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!linked_record_id!!', htmlentities($this->num_linked_notice, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!linked_record_link!!', htmlentities($record_datas->get_permalink(), ENT_QUOTES, $charset), $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!form_linked_record!!', "", $form_consult_dmde); } //Champs personalisés $perso_aff = ""; $p_perso = new parametres_perso("demandes"); if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($this->id_demande); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($p["AFF"] && $p["OPAC_SHOW"]) { $perso_aff .= "<br />" . $p["TITRE"] . " " . nl2br($p["AFF"]); } } } if ($perso_aff) { $form_consult_dmde = str_replace("!!champs_perso!!", $perso_aff, $form_consult_dmde); } else { $form_consult_dmde = str_replace("!!champs_perso!!", "", $form_consult_dmde); } if (self::is_notice_visible($this)) { $link_noti = "<a href='" . $opac_url_base . "index.php?lvl=notice_display&id=" . $this->num_notice . "' alt='" . $msg['demandes_see_notice'] . "' title='" . $msg['demandes_see_notice'] . "'><img src='{$base_path}/images/mois.gif' /></a>"; } else { $link_noti = ""; } $form_consult_dmde = str_replace('!!icone!!', $link_noti, $form_consult_dmde); //construction de l'url de retour $params_retour = ''; if ($idetat) { $params_retour .= "&idetat=" . $idetat; } // if($iduser){ // $params_retour.="&iduser="******"&idempr=".$idempr; // } if ($user_input) { $params_retour .= "&user_input=" . $user_input; } if ($date_debut) { $params_retour .= "&date_debut=" . $date_debut; } if ($date_fin) { $params_retour .= "&date_fin=" . $date_fin; } if ($id_type) { $params_retour .= "&id_type=" . $id_type; } if ($id_theme) { $params_retour .= "&id_theme=" . $id_theme; } if ($dmde_loc) { $params_retour .= "&dmde_loc=" . $dmde_loc; } if ($params_retour) { $form_consult_dmde = str_replace('!!params_retour!!', htmlentities(stripslashes($params_retour), ENT_QUOTES, $charset), $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!params_retour!!', "", $form_consult_dmde); } if (sizeof($this->users) && $demandes_init_workflow !== "2" && !$opac_demandes_no_action) { $listActionButton = ' ' . $msg['demandes_action_type_add'] . ' '; if (sizeof($this->allowed_actions)) { foreach ($this->allowed_actions as $key => $actionType) { if ($actionType['active'] == 1) { $listActionButton .= "<input type='button' class='bouton' value='" . htmlentities($actionType['comment'], ENT_QUOTES, $charset) . "' onClick=\"document.location='./empr.php?tab=request&lvl=list_dmde&sub=add_action&type_action=" . $actionType['id'] . "&iddemande={$this->id_demande}'\" />"; } } } if ($listActionButton) { $form_consult_dmde = str_replace('!!add_actions_list!!', $listActionButton, $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!add_actions_list!!', "", $form_consult_dmde); } } else { $form_consult_dmde = str_replace('!!add_actions_list!!', "", $form_consult_dmde); } $modify_button = ""; foreach ($this->workflow->object_states_by_id as $key => $value) { //id d'etat de demande par défaut if ($this->workflow->object_workflow['STARTSTATE'][0]['value'] == $value && $key == $this->etat_demande) { $modify_button = "<input type='button' class='bouton' value='" . $msg['demandes_modify'] . "' onClick=\"document.location='./empr.php?tab=request&lvl=list_dmde&sub=add_demande&iddemande={$this->id_demande}'\" />"; } } $form_consult_dmde = str_replace('!!demande_modify!!', $modify_button, $form_consult_dmde); if (sizeof($this->users) && $demandes_init_workflow !== "2") { //Liste des actions $this->fetch_data($this->id_demande, false); if ($this->etat_demande == 4 || $this->etat_demande == 5) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande); } elseif ($last_modified) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande, $last_modified); } elseif ($this->last_modified) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande, $this->last_modified->id_action); } else { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande); } } if ($this->etat_demande == 1 && !sizeof($this->actions) && $this->dmde_read_opac == 1) { demandes::demande_read($this->id_demande, true, "_opac"); $this->fetch_data($this->id_demande, false); } print $form_consult_dmde; }
function fetch_empr($empr_cb = '', $empr_id = '') { global $dbh; global $msg; global $charset; $result = array('empr_id' => 0, 'empr_cb' => "", 'nom' => "", 'prenom' => "", 'sexe' => 0, 'birth' => "", 'adr1' => "", 'adr2' => "", 'cp' => "", 'ville' => "", 'pays' => "", 'mail' => "", 'tel1' => "", 'sms' => 0, 'tel2' => "", 'prof' => "", 'categ' => "", 'cat_l' => "", 'cstat' => "", 'cstat_l' => "", 'cdate' => "", 'mdate' => "", 'login' => "", 'pwd' => "", 'type_abt' => 0, 'location' => 0, 'location_l' => "", 'date_blocage' => "", 'statut' => 0, 'statut_libelle' => "", 'total_loans' => 0, 'allow_loan' => 0, 'allow_book' => 0, 'allow_opac' => 0, 'allow_dsi' => 0, 'allow_dsi_priv' => 0, 'allow_sugg' => 0, 'allow_prol' => 0, 'date_adhesion' => "", 'date_expiration' => "", 'last_loan_date' => "", 'nb_pret' => 0, 'msg' => "", 'ldap' => 0, 'pperso_list' => array(), 'groupe_list' => array(), 'prets' => array(), 'reservations' => array(), 'nb_retard' => 0, 'nb_resa' => 0, 'nb_previsions' => 0); $empr_cb = $this->clean_field($empr_cb); $empr_id += 0; if (!$empr_id && $empr_cb == '') { return $this->build_ok($result, "idempr et empr_cb vide.", false); } if ($empr_id) { $where = " id_empr = {$empr_id} "; } else { $where = " empr_cb = '" . addslashes($empr_cb) . "' "; } $sql = "SELECT id_empr, empr_cb FROM empr WHERE {$where}"; $res = pmb_mysql_query($sql); if (!$res || !pmb_mysql_num_rows($res)) { return $this->build_ok($result, "Lecteur inconnu.", false); } $empr_res = pmb_mysql_fetch_object($res); $empr_id = $empr_res->id_empr; $empr = new emprunteur($empr_id, '', false, 1); if (!$empr->cb) { return $this->build_ok($result, "Lecteur inconnu.", false); } $sql = "select id_groupe, libelle_groupe from groupe, empr_groupe where empr_id='" . $empr_id . "' and id_groupe=groupe_id order by libelle_groupe"; $res = pmb_mysql_query($sql); $i = 0; $groupes_infos = array(); while ($res_info = pmb_mysql_fetch_object($res)) { $groupes_infos[$i]['id'] = $res_info->id_groupe; $groupes_infos[$i]['libelle'] = $res_info->libelle_groupe; $i++; } $requete_nb_pret = "select count(1) as nb_pret from pret where pret_idempr=" . $empr_id; $result_nb_pret = pmb_mysql_query($requete_nb_pret, $dbh); $r_nb_pret = pmb_mysql_fetch_object($result_nb_pret); $nb_pret = $r_nb_pret->nb_pret; $resa_list = array(); $sql = "SELECT resa_idnotice, resa_idbulletin, resa_date, resa_date_debut, resa_date_fin, resa_cb, resa_confirmee, resa_idempr, ifnull(expl_cote,'') as expl_cote, empr_nom, empr_prenom, empr_cb, location_libelle, resa_loc_retrait, "; $sql .= " trim(concat(if(series_m.serie_name <>'', if(notices_m.tnvol <>'', concat(series_m.serie_name,', ',notices_m.tnvol,'. '), concat(series_m.serie_name,'. ')), if(notices_m.tnvol <>'', concat(notices_m.tnvol,'. '),'')), "; $sql .= " if(series_s.serie_name <>'', if(notices_s.tnvol <>'', concat(series_s.serie_name,', ',notices_s.tnvol,'. '), series_s.serie_name), if(notices_s.tnvol <>'', concat(notices_s.tnvol,'. '),'')), "; $sql .= "\tifnull(notices_m.tit1,''),ifnull(notices_s.tit1,''),' ',ifnull(bulletin_numero,''), if (mention_date, concat(' (',mention_date,')') ,''))) as tit, id_resa, "; $sql .= " ifnull(notices_m.typdoc,notices_s.typdoc) as typdoc, "; $sql .= " IF(resa_date_fin>=sysdate() or resa_date_fin='0000-00-00',0,1) as perimee, date_format(resa_date_debut, '" . $msg["format_date"] . "') as aff_resa_date_debut, if(resa_date_fin='0000-00-00', '', date_format(resa_date_fin, '" . $msg["format_date"] . "')) as aff_resa_date_fin, date_format(resa_date, '" . $msg["format_date"] . "') as aff_resa_date "; $sql .= " FROM ((((resa LEFT JOIN notices AS notices_m ON resa_idnotice = notices_m.notice_id "; $sql .= " LEFT JOIN series AS series_m ON notices_m.tparent_id = series_m.serie_id ) "; $sql .= " LEFT JOIN bulletins ON resa_idbulletin = bulletins.bulletin_id) "; $sql .= " LEFT JOIN notices AS notices_s ON bulletin_notice = notices_s.notice_id "; $sql .= " LEFT JOIN series AS series_s ON notices_s.tparent_id = series_s.serie_id ) "; $sql .= " LEFT JOIN exemplaires ON resa_cb = exemplaires.expl_cb), "; $sql .= " empr, docs_location "; $sql .= " WHERE resa_idempr = id_empr AND idlocation = empr_location AND id_empr='{$empr_id}'"; $res = pmb_mysql_query($sql); while ($res_info = pmb_mysql_fetch_object($res)) { $resa["title"] = $res_info->tit; $resa["typdoc"] = $res_info->typdoc; $resa["date"] = $res_info->aff_resa_date; $resa["date_debut"] = $res_info->aff_resa_date_debut; $resa["date_fin"] = $res_info->aff_resa_date_fin; $resa["cb"] = $res_info->resa_cb; $resa["confirmee"] = $res_info->resa_confirmee; $resa["perimee"] = $res_info->perimee; $resa["id"] = $res_info->id_resa; $resa_list[] = $resa; } $p_perso = new parametres_perso("empr"); $perso_ = $p_perso->show_fields($empr_id); $pperso_list = array(); if (count($perso_)) { for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; $pperso_list[$i]["id"] = $p["ID"]; $pperso_list[$i]["name"] = $p["NAME"]; $pperso_list[$i]["libelle"] = $p["TITRE"]; $pperso_list[$i]["aff"] = $p["AFF"]; } } $result = array('empr_id' => $empr_id, 'empr_cb' => $empr->cb, 'nom' => $empr->nom, 'prenom' => $empr->prenom, 'sexe' => $empr->sexe, 'birth' => $empr->birth, 'adr1' => $empr->adr1, 'adr2' => $empr->adr2, 'cp' => $empr->cp, 'ville' => $empr->ville, 'pays' => $empr->pays, 'mail' => $empr->mail, 'tel1' => $empr->tel1, 'sms' => $empr->sms, 'tel2' => $empr->tel2, 'prof' => $empr->prof, 'categ' => $empr->categ, 'cat_l' => $empr->cat_l, 'cstat' => $empr->cstat, 'cstat_l' => $empr->cstat_l, 'cdate' => $empr->cdate, 'mdate' => $empr->mdate, 'login' => $empr->login, 'pwd' => $empr->pwd, 'type_abt' => $empr->type_abt, 'location' => $empr->empr_location, 'location_l' => $empr->empr_location_l, 'date_blocage' => $empr->date_blocage, 'statut' => $empr->empr_statut, 'statut_libelle' => $empr->empr_statut_libelle, 'total_loans' => $empr->total_loans, 'allow_loan' => $empr->allow_loan, 'allow_book' => $empr->allow_book, 'allow_opac' => $empr->allow_opac, 'allow_dsi' => $empr->allow_dsi, 'allow_dsi_priv' => $empr->allow_dsi_priv, 'allow_sugg' => $empr->allow_sugg, 'allow_prol' => $empr->allow_prol, 'date_adhesion' => $empr->date_adhesion, 'date_expiration' => $empr->date_expiration, 'last_loan_date' => $empr->last_loan_date, 'nb_pret' => $nb_pret, 'msg' => $empr->empr_msg, 'ldap' => $empr->empr_ldap, 'pperso_list' => $pperso_list, 'groupe_list' => $groupes_infos, 'prets' => $empr->prets, 'reservations' => $resa_list, 'nb_retard' => $empr->retard, 'nb_resa' => $empr->nb_reservations, 'nb_previsions' => $empr->nb_previsions); return $this->build_ok($result); }
/** * Retourne les paramètres persos * @return array */ public function get_p_perso() { if (!$this->p_perso) { global $memo_p_perso_notices; $this->p_perso = array(); if (!$memo_p_perso_notices) { $memo_p_perso_notices = new parametres_perso("notices"); } $ppersos = $memo_p_perso_notices->show_fields($this->id); // Filtre ceux qui ne sont pas visibles à l'OPAC ou qui n'ont pas de valeur foreach ($ppersos['FIELDS'] as $pperso) { if ($pperso['OPAC_SHOW'] && $pperso['AFF']) { $this->p_perso[] = $pperso; } } } return $this->p_perso; }
function show_consult_form($last_modified = 0) { global $idetat, $iduser, $idempr, $user_input; global $date_debut, $date_fin, $id_type, $id_theme, $dmde_loc; global $form_consult_dmde, $charset, $msg, $dbh, $demandes_init_workflow, $form_consult_linked_record; global $pmb_type_audit, $reponse_finale; $form_consult_dmde = str_replace('!!form_title!!', htmlentities($this->titre_demande, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!sujet_dmde!!', htmlentities($this->sujet_demande, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!etat_dmde!!', htmlentities($this->workflow->getStateCommentById($this->etat_demande), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!date_dmde!!', htmlentities(formatdate($this->date_demande), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!date_butoir_dmde!!', htmlentities(formatdate($this->deadline_demande), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!date_prevue_dmde!!', htmlentities(formatdate($this->date_prevue), ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!progression_dmde!!', htmlentities($this->progression . '%', ENT_QUOTES, $charset), $form_consult_dmde); $nom_user = ''; if (sizeof($this->users)) { foreach ($this->users as $id => $user) { if ($user['statut'] == 1) { if ($nom_user) { $nom_user .= "/ "; } $nom_user .= $user['nom']; } } } $carac_empr = $this->getCaracEmpr($this->num_demandeur); $nom = $carac_empr['nom']; $cb = $carac_empr['empr_cb']; $nom_emprunteur = ""; if (SESSrights & CIRCULATION_AUTH) { $nom_emprunteur = "<a href=\"circ.php?categ=pret&form_cb={$cb}\" >" . htmlentities($nom, ENT_QUOTES, $charset) . "</a>"; } $form_consult_dmde = str_replace('!!demandeur!!', $nom_emprunteur ? $nom_emprunteur : $nom, $form_consult_dmde); $form_consult_dmde = str_replace('!!attribution!!', $nom_user, $form_consult_dmde); $form_consult_dmde = str_replace('!!iddemande!!', $this->id_demande, $form_consult_dmde); $form_consult_dmde = str_replace('!!theme_dmde!!', htmlentities($this->theme_libelle, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!type_dmde!!', htmlentities($this->type_libelle, ENT_QUOTES, $charset), $form_consult_dmde); if ($this->num_linked_notice) { $display = new mono_display($this->num_linked_notice, 0, '', 0, '', '', '', 0, 0, 0, 0, "", 0, false, true); $form_consult_dmde = str_replace('!!form_linked_record!!', $form_consult_linked_record, $form_consult_dmde); $form_consult_dmde = str_replace('!!linked_record!!', htmlentities($display->result, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!linked_record_id!!', htmlentities($this->num_linked_notice, ENT_QUOTES, $charset), $form_consult_dmde); $form_consult_dmde = str_replace('!!linked_record_link!!', htmlentities($url_base . "catalog.php?categ=isbd&id=" . $this->num_linked_notice, ENT_QUOTES, $charset), $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!form_linked_record!!', " ", $form_consult_dmde); } //Champs personalisés $perso_aff = ""; $p_perso = new parametres_perso("demandes"); if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($this->id_demande); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($p["AFF"]) { $perso_aff .= "<br />" . $p["TITRE"] . " " . nl2br($p["AFF"]); } } } if ($perso_aff) { $form_consult_dmde = str_replace("!!champs_perso!!", $perso_aff, $form_consult_dmde); } else { $form_consult_dmde = str_replace("!!champs_perso!!", "", $form_consult_dmde); } //afficher la liste des boutons de changement d'état if ($this->etat_demande && sizeof($this->users) || $demandes_init_workflow !== "2") { $states = $this->workflow->getStateList($this->etat_demande); $states_btn = $this->getDisplayStateBtn($states); $form_consult_dmde = str_replace('!!btn_etat!!', $states_btn, $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!btn_etat!!', "", $form_consult_dmde); } //afficher la liste des boutons de la notice if ($this->num_notice != 0) { $notice = "<a onclick=\"show_notice('" . $this->num_notice . "')\" href='#'><img border='0' align='top' src='./images/search.gif' alt='" . htmlentities($msg['demandes_see_notice'], ENT_QUOTES, $charset) . "' title='" . htmlentities($msg['demandes_see_notice'], ENT_QUOTES, $charset) . "' /></a>"; } else { $notice = ""; } $form_consult_dmde = str_replace('!!icone!!', $notice, $form_consult_dmde); if (sizeof($this->users) || $demandes_init_workflow !== "2") { $req = "select count(1) as nb from demandes join demandes_actions on id_demande=num_demande join explnum_doc_actions on num_action=id_action where id_demande='" . $this->id_demande . "'"; $res = pmb_mysql_query($req, $dbh); $docnum = pmb_mysql_fetch_object($res); // bouton doc num if ($docnum->nb) { $btn_attach = " <input type='submit' class='bouton' value='" . $msg['demandes_attach_docnum'] . "' onClick='this.form.act.value=\"attach\" ; ' />"; } else { $btn_attach = ""; } // boutons notice if ($this->num_notice != 0) { $btn_notices = "<input type='submit' class='bouton' value='" . $msg['demandes_complete_notice'] . "' onClick='this.form.act.value=\"notice\" ; ' />" . $btn_attach . " <input type='submit' class='bouton' value='" . $msg['demandes_generate_rapport'] . "' onClick='this.form.act.value=\"rapport\" ; ' />"; $btn_suppr_notice = "<input type='submit' class='bouton' value='" . $msg['demandes_delete_notice'] . "' onClick='this.form.act.value=\"delete_notice\" ; return confirm_delete(); ' />"; } else { $btn_notices = "<input type='submit' class='bouton' value='" . $msg['demandes_create_notice'] . "' onClick='this.form.act.value=\"create_notice\" ; ' />" . $btn_attach . " <input type='hidden' class='bouton' value='" . $msg['demandes_generate_rapport'] . "' onClick='this.form.act.value=\"rapport\" ; ' />" . $btn_attach . " <input type='submit' class='bouton' value='" . $msg['demandes_generate_rapport'] . "' onClick='this.form.act.value=\"rapport\" ; ' />"; $btn_suppr_notice = ""; } // bouton audit if ($pmb_type_audit) { $btn_audit = " <input class='bouton' type='button' onClick=\"openPopUp('./audit.php?type_obj=14&object_id={$this->id_demande}', 'audit_popup', 700, 500, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes')\" title=\"" . $msg['audit_button'] . "\" value=\"" . $msg['audit_button'] . "\" /> "; } else { $btn_audit = ""; } // affichage des boutons de création de la réponse finale $btn_repfinal = $btn_faq = ""; if ($this->etat_demande == 4) { if (!$this->reponse_finale || $this->reponse_finale == '') { $btn_repfinal = " <input type='submit' class='bouton' value='" . $msg['demandes_repfinale_creation'] . "' onclick='this.form.act.value=\"final_response\" ; ' /> "; } } if ($this->etat_demande == 4) { if (!$this->num_faq_question) { $btn_faq = " <input type='button' class='bouton' value='" . $msg['demandes_creation_faq_question'] . "' onclick='document.location=\"./demandes.php?categ=faq&sub=question&action=new&num_demande=" . $this->id_demande . "\" ; ' /> "; } else { $btn_faq = " <input type='button' class='bouton' value='" . $msg['demandes_edit_faq_question'] . "' onclick='document.location=\"./demandes.php?categ=faq&sub=question&action=edit&id=" . $this->num_faq_question . "\" ; ' /> "; } } $form_consult_dmde = str_replace('!!btns_notice!!', $btn_notices, $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_suppr_notice!!', $btn_suppr_notice, $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_audit!!', $btn_audit, $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_repfinal!!', $btn_repfinal, $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_faq!!', $btn_faq, $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!btns_notice!!', "", $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_suppr_notice!!', "", $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_audit!!', "", $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_repfinal!!', $btn_repfinal, $form_consult_dmde); $form_consult_dmde = str_replace('!!btn_faq!!', "", $form_consult_dmde); } //construction de l'url de retour $params_retour = ''; if ($idetat) { $params_retour .= "&idetat=" . $idetat; } if ($iduser) { $params_retour .= "&iduser="******"&idempr=" . $idempr; } if ($user_input) { $params_retour .= "&user_input=" . $user_input; } if ($date_debut) { $params_retour .= "&date_debut=" . $date_debut; } if ($date_fin) { $params_retour .= "&date_fin=" . $date_fin; } if ($id_type) { $params_retour .= "&id_type=" . $id_type; } if ($id_theme) { $params_retour .= "&id_theme=" . $id_theme; } if ($dmde_loc) { $params_retour .= "&dmde_loc=" . $dmde_loc; } if ($params_retour) { $form_consult_dmde = str_replace('!!params_retour!!', htmlentities(stripslashes($params_retour), ENT_QUOTES, $charset), $form_consult_dmde); } else { $form_consult_dmde = str_replace('!!params_retour!!', "", $form_consult_dmde); } if (sizeof($this->users) || $demandes_init_workflow !== "2") { //Liste des actions $this->fetch_data($this->id_demande, false); if ($this->etat_demande == 4 || $this->etat_demande == 5) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande); } elseif ($last_modified) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande, $last_modified); } elseif ($this->last_modified) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande, $this->last_modified->id_action); } elseif ($this->last_modified) { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande, $this->last_modified->id_action); } else { $form_consult_dmde .= demandes_actions::show_list_actions($this->actions, $this->id_demande); } } if ($this->etat_demande == 4 && $this->reponse_finale != '') { $reponse_finale = str_replace('!!repfinale!!', $this->reponse_finale, $reponse_finale); $reponse_finale = str_replace('!!iddemande!!', htmlentities($this->id_demande, ENT_QUOTES, $charset), $reponse_finale); $act_form = "./demandes.php?categ=gestion"; $reponse_finale = str_replace('!!form_action!!', htmlentities($act_form, ENT_QUOTES, $charset), $reponse_finale); $form_consult_dmde .= $reponse_finale; } if ($this->etat_demande == 1 && !sizeof($this->actions) && $this->dmde_read_gestion == 1) { demandes::demande_read($this->id_demande, true, "_gestion"); $this->fetch_data($this->id_demande, false); } print $form_consult_dmde; }
function extrait_info_notice($sql = "", $entete = 1, $flag = "") { global $dbh; global $dest; global $worksheet; global $myCart; global $entete_bloc; global $msg; global $debligne_excel; global $etat_table; // permet de savoir si les tag table sont ouverts ou fermés global $max_aut; // le nombre max de colonnes d'auteurs global $thesaurus_mode_pmb; global $thesaurus_defaut; global $lang; global $pmb_keyword_sep; global $max_perso; global $res_compte3; if (!$debligne_excel) { $debligne_excel = 0; } $res = @mysql_query($sql, $dbh); $nbr_lignes = @mysql_num_rows($res); $nbr_champs = @mysql_num_fields($res); if ($nbr_lignes) { // Pour les champs personnalisés $caddie_type = $myCart->type; switch ($caddie_type) { case 'EXPL': $libelle_caddie_type = "expl"; break; case 'NOTI': default: $libelle_caddie_type = "notices"; break; } switch ($dest) { case "TABLEAU": if ($entete) { $worksheet->write_string(1 + $debligne_excel, 0, $msg["caddie_mess_edition_" . $entete_bloc]); $debligne_excel++; $worksheet->write_string(1 + $debligne_excel, 0, $msg['caddie_action_marque']); for ($i = 0; $i < $nbr_champs; $i++) { // entête de colonnes $fieldname = mysql_field_name($res, $i); $worksheet->write_string(1 + $debligne_excel, $i + 1, $fieldname); } for ($i = 0; $i < $max_aut; $i++) { $worksheet->write_string(1 + $debligne_excel, $i * 6 + 1 + $nbr_champs, "aut_entree_{$i}"); $worksheet->write_string(1 + $debligne_excel, $i * 6 + 2 + $nbr_champs, "aut_rejete_{$i}"); $worksheet->write_string(1 + $debligne_excel, $i * 6 + 3 + $nbr_champs, "aut_dates_{$i}"); $worksheet->write_string(1 + $debligne_excel, $i * 6 + 4 + $nbr_champs, "aut_fonction_{$i}"); $worksheet->write_string(1 + $debligne_excel, $i * 6 + 5 + $nbr_champs, "aut_type_{$i}"); $worksheet->write_string(1 + $debligne_excel, $i * 6 + 6 + $nbr_champs, "aut_resp_type_{$i}"); } $worksheet->write_string(1 + $debligne_excel, $max_aut * 6 + $nbr_champs + 1, "DESCR"); for ($i = 0; $i < $max_perso; $i++) { $perso = mysql_fetch_object($res_compte3); $worksheet->write_string(1 + $debligne_excel, $max_aut * 6 + $nbr_champs + 2 + $i, $perso->titre); } $debligne_excel++; } //Fonctions d'auteurs $codes_auteurs = get_functions_authors(); for ($i = 0; $i < $nbr_lignes; $i++) { $debligne_excel++; $row = mysql_fetch_row($res); switch ($caddie_type) { case 'EXPL': $id_notice = $row[2]; break; case 'NOTI': default: $id_notice = $row[0]; break; } if ($flag) { $worksheet->write_string($debligne_excel, 0, "X"); } $j = 0; foreach ($row as $dummykey => $col) { if (!$col) { $col = " "; } $worksheet->write_string($debligne_excel, $j + 1, $col); $j++; } $rqt_aut = "SELECT author_name, author_rejete, author_date, responsability_fonction, author_type, responsability_type "; $rqt_aut .= "FROM responsability JOIN authors ON responsability_author=author_id "; $rqt_aut .= "WHERE responsability_notice={$id_notice} "; $rqt_aut .= "ORDER BY responsability_type ASC, responsability_ordre ASC"; $res_aut = @mysql_query($rqt_aut); for ($iaut = 0; $iaut < $max_aut; $iaut++) { $aut = @mysql_fetch_row($res_aut); $worksheet->write_string($debligne_excel, $iaut * 6 + 1 + $nbr_champs, $aut[0]); $worksheet->write_string($debligne_excel, $iaut * 6 + 2 + $nbr_champs, $aut[1]); $worksheet->write_string($debligne_excel, $iaut * 6 + 3 + $nbr_champs, $aut[2]); $worksheet->write_string($debligne_excel, $iaut * 6 + 4 + $nbr_champs, $codes_auteurs[$aut[3]]); if ($aut[4] == "70") { $lib_type_aut = $msg[203]; } else { if ($aut[4] == "71") { $lib_type_aut = $msg[204]; } else { if ($aut[4] == "72") { $lib_type_aut = $msg["congres_libelle"]; } else { $lib_type_aut = $aut[4]; } } } $worksheet->write_string($debligne_excel, $iaut * 6 + 5 + $nbr_champs, $lib_type_aut); $lib_resp_type = ""; if ($aut[0]) { if ($aut[5] == 0) { $lib_resp_type = $msg["export_main_author"]; } else { if ($aut[5] == 1) { $lib_resp_type = $msg["export_other_author"]; } else { if ($aut[5] == 2) { $lib_resp_type = $msg["export_secondary_author"]; } } } } $worksheet->write_string($debligne_excel, $iaut * 6 + 6 + $nbr_champs, $lib_resp_type); } $q = "drop table if exists catlg "; $r = mysql_query($q, $dbh); $q = "CREATE TEMPORARY TABLE catlg ENGINE=MyISAM as "; $q .= "SELECT categories.num_noeud, categories.libelle_categorie "; $q .= "FROM noeuds, categories, notices_categories "; $q .= "WHERE notices_categories.notcateg_notice = '" . $id_notice . "' "; $q .= "AND categories.langue = '" . $lang . "' "; $q .= "AND categories.num_noeud = notices_categories.num_noeud "; $q .= "AND categories.num_noeud = noeuds.id_noeud "; $q .= "ORDER BY ordre_categorie"; $r = mysql_query($q, $dbh); $q = "DROP TABLE IF EXISTS catdef "; $r = mysql_query($q, $dbh); $q = "CREATE TEMPORARY TABLE catdef ( "; $q .= "num_noeud int(9) unsigned not null default '0', "; $q .= "num_thesaurus int(3) unsigned not null default '0', "; $q .= "libelle_categorie text not null ) ENGINE=MyISAM "; $r = mysql_query($q, $dbh); $thes_list = thesaurus::getThesaurusList(); $q = ''; foreach ($thes_list as $id_thesaurus => $libelle_thesaurus) { $thes = new thesaurus($id_thesaurus); $q = "INSERT INTO catdef "; $q .= "SELECT categories.num_noeud, noeuds.num_thesaurus, categories.libelle_categorie "; $q .= "FROM noeuds, categories, notices_categories "; $q .= "WHERE noeuds.num_thesaurus={$id_thesaurus} and notices_categories.notcateg_notice = '" . $id_notice . "' "; $q .= "AND categories.langue = '" . $thes->langue_defaut . "' "; $q .= "AND categories.num_noeud = notices_categories.num_noeud "; $q .= "AND categories.num_noeud = noeuds.id_noeud "; $q .= "ORDER BY ordre_categorie"; $r = mysql_query($q, $dbh); } $q = "select catdef.num_thesaurus as num_thesaurus, "; $q .= "if (catlg.num_noeud is null, catdef.libelle_categorie, catlg.libelle_categorie) as libelle_categorie "; $q .= "from catdef left join catlg on catdef.num_noeud = catlg.num_noeud "; if (!$thesaurus_mode_pmb) { $q .= "where catdef.num_thesaurus = '" . $thesaurus_defaut . "' "; } $res_desc = mysql_query($q, $dbh); $lib_desc = ""; while ($desc = mysql_fetch_object($res_desc)) { $lib_desc .= $lib_desc ? $pmb_keyword_sep : ""; if ($thesaurus_mode_pmb) { $lib_desc .= '[' . thesaurus::getLibelle($desc->num_thesaurus) . '] '; } $lib_desc .= $desc->libelle_categorie; } $worksheet->write_string($debligne_excel, $max_aut * 6 + $nbr_champs + 1, "{$lib_desc}"); $p_perso = new parametres_perso($libelle_caddie_type); //Champs personalisés if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id_notice); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; $worksheet->write_string($debligne_excel, $max_aut * 6 + $nbr_champs + 2 + $i, html_entity_decode($p["AFF"], ENT_QUOTES | ENT_COMPAT, "iso-8859-15")); } } } break; case "TABLEAUHTML": if ($entete) { if ($etat_table) { echo "\n</table>"; } echo "<h3>" . $msg["caddie_mess_edition_" . $entete_bloc] . "</h3>"; echo "\n<table><th align='left'>" . $msg['caddie_action_marque'] . "</th>"; for ($i = 0; $i < $nbr_champs; $i++) { $fieldname = mysql_field_name($res, $i); print "<th align='left'>{$fieldname}</th>"; } for ($i = 0; $i < $max_aut; $i++) { print pmb_bidi("<th align='left'>aut_entree_{$i}</th>"); print pmb_bidi("<th align='left'>aut_rejete_{$i}</th>"); print pmb_bidi("<th align='left'>aut_dates_{$i}</th>"); print pmb_bidi("<th align='left'>aut_fonction_{$i}</th>"); print pmb_bidi("<th align='left'>aut_type_{$i}</th>"); print pmb_bidi("<th align='left'>aut_resp_type_{$i}</th>"); } print "<th align='left'>DESCR</th>"; for ($i = 0; $i < $max_perso; $i++) { $perso = mysql_fetch_object($res_compte3); print "<th align='left'>" . $perso->titre . "</th>"; } $etat_table = 1; } //Fonctions d'auteurs $codes_auteurs = get_functions_authors(); for ($i = 0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); switch ($caddie_type) { case 'EXPL': $id_notice = $row[2]; break; case 'NOTI': default: $id_notice = $row[0]; break; } echo "<tr>"; if ($flag) { print "<td>X</td>"; } else { print "<td> </td>"; } foreach ($row as $dummykey => $col) { if (is_numeric($col)) { $col = "'" . $col; } if (!$col) { $col = " "; } print pmb_bidi("<td>{$col}</td>"); } $rqt_aut = "SELECT author_name, author_rejete, author_date, responsability_fonction, author_type, responsability_type "; $rqt_aut .= "FROM responsability JOIN authors ON responsability_author=author_id "; $rqt_aut .= "WHERE responsability_notice={$id_notice} "; $rqt_aut .= "ORDER BY responsability_type ASC, responsability_ordre ASC"; $res_aut = @mysql_query($rqt_aut, $dbh); for ($i = 0; $i < $max_aut; $i++) { $aut = @mysql_fetch_row($res_aut); print pmb_bidi("<td>{$aut['0']}</td>"); print pmb_bidi("<td>{$aut['1']}</td>"); print pmb_bidi("<td>{$aut['2']}</td>"); print pmb_bidi("<td>" . $codes_auteurs[$aut[3]] . "</td>"); if ($aut[4] == "70") { $lib_type_aut = $msg[203]; } else { if ($aut[4] == "71") { $lib_type_aut = $msg[204]; } else { if ($aut[4] == "72") { $lib_type_aut = $msg["congres_libelle"]; } else { $lib_type_aut = $aut[4]; } } } print pmb_bidi("<td>{$lib_type_aut}</td>"); $lib_resp_type = ""; if ($aut[0]) { if ($aut[5] == 0) { $lib_resp_type = $msg["export_main_author"]; } else { if ($aut[5] == 1) { $lib_resp_type = $msg["export_other_author"]; } else { if ($aut[5] == 2) { $lib_resp_type = $msg["export_secondary_author"]; } } } } print pmb_bidi("<td>{$lib_resp_type}</td>"); } $q = "drop table if exists catlg "; $r = mysql_query($q, $dbh); $q = "create temporary table catlg ENGINE=MyISAM as "; $q .= "select categories.num_noeud, categories.libelle_categorie "; $q .= "from noeuds, categories, notices_categories "; $q .= "where notices_categories.notcateg_notice = '" . $id_notice . "' "; $q .= "and categories.langue = '" . $lang . "' "; $q .= "and categories.num_noeud = notices_categories.num_noeud "; $q .= "and categories.num_noeud = noeuds.id_noeud "; $q .= "ORDER BY ordre_categorie"; $r = mysql_query($q, $dbh); $q = "drop table if exists catdef "; $r = mysql_query($q, $dbh); $q = "create temporary table catdef ( "; $q .= "num_noeud int(9) unsigned not null default '0', "; $q .= "num_thesaurus int(3) unsigned not null default '0', "; $q .= "libelle_categorie text not null "; $q .= ") ENGINE=MyISAM "; $r = mysql_query($q, $dbh); $thes_list = thesaurus::getThesaurusList(); $q = ''; foreach ($thes_list as $id_thesaurus => $libelle_thesaurus) { $thes = new thesaurus($id_thesaurus); $q = "insert into catdef "; $q .= "select categories.num_noeud, noeuds.num_thesaurus, categories.libelle_categorie "; $q .= "from noeuds, categories, notices_categories "; $q .= "where noeuds.num_thesaurus={$id_thesaurus} and notices_categories.notcateg_notice = '" . $id_notice . "' "; $q .= "and categories.langue = '" . $thes->langue_defaut . "' "; $q .= "and categories.num_noeud = notices_categories.num_noeud "; $q .= "and categories.num_noeud = noeuds.id_noeud "; $q .= "ORDER BY ordre_categorie"; $r = mysql_query($q, $dbh); } $q = "select catdef.num_thesaurus as num_thesaurus, "; $q .= "if (catlg.num_noeud is null, catdef.libelle_categorie, catlg.libelle_categorie) as libelle_categorie "; $q .= "from catdef left join catlg on catdef.num_noeud = catlg.num_noeud "; if (!$thesaurus_mode_pmb) { $q .= "where catdef.num_thesaurus = '" . $thesaurus_defaut . "' "; } $res_desc = mysql_query($q, $dbh); $lib_desc = ""; while ($desc = mysql_fetch_object($res_desc)) { $lib_desc .= $lib_desc ? $pmb_keyword_sep : ""; if ($thesaurus_mode_pmb) { $lib_desc .= '[' . thesaurus::getLibelle($desc->num_thesaurus) . '] '; } $lib_desc .= $desc->libelle_categorie; } print pmb_bidi("<td>{$lib_desc}</td>"); $p_perso = new parametres_perso($libelle_caddie_type); //Champs personalisés if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id_notice); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; print "<td>" . $p["AFF"] . "</td>"; } } echo "</tr>"; } break; default: if ($entete) { if ($etat_table) { echo "\n</table>"; } echo "<h3>" . $msg["caddie_mess_edition_" . $entete_bloc] . "</h3>"; echo "\n<table><th align='left'>" . $msg['caddie_action_marque'] . "</th>"; for ($i = 0; $i < $nbr_champs; $i++) { $fieldname = mysql_field_name($res, $i); print "<th align='left'>{$fieldname}</th>"; } for ($i = 0; $i < $max_aut; $i++) { print pmb_bidi("<th align='left'>aut_entree_{$i}</th>"); print pmb_bidi("<th align='left'>aut_rejete_{$i}</th>"); print pmb_bidi("<th align='left'>aut_dates_{$i}</th>"); print pmb_bidi("<th align='left'>aut_fonction_{$i}</th>"); print pmb_bidi("<th align='left'>aut_type_{$i}</th>"); print pmb_bidi("<th align='left'>aut_resp_type_{$i}</th>"); } print "<th align='left'>DESCR</th>"; for ($i = 0; $i < $max_perso; $i++) { $perso = mysql_fetch_object($res_compte3); print "<th align='left'>" . $perso->titre . "</th>"; } $etat_table = 1; } //Fonctions d'auteurs $codes_auteurs = get_functions_authors(); $odd_even = 0; for ($i = 0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); switch ($caddie_type) { case 'EXPL': $id_notice = $row[2]; break; case 'NOTI': default: $id_notice = $row[0]; break; } if ($odd_even == 0) { echo "\t<tr class='odd'>"; $odd_even = 1; } else { if ($odd_even == 1) { echo "\t<tr class='even'>"; $odd_even = 0; } } if ($flag) { print "<td>X</td>"; } else { print "<td> </td>"; } foreach ($row as $dummykey => $col) { if (!$col) { $col = " "; } print pmb_bidi("<td>{$col}</td>"); } $rqt_aut = "SELECT author_name, author_rejete, author_date, responsability_fonction, author_type, responsability_type "; $rqt_aut .= "FROM responsability JOIN authors ON responsability_author=author_id "; $rqt_aut .= "WHERE responsability_notice={$id_notice} "; $rqt_aut .= "ORDER BY responsability_type ASC, responsability_ordre ASC"; $res_aut = @mysql_query($rqt_aut, $dbh); for ($i = 0; $i < $max_aut; $i++) { $aut = @mysql_fetch_row($res_aut); print pmb_bidi("<td>{$aut['0']}</td>"); print pmb_bidi("<td>{$aut['1']}</td>"); print pmb_bidi("<td>{$aut['2']}</td>"); print pmb_bidi("<td>" . $codes_auteurs[$aut[3]] . "</td>"); if ($aut[4] == "70") { $lib_type_aut = $msg[203]; } else { if ($aut[4] == "71") { $lib_type_aut = $msg[204]; } else { if ($aut[4] == "72") { $lib_type_aut = $msg["congres_libelle"]; } else { $lib_type_aut = $aut[4]; } } } print pmb_bidi("<td>{$lib_type_aut}</td>"); $lib_resp_type = ""; if ($aut[0]) { if ($aut[5] == 0) { $lib_resp_type = $msg["export_main_author"]; } else { if ($aut[5] == 1) { $lib_resp_type = $msg["export_other_author"]; } else { if ($aut[5] == 2) { $lib_resp_type = $msg["export_secondary_author"]; } } } } print pmb_bidi("<td>{$lib_resp_type}</td>"); } $q = "drop table if exists catlg "; $r = mysql_query($q, $dbh); $q = "create temporary table catlg ENGINE=MyISAM as "; $q .= "select categories.num_noeud, categories.libelle_categorie "; $q .= "from noeuds, categories, notices_categories "; $q .= "where notices_categories.notcateg_notice = '" . $id_notice . "' "; $q .= "and categories.langue = '" . $lang . "' "; $q .= "and categories.num_noeud = notices_categories.num_noeud "; $q .= "and categories.num_noeud = noeuds.id_noeud "; $q .= "ORDER BY ordre_categorie"; $r = mysql_query($q, $dbh); $q = "drop table if exists catdef "; $r = mysql_query($q, $dbh); $q = "create temporary table catdef ( "; $q .= "num_noeud int(9) unsigned not null default '0', "; $q .= "num_thesaurus int(3) unsigned not null default '0', "; $q .= "libelle_categorie text not null "; $q .= ") ENGINE=MyISAM "; $r = mysql_query($q, $dbh); $thes_list = thesaurus::getThesaurusList(); $q = ''; foreach ($thes_list as $id_thesaurus => $libelle_thesaurus) { $thes = new thesaurus($id_thesaurus); $q = "insert into catdef "; $q .= "select categories.num_noeud, noeuds.num_thesaurus, categories.libelle_categorie "; $q .= "from noeuds, categories, notices_categories "; $q .= "where noeuds.num_thesaurus={$id_thesaurus} and notices_categories.notcateg_notice = '" . $id_notice . "' "; $q .= "and categories.langue = '" . $thes->langue_defaut . "' "; $q .= "and categories.num_noeud = notices_categories.num_noeud "; $q .= "and categories.num_noeud = noeuds.id_noeud "; $q .= "ORDER BY ordre_categorie"; $r = mysql_query($q, $dbh); } $q = "select catdef.num_thesaurus as num_thesaurus, "; $q .= "if (catlg.num_noeud is null, catdef.libelle_categorie, catlg.libelle_categorie) as libelle_categorie "; $q .= "from catdef left join catlg on catdef.num_noeud = catlg.num_noeud "; if (!$thesaurus_mode_pmb) { $q .= "where catdef.num_thesaurus = '" . $thesaurus_defaut . "' "; } $res_desc = mysql_query($q, $dbh); $lib_desc = ""; while ($desc = mysql_fetch_object($res_desc)) { $lib_desc .= $lib_desc ? $pmb_keyword_sep : ""; if ($thesaurus_mode_pmb) { $lib_desc .= '[' . thesaurus::getLibelle($desc->num_thesaurus) . '] '; } $lib_desc .= $desc->libelle_categorie; } print pmb_bidi("<td>{$lib_desc}</td>"); $p_perso = new parametres_perso($libelle_caddie_type); //Champs personalisés if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id_notice); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; print "<td>" . $p["AFF"] . "</td>"; } } echo "</tr>"; } break; } // fin switch } // fin if nbr_lignes }
function expl_list($type, $id, $bull_id = 0, $build_ifempty = 1) { global $dbh; global $msg, $charset; global $expl_list_header, $expl_list_footer; global $opac_expl_data, $opac_expl_order, $opac_url_base; global $pmb_transferts_actif, $transferts_statut_transferts; global $memo_p_perso_expl; global $opac_show_empty_items_block; global $opac_show_exemplaires_analysis; global $expl_list_header_loc_tpl, $opac_aff_expl_localises; global $opac_sur_location_activate, $opac_view_filter_class; $nb_expl_autre_loc = 0; $nb_perso_aff = 0; // les dépouillements ou périodiques n'ont pas d'exemplaire if ($type == "a" && !$opac_show_exemplaires_analysis || $type == "s") { return ""; } if (!$memo_p_perso_expl) { $memo_p_perso_expl = new parametres_perso("expl"); } $header_found_p_perso = 0; if ($opac_sur_location_activate) { $opac_sur_location_select = ", sur_location.*"; $opac_sur_location_from = ", sur_location"; $opac_sur_location_where = " AND docs_location.surloc_num=sur_location.surloc_id"; } if ($opac_view_filter_class) { if (sizeof($opac_view_filter_class->params["nav_sections"])) { $opac_view_filter_where = " AND idlocation in (" . implode(",", $opac_view_filter_class->params["nav_sections"]) . ")"; } else { return ""; } } // les exemplaires des monographies if ($type == "m") { $requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* {$opac_sur_location_select}"; $requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders {$opac_sur_location_from}"; $requete .= " WHERE expl_notice='{$id}' and expl_bulletin='{$bull_id}'"; $requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1"; $requete .= $opac_sur_location_where; $requete .= $opac_view_filter_where; $requete .= " AND exemplaires.expl_location=docs_location.idlocation"; $requete .= " AND exemplaires.expl_section=docs_section.idsection "; $requete .= " AND exemplaires.expl_statut=docs_statut.idstatut "; $requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc "; $requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode "; $requete .= " AND exemplaires.expl_owner=lenders.idlender "; if ($opac_expl_order) { $requete .= " ORDER BY {$opac_expl_order} "; } $requete_resa = "SELECT count(1) from resa where resa_idnotice='{$id}' "; } // fin si "m" // les exemplaires des bulletins if ($type == "b") { $requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* {$opac_sur_location_select}"; $requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders {$opac_sur_location_from}"; $requete .= " WHERE expl_notice='0' and expl_bulletin='{$bull_id}'"; $requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1"; $requete .= $opac_sur_location_where; $requete .= $opac_view_filter_where; $requete .= " AND exemplaires.expl_location=docs_location.idlocation"; $requete .= " AND exemplaires.expl_section=docs_section.idsection "; $requete .= " AND exemplaires.expl_statut=docs_statut.idstatut "; $requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc "; $requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode "; $requete .= " AND exemplaires.expl_owner=lenders.idlender "; if ($opac_expl_order) { $requete .= " ORDER BY {$opac_expl_order} "; } $requete_resa = "SELECT count(1) from resa where resa_idbulletin='{$bull_id}' "; } // fin si "b" // les exemplaires des bulletins des articles affichés // ERICROBERT : A faire ici ! if ($type == "a" && $opac_show_exemplaires_analysis) { $requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* {$opac_sur_location_select}"; $requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders {$opac_sur_location_from}"; $requete .= " WHERE expl_notice='0' and expl_bulletin='{$bull_id}'"; $requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1"; $requete .= $opac_sur_location_where; $requete .= $opac_view_filter_where; $requete .= " AND exemplaires.expl_location=docs_location.idlocation"; $requete .= " AND exemplaires.expl_section=docs_section.idsection "; $requete .= " AND exemplaires.expl_statut=docs_statut.idstatut "; $requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc "; $requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode "; $requete .= " AND exemplaires.expl_owner=lenders.idlender "; if ($opac_expl_order) { $requete .= " ORDER BY {$opac_expl_order} "; } $requete_resa = "SELECT count(1) from resa where resa_idbulletin='{$bull_id}' "; } // fin si "a" // récupération du nombre d'exemplaires $res = mysql_query($requete, $dbh); if (!$build_ifempty && !mysql_num_rows($res)) { return ""; } $surloc_field = ""; if ($opac_sur_location_activate == 1) { $surloc_field = "surloc_libelle,"; } if (!$opac_expl_data) { $opac_expl_data = "expl_cb,expl_cote,tdoc_libelle," . $surloc_field . "location_libelle,section_libelle"; } $colonnesarray = explode(",", $opac_expl_data); $expl_list_header_deb = "<tr>"; for ($i = 0; $i < count($colonnesarray); $i++) { eval("\$colencours=\$msg['expl_header_" . $colonnesarray[$i] . "'];"); $expl_list_header_deb .= "<th class='expl_header_" . $colonnesarray[$i] . "'>" . htmlentities($colencours, ENT_QUOTES, $charset) . "</th>"; } $expl_list_header_deb .= "<th>{$msg['statut']}</th>"; $expl_liste = ""; $nb_resa = mysql_result(mysql_query($requete_resa, $dbh), 0, 0); while ($expl = mysql_fetch_object($res)) { $compteur = $compteur + 1; $expl_liste .= "<tr>"; $colencours = ""; for ($i = 0; $i < count($colonnesarray); $i++) { eval("\$colencours=\$expl->" . $colonnesarray[$i] . ";"); if ($colonnesarray[$i] == "location_libelle" && $expl->num_infopage) { if ($expl->surloc_id != "0") { $param_surloc = "&surloc=" . $expl->surloc_id; } else { $param_surloc = ""; } $expl_liste .= "<td class='" . $colonnesarray[$i] . "'><a href=\"" . $opac_url_base . "index.php?lvl=infopages&pagesid=" . $expl->num_infopage . "&location=" . $expl->expl_location . $param_surloc . "\" alt=\"" . $msg['location_more_info'] . "\" title=\"" . $msg['location_more_info'] . "\">" . htmlentities($colencours, ENT_QUOTES, $charset) . "</a></td>"; } else { $expl_liste .= "<td class='" . $colonnesarray[$i] . "'>" . htmlentities($colencours, ENT_QUOTES, $charset) . "</td>"; } } $requete_resa = "SELECT count(1) from resa where resa_cb='{$expl->expl_cb}' "; $flag_resa = mysql_result(mysql_query($requete_resa, $dbh), 0, 0); $requete_resa = "SELECT count(1) from resa_ranger where resa_cb='{$expl->expl_cb}' "; $flag_resa = $flag_resa + mysql_result(mysql_query($requete_resa, $dbh), 0, 0); $situation = ""; if ($expl->statut_libelle_opac != "") { $situation .= $expl->statut_libelle_opac . "<br />"; } if ($flag_resa) { $nb_resa--; $situation .= "<strong>{$msg['expl_reserve']}</strong>"; } else { if ($expl->pret_flag) { if ($expl->pret_retour) { // exemplaire sorti global $opac_show_empr; if ($opac_show_empr == 1 && $_SESSION["user_code"] || $opac_show_empr == 2) { $rqt_empr = "SELECT empr_nom, empr_prenom, id_empr, empr_cb FROM empr WHERE id_empr='{$expl->pret_idempr}' "; $res_empr = mysql_query($rqt_empr, $dbh); $res_empr_obj = mysql_fetch_object($res_empr); $situation .= $msg[entete_show_empr] . htmlentities(" {$res_empr_obj->empr_prenom} {$res_empr_obj->empr_nom}", ENT_QUOTES, $charset) . "<br />"; } $situation .= "<strong>{$msg['out_until']} " . formatdate($expl->pret_retour) . '</strong>'; // ****** Affichage de l'emprunteur } else { // pas sorti $situation .= "<strong>" . $msg['available'] . "</strong>"; } } else { // pas prêtable // exemplaire pas prêtable, on affiche juste "exclu du pret" if ($pmb_transferts_actif == "1" && "" . $expl->expl_statut . "" == $transferts_statut_transferts) { $situation .= "<strong>" . $msg['reservation_lib_entransfert'] . "</strong>"; } else { $situation .= "<strong>" . $msg['exclu'] . "</strong>"; } } } // fin if else $flag_resa $expl_liste .= "<td class='expl_situation'>{$situation} </td>"; //Champs personalisés $perso_aff = ""; if (!$memo_p_perso_expl->no_special_fields) { $perso_ = $memo_p_perso_expl->show_fields($expl->expl_id); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($p['OPAC_SHOW']) { if (!$header_found_p_perso) { $header_perso_aff .= "<th class='expl_header_tdoc_libelle'>" . $p["TITRE_CLEAN"] . "</th>"; $nb_perso_aff++; } if ($p["AFF"]) { $perso_aff .= "<td class='p_perso'>" . $p["AFF"] . "</td>"; } else { $perso_aff .= "<td class='p_perso'> </td>"; } } } } $header_found_p_perso = 1; $expl_liste .= $perso_aff; $expl_liste .= "</tr>"; $expl_liste_all .= $expl_liste; if ($opac_aff_expl_localises && $_SESSION["empr_location"]) { if ($expl->expl_location == $_SESSION["empr_location"]) { $expl_liste_loc .= $expl_liste; } else { $nb_expl_autre_loc++; } } $expl_liste = ""; } // fin while //S'il y a des titres de champs perso dans les exemplaires if ($header_perso_aff) { $expl_list_header_deb .= $header_perso_aff; } if ($opac_aff_expl_localises && $_SESSION["empr_location"] && $nb_expl_autre_loc) { // affichage avec onglet selon la localisation if (!$expl_liste_loc) { $expl_liste_loc = "<tr class=even><td colspan='" . (count($colonnesarray) + 1 + $nb_perso_aff) . "'>" . $msg["no_expl"] . "</td></tr>"; } $expl_liste_all = str_replace("!!EXPL!!", $expl_list_header_deb . $expl_liste_all, $expl_list_header_loc_tpl); $expl_liste_all = str_replace("!!EXPL_LOC!!", $expl_list_header_deb . $expl_liste_loc, $expl_liste_all); $expl_liste_all = str_replace("!!mylocation!!", $_SESSION["empr_location_libelle"], $expl_liste_all); $expl_liste_all = str_replace("!!id!!", $id + $bull_id, $expl_liste_all); } else { // affichage de la liste d'exemplaires calculée ci-dessus if (!$expl_liste_all && $opac_show_empty_items_block == 1) { $expl_liste_all = $expl_list_header . $expl_list_header_deb . "<tr class=even><td colspan='" . (count($colonnesarray) + 1) . "'>" . $msg["no_expl"] . "</td></tr>" . $expl_list_footer; } elseif (!$expl_liste_all && $opac_show_empty_items_block == 0) { $expl_liste_all = ""; } else { $expl_liste_all = $expl_list_header . $expl_list_header_deb . $expl_liste_all . $expl_list_footer; } } return $expl_liste_all; }
function fetch_data() { global $dbh; global $msg; global $charset; global $val_list_empr; global $pmb_gestion_financiere, $pmb_gestion_abonnement, $pmb_gestion_tarif_prets, $pmb_gestion_amende; global $deflt_docs_location; if (!$this->id_empr || !$dbh) { return FALSE; } $requete = "SELECT e.*, c.libelle AS code1, s.libelle AS code2, es.statut_libelle AS empr_statut_libelle, allow_loan, allow_book, allow_opac, allow_dsi, allow_dsi_priv, allow_sugg, allow_prol, d.location_libelle as localisation, date_format(empr_date_adhesion, '" . $msg["format_date"] . "') as aff_empr_date_adhesion, date_format(empr_date_expiration, '" . $msg["format_date"] . "') as aff_empr_date_expiration FROM empr e left join docs_location as d on e.empr_location=d.idlocation, empr_categ c, empr_codestat s, empr_statut es "; $requete .= " WHERE e.id_empr='" . $this->id_empr . "' "; $requete .= " AND c.id_categ_empr=e.empr_categ"; $requete .= " AND s.idcode=e.empr_codestat"; $requete .= " AND es.idstatut=e.empr_statut"; $requete .= " LIMIT 1"; $result = pmb_mysql_query($requete, $dbh) or die(pmb_mysql_error() . " " . $requete); if (!pmb_mysql_num_rows($result)) { return FALSE; } $empr = pmb_mysql_fetch_object($result); // affectation des propriétés $this->empr_cb = $empr->empr_cb; // code barre emprunteur $this->empr_nom = $empr->empr_nom; // nom emprunteur $this->empr_prenom = $empr->empr_prenom; // prénom mprunteur $this->empr_adr1 = $empr->empr_adr1; // adresse ligne 1 $this->empr_adr2 = $empr->empr_adr2; // adresse ligne 2 $this->empr_cp = $empr->empr_cp; // code postal $this->empr_ville = $empr->empr_ville; // ville $this->empr_pays = $empr->empr_pays; // ville $this->empr_mail = $empr->empr_mail; // adresse email $this->empr_tel1 = $empr->empr_tel1; // téléphone 1 $this->empr_tel2 = $empr->empr_tel2; // téléphone 2 $this->empr_prof = $empr->empr_prof; // profession $this->empr_year = $empr->empr_year; // année de naissance $this->empr_categ = $empr->empr_categ; // catégorie emprunteur $this->empr_codestat = $empr->empr_codestat; // code statistique $this->empr_creation = $empr->empr_creation; // date de création $this->empr_modif = $empr->empr_modif; // date de modification $this->empr_sexe = $empr->empr_sexe; // sexe de l'emprunteur $this->empr_login = $empr->empr_login; // login pour services OPAC $this->empr_password = $empr->empr_password; // mot de passe OPAC $this->empr_ldap = $empr->empr_ldap; $this->type_abt = $empr->type_abt; // type d'abonnement $this->empr_location = $empr->empr_location; // localisation $this->empr_location_l = $empr->localisation; // localisation $this->date_fin_blocage = $empr->date_fin_blocage; // Date de fin de blocage de l'emprunteur $this->empr_statut = $empr->empr_statut; $this->empr_statut_l = $empr->empr_statut_libelle; $this->total_loans = $empr->total_loans; $this->date_adhesion = $empr->empr_date_adhesion; // début adhésion $this->date_expiration = $empr->empr_date_expiration; // fin adhésion $this->aff_date_adhesion = $empr->aff_empr_date_adhesion; // début adhésion $this->aff_date_expiration = $empr->aff_empr_date_expiration; // fin adhésion $this->empr_msg = $empr->empr_msg; // message emprunteur $this->cat_l = $empr->code1; // libellé catégorie emprunteur $this->cstat_l = $empr->code2; // libellé code statistique. voir ce bug avec Eric $this->allow_loan = $empr->allow_loan; $this->allow_book = $empr->allow_book; $this->allow_opac = $empr->allow_opac; $this->allow_dsi = $empr->allow_dsi; $this->allow_dsi_priv = $empr->allow_dsi_priv; $this->allow_sugg = $empr->allow_sugg; $this->allow_prol = $empr->allow_prol; global $selector_prop_ajout_caddie_empr, $empr_show_caddie; if ($empr_show_caddie) { $this->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=" . $this->id . "', 'cart', 600, 700, -2, -2, '{$selector_prop_ajout_caddie_empr}')\">"; } else { $this->img_ajout_empr_caddie = ""; } $this->lien_nom_prenom = "<a href='./circ.php?categ=pret&form_cb=" . rawurlencode($this->cb) . "'>{$this->nom}, {$this->prenom}</a>"; $date_blocage = array(); $date_blocage = explode("-", $this->date_fin_blocage); if (mktime(0, 0, 0, $date_blocage[1], $date_blocage[2], $date_blocage[0]) > time()) { $this->blocage_active = true; } //Groupes $requete = "select id_groupe, libelle_groupe from groupe, empr_groupe where empr_id='" . $this->id . "' and id_groupe=groupe_id"; $result = pmb_mysql_query($requete); if (pmb_mysql_num_rows($result)) { while ($grp_temp = pmb_mysql_fetch_object($result)) { $this->groupes[] = "<a href='./circ.php?categ=groups&action=showgroup&groupID=" . $grp_temp->id_groupe . "'>" . htmlentities($grp_temp->libelle_groupe, ENT_QUOTES, $charset) . "</a>"; } } else { $this->groupes = array(); } //Paramètres perso //Liste des champs $p_perso = new parametres_perso("empr"); $perso_ = $p_perso->show_fields($this->id_empr); $perso = ""; $class = "colonne3"; $c = 0; if (count($perso_["FIELDS"])) { for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; $perso .= "<div class='{$class}'>"; $perso .= "<div class='row'>" . $p["TITRE"]; $perso .= $p["AFF"] . "</div>"; $perso .= "</div>"; if ($c == 0) { $c = 1; } else { if ($c == 1) { $class = "colonne_suite"; $c = 2; } else { if ($c == 2) { $class = "colonne3"; $c = 0; } } } } $reste = 2 - $c; if ($c != 0) { for ($i = 0; $i < $reste; $i++) { $perso .= "<div class='colonne3'> </div>"; $c++; } $perso .= "<div class='colonne_suite'> </div>"; } } $this->perso = $perso; //Comptes si gestion financiere if ($pmb_gestion_financiere) { $compte = ""; $n_c = 0; $neg = "<span class='erreur'>%s</span>"; $pos = "%s"; $compte .= "<div class='row'><hr /></div><div class='row'>"; if ($pmb_gestion_abonnement) { $cpt_id = comptes::get_compte_id_from_empr($this->id, 1); $cpt = new comptes($cpt_id); $solde = $cpt->update_solde(); $novalid = $cpt->summarize_transactions("", "", 0, 0); if ($cpt_id) { $compte .= "<div class='colonne3'><div><strong><a href='./circ.php?categ=pret&sub=compte&id=" . $this->id . "&typ_compte=1'>" . $msg["finance_solde_abt"] . "</a></strong> " . comptes::format($solde) . "</div>"; if ($novalid) { $compte .= "<div>" . $msg["finance_not_validated"] . " : " . comptes::format($novalid) . "</div>"; } $compte .= "</div>"; } $n_c++; } if ($pmb_gestion_tarif_prets) { $cpt_id = comptes::get_compte_id_from_empr($this->id, 3); $cpt = new comptes($cpt_id); $solde = $cpt->update_solde(); $novalid = $cpt->summarize_transactions("", "", 0, 0); if ($cpt_id) { $compte .= "<div class='colonne3'><div><strong><a href='./circ.php?categ=pret&sub=compte&id=" . $this->id . "&typ_compte=3'>" . $msg["finance_solde_pret"] . "</a></strong> " . comptes::format($solde) . "</div>"; if ($novalid) { $compte .= "<div>" . $msg["finance_not_validated"] . " : " . comptes::format($novalid) . "</div>"; } $compte .= "</div>"; } $n_c++; } if ($pmb_gestion_amende) { $cpt_id = comptes::get_compte_id_from_empr($this->id, 2); $cpt = new comptes($cpt_id); $solde = $cpt->update_solde(); $novalid = $cpt->summarize_transactions("", "", 0, 0); if ($cpt_id) { //Calcul des amendes $amende = new amende($this->id); $total_amende = $amende->get_total_amendes(); $compte .= "<div class='colonne3'><div><strong><a href='./circ.php?categ=pret&sub=compte&id=" . $this->id . "&typ_compte=2'>" . $msg["finance_solde_amende"] . "</a></strong> " . comptes::format($solde) . "</div>"; if ($novalid) { $compte .= "<div>" . $msg["finance_not_validated"] . " : " . comptes::format($novalid) . "</div>"; } if ($total_amende) { $compte .= "<div> " . $msg["finance_pret_amende_en_cours"] . " : " . comptes::format($total_amende) . "</div>"; } $compte .= "</div>"; } $n_c++; } if ($n_c < 2) { for ($i = $n_c; $i < 3; $i++) { $compte .= "<div class='colonne3'> </div>"; } } $compte .= "</div><div class='row'></div>"; } $this->compte = $compte; }
function do_form_retour($action_piege = 0, $piege_resa = 0) { global $msg, $dbh, $form_retour_tpl, $script_magnetique, $pmb_antivol, $deflt_docs_location, $pmb_transferts_actif; global $transferts_retour_origine, $transferts_retour_origine_force; global $script_antivol_rfid, $pmb_rfid_activate, $pmb_rfid_serveur_url, $transferts_retour_action_defaut; global $expl_section, $retour_ok_tpl, $retour_intouvable_tpl, $categ; global $pmb_resa_retour_action_defaut, $pmb_hide_retdoc_loc_error; global $alert_sound_list, $pmb_play_pret_sound, $pmb_lecteurs_localises; global $pmb_resa_planning, $pmb_location_resa_planning; global $pmb_pret_groupement; global $pmb_expl_show_lastempr; global $transferts_retour_action_autorise_autre; global $transferts_validation_actif; $form_retour_tpl_temp = $form_retour_tpl; if (!$this->expl_id) { // l'exemplaire est inconnu $this->expl_form = "<div class='erreur'>" . $this->expl_cb . " : {$msg[367]}</div>"; // Ajouter ici la recherche empr if ($this->expl_cb) { // on a un code-barres, est-ce un cb empr ? $query_empr = "select id_empr, empr_cb from empr where empr_cb='" . $this->expl_cb . "' "; $result_empr = pmb_mysql_query($query_empr, $dbh); if (pmb_mysql_num_rows($result_empr)) { $this->expl_form .= "<script type=\"text/javascript\">document.location='./circ.php?categ=pret&form_cb={$this->expl_cb}'</script>"; } } $alert_sound_list[] = "information"; return false; } // En retour de document, si pas en prêt, on n'effectue plus aucun traitement (transfert, résa...) $expl_no_checkout = 0; $query = "select * from pret where pret_idexpl=" . $this->expl_id; $res = pmb_mysql_query($query, $dbh); if (!pmb_mysql_num_rows($res) && $categ != "ret_todo" && !$piege_resa && !$action_piege) { $alert_sound_list[] = "critique"; $expl_no_checkout = 1; } else { $this->expl->expl_location_origine = $this->expl->expl_location; // sera recalculer dans si transferts actif } // if($pmb_lecteurs_localises) { if (!$expl_no_checkout && $this->expl->expl_location != $deflt_docs_location && !$piege_resa && $deflt_docs_location) { // l'exemplaire n'appartient pas à cette localisation if ($pmb_transferts_actif == "1" && !isset($action_piege)) { // transfert actif et pas de forcage effectué if (transfert::is_retour_exemplaire_loc_origine($this->expl_id)) { $action_piege = 0; // l'action par défaut résoud le pb //est ce qu'on peut force le retour en local } elseif ($transferts_retour_origine == "1" && $transferts_retour_origine_force == "0") { //pas de forcage possible, on interdit le retour $question_form = "<div class='message_important'><br />" . str_replace("!!lib_localisation!!", $this->info_doc->location, $msg["transferts_circ_retour_emprunt_erreur_localisation"]) . "<br /></div>"; $alert_sound_list[] = "critique"; $this->piege = 2; } elseif ($transferts_retour_action_autorise_autre == 1) { //formulaire de Quoi faire? $selected[$transferts_retour_action_defaut] = " checked "; $question_form = "\n\t\t\t\t\t\t<form name='piege' method='post' action='" . $this->url . "&form_cb_expl=" . rawurlencode(stripslashes($this->expl_cb)) . "' >\n\t\t\t\t\t\t<div class='message_important'><br />" . str_replace("!!lib_localisation!!", $this->info_doc->location, $msg["transferts_circ_retour_emprunt_erreur_localisation"]) . "<br />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class='erreur'>\n\t\t\t\t\t\t\t<input type=\"radio\" name=\"action_piege\" value=\"0\" {$selected['2']}> " . $msg["transferts_circ_retour_accepter_retour"] . "<br />\n\t\t\t\t\t\t\t<input type=\"radio\" name=\"action_piege\" value=\"2\" {$selected['1']}> " . $msg["transferts_circ_retour_changer_loc"] . " " . $this->get_liste_section() . "<br />\n\t\t\t\t\t\t\t<input type=\"radio\" name=\"action_piege\" value=\"3\" {$selected['0']}> " . $msg["transferts_circ_retour_traiter_plus_tard"] . "<br />\n\t\t\t\t\t\t\t<input type=\"submit\" class=\"bouton\" value=\"" . $msg["transferts_circ_retour_exec_action"] . "\" >\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</form>"; $alert_sound_list[] = "question"; $this->piege = 1; } else { $action_piege = 0; $alert_sound_list[] = "information"; } /* }else{ $action_piege=1; $alert_sound_list[]="information"; } */ } elseif (!$pmb_transferts_actif) { if (!$pmb_hide_retdoc_loc_error) { // pas de message et le retour se fait } elseif ($pmb_hide_retdoc_loc_error == 1) { // Message et pas de retour $this->expl_form = "<div class='erreur'><br />" . str_replace("!!lib_localisation!!", $this->info_doc->location, $msg["transferts_circ_retour_emprunt_erreur_localisation"]) . "<br /></div>"; $alert_sound_list[] = "critique"; return false; } elseif ($pmb_hide_retdoc_loc_error == 2) { // Message et pas de retour $question_form = "<div class='erreur'><br />" . str_replace("!!lib_localisation!!", $this->info_doc->location, $msg["transferts_circ_retour_emprunt_erreur_localisation"]) . "<br /></div>"; $alert_sound_list[] = "information"; } } } //fin si lecteur localisé // } if ($pmb_pret_groupement) { if ($id_group = groupexpls::get_group_expl($this->expl_cb)) { // ce document appartient à un groupe $is_doc_group = 1; $groupexpl = new groupexpl($id_group); $question_form .= $groupexpl->get_confirm_form($this->expl_cb); } } //affichage de l'erreur de site et eventuellement du formulaire de forcage $form_retour_tpl_temp = str_replace('!!html_erreur_site_tpl!!', $question_form, $form_retour_tpl_temp); if (!$expl_no_checkout && $pmb_transferts_actif == "1" && !$this->piege) { $trans = new transfert(); $trans->est_retournable($this->expl_id); $this->expl->expl_location_origine = $trans->location_origine; switch ($action_piege) { case '1': //issu d'une autre localisation: accepter le retour if ($this->expl->pret_idempr) { $message_del_pret = $this->del_pret(); } $this->calcul_resa(); if ($this->flag_resa_is_affecte) { $message_resa = "<div class='erreur'>" . $msg["circ_retour_ranger_resa"] . "</div>"; global $charset; $requete = "SELECT empr_cb, empr_nom, empr_prenom, location_libelle, resa_cb FROM resa JOIN empr ON resa_idempr=id_empr JOIN docs_location ON resa_loc_retrait=idlocation WHERE id_resa=" . $this->id_resa . ""; $res = pmb_mysql_query($requete); $message_resa .= "<div class='row'>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_resa_par"] . " : </strong><a href='./circ.php?categ=pret&form_cb=" . rawurlencode(pmb_mysql_result($res, 0, 0)) . "'>" . htmlentities(pmb_mysql_result($res, 0, 2), ENT_QUOTES, $charset) . " " . htmlentities(pmb_strtoupper(pmb_mysql_result($res, 0, 1), ENT_QUOTES, $charset), $charset) . "</a></span><br/>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_loc_retrait"] . " : </strong>" . htmlentities(pmb_mysql_result($res, 0, 3), ENT_QUOTES, $charset) . "</span><br/>"; $message_resa .= "</div>"; $alert_sound_list[] = "information"; } if ($this->flag_resa_ici) { } elseif ($this->flag_resa_origine) { //Gen retour sur site origine $param = $trans->retour_exemplaire_genere_transfert_retour($this->expl_id); $message_transfert = "<div class='erreur'>" . str_replace("!!lbl_site!!", $this->info_doc->location, $msg["transferts_circ_retour_lbl_transfert"]) . "</div>"; } elseif ($this->flag_resa_autre_site) { //Gen retour sur autre site.... // Pour l'instant on retourne au site d'origine $param = $trans->retour_exemplaire_genere_transfert_retour($this->expl_id); $message_transfert = "<div class='erreur'>" . str_replace("!!lbl_site!!", $this->info_doc->location, $msg["transferts_circ_retour_lbl_transfert"]) . "</div>"; } else { // pas de résa on genère un retour au site d'origine $param = $trans->retour_exemplaire_genere_transfert_retour($this->expl_id); $message_transfert = "<div class='erreur'>" . str_replace("!!lbl_site!!", $this->info_doc->location, $msg["transferts_circ_retour_lbl_transfert"]) . "</div>"; } $rqt = "UPDATE exemplaires SET expl_location=" . $deflt_docs_location . " WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); break; case '3': // A traiter plus tard if ($this->expl->pret_idempr) { $message_del_pret = $this->del_pret(); } $this->piege = 1; break; case '4': // retour sur le site d'origne, il faut nettoyer $param = $trans->retour_exemplaire_loc_origine($this->expl_id); if ($this->expl->pret_idempr) { $message_del_pret = $this->del_pret(); } $this->calcul_resa(); break; case '2': //issu d'une autre localisation: changer la loc, effacer les transfert //$trans->retour_exemplaire_supprime_transfert( $this->expl_id, $param ); //change la localisation d'origine $param = $trans->retour_exemplaire_change_localisation($this->expl_id); $rqt = "update transferts_source SET trans_source_numloc=" . $deflt_docs_location . " where trans_source_numexpl=" . $this->expl_id; pmb_mysql_query($rqt); // modif de la section, si demandée if ($expl_section && $expl_section != $this->expl->expl_section) { $rqt = "UPDATE exemplaires SET expl_section={$expl_section}, transfert_section_origine={$expl_section} WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); } // $rqt = "UPDATE exemplaires SET transfert_location_origine =" . $deflt_docs_location . " WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); // pas de break; on fait le reste du traitement par défaut // pas de break; on fait le reste du traitement par défaut default: if ($this->expl->pret_idempr) { $message_del_pret = $this->del_pret(); } $resa_id = $this->calcul_resa(); if ($this->flag_resa_is_affecte) { $message_resa = "<div class='erreur'>" . $msg["circ_retour_ranger_resa"] . "</div>"; global $charset; $requete = "SELECT empr_cb, empr_nom, empr_prenom, location_libelle, resa_cb FROM resa JOIN empr ON resa_idempr=id_empr JOIN docs_location ON resa_loc_retrait=idlocation WHERE id_resa=" . $this->id_resa . ""; $res = pmb_mysql_query($requete); $message_resa .= "<div class='row'>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_resa_par"] . " : </strong><a href='./circ.php?categ=pret&form_cb=" . rawurlencode(pmb_mysql_result($res, 0, 0)) . "'>" . htmlentities(pmb_mysql_result($res, 0, 2), ENT_QUOTES, $charset) . " " . htmlentities(pmb_strtoupper(pmb_mysql_result($res, 0, 1)), ENT_QUOTES, $charset) . "</a></span><br/>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_loc_retrait"] . " : </strong>" . htmlentities(pmb_mysql_result($res, 0, 3), ENT_QUOTES, $charset) . "</span><br/>"; $message_resa .= "</div>"; $alert_sound_list[] = "information"; } if ($this->flag_resa_ici) { } elseif ($this->flag_resa_origine) { /* //Gen retour sur site origine if(!$trans->est_retournable($this->expl_id)) { // si pas encore généré $param = $trans->retour_exemplaire_genere_transfert_retour($this->expl_id); $message_transfert= "<div class='erreur'>" . str_replace("!!lbl_site!!",$this->info_doc->location,$msg["transferts_circ_retour_lbl_transfert"]) . "</div>"; } else { // le retour est déjà généré $message_transfert = "<hr /><div class='erreur'>".$msg["transferts_circ_menu_titre"].":</div><div class='message_important'>". str_replace("!!source_location!!", $trans->location_libelle_source,$msg["transferts_circ_retour_a_retourner"])."</div>"; $alert_sound_list[]="information"; } */ if ($trans->est_retournable($this->expl_id)) { $num_trans = $trans->retour_exemplaire_genere_transfert_retour_origine($this->expl_id); // netoyer les transferts intermédiaires if ($num_trans) { $message_transfert = "<hr /><div class='erreur'>" . $msg["transferts_circ_menu_titre"] . ":</div><div class='message_important'><br />" . str_replace("!!source_location!!", $trans->location_libelle_origine, $msg["transferts_circ_retour_a_retourner"]) . "<br /><br /></div>"; $alert_sound_list[] = "information"; } } else { // A ranger } } elseif ($this->flag_resa_autre_site) { // si résa autre site à déja une demande de transfert, ou transfert $req = "select * from transferts, transferts_demande where num_transfert=id_transfert and resa_trans='{$resa_id}' and etat_transfert=0"; $r = pmb_mysql_query($req, $dbh); if (!pmb_mysql_num_rows($r)) { $trans->memo_origine($this->expl_id); $rqt = "UPDATE exemplaires SET expl_location=" . $deflt_docs_location . " WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); // cloture des transferts précédant pour ne pas qu'il se retrouve à la fois en envoi et en retour sur le site $rqt = "update transferts,transferts_demande, exemplaires set etat_transfert=1\r\n\t\t\t\t\t\tWHERE id_transfert=num_transfert and num_expl=expl_id and etat_transfert=0 AND expl_cb='" . $this->expl_cb . "' "; pmb_mysql_query($rqt); //Gen transfert sur site de la résa.... $param = $trans->transfert_pour_resa($this->expl_cb, $this->resa_loc_trans, $resa_id); // récupération localisation exemplaire $query = "SELECT location_libelle FROM docs_location WHERE idlocation=" . $this->resa_loc_trans . " LIMIT 1"; $result = pmb_mysql_query($query, $dbh); $info_loc = pmb_mysql_fetch_object($result); if ($transferts_validation_actif) { $message_transfert = "<div class='erreur'><br />" . str_replace("!!site_dest!!", $info_loc->location_libelle, $msg["transferts_circ_transfert_pour_resa"]) . "<br /><br /></div>"; } else { $message_transfert = "<div class='erreur'><br />" . str_replace("!!source_location!!", $info_loc->location_libelle, $msg["transferts_circ_retour_lbl_transfert"]) . "<br /><br /></div>"; } } } else { // pas de résa.Doit-il être retourné à son site d'origine? if ($trans->est_retournable($this->expl_id)) { $num_trans = $trans->retour_exemplaire_genere_transfert_retour_origine($this->expl_id); // netoyer les transferts intermédiaires if ($num_trans) { $message_transfert = "<hr /><div class='erreur'>" . $msg["transferts_circ_menu_titre"] . ":</div><div class='message_important'><br />" . str_replace("!!source_location!!", $trans->location_libelle_origine, $msg["transferts_circ_retour_a_retourner"]) . "<br /><br /></div>"; $alert_sound_list[] = "information"; } else { $rqt = "UPDATE exemplaires SET expl_location=" . $deflt_docs_location . " WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); } } else { $rqt = "UPDATE exemplaires SET expl_location=" . $deflt_docs_location . " WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); // A ranger } } $rqt = "UPDATE exemplaires SET expl_location=" . $deflt_docs_location . " WHERE expl_id=" . $this->expl_id; pmb_mysql_query($rqt); //vérifions s'il y a des réservations prévisionnelles sur ce document.. if ($pmb_resa_planning) { $this->calcul_resa_planning(); if ($this->flag_resa_planning_is_affecte) { global $charset; $message_resa_planning = "<div class='erreur'>{$msg['resas_planning']}</div>"; $message_resa_planning .= "<div class='row'>\n\t\t\t\t\t\t\t<img src='./images/plus.gif' class='img_plus'\n\t\t\t\t\t\t\tonClick=\"\n\t\t\t\t\t\t\t\tvar elt=document.getElementById('erreur-child');\n\t\t\t\t\t\t\t\tvar vis=elt.style.display;\n\t\t\t\t\t\t\t\tif (vis=='block'){\n\t\t\t\t\t\t\t\t\telt.style.display='none';\n\t\t\t\t\t\t\t\t\tthis.src='./images/plus.gif';\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\telt.style.display='block';\n\t\t\t\t\t\t\t\t\tthis.src='./images/minus.gif';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\" /> " . htmlentities($msg['resa_planning_encours'], ENT_QUOTES, $charset) . " <a href='./circ.php?categ=pret&form_cb=" . rawurlencode($reservataire_empr_cb) . "'>" . $reservataire_nom_prenom . "</a><br />"; //Affichage des réservations prévisionnelles sur le document courant $q = "SELECT id_resa, resa_idnotice, resa_date, resa_date_debut, resa_date_fin, resa_validee, IF(resa_date_fin>=sysdate() or resa_date_fin='0000-00-00',0,1) as perimee, date_format(resa_date_fin, '" . $msg["format_date_sql"] . "') as aff_date_fin, "; $q .= "resa_idempr, concat(lower(empr_prenom), ' ',upper(empr_nom)) as resa_nom, if(resa_idempr!='" . $this->expl->pret_idempr . "', 0, 1) as resa_same "; $q .= "FROM resa_planning left join empr on resa_idempr=id_empr "; $q .= "where resa_idnotice in (select expl_notice from exemplaires where expl_cb = '" . $this->expl_cb . "') "; if ($pmb_location_resa_planning) { $q .= "and empr_location in (select expl_location from exemplaires where expl_cb = '" . $this->expl_cb . "') "; } $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $message_resa_planning .= "<div id='erreur-child' class='erreur-child'>"; while ($resa = pmb_mysql_fetch_array($r)) { $id_resa = $resa['id_resa']; $resa_idempr = $resa['resa_idempr']; $resa_idnotice = $resa['resa_idnotice']; $resa_date = $resa['resa_date']; $resa_date_debut = $resa['resa_date_debut']; $resa_date_fin = $resa['resa_date_fin']; $resa_validee = $resa['resa_validee']; $resa_nom = $resa['resa_nom']; $resa_same = $resa['resa_same']; if ($resa_idempr == $id_empr) { $message_resa_planning .= "<b>" . htmlentities($resa_nom, ENT_QUOTES, $charset) . " </b>"; } else { $message_resa_planning .= htmlentities($resa_nom, ENT_QUOTES, $charset) . " "; } $message_resa_planning .= " >> <b>" . $msg['resa_planning_date_debut'] . "</b> " . formatdate($resa_date_debut) . " <b>" . $msg['resa_planning_date_fin'] . "</b> " . formatdate($resa_date_fin) . " "; if (!$resa['perimee']) { if ($resa['resa_validee']) { $message_resa_planning .= " " . $msg['resa_validee']; } else { $message_resa_planning .= " " . $msg['resa_attente_validation'] . " "; } } else { $message_resa_planning .= " " . $msg['resa_overtime'] . " "; } $message_resa_planning .= "<br />"; } //while $message_resa_planning .= "</div></div>"; $alert_sound_list[] = "information"; } } } break; } } if (!$expl_no_checkout && !$pmb_transferts_actif) { if ($this->expl->pret_idempr) { $message_del_pret = $this->del_pret(); } $this->calcul_resa(); if ($this->flag_resa_is_affecte) { $message_resa = "<div class='erreur'>" . $msg["circ_retour_ranger_resa"] . "</div>"; global $charset; $requete = "SELECT empr_cb, empr_nom, empr_prenom, location_libelle, resa_cb FROM resa JOIN empr ON resa_idempr=id_empr JOIN docs_location ON resa_loc_retrait=idlocation WHERE id_resa=" . $this->id_resa . ""; $res = pmb_mysql_query($requete); $message_resa .= "<div class='row'>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_resa_par"] . " : </strong><a href='./circ.php?categ=pret&form_cb=" . rawurlencode(pmb_mysql_result($res, 0, 0)) . "'>" . htmlentities(pmb_mysql_result($res, 0, 2), ENT_QUOTES, $charset) . " " . pmb_strtoupper(htmlentities(pmb_mysql_result($res, 0, 1), ENT_QUOTES, $charset), $charset) . "</a></span><br/>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_loc_retrait"] . " : </strong>" . htmlentities(pmb_mysql_result($res, 0, 3), ENT_QUOTES, $charset) . "</span><br/>"; $message_resa .= "</div>"; $alert_sound_list[] = "information"; } if ($pmb_resa_planning) { $this->calcul_resa_planning(); if ($this->flag_resa_planning_is_affecte) { global $charset; $message_resa_planning = "<div class='erreur'>{$msg['resas_planning']}</div>"; $message_resa_planning .= "<div class='row'>\n\t\t\t\t\t<img src='./images/plus.gif' class='img_plus'\n\t\t\t\t\tonClick=\"\n\t\t\t\t\t\tvar elt=document.getElementById('erreur-child');\n\t\t\t\t\t\tvar vis=elt.style.display;\n\t\t\t\t\t\tif (vis=='block'){\n\t\t\t\t\t\t\telt.style.display='none';\n\t\t\t\t\t\t\tthis.src='./images/plus.gif';\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telt.style.display='block';\n\t\t\t\t\t\t\tthis.src='./images/minus.gif';\n\t\t\t\t\t\t}\n\t\t\t\t\t\" /> " . htmlentities($msg['resa_planning_encours'], ENT_QUOTES, $charset) . " <a href='./circ.php?categ=pret&form_cb=" . rawurlencode($reservataire_empr_cb) . "'>" . $reservataire_nom_prenom . "</a><br />"; //Affichage des réservations prévisionnelles sur le document courant $q = "SELECT id_resa, resa_idnotice, resa_date, resa_date_debut, resa_date_fin, resa_validee, IF(resa_date_fin>=sysdate() or resa_date_fin='0000-00-00',0,1) as perimee, date_format(resa_date_fin, '" . $msg["format_date_sql"] . "') as aff_date_fin, "; $q .= "resa_idempr, concat(lower(empr_prenom), ' ',upper(empr_nom)) as resa_nom, if(resa_idempr!='" . $this->expl->pret_idempr . "', 0, 1) as resa_same "; $q .= "FROM resa_planning left join empr on resa_idempr=id_empr "; $q .= "where resa_idnotice in (select expl_notice from exemplaires where expl_cb = '" . $this->expl_cb . "') "; if ($pmb_location_resa_planning) { $q .= "and empr_location in (select expl_location from exemplaires where expl_cb = '" . $this->expl_cb . "') "; } $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $message_resa_planning .= "<div id='erreur-child' class='erreur-child'>"; while ($resa = pmb_mysql_fetch_array($r)) { $id_resa = $resa['id_resa']; $resa_idempr = $resa['resa_idempr']; $resa_idnotice = $resa['resa_idnotice']; $resa_date = $resa['resa_date']; $resa_date_debut = $resa['resa_date_debut']; $resa_date_fin = $resa['resa_date_fin']; $resa_validee = $resa['resa_validee']; $resa_nom = $resa['resa_nom']; $resa_same = $resa['resa_same']; if ($resa_idempr == $id_empr) { $message_resa_planning .= "<b>" . htmlentities($resa_nom, ENT_QUOTES, $charset) . " </b>"; } else { $message_resa_planning .= htmlentities($resa_nom, ENT_QUOTES, $charset) . " "; } $message_resa_planning .= " >> <b>" . $msg['resa_planning_date_debut'] . "</b> " . formatdate($resa_date_debut) . " <b>" . $msg['resa_planning_date_fin'] . "</b> " . formatdate($resa_date_fin) . " "; if (!$resa['perimee']) { if ($resa['resa_validee']) { $message_resa_planning .= " " . $msg['resa_validee']; } else { $message_resa_planning .= " " . $msg['resa_attente_validation'] . " "; } } else { $message_resa_planning .= " " . $msg['resa_overtime'] . " "; } $message_resa_planning .= "<br />"; } //while $message_resa_planning .= "</div></div>"; $alert_sound_list[] = "information"; } } } } if (!$expl_no_checkout && !$this->piege) { if ($this->flag_resa_ici && !$piege_resa) { $query = "SELECT empr_location,empr_prenom, empr_nom, empr_cb FROM resa INNER JOIN empr ON resa_idempr = id_empr WHERE id_resa='" . $this->id_resa_to_validate . "'"; $result = pmb_mysql_query($query, $dbh); $empr = @pmb_mysql_fetch_object($result); $info_resa = "<div class='message_important'>{$msg['352']}</div>\n\t\t\t<div class='row'>" . $msg[373] . " <strong><a href='./circ.php?categ=pret&form_cb=" . rawurlencode($empr->empr_cb) . "'>" . $empr->empr_prenom . " " . $empr->empr_nom . "</a></strong> ({$empr->empr_cb} )\n\t\t\t</div>"; if ($categ == "ret_todo" || $pmb_resa_retour_action_defaut == 1) { $checked[1] = "checked"; } else { $checked[2] = "checked"; } $question_resa = "\n\t\t\t\t<form name='piege' method='post' action='" . $this->url . "&form_cb_expl=" . rawurlencode($this->expl_cb) . "' >\n\t\t\t\t{$info_resa}\n\t\t\t\t<div class='erreur'>\n\t\t\t\t\t<input type=\"radio\" name=\"piege_resa\" value=\"1\" {$checked['1']} > " . $msg["circ_retour_piege_resa_affecter"] . "<br />\n\t\t\t\t\t<input type=\"radio\" name=\"piege_resa\" value=\"2\" {$checked['2']} > " . $msg["transferts_circ_retour_traiter_plus_tard"] . "<br />\n\t\t\t\t\t<input type=\"submit\" class=\"bouton\" value=\"" . $msg["transferts_circ_retour_exec_action"] . "\" >\n\t\t\t\t</div>\n\t\t\t\t</form>"; $alert_sound_list[] = "question"; $this->piege_resa = 1; } elseif ($this->flag_resa_ici && $piege_resa == 1) { alert_empr_resa($this->affecte_resa()); $message_resa = "<div class='erreur'>" . $msg["circ_retour_ranger_resa"] . "</div>"; global $charset; $requete = "SELECT empr_cb, empr_nom, empr_prenom, location_libelle, resa_cb FROM resa JOIN empr ON resa_idempr=id_empr JOIN docs_location ON resa_loc_retrait=idlocation WHERE id_resa=" . $this->id_resa . ""; $res = pmb_mysql_query($requete); $message_resa .= "<div class='row'>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_resa_par"] . " : </strong><a href='./circ.php?categ=pret&form_cb=" . rawurlencode(pmb_mysql_result($res, 0, 0)) . "'>" . htmlentities(pmb_mysql_result($res, 0, 2), ENT_QUOTES, $charset) . " " . mb_strtoupper(htmlentities(pmb_mysql_result($res, 0, 1), ENT_QUOTES, $charset), $charset) . "</a></span><br/>"; $message_resa .= "<span style='margin-left:2em;'><strong>" . $msg["circ_retour_loc_retrait"] . " : </strong>" . htmlentities(pmb_mysql_result($res, 0, 3), ENT_QUOTES, $charset) . "</span><br/>"; $message_resa .= "</div>"; $alert_sound_list[] = "information"; } elseif ($this->flag_resa_ici) { $this->piege_resa = 1; } } if (!$expl_no_checkout && $this->piege || $this->piege_resa && $piege_resa != 1) { // 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); $form_retour_tpl_temp = str_replace('!!piege_resa_ici!!', $question_resa, $form_retour_tpl_temp); if ($this->expl->pret_idempr) { $this->empr = new emprunteur($this->expl->pret_idempr, "", FALSE, 2); } if ($pmb_rfid_activate && $pmb_rfid_serveur_url) { $form_retour_tpl_temp = str_replace('<!--antivol_script-->', $script_antivol_rfid, $form_retour_tpl_temp); $this->cb_tmpl = str_replace("//antivol_test//", "if(0)", $this->cb_tmpl); } elseif ($pmb_antivol > 0) { // gestion de l'antivol magnétique 3M if ($this->expl->type_antivol == 1) { // c'est un support non magnétique (livre, revue...) $script_magnetique = str_replace('<!--call_script_magnetique-->', "magnetise('RRR');", $script_magnetique); } if ($this->expl->type_antivol == 2) { //c'est un support magnétique (cassette) $script_magnetique = str_replace('<!--call_script_magnetique-->', "magnetise('SSS');", $script_magnetique); } $form_retour_tpl_temp = str_replace('<!--antivol_script-->', $script_magnetique, $form_retour_tpl_temp); } if ($this->flag_rendu && $pmb_play_pret_sound) { $alert_sound_list[] = "information"; } $form_retour_tpl_temp = str_replace('!!message_del_pret!!', $message_del_pret, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!message_resa!!', $message_resa, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!message_resa_planning!!', $message_resa_planning, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!message_transfert!!', $message_transfert, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!libelle!!', $this->expl->libelle, $form_retour_tpl_temp); // si la loc à été modifier: if ($pmb_transferts_actif) { // pour mettre les données modifiées à jour $this->fetch_data(); } $form_retour_tpl_temp = str_replace('!!type_doc!!', $this->info_doc->type_doc, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!location!!', $this->info_doc->location, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!section!!', $this->info_doc->section, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!statut!!', $this->info_doc->statut, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!expl_cote!!', $this->expl->expl_cote, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!expl_cb!!', $this->expl_cb, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!expl_owner!!', $this->expl_owner_name, $form_retour_tpl_temp); $form_retour_tpl_temp = str_replace('!!expl_id!!', $this->expl_id, $form_retour_tpl_temp); if ($this->flag_rendu) { $form_retour_tpl_temp = str_replace('!!message_retour!!', $retour_ok_tpl, $form_retour_tpl_temp); } elseif ($categ != "ret_todo" && !$piege_resa && !$this->piege) { $form_retour_tpl_temp = str_replace('!!message_retour!!', $retour_intouvable_tpl, $form_retour_tpl_temp); } else { $form_retour_tpl_temp = str_replace('!!message_retour!!', "", $form_retour_tpl_temp); } //Champs personalisés $p_perso = new parametres_perso("expl"); $perso_aff = ""; if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($this->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) { $perso_aff = "<div class='row'>" . $perso_aff . "</div>"; } $form_retour_tpl_temp = str_replace('!!perso_aff!!', $perso_aff, $form_retour_tpl_temp); if ($this->expl->expl_note) { $alert_sound_list[] = "critique"; $expl_note .= pmb_bidi("<hr /><div class='erreur'>{$msg[377]} :</div><div class='message_important'>" . $this->expl->expl_note . "</div>"); } $form_retour_tpl_temp = str_replace('!!expl_note!!', $expl_note, $form_retour_tpl_temp); if ($this->expl->expl_comment) { if (!$this->expl->expl_note) { $expl_comment .= pmb_bidi("<hr />"); } $expl_comment .= pmb_bidi("<div class='erreur'>{$msg[expl_zone_comment]} :</div><div class='expl_comment'>" . $this->expl->expl_comment . "</div>"); } $form_retour_tpl_temp = str_replace('!!expl_comment!!', $expl_comment, $form_retour_tpl_temp); // zone du dernier emrunteur if ($pmb_expl_show_lastempr && $this->expl->expl_lastempr) { $dernier_empr = "<hr /><div class='row'>{$msg['expl_prev_empr']} "; $link = "<a href='./circ.php?categ=pret&form_cb=" . rawurlencode($this->expl->lastempr_cb) . "'>"; $dernier_empr .= $link . $this->expl->lastempr_prenom . ' ' . $this->expl->lastempr_nom . ' (' . $this->expl->lastempr_cb . ')</a>'; $dernier_empr .= "</div><hr />"; } $form_retour_tpl_temp = str_replace('!!expl_lastempr!!', $dernier_empr, $form_retour_tpl_temp); if ($this->empr) { $expl_empr = pmb_bidi($this->empr->fiche_affichage); } $form_retour_tpl_temp = str_replace('!!expl_empr!!', $expl_empr, $form_retour_tpl_temp); $this->expl_form = $form_retour_tpl_temp; }
function expl_info_display($affichage_emprunteurs = 1, $affichage_zone_notes = 1) { global $msg, $expl_view_form, $pmb_expl_show_dates, $charset; $expl_aff = $expl_view_form; $expl_aff = str_replace('!!code_barre!!', htmlentities($this->expl_data->expl_cb, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!cote!!', htmlentities($this->expl_data->expl_cote, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!type_doc!!', htmlentities($this->expl_data->tdoc_libelle, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!localisation!!', htmlentities($this->expl_data->location_libelle, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!section!!', htmlentities($this->expl_data->section_libelle, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!owner!!', htmlentities($this->expl_data->lender_libelle, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!statut!!', htmlentities($this->expl_data->statut_libelle, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!codestat!!', htmlentities($this->expl_data->codestat_libelle, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!note!!', htmlentities($this->expl_data->expl_note, ENT_QUOTES, $charset), $expl_aff); $expl_aff = str_replace('!!comment!!', htmlentities($this->expl_data->expl_comment, ENT_QUOTES, $charset), $expl_aff); //on compte de nombre de prets pour cet exemplaire $req = "select count(arc_expl_id) as nb_prets from pret_archive where arc_expl_id = " . $this->expl_data->expl_id; $res = pmb_mysql_query($req); if (pmb_mysql_num_rows($res)) { $arch_pret = pmb_mysql_fetch_object($res); $nb_prets = $arch_pret->nb_prets; } else { $nb_prets = 0; } $expl_aff = str_replace('!!nb_prets!!', $nb_prets, $expl_aff); //Date de création / modification if ($pmb_expl_show_dates == '1' || $pmb_expl_show_dates == '3') { $tmp = "<tr>\n\t\t\t<td align='right'><label class='etiquette'>" . htmlentities($msg['exp_cre_date'], ENT_QUOTES, $charset) . "</label></td>\n\t\t\t<td align='left'>" . htmlentities(format_date($this->expl_data->create_date), ENT_QUOTES, $charset) . "</td>\n\t\t\t<td align='right'><label class='etiquette'>" . htmlentities($msg['exp_upd_date'], ENT_QUOTES, $charset) . "</label></td>\n\t\t\t<td align='left'>" . htmlentities(format_date($this->expl_data->update_date), ENT_QUOTES, $charset) . "</td>\t\t\t\t\t\n\t\t</tr>"; $expl_aff = str_replace('<!-- exp_date_admin -->', $tmp, $expl_aff); } //Date de dépôt / retour if ($pmb_expl_show_dates == '2' || $pmb_expl_show_dates == '3') { $tmp = "<tr>\n\t\t\t<td align='right'><label class='etiquette'>" . htmlentities($msg['filing_date'], ENT_QUOTES, $charset) . "</label></td>\n\t\t\t<td align='left'>" . htmlentities(format_date($this->expl_data->expl_date_depot), ENT_QUOTES, $charset) . "</td>\n\t\t\t<td align='right'><label class='etiquette'>" . htmlentities($msg['return_date'], ENT_QUOTES, $charset) . "</label></td>\n\t\t\t<td align='left'>" . htmlentities(format_date($this->expl_data->expl_date_retour), ENT_QUOTES, $charset) . "</td>\t\t\t\t\t\n\t\t</tr>"; $expl_aff = str_replace('<!-- exp_date_filing -->', $tmp, $expl_aff); } $p_perso = new parametres_perso("expl"); if (!$p_perso->no_special_fields) { $c = 0; $perso = ""; $perso_ = $p_perso->show_fields($this->expl_data->expl_id); $nb_param = count($perso_["FIELDS"]); $perso_aff = ''; for ($i = 0; $i < $nb_param; $i++) { $nb_colonne = 2; $perso_aff .= "<tr>\n"; for ($i; $i < $nb_param; $i++) { $p = $perso_["FIELDS"][$i]; $perso_aff .= "<td align='right'><label class='etiquette'>" . $p["TITRE"] . "</label></td>"; $perso_aff .= "<td align='left'>" . $p["AFF"] . "</td>"; if (!--$nb_colonne) { break; } } $perso_aff .= "</tr>\n"; } } $expl_aff = str_replace('!!champs_perso!!', $perso_aff, $expl_aff); return $expl_aff; }
if ($empr_mail) { $tab_empr_info[$i]["titre"] = $msg["empr_mail"]; $tab_empr_info[$i++]["val"] = "<a href='mailto:{$empr_mail}'>{$empr_mail}</a>"; } if ($empr_prof) { $tab_empr_info[$i]["titre"] = $msg["empr_tpl_prof"]; $tab_empr_info[$i++]["val"] = $empr_prof; } if ($empr_year) { $tab_empr_info[$i]["titre"] = $msg["empr_tpl_year"]; $tab_empr_info[$i++]["val"] = $empr_year; } //Paramètres perso require_once "{$class_path}/parametres_perso.class.php"; $p_perso = new parametres_perso("empr"); $perso_ = $p_perso->show_fields($id_empr); if (count($perso_["FIELDS"])) { for ($ipp = 0; $ipp < count($perso_["FIELDS"]); $ipp++) { $p = $perso_["FIELDS"][$ipp]; if ($p[OPAC_SHOW] == 1) { $tab_empr_info[$i]["titre"] = $p["TITRE_CLEAN"]; $tab_empr_info[$i++]["val"] = $p["AFF"]; } } } $adhesion = str_replace("!!date_adhesion!!", "<strong>" . $aff_empr_date_adhesion . "</strong>", $msg["empr_format_adhesion"]); $adhesion = str_replace("!!date_expiration!!", "<strong>" . $aff_empr_date_expiration . "</strong>", $adhesion); $tab_empr_info[$i]["titre"] = $msg["empr_tpl_adh"]; $tab_empr_info[$i++]["val"] = $adhesion; if ($date_fin_blocage != "0000-00-00") { $date_blocage = array();
function fetch_info() { global $dbh; global $msg; global $charset; global $val_list_empr; global $pmb_gestion_financiere, $pmb_gestion_abonnement, $pmb_gestion_tarif_prets, $pmb_gestion_amende, $empr_header_format; global $deflt_docs_location; global $pmb_opac_view_activate, $pmb_sur_location_activate; if (!$this->id || !$dbh) { return FALSE; } $requete = "SELECT e.*, c.libelle AS code1, s.libelle AS code2, es.statut_libelle AS empr_statut_libelle, allow_loan, allow_book, allow_opac, allow_dsi, allow_dsi_priv, allow_sugg, allow_prol, d.location_libelle as localisation, date_format(empr_date_adhesion, '" . $msg["format_date"] . "') as aff_empr_date_adhesion, date_format(empr_date_expiration, '" . $msg["format_date"] . "') as aff_empr_date_expiration,date_format(last_loan_date, '" . $msg["format_date"] . "') as aff_last_loan_date FROM empr e left join docs_location as d on e.empr_location=d.idlocation, empr_categ c, empr_codestat s, empr_statut es "; $requete .= " WHERE e.id_empr='" . $this->id . "' "; $requete .= " AND c.id_categ_empr=e.empr_categ"; $requete .= " AND s.idcode=e.empr_codestat"; $requete .= " AND es.idstatut=e.empr_statut"; $requete .= " LIMIT 1"; $result = mysql_query($requete, $dbh) or die(mysql_error() . " " . $requete); if (!mysql_num_rows($result)) { return FALSE; } $empr = mysql_fetch_object($result); // affectation des propriétés $this->cb = $empr->empr_cb; // code barre emprunteur $this->nom = $empr->empr_nom; // nom emprunteur $this->prenom = $empr->empr_prenom; // prénom mprunteur $this->adr1 = $empr->empr_adr1; // adresse ligne 1 $this->adr2 = $empr->empr_adr2; // adresse ligne 2 $this->cp = $empr->empr_cp; // code postal $this->ville = $empr->empr_ville; // ville $this->pays = $empr->empr_pays; // ville $this->mail = $empr->empr_mail; // adresse email $this->tel1 = $empr->empr_tel1; // téléphone 1 $this->sms = $empr->empr_sms; // sms activation $this->tel2 = $empr->empr_tel2; // téléphone 2 $this->prof = $empr->empr_prof; // profession $this->birth = $empr->empr_year; // année de naissance $this->categ = $empr->empr_categ; // catégorie emprunteur $this->cstat = $empr->empr_codestat; // code statistique $this->cdate = $empr->empr_creation; // date de création $this->mdate = $empr->empr_modif; // date de modification $this->sexe = $empr->empr_sexe; // sexe de l'emprunteur $this->login = $empr->empr_login; // login pour services OPAC $this->pwd = $empr->empr_password; // mot de passe OPAC $this->type_abt = $empr->type_abt; // type d'abonnement $this->empr_location = $empr->empr_location; // localisation $this->empr_location_l = $empr->localisation; // localisation $this->date_blocage = $empr->date_fin_blocage; // Date de fin de blocage de l'emprunteur $this->empr_statut = $empr->empr_statut; $this->empr_statut_libelle = $empr->empr_statut_libelle; $this->total_loans = $empr->total_loans; $this->allow_loan = $empr->allow_loan; $this->allow_book = $empr->allow_book; $this->allow_opac = $empr->allow_opac; $this->allow_dsi = $empr->allow_dsi; $this->allow_dsi_priv = $empr->allow_dsi_priv; $this->allow_sugg = $empr->allow_sugg; $this->allow_prol = $empr->allow_prol; global $selector_prop_ajout_caddie_empr, $empr_show_caddie; if ($empr_show_caddie) { $this->img_ajout_empr_caddie = "<img src='./images/basket_empr.gif' alt='basket' title=\"{$msg[400]}\" "; $this->img_ajout_empr_caddie .= "onClick=\"openPopUp('./cart.php?object_type=EMPR&item=" . $this->id . "', 'cart', 600, 700, -2, -2, '{$selector_prop_ajout_caddie_empr}');\">"; } else { $this->img_ajout_empr_caddie = ""; } $this->lien_nom_prenom = "<a href='./circ.php?categ=pret&form_cb=" . rawurlencode($this->cb) . "'>{$this->nom}, {$this->prenom}</a>"; if ($pmb_opac_view_activate) { $this->opac_view = new opac_view(0, $this->id); } if ($pmb_sur_location_activate) { $sur_loc = sur_location::get_info_surloc_from_location($expl->idlocation); } $date_blocage = array(); $date_blocage = explode("-", $this->date_blocage); if (mktime(0, 0, 0, $date_blocage[1], $date_blocage[2], $date_blocage[0]) > time()) { $this->blocage_active = true; } //Groupes $requete = "select id_groupe, libelle_groupe from groupe, empr_groupe where empr_id='" . $this->id . "' and id_groupe=groupe_id"; $result = mysql_query($requete); if (mysql_num_rows($result)) { while ($grp_temp = mysql_fetch_object($result)) { $this->groupes[] = "<a href='./circ.php?categ=groups&action=showgroup&groupID=" . $grp_temp->id_groupe . "'>" . htmlentities($grp_temp->libelle_groupe, ENT_QUOTES, $charset) . "</a>"; } } else { $this->groupes = array(); } if ($empr->empr_ldap) { $this->ldap = 'LDAP'; // flag AuthLdap } else { $this->ldap = 'MYSQL'; } $this->date_adhesion = $empr->empr_date_adhesion; // début adhésion $this->date_expiration = $empr->empr_date_expiration; // fin adhésion $this->last_loan_date = $empr->last_loan_date; // date du dernier emprunt $this->aff_date_adhesion = $empr->aff_empr_date_adhesion; // début adhésion $this->aff_date_expiration = $empr->aff_empr_date_expiration; // fin adhésion $this->aff_last_loan_date = $empr->aff_last_loan_date; // date du dernier emprunt $this->empr_msg = $empr->empr_msg; // message emprunteur $this->cat_l = $empr->code1; // libellé catégorie emprunteur $this->cstat_l = $empr->code2; // libellé code statistique. voir ce bug avec Eric //Paramètres perso //Liste des champs $p_perso = new parametres_perso("empr"); $perso_ = $p_perso->show_fields($this->id); $perso = ""; $header_format = ""; $class = "colonne3"; $c = 0; if (count($perso_["FIELDS"])) { for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($empr_header_format) { $s = explode(",", $empr_header_format); if (array_search($p["ID"], $s) !== FALSE) { $header_format .= $p["TITRE"] . $p["AFF"] . " "; } } $perso .= "<div class='{$class}'>"; $perso .= "<div class='row'>" . $p["TITRE"]; $perso .= $p["AFF"] . "</div>"; $perso .= "</div>"; if ($c == 0) { $c = 1; } else { if ($c == 1) { $class = "colonne_suite"; $c = 2; } else { if ($c == 2) { $class = "colonne3"; $c = 0; } } } } $reste = 2 - $c; if ($c != 0) { for ($i = 0; $i < $reste; $i++) { $perso .= "<div class='colonne3'> </div>"; $c++; } $perso .= "<div class='colonne_suite'> </div>"; } } $this->header_format = $header_format; $this->perso = $perso; }
/** * Retourne les paramètres persos * @return array */ public function get_p_perso() { if (!$this->p_perso) { $this->p_perso = array(); if ($this->get_type_object() != AUT_TABLE_CONCEPT) { $parametres_perso = new parametres_perso($this->get_prefix_for_pperso()); $ppersos = $parametres_perso->show_fields($this->num_object); if (is_array($ppersos['FIELDS'])) { foreach ($ppersos['FIELDS'] as $pperso) { $this->p_perso[] = $pperso; } } } } return $this->p_perso; }
/** * Génère la liste des exemplaires * @param int $notice_id Identifiant de la notice * @return string */ public static function get_display_expl_responsive_list($notice_id) { global $dbh; global $msg, $charset; global $expl_list_header, $expl_list_footer; global $opac_expl_data, $opac_expl_order, $opac_url_base; global $pmb_transferts_actif, $transferts_statut_transferts; global $memo_p_perso_expl; global $opac_show_empty_items_block; global $opac_show_exemplaires_analysis; global $expl_list_header_loc_tpl, $opac_aff_expl_localises; global $opac_sur_location_activate; $nb_expl_autre_loc = 0; $nb_perso_aff = 0; $record_datas = static::get_record_datas($notice_id); $type = $record_datas->get_niveau_biblio(); $id = $record_datas->get_id(); $bull = $record_datas->get_bul_info(); $bull_id = $bull['bulletin_id']; // les dépouillements ou périodiques n'ont pas d'exemplaire if ($type == "a" && !$opac_show_exemplaires_analysis || $type == "s") { return ""; } if (!$memo_p_perso_expl) { $memo_p_perso_expl = new parametres_perso("expl"); } $header_found_p_perso = 0; $expls_datas = $record_datas->get_expls_datas(); $expl_list_header_deb = "<tr class='thead'>"; foreach ($expls_datas['colonnesarray'] as $colonne) { $expl_list_header_deb .= "<th class='expl_header_" . $colonne . "'>" . htmlentities($msg['expl_header_' . $colonne], ENT_QUOTES, $charset) . "</th>"; } $expl_list_header_deb .= "<th class='expl_header_statut'>" . $msg['statut'] . "</th>"; $expl_liste = ""; foreach ($expls_datas['expls'] as $expl) { $expl_liste .= "<tr class='item_expl !!class_statut!!'>"; $colencours = ""; foreach ($expls_datas['colonnesarray'] as $colonne) { $colencours = $expl[$colonne]; if ($colonne == "location_libelle" && $expl['num_infopage']) { if ($expl['surloc_id'] != "0") { $param_surloc = "&surloc=" . $expl['surloc_id']; } else { $param_surloc = ""; } $expl_liste .= "<td class='" . htmlentities($msg['expl_header_' . $colonne], ENT_QUOTES, $charset) . "'><a href=\"" . $opac_url_base . "index.php?lvl=infopages&pagesid=" . $expl['num_infopage'] . "&location=" . $expl['expl_location'] . $param_surloc . "\" alt=\"" . $msg['location_more_info'] . "\" title=\"" . $msg['location_more_info'] . "\">" . htmlentities($expl[$colonne], ENT_QUOTES, $charset) . "</a></td>"; } else { $expl_liste .= "<td class='" . htmlentities($msg['expl_header_' . $colonne], ENT_QUOTES, $charset) . "'>" . htmlentities($expl[$colonne], ENT_QUOTES, $charset) . "</td>"; } } $situation = ""; if ($expl['statut_libelle_opac'] != "") { $situation .= $expl['statut_libelle_opac'] . "<br />"; } if ($expl['flag_resa']) { $situation .= "<strong>" . $msg['expl_reserve'] . "</strong>"; $class_statut = "expl_reserve"; } else { if ($expl['pret_flag']) { if ($expl['pret_retour']) { // exemplaire sorti global $opac_show_empr; if ($opac_show_empr == 1 && $_SESSION["user_code"] || $opac_show_empr == 2) { $situation .= $msg['entete_show_empr'] . htmlentities(" " . $expl['empr_prenom'] . " " . $expl['empr_nom'], ENT_QUOTES, $charset) . "<br />"; } $situation .= "<strong>" . $msg['out_until'] . " " . formatdate($expl['pret_retour']) . "</strong>"; $class_statut = "expl_out"; // ****** Affichage de l'emprunteur } else { // pas sorti $situation .= "<strong>" . $msg['available'] . "</strong>"; $class_statut = "expl_available"; } } else { // pas prêtable // exemplaire pas prêtable, on affiche juste "exclu du pret" if ($pmb_transferts_actif == "1" && "" . $expl['expl_statut'] . "" == $transferts_statut_transferts) { $situation .= "<strong>" . $msg['reservation_lib_entransfert'] . "</strong>"; $class_statut = "expl_transfert"; } else { $situation .= "<strong>" . $msg['exclu'] . "</strong>"; $class_statut = "expl_unavailable"; } } } // fin if else $flag_resa $expl_liste .= "<td class='" . $msg['statut'] . "'>" . $situation . " </td>"; $expl_liste = str_replace("!!class_statut!!", $class_statut, $expl_liste); //Champs personalisés $perso_aff = ""; if (!$memo_p_perso_expl->no_special_fields) { $perso_ = $memo_p_perso_expl->show_fields($expl['expl_id']); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($p['OPAC_SHOW']) { if (!$header_found_p_perso) { $header_perso_aff .= "<th class='expl_header_tdoc_libelle'>" . $p["TITRE_CLEAN"] . "</th>"; $nb_perso_aff++; } if ($p["AFF"]) { $perso_aff .= "<td class='p_perso'>" . $p["AFF"] . "</td>"; } else { $perso_aff .= "<td class='p_perso'> </td>"; } } } } $header_found_p_perso = 1; $expl_liste .= $perso_aff; $expl_liste .= "</tr>"; $expl_liste_all .= $expl_liste; if ($opac_aff_expl_localises && $_SESSION["empr_location"]) { if ($expl['expl_location'] == $_SESSION["empr_location"]) { $expl_liste_loc .= $expl_liste; } else { $nb_expl_autre_loc++; } } $expl_liste = ""; } // fin while //S'il y a des titres de champs perso dans les exemplaires if ($header_perso_aff) { $expl_list_header_deb .= $header_perso_aff; } if ($opac_aff_expl_localises && $_SESSION["empr_location"] && $nb_expl_autre_loc) { // affichage avec onglet selon la localisation if (!$expl_liste_loc) { $expl_liste_loc = "<tr class=even><td colspan='" . (count($expls_datas['colonnesarray']) + 1 + $nb_perso_aff) . "'>" . $msg["no_expl"] . "</td></tr>"; } $expl_liste_all = str_replace("!!EXPL!!", $expl_list_header_deb . $expl_liste_all, $expl_list_header_loc_tpl); $expl_liste_all = str_replace("!!EXPL_LOC!!", $expl_list_header_deb . $expl_liste_loc, $expl_liste_all); $expl_liste_all = str_replace("!!mylocation!!", $_SESSION["empr_location_libelle"], $expl_liste_all); $expl_liste_all = str_replace("!!id!!", $id + $bull_id, $expl_liste_all); } else { // affichage de la liste d'exemplaires calculée ci-dessus if (!$expl_liste_all && $opac_show_empty_items_block == 1) { $expl_liste_all = $expl_list_header . $expl_list_header_deb . "<tr class=even><td colspan='" . (count($expls_datas['colonnesarray']) + 1) . "'>" . $msg["no_expl"] . "</td></tr>" . $expl_list_footer; } elseif (!$expl_liste_all && $opac_show_empty_items_block == 0) { $expl_liste_all = ""; } else { $expl_liste_all = $expl_list_header . $expl_list_header_deb . $expl_liste_all . $expl_list_footer; } } return $expl_liste_all; }
function _export_($id, $keep_expl) { global $charset, $msg; if (!$id) { return; } $requete = "select * from notices where notice_id=" . $id; $resultat = mysql_query($requete); $res = mysql_fetch_object($resultat); $environement["short"] = 1; $environement["ex"] = 0; $environement["exnum"] = 0; $environement["link"] = ""; $environement["link_analysis"] = ""; $environement["link_explnum"] = ""; $environement["link_bulletin"] = ""; if ($res->niveau_biblio != 's' && $res->niveau_biblio != 'a') { $display = new mono_display($id, $environement["short"], $environement["link"], $environement["ex"], $environement["link_expl"], '', $environement["link_explnum"], 0, 1); //récup des infos bulletins: bulletin_cb $requete = "select * from bulletins where num_notice=" . $id; $resultat_bul = mysql_query($requete); if (mysql_num_rows($resultat_bul)) { $res_bul = mysql_fetch_object($resultat_bul); $bulletin_cb = $res_bul->bulletin_cb; } } else { // on a affaire à un périodique $display = new serial_display($id, $environement["short"], $environement["link_serial"], $environement["link_analysis"], $environement["link_bulletin"], "", $environement["link_explnum"], 0, 0, 1, 1, true, 1); } //Champs personalisés $p_perso = new parametres_perso("notices"); $perso_aff = $titre = $loc = $etablissement = $date = ""; if (!$p_perso->no_special_fields) { $perso_ = $p_perso->show_fields($id); for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; if ($p['OPAC_SHOW'] && $p["AFF"]) { if ($p["NAME"] == "t_d_f_titre") { $titre = $p["AFF"]; } elseif ($p["NAME"] == "t_d_f_lieu_etabl") { $loc = $p["AFF"]; } elseif ($p["NAME"] == "t_d_f_etablissement") { $etablissement = $p["AFF"]; } elseif ($p["NAME"] == "t_d_f_date") { $date = $p["AFF"]; } } } } if ($titre) { $perso_aff = $titre; } if ($perso_aff && $loc) { $loc = explode("/", $loc); $perso_aff .= " "; $perso_aff .= $loc[0]; } if ($perso_aff && $date) { $perso_aff .= ", "; } $perso_aff .= $date; if ($perso_aff) { $titre_de_forme = $msg["n_titre_de_forme"] . "[" . $perso_aff . "] "; } // langues $langues = ""; if (count($display->langues)) { $langues = $msg[537] . " : " . construit_liste_langues($display->langues); } // if(count($display->languesorg)) { // $langues .= $msg[711]." : ".construit_liste_langues($display->languesorg); // } if ($langues) { $langues = "\n" . $langues; } $notice = "<notice>\n"; //notice (ID) $notice .= "<ID>{$id}</ID>\n"; //isbn (ISBN) if ($display->isbn) { $notice .= "<ISBN>" . htmlspecialchars($display->isbn, ENT_QUOTES, $charset) . "</ISBN>\n"; } elseif ($bulletin_cb) { $notice .= "<ISBN>" . htmlspecialchars($bulletin_cb, ENT_QUOTES, $charset) . "</ISBN>\n"; } //Année publication(YEAR) if ($display->notice->year) { $notice .= "<YEAR>" . htmlspecialchars($display->notice->year, ENT_QUOTES, $charset) . "</YEAR>\n"; } //isbd(ISBD) $display_isbd = mba_isbd($display); //if ($display->isbd) { // $isbd=str_replace("<br />","\n",$titre_de_forme.$display->isbd.$langues); $isbd = str_replace("<br />", " ", $titre_de_forme . $display_isbd); if ($display->notice->lien) { $isbd .= " " . $display->notice->lien; } $isbd = strip_tags($isbd); $notice .= "<ISBD>" . htmlspecialchars(html_entity_decode($isbd, ENT_QUOTES, $charset), ENT_QUOTES, $charset) . "</ISBD>\n"; //} $notice .= "</notice>\n"; return $notice; }