diff --git a/classes/CartRule.php b/classes/CartRule.php index e45321281..d56719bdc 100644 --- a/classes/CartRule.php +++ b/classes/CartRule.php @@ -230,6 +230,38 @@ class CartRuleCore extends ObjectModel unset($result[$key]); } } + + foreach ($result as &$cart_rule) + if ($cart_rule['quantity_per_user']) + { + $quantity_used = Order::getDiscountsCustomer((int)$id_customer, (int)$cart_rule['id_cart_rule']); + if (isset($cart) && isset($cart->id)) + $quantity_used += $cart->getDiscountsCustomer((int)$cart_rule['id_cart_rule']); + $cart_rule['quantity_for_user'] = $cart_rule['quantity_per_user'] - $quantity_used; + } + else + $cart_rule['quantity_for_user'] = 0; + + // Retrocompatibility with 1.4 discounts + foreach ($result as &$cart_rule) + { + $cart_rule['value'] = 0; + $cart_rule['minimal'] = $cart_rule['minimum_amount']; + $cart_rule['cumulable'] = !$cart_rule['cart_rule_restriction']; + if ($cart_rule['free_shipping']) + $cart_rule['id_discount_type'] = Discount::FREE_SHIPPING; + elseif ($cart_rule['reduction_percent'] > 0) + { + $cart_rule['id_discount_type'] = Discount::PERCENT; + $cart_rule['value'] = $cart_rule['reduction_percent']; + } + elseif ($cart_rule['reduction_amount'] > 0) + { + $cart_rule['id_discount_type'] = Discount::AMOUNT; + $cart_rule['value'] = $cart_rule['reduction_amount']; + } + } + return $result; } diff --git a/controllers/front/DiscountController.php b/controllers/front/DiscountController.php index 373a7aae5..67f9ccbb5 100644 --- a/controllers/front/DiscountController.php +++ b/controllers/front/DiscountController.php @@ -40,14 +40,10 @@ class DiscountControllerCore extends FrontController { parent::initContent(); - $discounts = Discount::getCustomerDiscounts($this->context->language->id, $this->context->customer->id, true, false); - $nbDiscounts = 0; + $cart_rules = CartRule::getCustomerCartRules($this->context->language->id, $this->context->customer->id, true, false); + $nb_cart_rules = count($cart_rules); - foreach ($discounts as $discount) - if (isset($discount['quantity_for_user']) && $discount['quantity_for_user']) - $nbDiscounts++; - - $this->context->smarty->assign(array('nbDiscounts' => (int)($nbDiscounts), 'discount' => $discounts)); + $this->context->smarty->assign(array('nb_cart_rules' => (int)$nb_cart_rules, 'cart_rules' => $cart_rules)); $this->setTemplate(_PS_THEME_DIR_.'discount.tpl'); } } diff --git a/themes/default/discount.tpl b/themes/default/discount.tpl index c7a574e44..a12f249a4 100644 --- a/themes/default/discount.tpl +++ b/themes/default/discount.tpl @@ -28,7 +28,7 @@

{l s='My vouchers'}

-{if isset($discount) && count($discount) && $nbDiscounts} +{if isset($cart_rules) && count($cart_rules) && $nb_cart_rules} @@ -42,10 +42,10 @@ - {foreach from=$discount item=discountDetail name=myLoop} + {foreach from=$cart_rules item=discountDetail name=myLoop} - - + +
{$discountDetail.name}{$discountDetail.description}{$discountDetail.code}{$discountDetail.name} {$discountDetail.quantity_for_user} {if $discountDetail.id_discount_type == 1}