protected function createConditionsCollection(int $status, int $categoryId) : ConditionsCollection
 {
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('status', $status));
     $conditions->add(new Eq('category', $categoryId));
     return $conditions;
 }
Example #2
0
 /**
  * Adds the search conditions to query
  *
  * @param ConditionsCollection $conditions
  *
  * @return ConditionsCollection
  */
 public function addSearchConditions(ConditionsCollection $conditions)
 {
     $requestHelper = $this->getRequestHelper();
     $phrase = $requestHelper->getAttributesBagParam('phrase');
     $query = new SimpleQuery($phrase);
     $identifiers = $this->provider->searchProducts($query)->getResultIdentifiers();
     $conditions->add(new In('id', $identifiers));
     return $conditions;
 }
 /**
  * Return additional conditions for QueryBuilder
  *
  * @return ConditionsCollection
  */
 public function getStatusConditions($status = null)
 {
     if (null === $status) {
         $status = $this->getProductStatusContext()->getCurrentProductStatusIdentifier();
     }
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('status', $status));
     return $conditions;
 }
 /**
  * @return ConditionsCollection
  */
 protected function getConditions()
 {
     $wishlist = $this->manager->getClient()->getWishlist();
     $productIds = [];
     $wishlist->map(function (WishlistInterface $Wishlist) use(&$productIds) {
         $productIds[] = $Wishlist->getProduct()->getId();
     });
     $conditions = new ConditionsCollection();
     $conditions->add(new In('id', $productIds));
     return $conditions;
 }
 /**
  * Adds additional conditions to request
  *
  * @param array                $params
  * @param ConditionsCollection $conditions
  *
  * @return ConditionsCollection
  */
 public function resolveConditions($params, ConditionsCollection $conditions)
 {
     if (is_array($params)) {
         foreach ($params as $where) {
             list($column, $operator, $value) = $this->parseParam($where);
             $factory = new ConditionFactory($column, $value);
             $condition = $factory->createCondition($operator);
             $conditions->add($condition);
         }
     }
 }
 public function addLayeredNavigationConditions(ConditionsCollection $collection)
 {
     if (false === $this->isLayeredNavigationEnabled()) {
         return $collection;
     }
     foreach ($this->filters as $parameterName => $configuration) {
         $currentAttributeValue = $this->getCurrentAttributeValue($parameterName, $configuration['type']);
         if (!empty($currentAttributeValue)) {
             $collection->add($this->createFilterCondition($currentAttributeValue, $configuration));
         }
     }
     return $collection;
 }
 /**
  * {@inheritdoc}
  */
 public function addLayeredNavigationConditions(ConditionsCollection $collection)
 {
     if (false === $this->isLayeredNavigationEnabled()) {
         return $collection;
     }
     $priceFrom = $this->getRequestHelper()->getAttributesBagParam('priceFrom');
     $priceTo = $this->getRequestHelper()->getAttributesBagParam('priceTo');
     $producersIdentifiers = explode(self::MULTIVALUE_SEPARATOR, $this->getRequestHelper()->getAttributesBagParam('producers'));
     $producers = $this->filterProducers($producersIdentifiers);
     $collection->add(new Gte('finalPrice', $priceFrom));
     $collection->add(new Lte('finalPrice', $priceTo));
     if (count($producers)) {
         $collection->add(new In('producerId', $producers));
     }
     return $collection;
 }
 /**
  * Adds additional conditions to query
  *
  * @param QueryBuilder         $queryBuilder
  * @param ColumnCollection     $columns
  */
 protected function setColumnConditions(QueryBuilder $queryBuilder, ColumnCollection $columns)
 {
     foreach ($this->conditions->all() as $condition) {
         $column = $columns->get($condition->getIdentifier());
         $this->addColumnConditionToQueryBuilder($queryBuilder, $column, $condition);
     }
 }
 private function getCurrentCategoryConditions()
 {
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('category', $this->getCategoryStorage()->getCurrentCategoryIdentifier()));
     return $conditions;
 }
Example #10
0
 /**
  * Returns a dataset of products recommended for category
  *
  * @param CategoryInterface $category
  *
  * @return array
  */
 public function getProductRecommendationsForCategory(CategoryInterface $category)
 {
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('category', $category->getId()));
     return $this->dataset->getResult('datagrid', ['limit' => 3, 'order_by' => 'name', 'order_dir' => 'asc', 'conditions' => $conditions]);
 }
 /**
  * @return ConditionsCollection
  */
 protected function getCurrentProducerConditions() : ConditionsCollection
 {
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('producerId', $this->getProducerStorage()->getCurrentProducerIdentifier()));
     return $conditions;
 }
 protected function createConditionsCollection(ProductStatusInterface $status) : ConditionsCollection
 {
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('status', $status->getId()));
     return $conditions;
 }
 /**
  * Returns a collection of dynamic conditions
  *
  * @return ConditionsCollection
  */
 public function getCurrentProducerConditions()
 {
     $conditions = new ConditionsCollection();
     $conditions->add(new Eq('producerId', $this->getProducerContext()->getCurrentProducerIdentifier()));
     return $conditions;
 }