diff --git a/library/Class/WebService/SIGB/Orphee/Exemplaire.php b/library/Class/WebService/SIGB/Orphee/Exemplaire.php index e2675a91994151f9364da46a0987af939e1609bf..10f213da01fdc9b8f4b596921ed60e3a8802b644 100644 --- a/library/Class/WebService/SIGB/Orphee/Exemplaire.php +++ b/library/Class/WebService/SIGB/Orphee/Exemplaire.php @@ -22,7 +22,9 @@ class Class_WebService_SIGB_Orphee_Exemplaire extends Class_WebService_SIGB_Exem CONST DISPO_LIBRE = 'En rayon'; - protected $_allow_hold_available_items; + protected + $_allow_hold_available_items, + $_flag_can_hold = null; public function __construct($id, $allow_hold_available_items=null) { parent::__construct($id); @@ -31,11 +33,20 @@ class Class_WebService_SIGB_Orphee_Exemplaire extends Class_WebService_SIGB_Exem public function isReservable() { + if ($this->_flag_can_hold !== null) + return $this->_flag_can_hold; + return parent::isReservable() || ( $this->isDisponible() && $this->_allow_hold_available_items ); } + public function setFlagCanHold($flag) { + $this->_flag_can_hold = $flag; + return $this; + } + + public function isDisponible() { return strtolower(self::DISPO_LIBRE) == strtolower(trim($this->disponibilite)); } diff --git a/library/Class/WebService/SIGB/Orphee/GetLstDmtResponseReader.php b/library/Class/WebService/SIGB/Orphee/GetLstDmtResponseReader.php index 56cc000294124162179d7826edd5fbff87d30216..92313530da48edab5c85065e462b181578378985 100644 --- a/library/Class/WebService/SIGB/Orphee/GetLstDmtResponseReader.php +++ b/library/Class/WebService/SIGB/Orphee/GetLstDmtResponseReader.php @@ -81,7 +81,7 @@ class Class_WebService_SIGB_Orphee_GetLstDmtResponseReader extends Class_WebServ public function endCan_Rsv($data) { $this ->_current_exemplaire - ->setReservable('1' === $data); + ->setFlagCanHold('1' === $data); } diff --git a/tests/library/Class/WebService/SIGB/OrpheeFixtures.php b/tests/library/Class/WebService/SIGB/OrpheeFixtures.php index ac16e65da1c42748761bfe0e6d930af1b6fe7000..abaffd96125425ddd25d1f19588ce3c3735f9fee 100644 --- a/tests/library/Class/WebService/SIGB/OrpheeFixtures.php +++ b/tests/library/Class/WebService/SIGB/OrpheeFixtures.php @@ -289,6 +289,7 @@ class OrpheeFixtures { <no><![CDATA[148899]]></no> <ntc><![CDATA[1301700727]]></ntc> <carte><![CDATA[200014899]]></carte> + <can_rsv>1</can_rsv> <sit><![CDATA[1]]></sit> <lib_sit><![CDATA[ en rayon]]></lib_sit> <loc><![CDATA[2]]></loc> @@ -323,7 +324,6 @@ class OrpheeFixtures { <lib_droit_resa /> <titre><![CDATA[[Millenium (Larsson, Stieg (1954-2004))]]></titre> <date_edi><![CDATA[2010]]></date_edi> - <can_rsv>1</can_rsv> </document>