public function buildModelCriteria()
 {
     $query = parent::buildModelCriteria();
     $attributeAvailability = $this->getAttributeAvailability();
     $this->manageAttributeAv($query, $attributeAvailability);
     $minPriceTTC = $this->getMinPriceTtc();
     $maxPriceTTC = $this->getMaxPriceTtc();
     if ($minPriceTTC || $maxPriceTTC) {
         $this->managePriceFilter($search, $minPriceTTC, $maxPriceTTC);
     }
     return $query;
 }
Example #2
0
 public function buildModelCriteria()
 {
     $search = AccessoryQuery::create();
     $product = $this->getProduct();
     $search->filterByProductId($product, Criteria::IN);
     $order = $this->getOrder();
     $orderByAccessory = array_search('accessory', $order);
     $orderByAccessoryReverse = array_search('accessory_reverse', $order);
     if ($orderByAccessory !== false) {
         $search->orderByPosition(Criteria::ASC);
         $order[$orderByAccessory] = 'given_id';
         $this->args->get('order')->setValue(implode(',', $order));
     }
     if ($orderByAccessoryReverse !== false) {
         $search->orderByPosition(Criteria::DESC);
         $order[$orderByAccessoryReverse] = 'given_id';
         $this->args->get('order')->setValue(implode(',', $order));
     }
     $accessories = $this->search($search);
     $this->accessoryIdList = array(0);
     $this->accessoryPosition = $this->accessoryId = array();
     foreach ($accessories as $accessory) {
         $accessoryProductId = $accessory->getAccessory();
         array_push($this->accessoryIdList, $accessoryProductId);
         $this->accessoryPosition[$accessoryProductId] = $accessory->getPosition();
         $this->accessoryId[$accessoryProductId] = $accessory->getId();
     }
     $receivedIdList = $this->getId();
     /* if an Id list is receive, loop will only match accessories from this list */
     if ($receivedIdList === null) {
         $this->args->get('id')->setValue(implode(',', $this->accessoryIdList));
     } else {
         $this->args->get('id')->setValue(implode(',', array_intersect($receivedIdList, $this->accessoryIdList)));
     }
     return parent::buildModelCriteria();
 }
 public function buildModelCriteria()
 {
     $search = parent::buildModelCriteria();
     $search->leftJoin('ProductCategory')->addJoinCondition('ProductCategory', 'ProductCategory.DefaultCategory = 1')->withColumn('COALESCE(ProductCategory.CategoryId, 0)', 'DefaultCategoryId');
     return $search;
 }