// Adding the OrderCarrier class to handle carriers in an order

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@11051 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
vChabot
2011-12-08 15:12:23 +00:00
parent 4b1e7e1082
commit af70df72ce
8 changed files with 139 additions and 39 deletions
+7 -3
View File
@@ -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))
+8 -4
View File
@@ -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('
+98
View File
@@ -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;
}
}