From 3fa704538b274b4fe7c2032d02274aa66cfbcbe3 Mon Sep 17 00:00:00 2001 From: dMetzger Date: Sat, 19 May 2012 12:03:13 +0000 Subject: [PATCH] // Cart rule autoadd fixed --- classes/CartRule.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/classes/CartRule.php b/classes/CartRule.php index 74790a742..8d828dd43 100644 --- a/classes/CartRule.php +++ b/classes/CartRule.php @@ -1000,20 +1000,12 @@ class CartRuleCore extends ObjectModel WHERE id_cart = '.(int)$context->cart->id.' ) ) + AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.') ORDER BY priority'); $cartRules = ObjectModel::hydrateCollection('CartRule', $result); - - // Todo: consider optimization (we can avoid many queries in checkValidity) foreach ($cartRules as $cartRule) - if (Db::getInstance()->getValue('SELECT count(*) - FROM '._DB_PREFIX_.'cart_cart_rule - WHERE id_cart = '.(int)$context->cart->id.' - AND id_cart_rule = '.(int)$cartRule->id)) - $context->cart->removeCartRule($cartRule->id); - - foreach ($cartRules as $cartRule) - if ($cartRule->checkValidity($context, true, false)) + if ($cartRule->checkValidity($context, false, false)) $context->cart->addCartRule($cartRule->id); }