diff --git a/VERSIONS_HOTLINE/89418 b/VERSIONS_HOTLINE/89418 new file mode 100644 index 0000000000000000000000000000000000000000..3f58367defb77cde3a3a08fa87c864376775f4a4 --- /dev/null +++ b/VERSIONS_HOTLINE/89418 @@ -0,0 +1 @@ + - ticket #89418 : SIGB Koha : Ajout de la prise en compte de la balise onloan en complément de la balise date_due pour obtenir la disponibilité et la date de retour \ No newline at end of file diff --git a/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php b/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php index af5e6c8465ffb32ca9699e3435a827cd7cffeca3..6caa347f7fa4056773f1bb2e95bd1781bb1fd610 100644 --- a/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php +++ b/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php @@ -128,8 +128,10 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader { protected function _handleItemDateDue() { $date_due = ''; - if ($this->_hasChild('date_due', $this->_xml_item) - && $date_due = (string)$this->_xml_item->date_due) { + if ($this->_hasChild('date_due', $this->_xml_item)) $date_due = (string)$this->_xml_item->date_due; + if ($this->_hasChild('onloan', $this->_xml_item)) $date_due = (string)$this->_xml_item->onloan; + + if ($date_due) { $date = $this->formatDate($date_due); $this->_item ->setDateRetour($date) diff --git a/tests/fixtures/KohaFixtures.php b/tests/fixtures/KohaFixtures.php index e76c705d451d425ca6d19eccb8844dcc184f6567..842c40377c8808c9250765f5d022011e32527f40 100644 --- a/tests/fixtures/KohaFixtures.php +++ b/tests/fixtures/KohaFixtures.php @@ -1226,7 +1226,101 @@ class KohaFixtures { </issues> </record> </GetRecords> -'; - } +';} + + public static function xmlGetRecordsWithOnLoan () { + return + '<?xml version="1.0" encoding="ISO-8859-1" ?> + <GetRecords> + <record> + <biblioitemnumber>1</biblioitemnumber> + <isbn>9782862749198</isbn> + <marcxml> + <record + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd" + xmlns="http://www.loc.gov/MARC21/slim"> + <leader>00397nac a22001451u 4500</leader> + <datafield tag="010" ind1=" " ind2=" "> + <subfield code="a">9782862749198</subfield> + </datafield> + <datafield tag="090" ind1=" " ind2=" "> + <subfield code="a">1</subfield> + </datafield> + <datafield tag="101" ind1=" " ind2=" "> + <subfield code="a">fre</subfield> + </datafield> + <datafield tag="100" ind1=" " ind2=" "> + <subfield code="a">20080725 frey50 </subfield> + </datafield> + <datafield tag="200" ind1=" " ind2=" "> + <subfield code="a">Jardins d\'enfance</subfield> + <subfield code="b">LITT</subfield> + <subfield code="f">Abécassis, Eliette</subfield> + </datafield> + <datafield tag="210" ind1=" " ind2=" "> + <subfield code="c">cherche midi éditeur</subfield> + <subfield code="d">11/2001</subfield> + </datafield> + <datafield tag="215" ind1=" " ind2=" "> + <subfield code="a">180</subfield> + </datafield> + <datafield tag="225" ind1=" " ind2=" "> + <subfield code="a">nouvelles</subfield> + </datafield> + <datafield tag="995" ind1=" " ind2=" "> + <subfield code="9">1</subfield> + <subfield code="c">BIB</subfield> + <subfield code="2">0</subfield> + <subfield code="k">R ABE</subfield> + <subfield code="o">0</subfield> + <subfield code="e">Secteur Adulte</subfield> + <subfield code="b">BIB</subfield> + <subfield code="j">7786000200</subfield> + <subfield code="q">a</subfield> + <subfield code="r">2</subfield> + <subfield code="s">Achats</subfield> + </datafield> + <controlfield tag="001">1</controlfield> + </record> + </marcxml> + <publicationyear>2001</publicationyear> + <collectiontitle>nouvelles</collectiontitle> + <pages>180</pages> + <issues> + </issues> + <itemtype>LITT</itemtype> + <biblionumber>1</biblionumber> + <timestamp>2008-09-03 18:43:19</timestamp> + <cn_sort>_</cn_sort> + <publishercode>cherche midi éditeur</publishercode> + <reserves> + </reserves> + <items> + <item> + <biblioitemnumber>1</biblioitemnumber> + <wthdrawn>0</wthdrawn> + <holdingbranchname>Bibliothèque Jean Prunier</holdingbranchname> + <notforloan>0</notforloan> + <replacementpricedate>2008-08-20</replacementpricedate> + <itemnumber>1</itemnumber> + <location>Secteur Adulte</location> + <itemcallnumber>R ABE</itemcallnumber> + <onloan>2011-08-21</onloan> + <itemlost>0</itemlost> + <datelastseen>2008-08-20</datelastseen> + <homebranch>BIB</homebranch> + <homebranchname>Bibliothèque Jean Prunier</homebranchname> + <biblionumber>1</biblionumber> + <holdingbranch>BIB</holdingbranch> + <timestamp>2008-08-20 17:15:51</timestamp> + <damaged>0</damaged> + <cn_sort>R_ABE</cn_sort> + <dateaccessioned>2008-08-20</dateaccessioned> + </item> + </items> + </record> + </GetRecords>'; + } } ?> \ No newline at end of file diff --git a/tests/library/Class/WebService/SIGB/KohaTest.php b/tests/library/Class/WebService/SIGB/KohaTest.php index 61c6cdef98ab89792dacd587a15bd28077e4d899..edf35887fad4645cda58748c8ed7470f35e7f3cf 100644 --- a/tests/library/Class/WebService/SIGB/KohaTest.php +++ b/tests/library/Class/WebService/SIGB/KohaTest.php @@ -1161,6 +1161,42 @@ class KohaServiceGetNoticeJardinEnfantWithTransfertTest extends KohaTestCase { $this->assertContains('En transfert', $this->record->exemplaireAt(0)->getDisponibilite()); } +} + + + + +class KohaServiceGetNoticeJardinEnfanceWithOnLoanTest extends KohaTestCase { + public function setUp() { + parent::setUp(); + + $this->mock_web_client + ->whenCalled('open_url') + ->with('http://cat-aficg55.biblibre.com/cgi-bin/koha/ilsdi.pl?service=GetRecords&id=1') + ->answers(KohaFixtures::xmlGetRecordsWithOnLoan()) + ->beStrict(); + + $this->record = $this->service->getNotice('1'); + } + + + /** @test */ + function getExemplairesShouldReturnAnArrayWithSizeOne() { + $this->assertEquals(1, count($this->record->getExemplaires())); + } + + + /** @test */ + public function itemShouldNotBeAvailable() { + $this->assertContains('En prêt', + $this->record->exemplaireAt(0)->getDisponibilite()); + } + + + /** @test */ + public function itemWithOnLoanDateShouldHaveReturnDate20180821() { + $this->assertEquals('21/08/2011', $this->record->exemplaireAt(0)->getDateRetour()); + } }