From ca58c6752b31fdae99dd1fd5e17e9b41c85248dc Mon Sep 17 00:00:00 2001 From: Laurent Laffont <llaffont@afi-sa.fr> Date: Mon, 10 Feb 2020 14:27:58 +0100 Subject: [PATCH] hotline #105277 dilicom PNB, CSV export, add library column --- VERSIONS_HOTLINE/105277 | 1 + library/Class/Loan/Pnb.php | 11 ++++- library/Class/TableDescription/PNBLoans.php | 2 +- .../MobileApplication/RestfulApiTest.php | 6 ++- tests/scenarios/PnbDilicom/PnbDilicomTest.php | 41 +++++++++++++++++-- 5 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 VERSIONS_HOTLINE/105277 diff --git a/VERSIONS_HOTLINE/105277 b/VERSIONS_HOTLINE/105277 new file mode 100644 index 00000000000..36f4d235932 --- /dev/null +++ b/VERSIONS_HOTLINE/105277 @@ -0,0 +1 @@ + - ticket #105277 : Dilicom PNB, export CSV des prêts : ajout de la colonne "Bibliothèque" qui contient le libellé de la bibliothèque des abonnés \ No newline at end of file diff --git a/library/Class/Loan/Pnb.php b/library/Class/Loan/Pnb.php index a62cc93ca09..a1fe01601e9 100644 --- a/library/Class/Loan/Pnb.php +++ b/library/Class/Loan/Pnb.php @@ -151,7 +151,16 @@ class Class_Loan_Pnb extends Storm_Model_Abstract { public function getBibliotheque() { - return ''; + return $this->hasUser() + ? $this->getUser()->getLibelleBib() + : ''; + } + + + public function getUser() { + if ($user = parent::_get('user')) + return $user; + return Class_Users::findFirstBy(['idabon' => $this->getSubscriberId()]); } diff --git a/library/Class/TableDescription/PNBLoans.php b/library/Class/TableDescription/PNBLoans.php index 9081be9c188..4d75227d10f 100644 --- a/library/Class/TableDescription/PNBLoans.php +++ b/library/Class/TableDescription/PNBLoans.php @@ -37,7 +37,7 @@ class Class_TableDescription_PNBLoans extends Class_TableDescription { ->addColumn($this->_('Genre'), 'first_kind') ->addColumn($this->_('Section'), 'first_section') ->addColumn($this->_('Catégorie'), 'category') - ; + ->addColumn($this->_('Bibliothèque'), 'bibliotheque'); } diff --git a/tests/scenarios/MobileApplication/RestfulApiTest.php b/tests/scenarios/MobileApplication/RestfulApiTest.php index 625e537587b..eaab02d151f 100644 --- a/tests/scenarios/MobileApplication/RestfulApiTest.php +++ b/tests/scenarios/MobileApplication/RestfulApiTest.php @@ -31,6 +31,10 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends Class_CommSigb::setInstance($this->_sigb = $this->mock()); + $this->fixture('Class_Bib', + ['id' => 1, + 'libelle' => 'Vaise-sur-Ravoire']); + $puppy = $this->fixture('Class_Users', ['id' => 345, 'pseudo' => 'Puppy', @@ -173,7 +177,7 @@ class Scenario_MobileApplication_RestfulApi_UserAccountLoansWithTokenTest extend 'author' => 'Collodi', 'date_due' => '2022-05-02', 'loaned_by' => 'puppy', - 'library' => '' + 'library' => 'Vaise-sur-Ravoire' ], $this->_json['loans'][2]); } diff --git a/tests/scenarios/PnbDilicom/PnbDilicomTest.php b/tests/scenarios/PnbDilicom/PnbDilicomTest.php index 957fa5b08f8..54ef87fea73 100644 --- a/tests/scenarios/PnbDilicom/PnbDilicomTest.php +++ b/tests/scenarios/PnbDilicom/PnbDilicomTest.php @@ -3626,7 +3626,38 @@ class PnbDilicomAdminAlbumControllerExportLoansCsvTest extends PnbDilicomAdminAl public function setUp() { parent::setUp(); - Class_Album_UsageConstraints::setTimeSource(new TimeSourceForTest('2015-12-04 14:14:14')); + $this->fixture('Class_Users', + ['id' => 7, + 'nom' => 'boum', + 'login'=>'boum', + 'password'=>'secret', + 'id_site' => 1, + 'idabon' => '9878']); + + $this->fixture('Class_Bib', ['id' => 1, + 'libelle' => 'SomewhereInCode', + 'gln' => '333']); + + $this->fixture('Class_Loan_Pnb', + ['id' => 4, + 'record_origin_id' => 'Dilicom-3663608260879', + 'subscriber_id' => 9879, + 'user_id' => 7, + 'expected_return_date' => '2020-01-20 13:57:33', + 'loan_date' => '2020-01-06 13:57:33', + 'loan_link' => 'https://pnb-dilicom.centprod.com/v2//XXXXXXXX.do', + 'order_line_id' => '82377a045ce56ef0a072a8b']); + + $this->fixture('Class_Loan_Pnb', + ['id' => 5, + 'record_origin_id' => 'Dilicom-3663608260879', + 'subscriber_id' => 9878, + 'user_id' => 12321, + 'expected_return_date' => '2020-02-20 13:57:33', + 'loan_date' => '2020-02-06 13:57:33', + 'loan_link' => 'https://pnb-dilicom.centprod.com/v2//XXXXXXXX.do', + 'order_line_id' => '82377a045ce56ef0a072a8b']); + $this->dispatch('admin/album/dilicom-export-loans-csv', true); } @@ -3648,9 +3679,11 @@ class PnbDilicomAdminAlbumControllerExportLoansCsvTest extends PnbDilicomAdminAl /** @test */ public function csvShouldContainsAlbumsItems() { - $this->assertEquals('Date;Titre;"Date de commande";Auteur;Éditeur;Collection;Année;Genre;Section;Catégorie -16/12/2016;"Hell is from here to eternity";30/03/2015;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu -13/11/2017;"Hell is from here to eternity";30/03/2015;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu + $this->assertEquals('Date;Titre;"Date de commande";Auteur;Éditeur;Collection;Année;Genre;Section;Catégorie;Bibliothèque +16/12/2016;"Hell is from here to eternity";30/03/2015;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu; +13/11/2017;"Hell is from here to eternity";30/03/2015;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu; +06/01/2020;"Hell is from here to eternity";;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu;SomewhereInCode +06/02/2020;"Hell is from here to eternity";;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu;SomewhereInCode ', $this->_response->getBody()); } -- GitLab