Commit 45d2a21a75dcbe7fff7ffb821acf2d0484bd3a24

Authored by Karnovsky A
1 parent 5d5b973b

Brands count

Showing 1 changed file with 9 additions and 8 deletions   Show diff stats
common/modules/product/models/BrandSearch.php
@@ -113,23 +113,24 @@ class BrandSearch extends Brand @@ -113,23 +113,24 @@ class BrandSearch extends Brand
113 ->innerJoin(ProductCategory::tableName(), ProductCategory::tableName() .'.product_id='. Product::tableName() .'.product_id') 113 ->innerJoin(ProductCategory::tableName(), ProductCategory::tableName() .'.product_id='. Product::tableName() .'.product_id')
114 ->with(['brandName']); 114 ->with(['brandName']);
115 115
116 - if (!empty($params['options'])) {  
117 - $queryCount = ProductOption::find()  
118 - ->select(['COUNT(pr.product_id)'])  
119 - ->innerJoin('tax_option', 'tax_option.tax_option_id = product_option.option_id')  
120 - ->innerJoin('tax_group', 'tax_group.tax_group_id = tax_option.tax_group_id')  
121 - ->innerJoin('product AS pr', 'pr.product_id = product_option.product_id')  
122 - ->where('pr.brand_id = brand.brand_id'); 116 +
  117 + $queryCount = ProductOption::find()
  118 + ->select(['COUNT(pr.product_id)'])
  119 + ->innerJoin('tax_option', 'tax_option.tax_option_id = product_option.option_id')
  120 + ->innerJoin('tax_group', 'tax_group.tax_group_id = tax_option.tax_group_id')
  121 + ->innerJoin('product AS pr', 'pr.product_id = product_option.product_id')
  122 + ->where('pr.brand_id = brand.brand_id');
123 // ->groupBy(['product.product_id']); 123 // ->groupBy(['product.product_id']);
  124 + if (!empty($params['options'])) {
124 foreach ($params['options'] as $group => $options) { 125 foreach ($params['options'] as $group => $options) {
125 $queryCount->andWhere([ 126 $queryCount->andWhere([
126 'tax_group.alias' => $group, 127 'tax_group.alias' => $group,
127 'tax_option.alias' => $options 128 'tax_option.alias' => $options
128 ]); 129 ]);
129 } 130 }
130 - $query->addSelect(['_items_count' => $queryCount]);  
131 // $query->addSelect("(SELECT COUNT(product_option.product_id) AS products FROM product_option INNER JOIN tax_option ON tax_option.tax_option_id = product_option.option_id INNER JOIN tax_group ON tax_group.tax_group_id = tax_option.tax_group_id WHERE tax_group.alias LIKE '$group' AND tax_option.alias IN (" . implode(',', $options) . ")) AS _items_count"); 131 // $query->addSelect("(SELECT COUNT(product_option.product_id) AS products FROM product_option INNER JOIN tax_option ON tax_option.tax_option_id = product_option.option_id INNER JOIN tax_group ON tax_group.tax_group_id = tax_option.tax_group_id WHERE tax_group.alias LIKE '$group' AND tax_option.alias IN (" . implode(',', $options) . ")) AS _items_count");
132 } 132 }
  133 + $query->addSelect(['_items_count' => $queryCount]);
133 134
134 135
135 $query->innerJoin('product_variant', 'product_variant.product_id = '. Product::tableName() .'.product_id'); 136 $query->innerJoin('product_variant', 'product_variant.product_id = '. Product::tableName() .'.product_id');