[-] FO : customer discounts page fixed with cart rules
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
<h1>{l s='My vouchers'}</h1>
|
||||
|
||||
{if isset($discount) && count($discount) && $nbDiscounts}
|
||||
{if isset($cart_rules) && count($cart_rules) && $nb_cart_rules}
|
||||
<table class="discount std table_block">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -42,10 +42,10 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$discount item=discountDetail name=myLoop}
|
||||
{foreach from=$cart_rules item=discountDetail name=myLoop}
|
||||
<tr class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if} {if $smarty.foreach.myLoop.index % 2}alternate_item{/if}">
|
||||
<td class="discount_code">{$discountDetail.name}</td>
|
||||
<td class="discount_description">{$discountDetail.description}</td>
|
||||
<td class="discount_code">{$discountDetail.code}</td>
|
||||
<td class="discount_description">{$discountDetail.name}</td>
|
||||
<td class="discount_quantity">{$discountDetail.quantity_for_user}</td>
|
||||
<td class="discount_value">
|
||||
{if $discountDetail.id_discount_type == 1}
|
||||
|
||||
Reference in New Issue
Block a user