Commit 04eb9f674a0e4f7f58de2f62b68c52c065b6137a

Authored by Alexey Boroda
1 parent 776dd7a1

-Search with sale products

frontend/controllers/SearchController.php
@@ -54,7 +54,7 @@ class SearchController extends \yii\web\Controller @@ -54,7 +54,7 @@ class SearchController extends \yii\web\Controller
54 } 54 }
55 55
56 $productModel = new ProductFrontendSearch(); 56 $productModel = new ProductFrontendSearch();
57 - $productProvider = $productModel->search(null, $params, false); 57 + $productProvider = $productModel->search(null, $params, false, false);
58 58
59 59
60 return $this->render( 60 return $this->render(
frontend/models/ProductFrontendSearch.php
@@ -2,19 +2,15 @@ @@ -2,19 +2,15 @@
2 2
3 namespace frontend\models; 3 namespace frontend\models;
4 4
5 - use common\modules\product\helpers\FilterHelper;  
6 use common\modules\product\helpers\ProductHelper; 5 use common\modules\product\helpers\ProductHelper;
7 use common\modules\product\models\Category; 6 use common\modules\product\models\Category;
8 - use Yii;  
9 use yii\base\Model; 7 use yii\base\Model;
10 - use yii\data\ActiveDataProvider;  
11 use yii\data\ArrayDataProvider; 8 use yii\data\ArrayDataProvider;
12 use yii\db\ActiveQuery; 9 use yii\db\ActiveQuery;
13 10
14 use common\modules\product\models\Product; 11 use common\modules\product\models\Product;
15 use common\modules\product\models\ProductVariant; 12 use common\modules\product\models\ProductVariant;
16 use yii\db\Query; 13 use yii\db\Query;
17 - use yii\helpers\ArrayHelper;  
18 14
19 class ProductFrontendSearch extends Product 15 class ProductFrontendSearch extends Product
20 { 16 {
@@ -54,12 +50,12 @@ @@ -54,12 +50,12 @@
54 * 50 *
55 * @return ArrayDataProvider 51 * @return ArrayDataProvider
56 */ 52 */
57 - public function search($category = null, $params = [], $in_stock = true) 53 + public function search($category = null, $params = [], $in_stock = true, $without_sale = true)
58 { 54 {
59 55
60 $dataProvider = new ArrayDataProvider( 56 $dataProvider = new ArrayDataProvider(
61 [ 57 [
62 - 'allModels' => $this->getSearchQuery($category, $params, $in_stock) 58 + 'allModels' => $this->getSearchQuery($category, $params, $in_stock, $without_sale)
63 ->with( 59 ->with(
64 [ 60 [
65 'images', 61 'images',
@@ -96,7 +92,7 @@ @@ -96,7 +92,7 @@
96 return $dataProvider; 92 return $dataProvider;
97 } 93 }
98 94
99 - public function getSearchQuery($category = null, $params = [], $in_stock = true) 95 + public function getSearchQuery($category = null, $params = [], $in_stock = true, $without_sale = true)
100 { 96 {
101 97
102 if (!empty($category)) { 98 if (!empty($category)) {
@@ -137,19 +133,21 @@ @@ -137,19 +133,21 @@
137 /** 133 /**
138 * Removing products that currently in events 134 * Removing products that currently in events
139 */ 135 */
140 - $query->andWhere(  
141 - [  
142 - 'not', 136 + if ($without_sale) {
  137 + $query->andWhere(
143 [ 138 [
144 - 'product.product_id' => ( new Query() )->select('events_to_products.product_id')  
145 - ->from('events_to_products')  
146 - ->innerJoin(  
147 - 'event',  
148 - 'event.event_id=events_to_products.event_id'  
149 - )->where(['event.sale' => true]),  
150 - ],  
151 - ]  
152 - ); 139 + 'not',
  140 + [
  141 + 'product.product_id' => ( new Query() )->select('events_to_products.product_id')
  142 + ->from('events_to_products')
  143 + ->innerJoin(
  144 + 'event',
  145 + 'event.event_id=events_to_products.event_id'
  146 + )->where(['event.sale' => true]),
  147 + ],
  148 + ]
  149 + );
  150 + }
153 151
154 return $query; 152 return $query;
155 } 153 }