From 3147aab1ad35ca6fe49072cda0cc38ce72b47154 Mon Sep 17 00:00:00 2001 From: Karnovsky A Date: Mon, 30 May 2016 14:41:33 +0300 Subject: [PATCH] Fix search with stock-check --- frontend/controllers/CatalogController.php | 8 +++++++- frontend/models/ProductFrontendSearch.php | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/controllers/CatalogController.php b/frontend/controllers/CatalogController.php index 7184ed6..839f35b 100755 --- a/frontend/controllers/CatalogController.php +++ b/frontend/controllers/CatalogController.php @@ -61,10 +61,12 @@ class CatalogController extends \yii\web\Controller $categoriesQuery = Category::find() ->innerJoin(ProductCategory::tableName(), ProductCategory::tableName() .'.category_id = '. Category::tableName() .'.category_id') - ->innerJoin(Product::tableName(), Product::tableName() .'.product_id = '. ProductCategory::tableName() .'.product_id'); + ->innerJoin(Product::tableName(), Product::tableName() .'.product_id = '. ProductCategory::tableName() .'.product_id') + ->innerJoin(ProductVariant::tableName(), ProductVariant::tableName() .'.product_id = '. ProductCategory::tableName() .'.product_id'); foreach ($params['keywords'] as $keyword) { $categoriesQuery->andWhere(['ilike', 'product.name', $keyword]); } + $categoriesQuery->andWhere(['!=', ProductVariant::tableName() .'.stock', 0]); $categories = $categoriesQuery->all(); return $this->render( @@ -157,6 +159,10 @@ class CatalogController extends \yii\web\Controller /** @var Product $product */ $product = Yii::$app->request->get('product'); + if(!$product->enabledVariant) { + throw new HttpException(404, 'Товар не найден'); + } + $groups = []; foreach($product->category->getTaxGroups()->all() as $_group) { $groups[$_group->tax_group_id] = $_group; diff --git a/frontend/models/ProductFrontendSearch.php b/frontend/models/ProductFrontendSearch.php index 63d05d5..861ad4a 100755 --- a/frontend/models/ProductFrontendSearch.php +++ b/frontend/models/ProductFrontendSearch.php @@ -87,6 +87,8 @@ class ProductFrontendSearch extends Product { $this->_setParams($query, $params); + $query->andWhere(['!=', ProductVariant::tableName() .'.stock', 0]); + return $dataProvider; } -- libgit2 0.21.4