From 0468bdbc03fc30945583924c869399e5295963ce Mon Sep 17 00:00:00 2001 From: DamienMetzger Date: Fri, 23 Nov 2012 10:39:04 +0100 Subject: [PATCH] [-] FO : fixed a problem with quantity of customized products #PSCFV-5630 [-] FO : removed cart rules already in the cart from available cart rules in the cart summary --- controllers/front/ParentOrderController.php | 46 ++++++++++++--------- themes/default/shopping-cart.tpl | 2 +- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/controllers/front/ParentOrderController.php b/controllers/front/ParentOrderController.php index bff45d140..6de89a766 100644 --- a/controllers/front/ParentOrderController.php +++ b/controllers/front/ParentOrderController.php @@ -300,22 +300,23 @@ class ParentOrderControllerCore extends FrontController if ($cart_product_context->shop->id != $product['id_shop']) $cart_product_context->shop = new Shop((int)$product['id_shop']); - $product['price_without_specific_price'] = Product::getPriceStatic($product['id_product'], - !Product::getTaxCalculationMethod(), - $product['id_product_attribute'], - 2, - null, - false, - false, - 1, - false, - null, - null, - null, - $null, - true, - true, - $cart_product_context); + $product['price_without_specific_price'] = Product::getPriceStatic( + $product['id_product'], + !Product::getTaxCalculationMethod(), + $product['id_product_attribute'], + 2, + null, + false, + false, + 1, + false, + null, + null, + null, + $null, + true, + true, + $cart_product_context); if (Product::getTaxCalculationMethod()) $product['is_discounted'] = $product['price_without_specific_price'] != $product['price']; @@ -323,8 +324,15 @@ class ParentOrderControllerCore extends FrontController $product['is_discounted'] = $product['price_without_specific_price'] != $product['price_wt']; } - $show_option_allow_separate_package = !$this->context->cart->isAllProductsInStock(true) - && Configuration::get('PS_SHIP_WHEN_AVAILABLE'); + // Get available cart rules and unset the cart rules already in the cart + $available_cart_rules = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart); + $cart_cart_rules = $this->context->cart->getCartRules(); + foreach ($available_cart_rules as $key => $available_cart_rule) + foreach ($cart_cart_rules as $cart_cart_rule) + if ($available_cart_rule['id_cart_rule'] == $cart_cart_rule['id_cart_rule']) + unset($available_cart_rules[$key]); + + $show_option_allow_separate_package = (!$this->context->cart->isAllProductsInStock(true) && Configuration::get('PS_SHIP_WHEN_AVAILABLE')); $this->context->smarty->assign($summary); $this->context->smarty->assign(array( @@ -339,7 +347,7 @@ class ParentOrderControllerCore extends FrontController 'CUSTOMIZE_FILE' => Product::CUSTOMIZE_FILE, 'CUSTOMIZE_TEXTFIELD' => Product::CUSTOMIZE_TEXTFIELD, 'lastProductAdded' => $this->context->cart->getLastProduct(), - 'displayVouchers' => CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart), + 'displayVouchers' => $available_cart_rules, 'currencySign' => $this->context->currency->sign, 'currencyRate' => $this->context->currency->conversion_rate, 'currencyFormat' => $this->context->currency->format, diff --git a/themes/default/shopping-cart.tpl b/themes/default/shopping-cart.tpl index 0a141ad7a..6c2cef4ed 100644 --- a/themes/default/shopping-cart.tpl +++ b/themes/default/shopping-cart.tpl @@ -272,7 +272,7 @@ {/if} - + {/if}