From c77973bf9ebb94d9f57f32b2f7941dbada874e3b Mon Sep 17 00:00:00 2001 From: efalcy <efalcy@git-test.afi-sa.fr> Date: Fri, 22 Feb 2013 17:10:36 +0000 Subject: [PATCH] SIGB Koha : Option permettant d'interdire la reservation de document --- cosmogramme/php/config_integrations.php | 1 + library/Class/WebService/SIGB/Koha.php | 3 ++- .../SIGB/Koha/GetRecordsResponseReader.php | 7 ++++++- library/Class/WebService/SIGB/Koha/Service.php | 17 ++++++++++++++--- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cosmogramme/php/config_integrations.php b/cosmogramme/php/config_integrations.php index 4d0a1c23703..415eb1b22f2 100644 --- a/cosmogramme/php/config_integrations.php +++ b/cosmogramme/php/config_integrations.php @@ -256,6 +256,7 @@ function getBlocsParams($id_bib,$type,$valeurs) if (in_array($clef, array(COM_VSMART, COM_KOHA, COM_CARTHAME, COM_NANOOK, COM_ORPHEE, COM_MICROBIB, COM_BIBLIXNET))) $champs_params[0]=array("url_serveur"); + if ($clef==COM_KOHA) $champs_params[0]=["url_serveur","Interdire_reservation_doc_dispo"]; if ($clef==COM_OPSYS) $champs_params[0]=array("url_serveur", "catalogue_web"); if ($clef==COM_DYNIX) $champs_params[0]=array("url_serveur", "client_id"); diff --git a/library/Class/WebService/SIGB/Koha.php b/library/Class/WebService/SIGB/Koha.php index b441d9280de..035e19489de 100644 --- a/library/Class/WebService/SIGB/Koha.php +++ b/library/Class/WebService/SIGB/Koha.php @@ -25,7 +25,8 @@ class Class_WebService_SIGB_Koha { public static function getService($params){ if (!isset(self::$service)) { $instance = new self(); - self::$service = Class_WebService_SIGB_Koha_Service::getService($params['url_serveur']); + array_merge([$params['Interdire_reservation_doc_dispo']=0],$params); + self::$service = Class_WebService_SIGB_Koha_Service::getService($params['url_serveur'],$params['Interdire_reservation_doc_dispo']==='1'); } return self::$service; diff --git a/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php b/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php index 90d7608dac7..be9ca9ec279 100644 --- a/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php +++ b/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php @@ -21,6 +21,7 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader { protected $_xml_parser; protected $_notice; + protected $inderdire_resa_doc_dispo=false; protected $_not_for_loan_status = array( 0 => Class_WebService_SIGB_Exemplaire::DISPO_LIBRE, 1 => "Exclu du prêt", @@ -40,6 +41,10 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader { return new self(); } + public function setInterdireResaDocDispo($dispo) { + $this->interdire_resa_doc_dispo = $dispo; + return $this; + } public function getNoticeFromXML($xml) { $this->_xml_parser = Class_WebService_XMLParser::newInstance(); @@ -52,7 +57,7 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader { public function allowAvailableDocumentReservation() { - return true; + return !$this->interdire_resa_doc_dispo; } diff --git a/library/Class/WebService/SIGB/Koha/Service.php b/library/Class/WebService/SIGB/Koha/Service.php index 888d2f8cb67..e7d5d651152 100644 --- a/library/Class/WebService/SIGB/Koha/Service.php +++ b/library/Class/WebService/SIGB/Koha/Service.php @@ -20,13 +20,18 @@ */ class Class_WebService_SIGB_Koha_Service extends Class_WebService_SIGB_AbstractRESTService { + + protected $interdire_resa_doc_dispo = false; + public static function newInstance() { return new self(); } - public static function getService($server_root) { - return self::newInstance()->setServerRoot($server_root); + public static function getService($server_root,$interdire_reservation_doc_dispo=false) { + + return self::newInstance()->setServerRoot($server_root) + ->setInterdireResaDocDispo($interdire_reservation_doc_dispo); } @@ -106,9 +111,15 @@ class Class_WebService_SIGB_Koha_Service extends Class_WebService_SIGB_AbstractR } + public function setInterdireResaDocDispo($dispo) { + $this->interdire_resa_doc_dispo = $dispo; + return $this; + } + public function getNotice($id) { return $this->ilsdiGetRecords($id, - Class_WebService_SIGB_Koha_GetRecordsResponseReader::newInstance()); + Class_WebService_SIGB_Koha_GetRecordsResponseReader::newInstance() + ->setInterdireResaDocDispo($this->interdire_resa_doc_dispo)); } } -- GitLab