[-] BO : voucher creation in the order detail fixed

This commit is contained in:
dMetzger committed 2012-01-26 14:34:58 +00:00
1 parent 51c0bf56f0
commit 96a58849a2
3 files changed
+41 -4

No files matched your search

+11 -2
View File
@@ -692,10 +692,19 @@ class CartCore extends ObjectModel
public function addCartRule($id_cart_rule) public function addCartRule($id_cart_rule)
{ {
return Db::getInstance()->insert('cart_cart_rule', array( // You can't add a cart rule that does not exist
$cartRule = new CartRule($id_cart_rule, Context::getContext()->lang->id);
if (!Validate::isLoadedObject($cartRule))
return false;
// Add the cart rule to the cart
if (!Db::getInstance()->insert('cart_cart_rule', array(
'id_cart_rule' => (int)$id_cart_rule, 'id_cart_rule' => (int)$id_cart_rule,
'id_cart' => (int)$this->id 'id_cart' => (int)$this->id
)); )))
return false;
return true;
} }
public function containsProduct($id_product, $id_product_attribute = 0, $id_customization = false, $id_address_delivery = 0) public function containsProduct($id_product, $id_product_attribute = 0, $id_customization = false, $id_address_delivery = 0)
-2
View File
@@ -477,8 +477,6 @@ class CartRuleCore extends ObjectModel
if ($this->minimum_amount_currency != Configuration::get('PS_CURRENCY_DEFAULT')) if ($this->minimum_amount_currency != Configuration::get('PS_CURRENCY_DEFAULT'))
{ {
$minimumAmountCurrency = new Currency($this->minimum_amount_currency); $minimumAmountCurrency = new Currency($this->minimum_amount_currency);
//p($this->minimum_amount_currency);
if ($this->minimum_amount == 0 || $minimumAmountCurrency->conversion_rate == 0) if ($this->minimum_amount == 0 || $minimumAmountCurrency->conversion_rate == 0)
$minimum_amount = 0; $minimum_amount = 0;
else else
@@ -930,17 +930,46 @@ class AdminOrdersControllerCore extends AdminController
$this->applyDiscountOnInvoice($order_invoice, $cart_rules[$order_invoice->id]['value_tax_incl'], $cart_rules[$order_invoice->id]['value_tax_excl']); $this->applyDiscountOnInvoice($order_invoice, $cart_rules[$order_invoice->id]['value_tax_incl'], $cart_rules[$order_invoice->id]['value_tax_excl']);
} }
} }
else
{
$cart_rules[0]['value_tax_incl'] = $order->total_shipping_tax_incl;
$cart_rules[0]['value_tax_excl'] = $order->total_shipping_tax_excl;
}
break; break;
default: default:
$this->errors[] = Tools::displayError('Discount type is invalid'); $this->errors[] = Tools::displayError('Discount type is invalid');
} }
$res = true; $res = true;
foreach ($cart_rules as &$cart_rule)
{
$cartRuleObj = new CartRule();
$cartRuleObj->date_from = date('Y-m-d H:i:s', strtotime('-1 hour', strtotime($order->date_add)));
$cartRuleObj->date_to = date('Y-m-d H:i:s', strtotime('+1 hour'));
$cartRuleObj->name[Configuration::get('PS_LANG_DEFAULT')] = Tools::getValue('discount_name');
$cartRuleObj->quantity = 0;
$cartRuleObj->quantity_per_user = 1;
if (Tools::getValue('discount_type') == 1)
$cartRuleObj->reduction_percent = Tools::getValue('discount_value');
elseif (Tools::getValue('discount_type') == 2)
$cartRuleObj->reduction_amount = $cart_rule['value_tax_excl'];
elseif (Tools::getValue('discount_type') == 3)
$cartRuleObj->free_shipping = 1;
$cartRuleObj->active = 0;
if ($res = $cartRuleObj->add())
$cart_rule['id'] = $cartRuleObj->id;
else
break;
}
if ($res)
{
foreach ($cart_rules as $id_order_invoice => $cart_rule) foreach ($cart_rules as $id_order_invoice => $cart_rule)
{ {
// Create OrderCartRule // Create OrderCartRule
$order_cart_rule = new OrderCartRule(); $order_cart_rule = new OrderCartRule();
$order_cart_rule->id_order = $order->id; $order_cart_rule->id_order = $order->id;
$order_cart_rule->id_cart_rule = $cart_rule['id'];
$order_cart_rule->id_order_invoice = $id_order_invoice; $order_cart_rule->id_order_invoice = $id_order_invoice;
$order_cart_rule->name = Tools::getValue('discount_name'); $order_cart_rule->name = Tools::getValue('discount_name');
$order_cart_rule->value = $cart_rule['value_tax_incl']; $order_cart_rule->value = $cart_rule['value_tax_incl'];
@@ -957,6 +986,7 @@ class AdminOrdersControllerCore extends AdminController
// Update Order // Update Order
$res &= $order->update(); $res &= $order->update();
}
if ($res) if ($res)
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token);