From 2f25a953568db3a30caca54718cf3ee9cf17925b Mon Sep 17 00:00:00 2001
From: Patrick Barroca <pbarroca@afi-sa.fr>
Date: Fri, 26 Jun 2020 10:30:53 +0200
Subject: [PATCH] hotline #109428 : fix current loan count in dilicom
 dashboards

---
 VERSIONS_HOTLINE/109428                       |  1 +
 .../TableDescription/PNBItemsRenderer.php     |  2 +-
 tests/scenarios/PnbDilicom/PnbDilicomTest.php | 48 ++++++++++++++-----
 3 files changed, 38 insertions(+), 13 deletions(-)
 create mode 100644 VERSIONS_HOTLINE/109428

diff --git a/VERSIONS_HOTLINE/109428 b/VERSIONS_HOTLINE/109428
new file mode 100644
index 00000000000..7e527e53320
--- /dev/null
+++ b/VERSIONS_HOTLINE/109428
@@ -0,0 +1 @@
+ - ticket #109428 : PNB Dilicom : Correction du calcul des prêts en cours
\ No newline at end of file
diff --git a/library/Class/TableDescription/PNBItemsRenderer.php b/library/Class/TableDescription/PNBItemsRenderer.php
index 72c48ce68b4..69e0e25adab 100644
--- a/library/Class/TableDescription/PNBItemsRenderer.php
+++ b/library/Class/TableDescription/PNBItemsRenderer.php
@@ -67,7 +67,7 @@ class Class_TableDescription_PNBItemsRenderer {
 
 
   public function getLiveQuantity() {
-    return $this->getLoanCountOrLocalOngoing()
+    return $this->getLocalOngoingCount()
       . ' / '
       . $this->_item->getLoanAllowedNumberOfUsers();
   }
diff --git a/tests/scenarios/PnbDilicom/PnbDilicomTest.php b/tests/scenarios/PnbDilicom/PnbDilicomTest.php
index fad70b72fd3..11d9150e6ff 100644
--- a/tests/scenarios/PnbDilicom/PnbDilicomTest.php
+++ b/tests/scenarios/PnbDilicom/PnbDilicomTest.php
@@ -3377,6 +3377,7 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
 
     $this->fixture('Class_Album',
                    ['id' => 23,
+                    'id_origine' => 'Dilicom-36636',
                     'titre' => 'Being human being',
                     'type_doc_id' => Class_TypeDoc::DILICOM]);
 
@@ -3399,7 +3400,6 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
                                      'usage_type' => Class_Album_UsageConstraint::DEVICE_SHARE_CONSTRAINT,
                                      'serialized_datas' => json_encode([Class_Album_UsageConstraint::QUANTITY => 6])]),
 
-
                      $this->fixture('Class_Album_UsageConstraint',
                                     ['id' => 3,
                                      'usage_type' => Class_Album_UsageConstraint::AVAILABILITY_CONSTRAINT,
@@ -3409,6 +3409,27 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
                     ]
                    ]);
 
