[*] BO : no payment is registered on order creation for check and bankwire payment

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@11296 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
aFolletete committed 2011-12-16 10:10:48 +00:00
1 parent d6c85b63d5
commit 6f03353f96
3 files changed
+17 -21

No files matched your search

+16 -18
View File
@@ -130,6 +130,10 @@ abstract class PaymentModuleCore extends Module
die($errorMessage); die($errorMessage);
} }
$order_status = new OrderState((int)$id_order_state, (int)$order->id_lang);
if (!Validate::isLoadedObject($order_status))
throw new PrestashopException('Can\'t load Order state status');
foreach ($cart_delivery_option as $id_address => $key_carriers) foreach ($cart_delivery_option as $id_address => $key_carriers)
foreach ($delivery_option_list[$id_address][$key_carriers]['carrier_list'] as $id_carrier => $data) foreach ($delivery_option_list[$id_address][$key_carriers]['carrier_list'] as $id_carrier => $data)
foreach ($data['package_list'] as $id_package) foreach ($data['package_list'] as $id_package)
@@ -194,6 +198,13 @@ abstract class PaymentModuleCore extends Module
// Creating order // Creating order
$result = $order->add(); $result = $order->add();
// Register Payment only if the order status validate the order
if ($result && $order_status->logable)
{
if (!$order->addOrderPayment($amountPaid))
throw new PrestashopException('Can\'t save Order Payment');
}
$order_list[] = $order; $order_list[] = $order;
// Insert new Order detail list using cart for the current order // Insert new Order detail list using cart for the current order
@@ -210,13 +221,6 @@ abstract class PaymentModuleCore extends Module
$order_carrier->shipping_cost_tax_incl = (float)$order->total_shipping_tax_incl; $order_carrier->shipping_cost_tax_incl = (float)$order->total_shipping_tax_incl;
$order_carrier->add(); $order_carrier->add();
} }
// Register Payment
if (!$order->addOrderPayment($amountPaid))
{
$errorMessage = Tools::displayError('Can\'t save payment');
Logger::addLog($errorMessage, 4, '0000003', 'Order', intval($order->id));
die($errorMessage);
}
// Next ! // Next !
foreach ($order_detail_list as $key => $order_detail) foreach ($order_detail_list as $key => $order_detail)
@@ -244,8 +248,6 @@ abstract class PaymentModuleCore extends Module
//$orderDetail = new OrderDetail(null, null, $this->context); //$orderDetail = new OrderDetail(null, null, $this->context);
//$orderDetail->createList($order, $cart, $id_order_state); //$orderDetail->createList($order, $cart, $id_order_state);
//$this->addPCC($order->id, $order->id_currency, $amountPaid);
// Construct order detail table for the email // Construct order detail table for the email
$productsList = ''; $productsList = '';
$products = $cart->getProducts(); $products = $cart->getProducts();
@@ -343,14 +345,10 @@ abstract class PaymentModuleCore extends Module
} }
// Hook validate order // Hook validate order
$orderStatus = new OrderState((int)$id_order_state, (int)$order->id_lang); Hook::exec('newOrder', array('cart' => $cart, 'order' => $order, 'customer' => $customer, 'currency' => $currency, 'orderStatus' => $order_status));
if (Validate::isLoadedObject($orderStatus)) foreach ($cart->getProducts() AS $product)
{ if ($order_status->logable)
Hook::exec('newOrder', array('cart' => $cart, 'order' => $order, 'customer' => $customer, 'currency' => $currency, 'orderStatus' => $orderStatus)); ProductSale::addProductSale((int)$product['id_product'], (int)$product['cart_quantity']);
foreach ($cart->getProducts() AS $product)
if ($orderStatus->logable)
ProductSale::addProductSale((int)$product['id_product'], (int)$product['cart_quantity']);
}
if (Configuration::get('PS_STOCK_MANAGEMENT') && $order_detail->getStockState()) if (Configuration::get('PS_STOCK_MANAGEMENT') && $order_detail->getStockState())
{ {
@@ -433,7 +431,7 @@ abstract class PaymentModuleCore extends Module
$data = array_merge($data, $extraVars); $data = array_merge($data, $extraVars);
// Join PDF invoice // Join PDF invoice
if ((int)(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice AND $order->invoice_number) if ((int)(Configuration::get('PS_INVOICE')) && $order_status->invoice && $order->invoice_number)
{ {
$fileAttachment['content'] = PDF::invoice($order, 'S'); $fileAttachment['content'] = PDF::invoice($order, 'S');
$fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)($order->id_lang)).sprintf('%06d', $order->invoice_number).'.pdf'; $fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)($order->id_lang)).sprintf('%06d', $order->invoice_number).'.pdf';
+1 -1
View File
@@ -1054,7 +1054,7 @@ class OrderCore extends ObjectModel
SELECT `id_order_carrier` SELECT `id_order_carrier`
FROM `'._DB_PREFIX_.'order_carrier` FROM `'._DB_PREFIX_.'order_carrier`
WHERE `id_order` = '.(int)$order_invoice->id_order.' WHERE `id_order` = '.(int)$order_invoice->id_order.'
AND `id_order_invoice` IS NULL'); AND (`id_order_invoice` IS NULL OR `id_order_invoice` = 0)');
$order_carrier = new OrderCarrier($id_order_carrier); $order_carrier = new OrderCarrier($id_order_carrier);
$order_carrier->id_order_invoice = (int)$order_invoice->id; $order_carrier->id_order_invoice = (int)$order_invoice->id;
$order_carrier->update(); $order_carrier->update();
-2
View File
@@ -326,8 +326,6 @@ INSERT INTO `PREFIX_order_detail_tax` (`id_order_detail`, `id_tax`, `unit_amount
(1, 1, '76.860000', '76.860000'), (1, 1, '76.860000', '76.860000'),
(2, 1, '24.420000', '24.420000'); (2, 1, '24.420000', '24.420000');
INSERT INTO `PREFIX_order_payment` (`id_order`, `id_currency`, `amount`, `payment_method`, `date_add`) VALUES (1, 1, '626.37', 'Chèque', NOW());
INSERT INTO `PREFIX_manufacturer` (`id_manufacturer`, `name`, `date_add`, `date_upd`, `active`) VALUES (1, 'Apple Computer, Inc', NOW(), NOW(), 1); INSERT INTO `PREFIX_manufacturer` (`id_manufacturer`, `name`, `date_add`, `date_upd`, `active`) VALUES (1, 'Apple Computer, Inc', NOW(), NOW(), 1);
INSERT INTO `PREFIX_manufacturer` (`id_manufacturer`, `name`, `date_add`, `date_upd`, `active`) VALUES(2, 'Shure Incorporated', NOW(), NOW(), 1); INSERT INTO `PREFIX_manufacturer` (`id_manufacturer`, `name`, `date_add`, `date_upd`, `active`) VALUES(2, 'Shure Incorporated', NOW(), NOW(), 1);