[-] FO : customer discounts page fixed with cart rules

This commit is contained in:
dMetzger
2012-03-14 14:59:08 +00:00
parent 6608328a2a
commit fec505b178
3 changed files with 39 additions and 11 deletions
+32
View File
@@ -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;
}
+3 -7
View File
@@ -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');
}
}
+4 -4
View File
@@ -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}