+    $this->fixture('Class_Loan_Pnb',
+                   ['id' => 1,
+                    'record_origin_id' => 'Dilicom-36636',
+                    'subscriber_id' => '000005',
+                    'user_id' => 4077,
+                    'expected_return_date' => '2017-01-20 13:57:33',
+                    'loan_date' => '2016-12-16 13:57:33',
+                    'loan_link' => 'https://pnb-dilicom.centprod.com/v2//XXXXXXXX.do',
+                    'order_line_id' => '12385',]);
+
+    $this->fixture('Class_Loan_Pnb',
+                   ['id' => 2,
+                    'record_origin_id' => 'Dilicom-36636',
+                    'subscriber_id' => '000006',
+                    'user_id' => 4078,
+                    'expected_return_date' => '2017-12-13 13:57:33',
+                    'loan_date' => '2017-11-13 13:57:33',
+                    'loan_link' => 'https://pnb-dilicom.centprod.com/v2//XXXXXXXX.do',
+                    'order_line_id' => '12385',]);
+
+
     $this->fixture('Class_Album_Item',
                    ['id' => 2,
                     'quantity' => '20',
@@ -3417,11 +3438,12 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
                     'usage_constraints' =>
                     [
                      $this->fixture('Class_Album_UsageConstraint',
-                                    ['id' => 1,
+                                    ['id' => 4,
                                      'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
                                      'serialized_datas' => json_encode([Class_Album_UsageConstraint::DURATION => 20,
                                                                         Class_Album_UsageConstraint::QUANTITY => 20,
                                                                         Class_Album_UsageConstraint::MAX_NB_OF_USERS => 15])]),
+
                      $this->fixture('Class_Album_UsageConstraint',
                                     ['id' => 5,
                                      'usage_type' => Class_Album_UsageConstraint::AVAILABILITY_CONSTRAINT,
@@ -3466,20 +3488,19 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
                     'usage_constraints' =>
                     [
                      $this->fixture('Class_Album_UsageConstraint',
-                                    ['id' => 1,
+                                    ['id' => 6,
                                      'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
                                      'serialized_datas' => json_encode([Class_Album_UsageConstraint::DURATION => 359,
                                                                         Class_Album_UsageConstraint::QUANTITY => 999999,
                                                                         Class_Album_UsageConstraint::MAX_NB_OF_USERS => 1])]),
 
                      $this->fixture('Class_Album_UsageConstraint',
-                                    ['id' => 2,
+                                    ['id' => 7,
                                      'usage_type' => Class_Album_UsageConstraint::DEVICE_SHARE_CONSTRAINT,
                                      'serialized_datas' => json_encode([Class_Album_UsageConstraint::QUANTITY => 6])]),
 
-
                      $this->fixture('Class_Album_UsageConstraint',
-                                    ['id' => 3,
+                                    ['id' => 8,
                                      'usage_type' => Class_Album_UsageConstraint::AVAILABILITY_CONSTRAINT,
                                      'serialized_datas' => json_encode([Class_Album_UsageConstraint::DURATION => 999999,
                                                                         Class_Album_UsageConstraint::ORDER_LINE_ID => '584837a045ce56ef0a072a8b',
@@ -3488,7 +3509,7 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
                    ]);
 
     $this->fixture('Class_Loan_Pnb',
-                   ['id' => 2,
+                   ['id' => 3,
                     'record_origin_id' => 'Dilicom-3663608260879',
                     'subscriber_id' => '000005',
                     'user_id' => 4077,
@@ -3498,7 +3519,7 @@ abstract class PnbDilicomAdminAlbumControllerTestCase extends Admin_AbstractCont
                     'order_line_id' => '584837a045ce56ef0a072a8b',]);
 
     $this->fixture('Class_Loan_Pnb',
-                   ['id' => 3,
+                   ['id' => 4,
                     'record_origin_id' => 'Dilicom-3663608260879',
                     'subscriber_id' => '000006',
                     'user_id' => 4078,
@@ -3795,9 +3816,10 @@ class PnbDilicomAdminAlbumControllerExportCsvTest extends PnbDilicomAdminAlbumCo
   public function csvShouldContainsAlbumsItems() {
     $this->assertEquals('Titre;"Prêts / Droits";"Nombre de prêts";"Prêts simultanés / Droits";"Prêts simultanés";"Durée de prêt en jours";"Nombre de jours restant sur la licence";"Date de commande";Auteur;Éditeur;Collection;Année;Genre;Section;Catégorie
 "Being human being";"10 / 30";10;"2 / 15";2;45;2095;30/03/2015;;;;;;;"Albums non classés"
-"Being human being";"20 / 20";20;"5 / 15";5;20;19902;29/08/2015;;;;;;;"Albums non classés"
+"Being human being";"20 / 20";20;"0 / 15";5;20;19902;29/08/2015;;;;;;;"Albums non classés"
 "Hell is from here to eternity";"2 / ∞";2;"1 / 1";1;359;∞;30/03/2015;"Iron Maiden";EMI;"Temple Of Rock";1992;"Heavy Metal";"Espace métal";Fondu
-', $this->_response->getBody());
+',
+                        $this->_response->getBody());
   }
 }
 
@@ -3821,7 +3843,7 @@ class PnbDilicomAdminAlbumControllerExportLoansCsvTest extends PnbDilicomAdminAl
                                  'gln' => '333']);
 
     $this->fixture('Class_Loan_Pnb',
-                   ['id' => 4,
+                   ['id' => 5,
                     'record_origin_id' => 'Dilicom-3663608260879',
                     'subscriber_id' => 9879,
                     'user_id' => 7,
@@ -3831,7 +3853,7 @@ class PnbDilicomAdminAlbumControllerExportLoansCsvTest extends PnbDilicomAdminAl
                     'order_line_id' => '82377a045ce56ef0a072a8b']);
 
     $this->fixture('Class_Loan_Pnb',
-                   ['id' => 5,
+                   ['id' => 6,
                     'record_origin_id' => 'Dilicom-3663608260879',
                     'subscriber_id' => 9878,
                     'user_id' => 12321,
@@ -3862,7 +3884,9 @@ class PnbDilicomAdminAlbumControllerExportLoansCsvTest extends PnbDilicomAdminAl
   /** @test */
   public function csvShouldContainsAlbumsItems() {
     $this->assertEquals('Date;Titre;"Date de commande";Auteur;Éditeur;Collection;Année;Genre;Section;Catégorie;Bibliothèque
+16/12/2016;"Being human being";30/03/2015;;;;;;;"Albums non classés";
 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;"Being human being";30/03/2015;;;;;;;"Albums non classés";
 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
-- 
GitLab