예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function generateCondition(ConditionInterface $condition, QueryBuilder $query, ShopContextInterface $context)
 {
     $selection = $this->priceHelper->getSelection($context);
     $selection = 'MIN(' . $selection . ')';
     $this->priceHelper->joinPrices($query, $context);
     /** @var PriceCondition $condition */
     if ($condition->getMaxPrice() > 0 && $condition->getMinPrice() > 0) {
         $query->andHaving($selection . ' BETWEEN :priceMin AND :priceMax');
         $query->setParameter(':priceMin', $condition->getMinPrice());
         $query->setParameter(':priceMax', $condition->getMaxPrice());
     } elseif ($condition->getMaxPrice() > 0) {
         $query->andHaving($selection . ' <= :priceMax');
         $query->setParameter(':priceMax', $condition->getMaxPrice());
     } elseif ($condition->getMinPrice() > 0) {
         $query->andHaving($selection . ' >= :priceMin');
         $query->setParameter(':priceMin', $condition->getMinPrice());
     }
     return;
 }