Skip to content
Snippets Groups Projects
Commit 20f17b33 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

hotline #60731 : with no limit count loans localy

parent 705ed9f0
Branches
Tags
2 merge requests!2409Master,!2398Hotline#60731 probleme titres pnb
Pipeline #2849 failed with stage
in 20 minutes and 14 seconds
- ticket #60731 : Administration : Amélioration des statistiques PNB Dilicom
\ No newline at end of file
......@@ -37,6 +37,7 @@ class Class_Album_Item extends Storm_Model_Abstract {
return $this->getUsageConstraints()->isAvailable();
}
public function isLoanable() {
return $this->getUsageConstraints()->isLoanable();
}
......@@ -118,5 +119,9 @@ class Class_Album_Item extends Storm_Model_Abstract {
$this->getUsageConstraints()->setLoanQuantity($quantity);
return $this;
}
public function getLocalLoanCount() {
return Class_Loan_Pnb::countBy(['order_line_id' => $this->getOrderLineId()]);
}
}
?>
\ No newline at end of file
......@@ -52,14 +52,14 @@ class Class_TableDescription_PNBItems extends Class_TableDescription {
public function quantityOrInfinite($value) {
return preg_match('/^9{4,}$/', $value)
return $this->isInfinite($value)
? '∞'
: $value;
}
public function getQuantityOnTotal($model) {
return $model->getQuantity()
return $this->loanQuantityOrLocalLoanCount($model)
. ' / '
. $this->quantityOrInfinite($model->getLoanQuantity());
}
......@@ -77,5 +77,17 @@ class Class_TableDescription_PNBItems extends Class_TableDescription {
? '∞'
: $model->getAvailabilityRemainingDaysBeforeEndDate();
}
public function loanQuantityOrLocalLoanCount($model) {
return $this->isInfinite($model->getLoanQuantity())
? $model->getLocalLoanCount()
: $model->getQuantity();
}
public function isInfinite($value) {
return preg_match('/^9{4,}$/', $value);
}
}
?>
\ No newline at end of file
......@@ -223,6 +223,82 @@ class AlbumControllerDilicomPNBImportDilicomTest extends Admin_AlbumControllerDi
class AlbumControllerDilicomActionWithNoLimitAlbumTest extends Admin_AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
public function setUp() {
parent::setUp();
RessourcesNumeriquesFixtures::activateDilicom();
$this->fixture('Class_Album',
['id' => 6127,
'titre' => 'How to tell...',
'type_doc_id' => Class_TypeDoc::DILICOM,
]);
$this->fixture('Class_Album_Item',
['id' => 2,
'quantity' => 990000,
'loan_count' => 1,
'album_id' => 6127,
'usage_constraints' =>
[
$this->fixture('Class_Album_UsageConstraint',
['id' => 6,
'usage_type' => '04',
'serialized_datas' => '{"quantity":"6"}']),
$this->fixture('Class_Album_UsageConstraint',
['id' => 7,
'usage_type' => '05',
'serialized_datas' => '[]']),
$this->fixture('Class_Album_UsageConstraint',
['id' => 8,
'usage_type' => '03',
'serialized_datas' => '[]']),
$this->fixture('Class_Album_UsageConstraint',
['id' => 9,
'usage_type' => '02',
'serialized_datas' => '{"quantity":"29"}']),
$this->fixture('Class_Album_UsageConstraint',
['id' => 10,
'usage_type' => '06',
'serialized_datas' => '{"max_number_of_users":"1","duration":359,"quantity":"999999"}']),
$this->fixture('Class_Album_UsageConstraint',
['id' => 11,
'usage_type' => '07',
'serialized_datas' => '{"duration":"999999","order_line_id":"584837a045ce56ef0a072a8b","order_date":"2016-12-07T17:24:01.793+01:00"}']),
]
]);
$this->fixture('Class_Loan_Pnb',
['id' => 2,
'record_origin_id' => 'Dilicom-3663608260879',
'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' => '584837a045ce56ef0a072a8b',]);
$this->dispatch('/admin/album/dilicom', true);
}
/** @test */
public function loanCountShouldBeLocalLoanCount() {
$this->assertXPathContentContains('//table[@id="pnb_dilicom"]//tr/td[2]', '1 / ∞', $this->_response->getBody());
}
}
class AlbumControllerDilicomPNBEditTest extends Admin_AlbumControllerDilicomPNBTestCase {
public function setUp() {
parent::setUp();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment