Code Duplication    Length = 18-19 lines in 2 locations

system/modules/Ecommerce/Ecommerce.php 2 locations

@@ 253-270 (lines=18) @@
250
              $selectOptions['where'][] = [Ecommerce\Item\Offer\Price::colPrefix() . 'price', (float) $filter['max'], '<='];
251
            }
252
            break;
253
          case 'options':
254
            foreach ($filter as $optionId => $optionValue) {
255
              $optionId = (int) $optionId;
256
              if (is_array($optionValue)) {
257
                $optionValueArr = [];
258
                foreach ($optionValue as $val) {
259
                  $optionValueArr[] = \App::$cur->db->connection->pdo->quote($val);
260
                }
261
                $qstr = 'IN (' . implode(',', $optionValueArr) . ')';
262
              } else {
263
                $qstr = '= ' . \App::$cur->db->connection->pdo->quote($optionValue);
264
              }
265
              $selectOptions['join'][] = [Ecommerce\Item\Param::table(), Ecommerce\Item::index() . ' = ' . 'option' . $optionId . '.' . Ecommerce\Item\Param::colPrefix() . Ecommerce\Item::index() . ' AND ' .
266
                  'option' . $optionId . '.' . Ecommerce\Item\Param::colPrefix() . Ecommerce\Item\Option::index() . ' = "' . (int) $optionId . '" AND ' .
267
                  'option' . $optionId . '.' . Ecommerce\Item\Param::colPrefix() . 'value ' . $qstr . '',
268
                  'inner', 'option' . $optionId];
269
            }
270
            break;
271
          case 'offerOptions':
272
            //$selectOptions['join'][] = [Ecommerce\Item\Offer::table(), Ecommerce\Item::index() . ' = offer.' . Ecommerce\Item\Offer::colPrefix() . Ecommerce\Item::index(), 'left', 'offer'];
273
            foreach ($filter as $optionId => $optionValue) {
@@ 271-289 (lines=19) @@
268
                  'inner', 'option' . $optionId];
269
            }
270
            break;
271
          case 'offerOptions':
272
            //$selectOptions['join'][] = [Ecommerce\Item\Offer::table(), Ecommerce\Item::index() . ' = offer.' . Ecommerce\Item\Offer::colPrefix() . Ecommerce\Item::index(), 'left', 'offer'];
273
            foreach ($filter as $optionId => $optionValue) {
274
              $optionId = (int) $optionId;
275
              if (is_array($optionValue)) {
276
                $optionValueArr = [];
277
                foreach ($optionValue as $val) {
278
                  $optionValueArr[] = \App::$cur->db->connection->pdo->quote($val);
279
                }
280
                $qstr = 'IN (' . implode(',', $optionValueArr) . ')';
281
              } else {
282
                $qstr = '= ' . \App::$cur->db->connection->pdo->quote($optionValue);
283
              }
284
              $selectOptions['join'][] = [Ecommerce\Item\Offer\Param::table(), Ecommerce\Item\Offer::index() . ' = ' . 'offerOption' . $optionId . '.' . Ecommerce\Item\Offer\Param::colPrefix() . Ecommerce\Item\Offer::index() . ' AND ' .
285
                  'offerOption' . $optionId . '.' . Ecommerce\Item\Offer\Param::colPrefix() . Ecommerce\Item\Offer\Option::index() . ' = "' . (int) $optionId . '" AND ' .
286
                  'offerOption' . $optionId . '.' . Ecommerce\Item\Offer\Param::colPrefix() . 'value ' . $qstr,
287
                  'inner', 'offerOption' . $optionId];
288
            }
289
            break;
290
        }
291
      }
292
    }