diff --git a/library/Class/Users.php b/library/Class/Users.php index cab856adfe331870cd71ab5a29d8cee9bb3f98ce..1129e9b7fe3711e049c574f67a7221bb2d415787 100644 --- a/library/Class/Users.php +++ b/library/Class/Users.php @@ -984,7 +984,7 @@ class Class_Users extends Storm_Model_Abstract { * @return array */ public function getEmprunts() { - return array_at('fiche', $this->getFicheSIGB())->getEmprunts(); + return $this->getEmprunteur()->getEmprunts(); } @@ -993,6 +993,15 @@ class Class_Users extends Storm_Model_Abstract { } + + /** + * @return Class_WebService_SIGB_Emprunteur + */ + public function getEmprunteur() { + return array_at('fiche', $this->getFicheSIGB()); + } + + /** * Liste des Class_WebService_SIGB_Emprunt en retard * @return array @@ -1012,7 +1021,7 @@ class Class_Users extends Storm_Model_Abstract { * @return int */ public function getNbEmprunts() { - return count($this->getEmprunts()); + return $this->getEmprunteur()->getNbEmprunts(); } @@ -1020,7 +1029,7 @@ class Class_Users extends Storm_Model_Abstract { * @return int */ public function getNbEmpruntsRetard() { - return count($this->getEmpruntsRetard()); + return $this->getEmprunteur()->getNbPretsEnRetard(); } @@ -1037,7 +1046,7 @@ class Class_Users extends Storm_Model_Abstract { * @return int */ public function getNbReservations() { - return count($this->getReservations()); + return $this->getEmprunteur()->getNbReservations(); } diff --git a/library/ZendAfi/View/Helper/Abonne/Resume.php b/library/ZendAfi/View/Helper/Abonne/Resume.php index 28d9a24ccfa86149796b4dd18d29cc69b4e4038d..638ef88432af720b5ecc3276dd9eeffda8ad7344 100644 --- a/library/ZendAfi/View/Helper/Abonne/Resume.php +++ b/library/ZendAfi/View/Helper/Abonne/Resume.php @@ -23,29 +23,27 @@ class ZendAfi_View_Helper_Abonne_Resume extends Zend_View_Helper_HtmlElement { use Trait_Translator; public function abonne_Resume($user) { - $fiche_sigb = $user->getFicheSigb(); - if (!isset($fiche_sigb['fiche'])) - return ''; - - $emprunteur = $fiche_sigb['fiche']; return '<div class="abonne_resume">' - .$this->prets($emprunteur) - .$this->reservations($emprunteur) + .$this->prets($user) + .$this->reservations($user) .$this->avis($user) .'</div>'; } - public function prets($emprunteur) { - $nb_prets = $emprunteur->getNbEmprunts(); + public function prets($user) { + if (!$user->isAbonne()) + return ''; + + $nb_prets = $user->getNbEmprunts(); $str_prets = $this->view->_plural($nb_prets, "Aucun prêt en cours", "%d prêt en cours", "%d prêts en cours", $nb_prets); - $nb_retards = $emprunteur->getNbPretsEnRetard(); + $nb_retards = $user->getNbEmpruntsRetard(); $str_prets .= $this->view->_plural($nb_retards, "", " dont %d retard", @@ -57,8 +55,11 @@ class ZendAfi_View_Helper_Abonne_Resume extends Zend_View_Helper_HtmlElement { } - public function reservations($emprunteur) { - $nb_resas = $emprunteur->getNbReservations(); + public function reservations($user) { + if (!$user->isAbonne()) + return ''; + + $nb_resas = $user->getNbReservations(); $str_resas = $this->view->_plural($nb_resas, "Aucune réservation", "%d réservation", diff --git a/tests/library/ZendAfi/View/Helper/Abonne/ResumeTest.php b/tests/library/ZendAfi/View/Helper/Abonne/ResumeTest.php index 141c54ebc584fb28998f3425a894385f9d17724f..ec2442d2851049c7b8c10cb84b9bb6f8ac4bc82d 100644 --- a/tests/library/ZendAfi/View/Helper/Abonne/ResumeTest.php +++ b/tests/library/ZendAfi/View/Helper/Abonne/ResumeTest.php @@ -20,7 +20,7 @@ */ require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php'; -class View_Helper_Abonne_ResumeTest extends ViewHelperTestCase { +class View_Helper_Abonne_ResumeAsAbonneSIGBTest extends ViewHelperTestCase { protected $_html, $_helper; public function setUp() { @@ -36,7 +36,8 @@ class View_Helper_Abonne_ResumeTest extends ViewHelperTestCase { $user = Class_Users::newInstanceWithId(3, ['fiche_sigb' => ['fiche' => $emprunteur], 'avis' => [Class_Avis::newInstanceWithId(34), - Class_Avis::newInstanceWithId(35)]]); + Class_Avis::newInstanceWithId(35)]]) + ->beAbonneSIGB(); $this->_html = $this->_helper->abonne_Resume($user); } @@ -76,4 +77,35 @@ class View_Helper_Abonne_ResumeTest extends ViewHelperTestCase { } } + + + +class View_Helper_Abonne_ResumeAsInviteTest extends ViewHelperTestCase { + protected $_html, $_helper; + + public function setUp() { + parent::setUp(); + $this->_helper = new ZendAfi_View_Helper_Abonne_Resume(); + $this->_helper->setView(new ZendAfi_Controller_Action_Helper_View()); + + $user = Class_Users::newInstanceWithId(3)->beInvite(); + + $this->_html = $this->_helper->abonne_Resume($user); + } + + + /** @test */ + public function linkReservationsShouldNotBeVisible() { + $this->assertNotXPath($this->_html, + '//a[contains(@href, "abonne/reservations")]'); + } + + + /** @test */ + public function linkPretsShouldNotBeVisible() { + $this->assertNotXPath($this->_html, + '//a[contains(@href, "abonne/prets")]'); + } +} + ?> \ No newline at end of file