From 04eb9f674a0e4f7f58de2f62b68c52c065b6137a Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 16 Jun 2017 13:23:19 +0300 Subject: [PATCH] -Search with sale products --- frontend/controllers/SearchController.php | 2 +- frontend/models/ProductFrontendSearch.php | 36 +++++++++++++++++------------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/frontend/controllers/SearchController.php b/frontend/controllers/SearchController.php index 9aa8b9f..782c2e9 100755 --- a/frontend/controllers/SearchController.php +++ b/frontend/controllers/SearchController.php @@ -54,7 +54,7 @@ class SearchController extends \yii\web\Controller } $productModel = new ProductFrontendSearch(); - $productProvider = $productModel->search(null, $params, false); + $productProvider = $productModel->search(null, $params, false, false); return $this->render( diff --git a/frontend/models/ProductFrontendSearch.php b/frontend/models/ProductFrontendSearch.php index c5a07f0..99b44d2 100755 --- a/frontend/models/ProductFrontendSearch.php +++ b/frontend/models/ProductFrontendSearch.php @@ -2,19 +2,15 @@ namespace frontend\models; - use common\modules\product\helpers\FilterHelper; use common\modules\product\helpers\ProductHelper; use common\modules\product\models\Category; - use Yii; use yii\base\Model; - use yii\data\ActiveDataProvider; use yii\data\ArrayDataProvider; use yii\db\ActiveQuery; use common\modules\product\models\Product; use common\modules\product\models\ProductVariant; use yii\db\Query; - use yii\helpers\ArrayHelper; class ProductFrontendSearch extends Product { @@ -54,12 +50,12 @@ * * @return ArrayDataProvider */ - public function search($category = null, $params = [], $in_stock = true) + public function search($category = null, $params = [], $in_stock = true, $without_sale = true) { $dataProvider = new ArrayDataProvider( [ - 'allModels' => $this->getSearchQuery($category, $params, $in_stock) + 'allModels' => $this->getSearchQuery($category, $params, $in_stock, $without_sale) ->with( [ 'images', @@ -96,7 +92,7 @@ return $dataProvider; } - public function getSearchQuery($category = null, $params = [], $in_stock = true) + public function getSearchQuery($category = null, $params = [], $in_stock = true, $without_sale = true) { if (!empty($category)) { @@ -137,19 +133,21 @@ /** * Removing products that currently in events */ - $query->andWhere( - [ - 'not', + if ($without_sale) { + $query->andWhere( [ - 'product.product_id' => ( new Query() )->select('events_to_products.product_id') - ->from('events_to_products') - ->innerJoin( - 'event', - 'event.event_id=events_to_products.event_id' - )->where(['event.sale' => true]), - ], - ] - ); + 'not', + [ + 'product.product_id' => ( new Query() )->select('events_to_products.product_id') + ->from('events_to_products') + ->innerJoin( + 'event', + 'event.event_id=events_to_products.event_id' + )->where(['event.sale' => true]), + ], + ] + ); + } return $query; } -- libgit2 0.21.4