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; }
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; }