diff --git a/library/Class/WebService/SIGB/Emprunteur.php b/library/Class/WebService/SIGB/Emprunteur.php index 63ed02d10275753c958a10d587e348342ccfa33c..ce1803bcad111ff16672be7e7b07420f3e0dfa7f 100644 --- a/library/Class/WebService/SIGB/Emprunteur.php +++ b/library/Class/WebService/SIGB/Emprunteur.php @@ -41,7 +41,9 @@ class Class_WebService_SIGB_Emprunteur { $_ville, $_code_postal, $_telephone, - $_date_naissance; + $_date_naissance, + $_is_contact_email, + $_is_contact_sms; public function __sleep() { @@ -63,7 +65,9 @@ class Class_WebService_SIGB_Emprunteur { '_code_barres', '_adresse', '_ville', - '_code_postal']; + '_code_postal', + '_is_contact_email', + '_is_contact_sms']; } @@ -225,6 +229,42 @@ class Class_WebService_SIGB_Emprunteur { } + /** + * @param string $is_contact_email + * @return Class_WebService_SIGB_Emprunteur + */ + public function setIsContactEmail($is_contact_email) { + $this->_is_contact_email = $is_contact_email; + return $this; + } + + + /** + * @return string + */ + public function isContactEmail(){ + return $this->_is_contact_email; + } + + + /** + * @param string $is_contact_sms + * @return Class_WebService_SIGB_Emprunteur + */ + public function setIsContactSms($is_contact_sms) { + $this->_is_contact_sms = $is_contact_sms; + return $this; + } + + + /** + * @return string + */ + public function isContactSms(){ + return $this->_is_contact_sms; + } + + /** * @param string $date_naissance * @return Class_WebService_SIGB_Emprunteur @@ -589,7 +629,9 @@ class Class_WebService_SIGB_Emprunteur { ->setIdabon($this->getIdAbon()) ->setNom($this->getNom()) ->setPrenom($this->getPrenom()) - ->setMail($this->getEmail()); + ->setMail($this->getEmail()) + ->setIsContactMail($this->isContactEMail()) + ->setIsContactSms($this->isContactSms()); if ($this->_end_date) $user->setDateFin($this->getEndDate()); diff --git a/library/Class/WebService/SIGB/Opsys/Service.php b/library/Class/WebService/SIGB/Opsys/Service.php index 052c79ac3add8b0758cff62196741ff2eaf150b7..81d25793e40ad5dbf0ea81939ae2c5991810e18b 100644 --- a/library/Class/WebService/SIGB/Opsys/Service.php +++ b/library/Class/WebService/SIGB/Opsys/Service.php @@ -126,7 +126,7 @@ class Class_WebService_SIGB_Opsys_Service extends Class_WebService_SIGB_Abstract */ public function authentifierEmprunteur($user) { $auth = new EmprAuthentifier($this->guid, $user->getLogin(), $user->getPassword()); - xdebug_break(); + try { $auth_result = $this->search_client->EmprAuthentifier($auth); } catch (Exception $e) { @@ -141,12 +141,21 @@ class Class_WebService_SIGB_Opsys_Service extends Class_WebService_SIGB_Abstract return $emprunteur; $entite_result = $this->search_client->EmprListerEntite(EmprListerEntite::infos($this->guid)); - xdebug_break(); + if ($date_fin_abonnement = $entite_result->findAttribute('FinAbo')) { $date_fin_abonnement = implode('-', array_reverse(explode('/', $date_fin_abonnement))); $emprunteur->setEndDate($date_fin_abonnement); } + if ($telephone = $entite_result->findAttribute('Téléphone')) + $emprunteur->setTelephone($telephone); + + if ($is_contact_sms = $entite_result->findAttribute('Contacter par sms')) + $emprunteur->setIsContactSms($is_contact_sms == '1'); + + if ($is_contact_email = $entite_result->findAttribute('Contacter par email')) + $emprunteur->setIsContactEmail($is_contact_email == '1'); + return $emprunteur ->setNom($entite_result->findAttribute('nom')) ->setPrenom($entite_result->findAttribute('prenom')); @@ -1651,9 +1660,17 @@ class MaNotice { ->addChamp('100') ->addSousChamp('100$a', $emprunteur->getNom()) ->addSousChamp('100$b', $emprunteur->getPrenom()); + $this ->addChamp('115') - ->addSousChamp('115$e', $emprunteur->getEmail()); + ->addSousChamp('115$e', $emprunteur->getEmail()) + ->addSousChamp('115$x', $emprunteur->isContactEmail()); + + $this + ->addChamp('119') + ->addSousChamp('119$a', $emprunteur->getTelephone()) + ->addSousChamp('119$x', $emprunteur->isContactSms()); + $this ->addChamp('120') ->addSousChamp('120$a', $emprunteur->getPassword()); diff --git a/tests/library/Class/WebService/SIGB/OpsysServiceTest.php b/tests/library/Class/WebService/SIGB/OpsysServiceTest.php index 55e367885e8fd613f024c2b8b9f473a092cc1226..a7cf77ffb82e3a0764ae8b05e2783ff8d9ad4b94 100644 --- a/tests/library/Class/WebService/SIGB/OpsysServiceTest.php +++ b/tests/library/Class/WebService/SIGB/OpsysServiceTest.php @@ -424,11 +424,11 @@ abstract class OpsysServiceWithSessionTestCase extends Storm_Test_ModelTestCase $entite_infos_response->EmprListerEntiteResult = new RspEmprListerEntite(); $entite_infos_response->EmprListerEntiteResult->Entite = new EntiteEmp(); $entite_infos_response->EmprListerEntiteResult->Entite->LibelleDonnee = new StdClass(); - $entite_infos_response->EmprListerEntiteResult->Entite->LibelleDonnee->string = ['Nom', 'Prenom', 'FinAbo']; + $entite_infos_response->EmprListerEntiteResult->Entite->LibelleDonnee->string = ['Nom', 'Prenom', 'FinAbo', 'Téléphone', 'Contacter par sms', 'Contacter par email']; $entite_infos_response->EmprListerEntiteResult->Entite->Donnees = new StdClass(); $entite_infos_response->EmprListerEntiteResult->Entite->Donnees->Lignes = [$donnes_infos = new DonneeEmp()]; $donnes_infos->ValeursDonnees = new StdClass(); - $donnes_infos->ValeursDonnees->string = ['Tin', 'Tin', '10/12/2012']; + $donnes_infos->ValeursDonnees->string = ['Tin', 'Tin', '10/12/2012', '23 45 67 89', '1', '1']; $this->search_client ->whenCalled('OuvrirSession')->answers($this->ouvre_session_res) @@ -542,6 +542,59 @@ class OpsysServiceEmprAuthentifierTestCreateEmprunteur extends OpsysServiceWithS } + /** @test */ + public function emprunterTelephoneShouldBe23456789() { + $this->assertEquals('23 45 67 89', $this->emprunteur->getTelephone()); + } + + + /** @test */ + public function emprunteurShouldBeContactedBySms() { + $this->assertTrue($this->emprunteur->isContactSms()); + } + + + /** @test */ + public function emprunteurShouldBeContactedByMail() { + $this->assertTrue($this->emprunteur->isContactEmail()); + } + + + /** @test */ + public function updateUser() { + $user = Class_Users::find(3); + $this->emprunteur->updateUser($user); + return $user; + } + + + /** + * @test + * @depends updateUser + */ + public function updatedUserTelephoneShouldBe23456789($user) { + $this->assertEquals('23 45 67 89', $user->getTelephone()); + } + + + /** + * @test + * @depends updateUser + */ + public function updatedUserIsContactMailShouldBeTrue($user) { + $this->assertTrue($user->getIsContactMail()); + } + + + /** + * @test + * @depends updateUser + */ + public function updatedUserIsContactSmsShouldBeTrue($user) { + $this->assertTrue($user->getIsContactSms()); + } + + public function testEmprunteurIsValid() { $this->assertTrue($this->emprunteur->isValid()); } @@ -738,7 +791,10 @@ class OpsysServiceTestUpdateInfoEmprunteur extends OpsysServiceWithSessionTestCa ->setPrenom('Flo') ->setEmail('flo@astrolabe.fr') ->setPassword('amstramgram') - ->setService($this->opsys); + ->setService($this->opsys) + ->setIsContactEmail(true) + ->setIsContactSms(true) + ->setTelephone('01 23 45 67'); /* Infos lecteur */ $sous_champ_nom = new ImportSousChamp(); @@ -758,9 +814,26 @@ class OpsysServiceTestUpdateInfoEmprunteur extends OpsysServiceWithSessionTestCa $sous_champ_email->Etiquette = '115$e'; $sous_champ_email->_ = 'flo@astrolabe.fr'; + $sous_champ_contact_email = new ImportSousChamp(); + $sous_champ_contact_email->Etiquette = '115$x'; + $sous_champ_contact_email->_ = '1'; + + $champ_mail = new ImportChamp(); + $champ_mail->Etiquette = '115'; + $champ_mail->SousChamps = array($sous_champ_email, $sous_champ_contact_email); + + + $sous_champ_telephone = new ImportSousChamp(); + $sous_champ_telephone->Etiquette = '119$a'; + $sous_champ_telephone->_ = '01 23 45 67'; + + $sous_champ_contact_sms = new ImportSousChamp(); + $sous_champ_contact_sms->Etiquette = '119$x'; + $sous_champ_contact_sms->_ = '1'; + $champ_telephone = new ImportChamp(); - $champ_telephone->Etiquette = '115'; - $champ_telephone->SousChamps = array($sous_champ_email); + $champ_telephone->Etiquette = '119'; + $champ_telephone->SousChamps = array($sous_champ_telephone, $sous_champ_contact_sms); /* Autres */ $sous_champ_password = new ImportSousChamp(); @@ -774,7 +847,7 @@ class OpsysServiceTestUpdateInfoEmprunteur extends OpsysServiceWithSessionTestCa /* Notice lecteur */ $notice = new MaNotice(); $notice->GUIDSession = 'guid_12345'; - $notice->Champs = array($champ_info_lecteur, $champ_telephone, $champ_autres); + $notice->Champs = array($champ_info_lecteur, $champ_mail, $champ_telephone, $champ_autres); $expected_ecrire_notice = new EcrireNotice();