From 1fb5b81e3d948113bf90b51f1fcf4c372ae931ae Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 12 Sep 2019 15:22:36 +0200 Subject: [PATCH] fix #3009 @1.5 --- app/Models/Product.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app/Models/Product.php b/app/Models/Product.php index af76904..c7043c1 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -479,13 +479,13 @@ class Product extends CubistMagicPageModel $options['-'] = ['label' => __('Non défini'), 'value' => '-', 'nb_products' => $values['-']]; } $f['options'] = $options; - } else if ($data->type == 'numeric' || $data->type == 'range') { + } else if ($data->type == 'numeric' || $data->type == 'range' || $data->type == 'numeric_list') { $f['min'] = INF; $f['max'] = -INF; $f['unit'] = $data->unit; $f['type'] = 'range'; - if ($data->type == 'numeric') { + if ($data->type == 'numeric' || $data->type == 'numeric_list') { $f['prefix'] = $data['prefix']; } else { $f['prefix'] = ''; @@ -511,7 +511,7 @@ class Product extends CubistMagicPageModel $matching[] = $product->id; } } - } else { + } else if ($data->type == 'numeric') { $f['min'] = min($f['min'], $v); $f['max'] = max($f['max'], $v); if (null !== $filter_value) { @@ -519,6 +519,20 @@ class Product extends CubistMagicPageModel $matching[] = $product->id; } } + } else if ($data->type == 'numeric_list') { + if (!is_array($v)) { + $v = [$v]; + } + foreach ($v as $vv) { + $f['min'] = min($f['min'], $vv); + $f['max'] = max($f['max'], $vv); + + if (null !== $filter_value) { + if (null === $vv || ($vv >= $filter_value[0] && $vv <= $filter_value[1])) { + $matching[] = $product->id; + } + } + } } if (null === $filter_value && $v != '') { $matching[] = $product->id; -- 2.39.5