<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: add_cb.inc.php,v 1.2 2012-04-30 14:04:19 dbellamy Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once $class_path . "/ajax_pret.class.php"; //cb_doc, id_empr, short_loan // init de la class $pret = new do_pret(); $status = $pret->check_pieges($cb_empr, $id_empr, $cb_doc, $id_expl, $forcage, $short_loan); ajax_http_send_response("{$status}", "text/xml");
function _checkout_response_($values) { global $pmb_antivol, $msg; global $see_all_pret; global $selfservice_pret_carte_invalide_msg; global $selfservice_pret_pret_interdit_msg; global $selfservice_pret_deja_prete_msg; global $selfservice_pret_deja_reserve_msg; global $selfservice_pret_quota_bloc_msg; global $selfservice_pret_non_pretable_msg; global $selfservice_pret_expl_inconnu_msg; $see_all_pret = 1; //Transaction obligatoire car déjà effectuée ! //$force_checkout=($values["NO_BLOCK"]=="Y"?true:false); $localisation = $values["INSTITUTION_ID"][0]; $empr_cb = $values["PATRON_IDENTIFIER"][0]; $expl_cb = $values["ITEM_IDENTIFIER"][0]; $fee_ack = $values["FEE_ACKNOWLEDGED"][0] == "Y" ? true : false; $cancel = $values["CANCEL"][0] == "Y" ? true : false; $magnetic = "N"; $desensitize = "N"; $titre = $expl_cb; $due_date = ""; //Recherche de l'exemplaire $requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, tdoc_libelle, "; $requete .= " date_format(pret_date, '" . $msg["format_date"] . "') as aff_pret_date, "; $requete .= " date_format(pret_retour, '" . $msg["format_date"] . "') as aff_pret_retour, "; $requete .= " IF(pret_retour>sysdate(),0,1) as retard "; $requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl "; $requete .= " left join docs_location on exemplaires.expl_location=docs_location.idlocation "; $requete .= " left join docs_section on exemplaires.expl_section=docs_section.idsection "; $requete .= " left join docs_statut on exemplaires.expl_statut=docs_statut.idstatut "; $requete .= " left join docs_type on exemplaires.expl_typdoc=docs_type.idtyp_doc "; $requete .= " WHERE expl_cb='" . addslashes($expl_cb) . "' "; $requete .= " order by location_libelle, section_libelle, expl_cote, expl_cb "; $resultat = pmb_mysql_query($requete); if (pmb_mysql_num_rows($resultat)) { $expl = pmb_mysql_fetch_object($resultat); //Recherche de l'emprunteur $requete = "select id_empr from empr where empr_cb='" . addslashes($empr_cb) . "'"; $resultat = pmb_mysql_query($requete); if (!pmb_mysql_num_rows($resultat)) { $error = true; $error_message = $selfservice_pret_carte_invalide_msg; $ok = 0; } else { $id_empr = pmb_mysql_result($resultat, 0, 0); $empr = new emprunteur($id_empr, '', '', 1); $pret = $empr->blocage_retard || $empr->blocage_amendes || $empr->blocage_abt || !$empr->allow_loan ? false : true; if (!$pret) { $ok = 0; $error = true; $error_message = $selfservice_pret_pret_interdit_msg; } else { if ($expl->pret_flag) { if ($expl->expl_bulletin) { $isbd = new bulletinage_display($expl->expl_bulletin); $titre = $isbd->display; } else { $isbd = new mono_display($expl->expl_notice, 1); $titre = $isbd->header_texte; } if ($expl->pret_retour) { $error = true; $error_message = $selfservice_pret_deja_prete_msg; $ok = 0; } else { // tester si réservé $result_resa = pmb_mysql_query("select 1 from resa where resa_cb='" . addslashes($expl->expl_cb) . "' and resa_idempr!='" . addslashes($id_empr) . "'"); $reserve = @pmb_mysql_num_rows($result_resa); if ($reserve) { $error = true; $error_message = $selfservice_pret_deja_reserve_msg; $ok = 0; } else { //On fait le prêt $pret = new do_pret(); $pret->check_pieges($empr_cb, 0, $expl_cb, 0, 0); if (!$pret->status) { $ok = 1; $pret->confirm_pret($id_empr, $expl->expl_id); //Recherche de la date de retour $requete = "select date_format(pret_retour, '" . $msg["format_date"] . "') as retour from pret where pret_idexpl=" . $expl->expl_id; $resultat = pmb_mysql_query($requete); $error = true; $error_message = $titre . " / retour le : " . @pmb_mysql_result($resultat, 0, 0); $due_date = @pmb_mysql_result($resultat, 0, 0); } else { $ok = 0; $error = true; $error_message = $selfservice_pret_quota_bloc_msg; $ret["SCREEN_MESSAGE"][1] = $pret->error_message; } //Est-ce un support magnétique if ($pmb_antivol) { if ($expl->type_antivol == 2) { $magnetic = "Y"; } } } } } else { $error = true; $error_message = $selfservice_pret_non_pretable_msg; $ok = 0; } } } } else { $error = true; $error_message = $selfservice_pret_expl_inconnu_msg; $titre = $expl_cb; $ok = 0; } $ret["OK"] = $ok; $ret["RENEWAL_OK"] = "N"; $ret["MAGNETIC_MEDIA"] = $magnetic; $ret["DESENSITIZE"] = $desensitize; $ret["TRANSACTION_DATE"] = date("Ymd His", time()); $ret["INSTITUTION_ID"][0] = $localisation; $ret["PATRON_IDENTIFIER"][0] = $empr_cb; $ret["ITEM_IDENTIFIER"][0] = $expl_cb; $ret["TITLE_IDENTIFIER"][0] = $titre; $ret["DUE_DATE"][0] = $due_date; if ($error) { $ret["SCREEN_MESSAGE"][0] = $error_message; } return $ret; }
function self_checkout($expl_cb, $id_empr, $PMBUserId = -1) { global $msg; global $charset; global $selfservice_pret_carte_invalide_msg; global $selfservice_pret_pret_interdit_msg; global $selfservice_pret_deja_prete_msg; global $selfservice_pret_deja_reserve_msg; global $selfservice_pret_quota_bloc_msg; global $selfservice_pret_non_pretable_msg; global $selfservice_pret_expl_inconnu_msg; $titre = $expl_cb; $due_date = ""; $ret["message_expl_comment"] = ""; $ret["message_quota"] = ""; $ret["status"] = ""; $ret["message"] = ""; $ret["title"] = ""; $ret["transaction_date"] = ""; $ret["due_date"] = ""; //Recherche de l'exemplaire $requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, tdoc_libelle, "; $requete .= " date_format(pret_date, '" . $msg["format_date"] . "') as aff_pret_date, "; $requete .= " date_format(pret_retour, '" . $msg["format_date"] . "') as aff_pret_retour, "; $requete .= " IF(pret_retour>sysdate(),0,1) as retard "; $requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl "; $requete .= " left join docs_location on exemplaires.expl_location=docs_location.idlocation "; $requete .= " left join docs_section on exemplaires.expl_section=docs_section.idsection "; $requete .= " left join docs_statut on exemplaires.expl_statut=docs_statut.idstatut "; $requete .= " left join docs_type on exemplaires.expl_typdoc=docs_type.idtyp_doc "; $requete .= " WHERE expl_cb='" . addslashes($expl_cb) . "' "; $requete .= " order by location_libelle, section_libelle, expl_cote, expl_cb "; $resultat = mysql_query($requete); if (mysql_num_rows($resultat)) { $expl = mysql_fetch_object($resultat); if ($expl->expl_bulletin) { $isbd = new bulletinage_display($expl->expl_bulletin); $titre = $isbd->display; } else { $isbd = new mono_display($expl->expl_notice, 1); $titre = $isbd->header_texte; } //Recherche de l'emprunteur $requete = "select empr_cb id_empr from empr where id_empr='{$id_empr}'"; $resultat = mysql_query($requete); if (!mysql_num_rows($resultat)) { $error = true; $error_message = $selfservice_pret_carte_invalide_msg; $ok = 0; } else { $empr_cb = mysql_result($resultat, 0, 0); $empr = new emprunteur($id_empr, '', '', 1); $pret = $empr->blocage_retard || $empr->blocage_amendes || $empr->blocage_abt || !$empr->allow_loan ? false : true; if (!$pret) { $ok = 0; $error = true; $error_message = $selfservice_pret_pret_interdit_msg; } else { if ($expl->pret_flag) { if ($expl->pret_retour) { $error = true; $error_message = $selfservice_pret_deja_prete_msg; $ok = 0; } else { // tester si réservé $result_resa = mysql_query("select 1 from resa where resa_cb='" . addslashes($expl->expl_cb) . "' and resa_idempr!='" . addslashes($id_empr) . "'"); $reserve = @mysql_num_rows($result_resa); if ($reserve) { $error = true; $error_message = $selfservice_pret_deja_reserve_msg; $ok = 0; } else { //On fait le prêt $pret = new do_pret(); $pret->check_pieges($empr_cb, 0, $expl_cb, 0, 0); if ($pret->expl_comment) { $ret["message_expl_comment"] = $pret->expl_comment; } if (!$pret->status) { $ok = 1; $pret->confirm_pret($id_empr, $expl->expl_id); //Recherche de la date de retour $requete = "select date_format(pret_retour, '" . $msg["format_date"] . "') as retour from pret where pret_idexpl=" . $expl->expl_id; $resultat = mysql_query($requete); $error = true; $error_message = "Retour le : " . @mysql_result($resultat, 0, 0); $due_date = @mysql_result($resultat, 0, 0); } else { $ok = 0; $error = true; $error_message = $selfservice_pret_quota_bloc_msg; $ret["message_quota"] = $pret->error_message; } } } } else { $error = true; $error_message = $selfservice_pret_non_pretable_msg; $ok = 0; } } } } else { $error = true; $error_message = $selfservice_pret_expl_inconnu_msg; $titre = $expl_cb; $ok = 0; } if ($charset != "utf-8") { $error_message = utf8_encode($error_message); } if ($charset != "utf-8") { $ret["message_quota"] = utf8_encode($ret["message_quota"]); } if ($charset != "utf-8") { $ret["message_expl_comment"] = utf8_encode($ret["message_expl_comment"]); } $ret["status"] = $ok; $ret["message"] = $error_message; $ret["transaction_date"] = date("Ymd His", time()); if ($charset != "utf-8") { $ret["title"] = utf8_encode($titre); } else { $ret["title"] = $titre; } $ret["due_date"] = $due_date; return $ret; }