Skip to content
Snippets Groups Projects
Commit 3ad3282e authored by llaffont's avatar llaffont
Browse files

Correction recherche notices perdues des paniers

parent 0beafe63
Branches
Tags
No related merge requests found
......@@ -54,6 +54,8 @@ class PanierNoticeLoader extends Storm_Model_Loader {
class Class_PanierNotice extends Storm_Model_Abstract {
const NOTICES_SEPARATOR = ';';
protected
$_loader_class = 'PanierNoticeLoader',
$_table_name = 'notices_paniers',
......@@ -83,7 +85,7 @@ class Class_PanierNotice extends Storm_Model_Abstract {
$notices_field = $this->_get('notices');
if (empty($notices_field)) return $cles;
foreach(explode(";", $notices_field) as $cle) {
foreach(explode(self::NOTICES_SEPARATOR, $notices_field) as $cle) {
if (empty($cle)) continue;
$cles []= $cle;
......@@ -92,6 +94,15 @@ class Class_PanierNotice extends Storm_Model_Abstract {
return $cles;
}
/*
* @param $cles_notices array
*/
public function setClesNotices($cles_notices) {
return $this->_set('notices', implode(self::NOTICES_SEPARATOR, $cles_notices));
}
/**
* getClesNotices -> retournes les clés notices enregistrer dans la base dans le champs notices de la table panier
* return les clés qui existe dans la base
......@@ -181,10 +192,7 @@ class Class_PanierNotice extends Storm_Model_Abstract {
// Suppression de notice dans panier
//------------------------------------------------------------------------------------------------------
public function removeNotice($notice) {
return $this->setNotices(implode(';',
array_diff($this->getClesNotices(),
[$notice->getClefAlpha()])
));
return $this->setClesNotices(array_diff($this->getClesNotices(), [$notice->getClefAlpha()]));
}
......@@ -192,10 +200,7 @@ class Class_PanierNotice extends Storm_Model_Abstract {
// Ajout de notice dans panier
//------------------------------------------------------------------------------------------------------
public function addNotice($notice) {
return $this->setNotices(implode(';',
array_merge($this->getClesNotices(),
[$notice->getClefAlpha()])
));
return $this->setClesNotices(array_merge($this->getClesNotices(), [$notice->getClefAlpha()]));
}
......
......@@ -129,12 +129,13 @@ class PanierNoticeWithThreeNoticesTest extends ModelTestCase {
/** @test */
public function afterTryToFindLostClesNoticesShouldUpdateClesNoticeWithTEMPLERETROUVE() {
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Notice')
Class_Notice::getLoader()
->whenCalled('findAllBy')
->with(['where' => 'clef_alpha like "TEMPLEPERDU-%"',
'tome_alpha' => '2',
'tome_alpha' => '3',
'type_doc' => 1])
->answers([Class_Notice::newInstanceWithId(54, ['clef_alpha' => 'TEMPLERETROUVE'])]);
->answers([Class_Notice::newInstanceWithId(54, ['clef_alpha' => 'TEMPLERETROUVE'])])
->beStrict();
......
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