From ccf4344a2d3fe7e131c8b151f762a6e2755068c3 Mon Sep 17 00:00:00 2001 From: dMetzger Date: Mon, 13 Aug 2012 11:51:11 +0000 Subject: [PATCH] [-] Installer : fixed wrong return value in upgrade script git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@16820 b9a71923-0436-4b27-9f14-aed3839534dd --- .../upgrade/php/fix_unique_specific_price.php | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/install-dev/upgrade/php/fix_unique_specific_price.php b/install-dev/upgrade/php/fix_unique_specific_price.php index f2f163731..0e794fa4e 100644 --- a/install-dev/upgrade/php/fix_unique_specific_price.php +++ b/install-dev/upgrade/php/fix_unique_specific_price.php @@ -28,17 +28,19 @@ function fix_unique_specific_price() { - $res = Db::getInstance()->executeS('SELECT MIN(id_specific_price) id_specific_price - FROM '._DB_PREFIX_.'specific_price - GROUP BY `id_product`, `id_shop`, `id_currency`, `id_country`, `id_group`, `from_quantity`, `from`, `to` - '); - if ($res) - { - $ids_specific_price = '('; - foreach ($res as $row) - $ids_specific_price .= (int)$row['id_specific_price'].','; - $ids_specific_price = rtrim($ids_specific_price, ',').')'; - return Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'specific_price - WHERE id_specific_price NOT IN ('.$ids_specific_price.')'); - } -} + $result = Db::getInstance()->executeS(' + SELECT MIN(id_specific_price) id_specific_price + FROM '._DB_PREFIX_.'specific_price + GROUP BY `id_product`, `id_shop`, `id_currency`, `id_country`, `id_group`, `from_quantity`, `from`, `to`'); + if (!$result || !count($result)) + return true; // return tru if there is not any specific price in the database + + $sql = ''; + foreach ($result as $row) + $sql .= (int)$row['id_specific_price'].','; + $sql = rtrim($sql, ','); + + return Db::getInstance()->execute(' + DELETE FROM '._DB_PREFIX_.'specific_price + WHERE id_specific_price NOT IN ('.$sql.')'); +} \ No newline at end of file