// Adding the OrderCarrier class to handle carriers in an order
This commit is contained in:
@@ -206,9 +206,13 @@ abstract class PaymentModuleCore extends Module
|
||||
$order_detail_list[] = $order_detail;
|
||||
|
||||
// Adding an entry in order_carrier table
|
||||
Db::getInstance()->execute('
|
||||
INSERT INTO `'._DB_PREFIX_.'order_carrier` (`id_order`, `id_carrier`, `weight`, `shipping_cost_tax_excl`, `shipping_cost_tax_incl`, `date_add`) VALUES
|
||||
('.(int)$order->id.', '.(int)$carrier->id.', '.(float)$order->getTotalWeight().', '.(float)$order->total_shipping_tax_excl.', '.(float)$order->total_shipping_tax_incl.', NOW())');
|
||||
$order_carrier = new OrderCarrier();
|
||||
$order_carrier->id_order = (int)$order->id;
|
||||
$order_carrier->id_carrier = (int)$carrier->id;
|
||||
$order_carrier->weight = (float)$order->getTotalWeight();
|
||||
$order_carrier->shipping_cost_tax_excl = (float)$order->total_shipping_tax_excl;
|
||||
$order_carrier->shipping_cost_tax_incl = (float)$order->total_shipping_tax_incl;
|
||||
$order_carrier->add();
|
||||
}
|
||||
// Register Payment
|
||||
if (!$order->addOrderPayment($amountPaid))
|
||||
|
||||
@@ -1084,10 +1084,14 @@ class OrderCore extends ObjectModel
|
||||
$order_invoice->add();
|
||||
|
||||
// Update order_carrier
|
||||
Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'order_carrier`
|
||||
SET `id_order_invoice` = '.(int)$order_invoice->id.'
|
||||
WHERE `id_order` = '.(int)$order_invoice->id_order);
|
||||
$id_order_carrier = Db::getInstance()->getValue('
|
||||
SELECT `id_order_carrier`
|
||||
FROM `'._DB_PREFIX_.'order_carrier`
|
||||
WHERE `id_order` = '.(int)$order_invoice->id_order.'
|
||||
AND `id_order_invoice` IS NOT NULL');
|
||||
$order_carrier = new OrderCarrier($id_order_carrier);
|
||||
$order_carrier->id_order_invoice = (int)$order_invoice->id;
|
||||
$order_carrier->update();
|
||||
|
||||
// Update order detail
|
||||
Db::getInstance()->execute('
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2011 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/osl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 6844 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class OrderCarrierCore extends ObjectModel
|
||||
{
|
||||
/** @var integer */
|
||||
public $id_order_carrier;
|
||||
|
||||
/** @var integer */
|
||||
public $id_order;
|
||||
|
||||
/** @var integer */
|
||||
public $id_carrier;
|
||||
|
||||
/** @var integer */
|
||||
public $id_order_invoice;
|
||||
|
||||
/** @var float */
|
||||
public $weight;
|
||||
|
||||
/** @var float */
|
||||
public $shipping_cost_tax_excl;
|
||||
|
||||
/** @var float */
|
||||
public $shipping_cost_tax_incl;
|
||||
|
||||
/** @var integer */
|
||||
public $tracking_number;
|
||||
|
||||
|
||||
/** @var string Object creation date */
|
||||
public $date_add;
|
||||
|
||||
protected $tables = array ('order_carrier');
|
||||
|
||||
protected $fieldsRequired = array ('id_order', 'id_carrier');
|
||||
protected $fieldsValidate = array (
|
||||
'id_order_carrier' => 'isUnsignedId',
|
||||
'id_order' => 'isUnsignedId',
|
||||
'id_carrier' => 'isUnsignedId',
|
||||
'id_order_invoice' => 'isUnsignedId',
|
||||
'weight' => 'isFloat',
|
||||
'shipping_cost_tax_excl' => 'isFloat',
|
||||
'shipping_cost_tax_incl' => 'isFloat',
|
||||
'tracking_number' => 'isAnything');
|
||||
|
||||
public static $definition = array(
|
||||
'table' => 'order_carrier',
|
||||
'primary' => 'id_order_carrier',
|
||||
);
|
||||
|
||||
protected $webserviceParameters = array(
|
||||
'fields' => array(
|
||||
'id_order' => array('xlink_resource' => 'orders'),
|
||||
'id_carrier' => array('xlink_resource' => 'carriers'),
|
||||
),
|
||||
);
|
||||
|
||||
public function getFields()
|
||||
{
|
||||
$this->validateFields();
|
||||
|
||||
$fields['id_order'] = (int)($this->id_order);
|
||||
$fields['id_carrier'] = (int)($this->id_carrier);
|
||||
$fields['id_order_invoice'] = (int)($this->id_order_invoice);
|
||||
$fields['weight'] = (float)($this->weight);
|
||||
$fields['shipping_cost_tax_excl'] = (float)($this->shipping_cost_tax_excl);
|
||||
$fields['shipping_cost_tax_incl'] = (float)($this->shipping_cost_tax_incl);
|
||||
$fields['tracking_number'] = pSQL(($this->tracking_number));
|
||||
$fields['date_add'] = pSQL($this->date_add);
|
||||
|
||||
return $fields;
|
||||
}
|
||||
}
|
||||
@@ -175,12 +175,15 @@ class AdminOrdersControllerCore extends AdminController
|
||||
// Update order_carrier
|
||||
$id_order_invoice = Tools::getValue('id_order_invoice');
|
||||
$id_carrier = Tools::getValue('id_carrier');
|
||||
Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'order_carrier`
|
||||
SET `tracking_number` = \''.pSQL(Tools::getValue('tracking_number')).'\'
|
||||
$id_order_carrier = Db::getInstance()->getValue('
|
||||
SELECT `id_order_carrier`
|
||||
FROM `'._DB_PREFIX_.'order_carrier`
|
||||
WHERE `id_order` = '.(int)$order->id.
|
||||
' AND `id_carrier` = '.(int)$id_carrier.
|
||||
($id_order_invoice ? ' AND `id_order_invoice` = '.(int)$id_order_invoice : ''));
|
||||
$order_carrier = new OrderCarrier($id_order_carrier);
|
||||
$order_carrier->tracking_number = pSQL(Tools::getValue('tracking_number'));
|
||||
$order_carrier->update();
|
||||
|
||||
global $_LANGMAIL;
|
||||
$customer = new Customer((int)$order->id_customer);
|
||||
@@ -635,17 +638,14 @@ class AdminOrdersControllerCore extends AdminController
|
||||
$payment->update();
|
||||
}
|
||||
|
||||
$order_carrier = Db::getInstance()->getRow('
|
||||
SELECT *
|
||||
$id_order_carrier = Db::getInstance()->getRow('
|
||||
SELECT `id_order_carrier`
|
||||
FROM `'._DB_PREFIX_.'order_carrier`
|
||||
WHERE `id_order` = '.(int)$order->id);
|
||||
|
||||
// Update order carrier amount
|
||||
Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'order_carrier`
|
||||
SET `shipping_cost_tax_excl` = '.(float)Tools::convertPriceFull($order_carrier['shipping_cost_tax_excl'], $old_currency, $currency).',
|
||||
`shipping_cost_tax_incl` = '.(float)Tools::convertPriceFull($order_carrier['shipping_cost_tax_incl'], $old_currency, $currency).'
|
||||
WHERE `id_order` = '.(int)$order->id);
|
||||
$order_carrier = new OrderCarrier($id_order_carrier);
|
||||
$order_carrier->shipping_cost_tax_excl = (float)Tools::convertPriceFull($order_carrier['shipping_cost_tax_excl'], $old_currency, $currency);
|
||||
$order_carrier->shipping_cost_tax_incl = (float)Tools::convertPriceFull($order_carrier['shipping_cost_tax_incl'], $old_currency, $currency);
|
||||
$order_carrier->update();
|
||||
|
||||
// Update order amount
|
||||
$order->total_discounts = Tools::convertPriceFull($order->total_discounts, $old_currency, $currency);
|
||||
@@ -1012,16 +1012,6 @@ class AdminOrdersControllerCore extends AdminController
|
||||
$order_carrier->shipping_cost_tax_excl = (float)$order_invoice->total_shipping_tax_excl;
|
||||
$order_carrier->shipping_cost_tax_incl = ($use_taxes) ? (float)$order_invoice->total_shipping_tax_incl : (float)$order_invoice->total_shipping_tax_excl;
|
||||
$order_carrier->add();
|
||||
/*// Adding an entry in order_carrier table
|
||||
Db::getInstance()->execute('
|
||||
INSERT INTO `'._DB_PREFIX_.'order_carrier` (`id_order`, `id_carrier`, `id_order_invoice`, `weight`, `shipping_cost_tax_excl`, `shipping_cost_tax_incl`, `date_add`) VALUES
|
||||
('.(int)$order->id.',
|
||||
'.(int)$order->id_carrier.',
|
||||
'.(int)$order_invoice->id.',
|
||||
'.(float)$cart->getTotalWeight().',
|
||||
'.$order_invoice->total_shipping_tax_excl.',
|
||||
'.(($use_taxes) ? $order_invoice->total_shipping_tax_incl : $order_invoice->total_shipping_tax_excl).',
|
||||
NOW())');*/
|
||||
}
|
||||
// Update current invoice
|
||||
else
|
||||
|
||||
@@ -35,9 +35,9 @@ function add_order_carrier()
|
||||
if (count($orders) && is_array($orders))
|
||||
{
|
||||
$i = 0;
|
||||
$sql = 'INSERT INTO `'._DB_PREFIX_.'order_carrier` (`id_order`, `id_carrier`, `id_order_invoice`, `weight`, `shipping_cost_tax_excl`, `shipping_cost_tax_incl`, `date_add`) VALUES ';
|
||||
$sql = 'INSERT INTO `'._DB_PREFIX_.'order_carrier` (`id_order_carrier`, `id_order`, `id_carrier`, `id_order_invoice`, `weight`, `shipping_cost_tax_excl`, `shipping_cost_tax_incl`, `date_add`) VALUES ';
|
||||
foreach ($orders as $order)
|
||||
$sql .= '('.(int)$order['id_order'].', '.(int)$order['id_carrier'].', '.(int)$order['id_order_invoice'].', '.(float)$order['product_weight'].', '.(float)$order['total_shipping_tax_excl'].', '.(float)$order['total_shipping_tax_incl'].', "'.pSQL($order['date_add']).'"),';
|
||||
$sql .= '(NULL, '.(int)$order['id_order'].', '.(int)$order['id_carrier'].', '.(int)$order['id_order_invoice'].', '.(float)$order['product_weight'].', '.(float)$order['total_shipping_tax_excl'].', '.(float)$order['total_shipping_tax_incl'].', "'.pSQL($order['date_add']).'"),';
|
||||
// removing last comma to avoid SQL error
|
||||
$sql = substr($sql, 0, strlen($sql) - 1);
|
||||
Db::getInstance()->execute($sql);
|
||||
|
||||
@@ -2276,15 +2276,17 @@ CREATE TABLE `PREFIX_accounting_product_zone_shop` (
|
||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `PREFIX_order_carrier` (
|
||||
`id_order_carrier` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id_order` int(11) unsigned NOT NULL,
|
||||
`id_carrier` int(11) unsigned NOT NULL,
|
||||
`id_order_invoice` int(11) unsigned DEFAULT NULL,
|
||||
`weight` float DEFAULT NULL,
|
||||
`shipping_cost_tax_excl` decimal(20,6) DEFAULT NULL,
|
||||
`shipping_cost_tax_incl` decimal(20,6) DEFAULT NULL,
|
||||
`tracking_number` int(11) unsigned DEFAULT NULL,
|
||||
`tracking_number` varchar(64) DEFAULT NULL,
|
||||
`date_add` datetime NOT NULL,
|
||||
KEY `id_order` (`id_order`,`id_carrier`),
|
||||
KEY `id_order_2` (`id_order`),
|
||||
PRIMARY KEY (`id_order_carrier`),
|
||||
KEY `id_order` (`id_order`),
|
||||
KEY `id_carrier` (`id_carrier`),
|
||||
KEY `id_order_invoice` (`id_order_invoice`)
|
||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
|
||||
|
||||
@@ -1546,8 +1546,8 @@ INSERT INTO `ps_stock_available` (`id_stock_available`, `id_product`, `id_produc
|
||||
(33, 7, 22, 1, 0, 40, 0, 0),
|
||||
(34, 7, 23, 1, 0, 40, 0, 0);
|
||||
|
||||
INSERT INTO `PREFIX_order_carrier` (`id_order`, `id_carrier`, `date_add`) VALUES
|
||||
(1, 2, NOW());
|
||||
INSERT INTO `PREFIX_order_carrier` (`id_order_carrier`, `id_order`, `id_carrier`, `date_add`) VALUES
|
||||
(1, 1, 2, NOW());
|
||||
|
||||
|
||||
/* new theme, need to be checked */
|
||||
|
||||
@@ -610,16 +610,18 @@ UPDATE `PREFIX_tab` SET `class_name` = 'AdminCmsCategories' WHERE `class_name` =
|
||||
UPDATE `PREFIX_tab` SET `class_name` = 'AdminPdf' WHERE `class_name` = 'AdminPDF';
|
||||
|
||||
CREATE TABLE `PREFIX_order_carrier` (
|
||||
`id_order_carrier` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id_order` int(11) unsigned NOT NULL,
|
||||
`id_carrier` int(11) unsigned NOT NULL,
|
||||
`id_order_invoice` int(11) unsigned DEFAULT NULL,
|
||||
`weight` float DEFAULT NULL,
|
||||
`shipping_cost_tax_excl` decimal(20,6) DEFAULT NULL,
|
||||
`shipping_cost_tax_incl` decimal(20,6) DEFAULT NULL,
|
||||
`tracking_number` int(11) unsigned DEFAULT NULL,
|
||||
`tracking_number` varchar(64) DEFAULT NULL,
|
||||
`date_add` datetime NOT NULL,
|
||||
KEY `id_order` (`id_order`,`id_carrier`),
|
||||
KEY `id_order_2` (`id_order`),
|
||||
PRIMARY KEY (`id_order_carrier`),
|
||||
KEY `id_order` (`id_order`),
|
||||
KEY `id_carrier` (`id_carrier`),
|
||||
KEY `id_order_invoice` (`id_order_invoice`)
|
||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user