diff --git a/classes/Product.php b/classes/Product.php index 0e44eca32..d32b10c32 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -4035,7 +4035,7 @@ class ProductCore extends ObjectModel // selects different names, if it is a combination if ($id_product_attribute) - $query->select('IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(agl.`name`, \' - \', al.name SEPARATOR \', \')),pl.name) as name'); + $query->select('IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(DISTINCT agl.`name`, \' - \', al.name SEPARATOR \', \')),pl.name) as name'); else $query->select('DISTINCT pl.name as name'); diff --git a/controllers/admin/AdminStockCoverController.php b/controllers/admin/AdminStockCoverController.php index 02466c0fd..59b756475 100644 --- a/controllers/admin/AdminStockCoverController.php +++ b/controllers/admin/AdminStockCoverController.php @@ -113,8 +113,7 @@ class AdminStockCoverControllerCore extends AdminController $query = new DbQuery(); $query->select('pa.id_product_attribute as id, pa.id_product, stock_view.reference, stock_view.ean13, - stock_view.upc, stock_view.usable_quantity as stock, - IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(agl.`name`, \' - \', al.name SEPARATOR \', \')),pl.name) as name'); + stock_view.upc, stock_view.usable_quantity as stock'); $query->from('product_attribute pa INNER JOIN ( @@ -124,11 +123,6 @@ class AdminStockCoverControllerCore extends AdminController GROUP BY s.id_product_attribute ) stock_view ON (stock_view.id_product_attribute = pa.id_product_attribute)'); - $query->innerJoin('product_lang pl ON (pl.id_product = pa.id_product AND pl.id_lang = '.$lang_id.')'); - $query->leftJoin('product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)'); - $query->leftJoin('attribute atr ON (atr.id_attribute = pac.id_attribute)'); - $query->leftJoin('attribute_lang al ON (al.id_attribute = atr.id_attribute AND al.id_lang = '.$lang_id.')'); - $query->leftJoin('attribute_group_lang agl ON (agl.id_attribute_group = atr.id_attribute_group AND agl.id_lang = '.$lang_id.')'); $query->where('pa.id_product = '.$id_product); if ($warehouse != -1) $query->where('s.id_warehouse = '.(int)$warehouse); @@ -137,6 +131,8 @@ class AdminStockCoverControllerCore extends AdminController $datas = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); foreach ($datas as &$data) { + $data['name'] = Product::getProductName($data['id_product'], $data['id']); + if ($this->getCurrentCoverageWarehouse() == -1) $data['coverage'] = StockManagerFactory::getManager()->getProductCoverage($data['id_product'], $data['id'], $period); else diff --git a/controllers/admin/AdminStockManagementController.php b/controllers/admin/AdminStockManagementController.php index 871c06da9..7cda114a4 100644 --- a/controllers/admin/AdminStockManagementController.php +++ b/controllers/admin/AdminStockManagementController.php @@ -783,15 +783,7 @@ class AdminStockManagementControllerCore extends AdminController // Load product attributes with sql override $this->table = 'product_attribute'; - $this->_select = 'a.id_product_attribute as id, a.id_product, a.reference, a.ean13, a.upc, - IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(agl.`name`, \' - \', al.name SEPARATOR \', \')),pl.name) as name'; - - $this->_join = ' - INNER JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = a.id_product AND pl.id_lang = '.$lang_id.') - LEFT JOIN '._DB_PREFIX_.'product_attribute_combination pac ON (pac.id_product_attribute = a.id_product_attribute) - LEFT JOIN '._DB_PREFIX_.'attribute atr ON (atr.id_attribute = pac.id_attribute) - LEFT JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = atr.id_attribute AND al.id_lang = '.$lang_id.') - LEFT JOIN '._DB_PREFIX_.'attribute_group_lang agl ON (agl.id_attribute_group = atr.id_attribute_group AND agl.id_lang = '.$lang_id.')'; + $this->_select = 'a.id_product_attribute as id, a.id_product, a.reference, a.ean13, a.upc'; $this->_where = 'AND a.id_product = '.$product_id; $this->_group = 'GROUP BY a.id_product_attribute'; @@ -839,6 +831,7 @@ class AdminStockManagementControllerCore extends AdminController // if it's an ajax request we have to consider manipulating a product variation if ($this->ajax == '1') { + $item['name'] = Product::getProductName($item['id_product'], $item['id']); // no details for this row $this->addRowActionSkipList('details', array($item['id']));