Skip to content
Snippets Groups Projects
Commit 7c9cd30f authored by llaffont's avatar llaffont
Browse files

Correction erreur SQL si un panier ne contient pas de notices

parent ba121dd9
No related merge requests found
......@@ -95,13 +95,14 @@ class Class_PanierNotice extends Storm_Model_Abstract {
$notices_field = $this->_get('notices');
if (empty($notices_field)) return $cles;
foreach(explode(self::NOTICES_SEPARATOR, $notices_field) as $cle) {
if (empty($cle)) continue;
$exploded_cles = explode(self::NOTICES_SEPARATOR, $notices_field);
foreach($exploded_cles as $cle) {
if (empty($cle) || !trim($cle)) continue;
$cles []= $cle;
}
return array_values(array_unique(array_filter($cles)));
return array_filter(array_values(array_unique($cles)));
}
......@@ -117,10 +118,11 @@ class Class_PanierNotice extends Storm_Model_Abstract {
* 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
*
* TODO : creer une methode batchalble permettant de rematcher les clés manquantes
*/
public function getNoticesAsArray() {
$cles = $this->getClesNotices();
if (!$cles = $this->getClesNotices())
return [];
return Class_Notice::getLoader()->findAllBy(['clef_alpha' => $cles,
'order' => 'FIELD(clef_alpha, "'.implode('","', $cles).'")']);
}
......
......@@ -65,6 +65,27 @@ class PanierNoticeLoaderTestFindAllBelongsToAdmin extends ModelTestCase {
class PanierNoticeWithoutNoticesTest extends ModelTestCase {
public function setUp() {
$this->panier = Class_PanierNotice::newInstanceWithId(5,
['notices' => ' ']);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Notice')
->whenCalled('findAllBy')
->never()
->beStrict();
}
/** @test */
public function getNoticesAsArrayShouldAnswerEmptyArray() {
$this->assertEquals([], $this->panier->getNoticesAsArray());
}
}
class PanierNoticeWithThreeNoticesTest extends ModelTestCase {
public function setUp() {
$this->fictions = new Class_PanierNotice();
......
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