From 20d68862ecfddd0de49c33f148b2b8b6e4723dec Mon Sep 17 00:00:00 2001 From: Laurent Laffont <llaffont@afi-sa.fr> Date: Tue, 3 Sep 2019 16:07:59 +0200 Subject: [PATCH] dev #90319 : Orphee ILS : display end hold date in holds table --- cosmogramme/VERSIONS_WIP/90319 | 1 + .../SIGB/Orphee/GetLstRsvResponseReader.php | 21 ++++++++++++++-- .../Class/WebService/SIGB/OrpheeFixtures.php | 24 ++++++++++++++++++ .../WebService/SIGB/OrpheeServiceTest.php | 25 ++++++++++++++----- 4 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 cosmogramme/VERSIONS_WIP/90319 diff --git a/cosmogramme/VERSIONS_WIP/90319 b/cosmogramme/VERSIONS_WIP/90319 new file mode 100644 index 00000000000..a2836c30038 --- /dev/null +++ b/cosmogramme/VERSIONS_WIP/90319 @@ -0,0 +1 @@ + - ticket #90319 : SIGB Orphée : affichage de la date de fin de réservation dans le tableau des réservations \ No newline at end of file diff --git a/library/Class/WebService/SIGB/Orphee/GetLstRsvResponseReader.php b/library/Class/WebService/SIGB/Orphee/GetLstRsvResponseReader.php index 106e0f054cc..6c90e6c3c69 100644 --- a/library/Class/WebService/SIGB/Orphee/GetLstRsvResponseReader.php +++ b/library/Class/WebService/SIGB/Orphee/GetLstRsvResponseReader.php @@ -20,6 +20,8 @@ */ class Class_WebService_SIGB_Orphee_GetLstRsvResponseReader extends Class_WebService_SIGB_AbstractXMLNoticeReader { + use Trait_Translator; + /** @var Class_WebService_XMLParser */ protected $_xml_parser; @@ -57,6 +59,15 @@ class Class_WebService_SIGB_Orphee_GetLstRsvResponseReader extends Class_WebServ } + public function endDocument() { + if ($this->_date_fin) + $this->_etat = $this->_etat . ' ' . $this->_('jusqu\'au %s', $this->_date_fin); + + $this->_current_reservation->setEtat($this->_etat); + $this->_date_fin = $this->_etat = ''; + } + + public function endNo_Ntc($data) { $this->_current_reservation->setId(trim($data)); $this->_current_reservation->getExemplaire()->setNoNotice(sprintf('frOr%010d', trim($data))); @@ -92,7 +103,7 @@ class Class_WebService_SIGB_Orphee_GetLstRsvResponseReader extends Class_WebServ public function endSit($data) { $status = trim($data); if (!is_numeric($status)) {//compatibility with Orphée WS version < version K - $this->_current_reservation->setEtat($status); + $this->_etat = $status; } if ($status == 'affectée' || $status == '2') @@ -100,10 +111,16 @@ class Class_WebService_SIGB_Orphee_GetLstRsvResponseReader extends Class_WebServ } + public function endDate_Fin($data) { + $this->_date_fin = $data; + } + + public function endLib_Sit($data) { - $this->_current_reservation->setEtat(trim($data)); + $this->_etat = trim($data); } + public function endRang($data) { $this->_current_reservation->setRang(trim($data)); } diff --git a/tests/library/Class/WebService/SIGB/OrpheeFixtures.php b/tests/library/Class/WebService/SIGB/OrpheeFixtures.php index abaffd96125..3cadcc7ff08 100644 --- a/tests/library/Class/WebService/SIGB/OrpheeFixtures.php +++ b/tests/library/Class/WebService/SIGB/OrpheeFixtures.php @@ -623,6 +623,7 @@ renouvellement --> <cb></cb> <no_ntc><![CDATA[975467778]]></no_ntc> <no_dmt><![CDATA[790]]></no_dmt> + <date_fin><![CDATA[13/04/2019]]></date_fin> <sup><![CDATA[Livre]]></sup> <tit><![CDATA[Le singe bleu]]></tit> <auteur><![CDATA[Steinbeck, John (1902-1968)]]></auteur> @@ -630,6 +631,17 @@ renouvellement --> <lib_sit><![CDATA[affectée]]></lib_sit> <sit><![CDATA[2]]></sit> </document> + <document> + <cb></cb> + <no_ntc><![CDATA[975467779]]></no_ntc> + <no_dmt><![CDATA[791]]></no_dmt> + <sup><![CDATA[Livre]]></sup> + <tit><![CDATA[A l\'Est d\'Eden]]></tit> + <auteur><![CDATA[Steinbeck, John (1902-1968)]]></auteur> + <editeur><![CDATA[Gallimard]]></editeur> + <lib_sit><![CDATA[affectée]]></lib_sit> + <sit><![CDATA[2]]></sit> + </document> </documents> </datas> '; } @@ -706,6 +718,18 @@ renouvellement --> <auteur><![CDATA[Steinbeck, John (1902-1968)]]></auteur> <editeur><![CDATA[Gallimard]]></editeur> <lib_sit><![CDATA[affectée]]></lib_sit> + <date_fin><![CDATA[13/04/2019]]></date_fin> + <sit><![CDATA[2]]></sit> + </document> + <document> + <cb></cb> + <no_ntc><![CDATA[975467779]]></no_ntc> + <no_dmt><![CDATA[791]]></no_dmt> + <sup><![CDATA[Livre]]></sup> + <tit><![CDATA[A l\'Est d\'Eden]]></tit> + <auteur><![CDATA[Steinbeck, John (1902-1968)]]></auteur> + <editeur><![CDATA[Gallimard]]></editeur> + <lib_sit><![CDATA[affectée]]></lib_sit> <sit><![CDATA[2]]></sit> </document> </documents> diff --git a/tests/library/Class/WebService/SIGB/OrpheeServiceTest.php b/tests/library/Class/WebService/SIGB/OrpheeServiceTest.php index 253eafa7886..b5449ca15cf 100644 --- a/tests/library/Class/WebService/SIGB/OrpheeServiceTest.php +++ b/tests/library/Class/WebService/SIGB/OrpheeServiceTest.php @@ -294,6 +294,7 @@ class OrpheeServiceTestAutoConnectError extends OrpheeServiceTestCase { protected $_search_client; protected $_orphee; + public function _beforeOrpheeServiceCreate(){ $this->_search_client ->whenCalled('GetId') @@ -921,8 +922,8 @@ class OrpheeServiceGetInfoUserCarteHenryDupontTest extends OrpheeServiceTestCase /** @test */ - public function nbOfHoldsWaitingToBePulledShouldBeOne() { - $this->assertCount(1, $this->emprunteur->getHoldsWaitingToBePulled()); + public function nbOfHoldsWaitingToBePulledShouldBeTwo() { + $this->assertCount(2, $this->emprunteur->getHoldsWaitingToBePulled()); } @@ -951,8 +952,8 @@ class OrpheeServiceGetInfoUserCarteHenryDupontTest extends OrpheeServiceTestCase /** @test */ - public function getNbReservationsShouldAnswerFive() { - $this->assertEquals(5, $this->emprunteur->getNbReservations()); + public function getNbReservationsShouldAnswerSix() { + $this->assertEquals(6, $this->emprunteur->getNbReservations()); } @@ -1175,8 +1176,20 @@ class OrpheeServiceGetInfoUserCarteHenryDupontTest extends OrpheeServiceTestCase /** @test */ - public function fifthHoldGetEtatShouldReturnAffectee() { - $this->assertEquals('affectée', $this->emprunteur->getReservations()[4]->getEtat()); + public function fifthHoldGetEtatShouldReturnAffecteeUntil13_04_2019() { + $this->assertEquals('affectée jusqu\'au 13/04/2019', $this->_reservations[4]->getEtat()); + } + + + /** @test */ + public function fifthHoldTitleShouldBeLeSingeBleu() { + $this->assertEquals('Le singe bleu', $this->_reservations[4]->getTitre()); + } + + + /** @test */ + public function sixthHoldGetEtatShouldReturnAffectee() { + $this->assertEquals('affectée', $this->_reservations[5]->getEtat()); } -- GitLab