[-] BO : fixed bug when save image shop association
This commit is contained in:
@@ -280,6 +280,7 @@
|
||||
{
|
||||
"action":"UpdateProductImageShopAsso",
|
||||
"id_image":id,
|
||||
"id_product":id_product,
|
||||
"id_shop": id_shop,
|
||||
"active":active,
|
||||
"token" : "{/literal}{$token}{literal}",
|
||||
|
||||
@@ -1401,6 +1401,7 @@ class AdminProductsControllerCore extends AdminController
|
||||
|
||||
public function ajaxProcessUpdateProductImageShopAsso()
|
||||
{
|
||||
$id_product = Tools::getValue('id_product');
|
||||
if (($id_image = Tools::getValue('id_image')) && ($id_shop = (int)Tools::getValue('id_shop')))
|
||||
if (Tools::getValue('active') == 'true')
|
||||
$res = Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'image_shop (`id_image`, `id_shop`) VALUES('.(int)$id_image.', '.(int)$id_shop.')');
|
||||
@@ -1408,18 +1409,33 @@ class AdminProductsControllerCore extends AdminController
|
||||
$res = Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'image_shop WHERE `id_image` = '.(int)$id_image.' AND `id_shop` = '.(int)$id_shop);
|
||||
|
||||
// Clean covers in image table
|
||||
$count_cover_image = Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'image i INNER JOIN '._DB_PREFIX_.'image_shop ish ON (i.id_image = ish.id_image AND ish.id_shop = '.(int)$id_shop.') WHERE i.cover = 1');
|
||||
$count_cover_image = Db::getInstance()->getValue('
|
||||
SELECT COUNT(*) FROM '._DB_PREFIX_.'image i
|
||||
INNER JOIN '._DB_PREFIX_.'image_shop ish ON (i.id_image = ish.id_image AND ish.id_shop = '.(int)$id_shop.')
|
||||
WHERE i.cover = 1 AND `id_product` = '.(int)$id_product);
|
||||
|
||||
$id_image = Db::getInstance()->getValue('
|
||||
SELECT i.`id_image` FROM '._DB_PREFIX_.'image i
|
||||
INNER JOIN '._DB_PREFIX_.'image_shop ish ON (i.id_image = ish.id_image AND ish.id_shop = '.(int)$id_shop.')
|
||||
WHERE `id_product` = '.(int)$id_product);
|
||||
|
||||
if ($count_cover_image < 1)
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image i, '._DB_PREFIX_.'image_shop ish SET i.cover = 1 WHERE i.id_image = ish.id_image AND ish.id_shop = '.(int)$id_shop.' LIMIT 1');
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image i SET i.cover = 1 WHERE i.id_image = '.(int)$id_image.' AND i.`id_product` = '.(int)$id_product.' LIMIT 1');
|
||||
|
||||
if ($count_cover_image > 1)
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image i, '._DB_PREFIX_.'image_shop ish SET i.cover = 0 WHERE cover = 1 AND i.id_image = ish.id_image AND is.id_shop = '.(int)$id_shop.' LIMIT '.intval($count_cover_image - 1));
|
||||
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image i SET i.cover = 0 WHERE i.id_image <> '.(int)$id_image.' AND i.`id_product` = '.(int)$id_product);
|
||||
|
||||
// Clean covers in image_shop table
|
||||
$count_cover_image_shop = Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'image_shop ish WHERE ish.id_shop = '.(int)$id_shop.' AND ish.cover = 1');
|
||||
$count_cover_image_shop = Db::getInstance()->getValue('
|
||||
SELECT COUNT(*)
|
||||
FROM '._DB_PREFIX_.'image_shop ish
|
||||
INNER JOIN '._DB_PREFIX_.'image i ON (i.id_image = ish.id_image AND i.`id_product` = '.(int)$id_product.')
|
||||
WHERE ish.id_shop = '.(int)$id_shop.' AND ish.cover = 1');
|
||||
|
||||
if ($count_cover_image_shop < 1)
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image_shop ish SET ish.cover = 1 WHERE ish.id_shop = '.(int)$id_shop.' LIMIT 1');
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image_shop ish SET ish.cover = 1 WHERE ish.id_image = '.(int)$id_image.' AND ish.id_shop = '.(int)$id_shop.' LIMIT 1');
|
||||
if ($count_cover_image_shop > 1)
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image_shop ish SET ish.cover = 0 WHERE ish.cover = 1 AND ish.id_shop = '.(int)$id_shop.' LIMIT '.intval($count_cover_image_shop - 1));
|
||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'image_shop ish SET ish.cover = 0 WHERE ish.id_image <> '.(int)$id_image.' AND ish.cover = 1 AND ish.id_shop = '.(int)$id_shop.' LIMIT '.intval($count_cover_image_shop - 1));
|
||||
|
||||
if ($res)
|
||||
$this->jsonConfirmation($this->_conf[27]);
|
||||
|
||||
Reference in New Issue
Block a user