// you can define invoice on payment addition

This commit is contained in:
aFolletete
2011-12-14 18:42:50 +00:00
parent e38804f7c2
commit 16175b1561
5 changed files with 103 additions and 54 deletions
+13 -5
View File
@@ -1065,6 +1065,12 @@ class OrderCore extends ObjectModel
SET `id_order_invoice` = '.(int)$order_invoice->id.'
WHERE `id_order` = '.(int)$order_invoice->id_order);
// Update order payment
Db::getInstance()->execute('
UPDATE `'._DB_PREFIX_.'order_payment`
SET `id_order_invoice` = '.(int)$order_invoice->id.'
WHERE `id_order` = '.(int)$order_invoice->id_order);
$this->invoice_date = $order_invoice->date_add;
$this->invoice_number = $order_invoice->number;
$this->update();
@@ -1313,12 +1319,14 @@ class OrderCore extends ObjectModel
* @param string $payment_transaction_id
* @param Currency $currency
* @param string $date
* @param OrderInvoice $order_invoice
* @return bool
*/
public function addOrderPayment($amount_paid, $payment_method = null, $payment_transaction_id = null, $currency = null, $date = null)
public function addOrderPayment($amount_paid, $payment_method = null, $payment_transaction_id = null, $currency = null, $date = null, $order_invoice = null)
{
$order_payment = new OrderPayment();
$order_payment->id_order = $this->id;
$order_payment->id_order_invoice = (!is_null($order_invoice) ? $order_invoice->id : null);
$order_payment->id_currency = ($currency ? $currency->id : $this->id_currency);
// we kept the currency rate for historization reasons
$order_payment->conversion_rate = ($currency ? $currency->conversion_rate : 1);
@@ -1567,10 +1575,10 @@ class OrderCore extends ObjectModel
return true;
return false;
}
/**
* Get warehouse associated to the order
*
*
* return array List of warehouse
*/
public function getWarehouseList()
@@ -1582,11 +1590,11 @@ class OrderCore extends ObjectModel
GROUP BY id_warehouse');
if (!$results)
return array();
$warehouse_list = array();
foreach ($results as $row)
$warehouse_list[] = $row['id_warehouse'];
return $warehouse_list;
}
}
+54 -40
View File
@@ -381,54 +381,68 @@ class OrderInvoiceCore extends ObjectModel
);
}
/**
* Returns all the order invoice that match the date interval
*
* @since 1.5
* @static
* @param $date_from
* @param $date_to
* @return array collection of OrderInvoice
*/
public static function getByDateInterval($date_from, $date_to)
{
$order_invoice_list = Db::getInstance()->ExecuteS('SELECT oi.*
FROM `'._DB_PREFIX_.'order_invoice` oi
LEFT JOIN `'._DB_PREFIX_.'orders` o ON (o.`id_order` = oi.`id_order`)
WHERE DATE_ADD(oi.date_add, INTERVAL -1 DAY) <= \''.pSQL($date_to).'\'
AND oi.date_add >= \''.pSQL($date_from).'\'
'.Context::getContext()->shop->addSqlRestriction().
' ORDER BY oi.date_add ASC');
/**
* Returns all the order invoice that match the date interval
*
* @since 1.5
* @static
* @param $date_from
* @param $date_to
* @return array collection of OrderInvoice
*/
public static function getByDateInterval($date_from, $date_to)
{
$order_invoice_list = Db::getInstance()->ExecuteS('
SELECT oi.*
FROM `'._DB_PREFIX_.'order_invoice` oi
LEFT JOIN `'._DB_PREFIX_.'orders` o ON (o.`id_order` = oi.`id_order`)
WHERE DATE_ADD(oi.date_add, INTERVAL -1 DAY) <= \''.pSQL($date_to).'\'
AND oi.date_add >= \''.pSQL($date_from).'\'
'.Context::getContext()->shop->addSqlRestriction().
' ORDER BY oi.date_add ASC
');
return ObjectModel::hydrateCollection('OrderInvoice', $order_invoice_list);
}
return ObjectModel::hydrateCollection('OrderInvoice', $order_invoice_list);
}
/**
* @since 1.5
* @static
* @param $id_order_invoice
*/
public static function getCarrier($id_order_invoice)
{
$carrier = false;
if ($id_carrier = OrderInvoice::getCarrierId($id_order_invoice))
$carrier = new Carrier((int)$id_carrier);
return $carrier;
}
/**
* @since 1.5
* @static
* @param $id_order_invoice
*/
public static function getCarrier($id_order_invoice)
{
$carrier = false;
if ($id_carrier = OrderInvoice::getCarrierId($id_order_invoice))
$carrier = new Carrier((int)$id_carrier);
public static function getCarrierId($id_order_invoice)
{
$sql = 'SELECT `id_carrier`
FROM `'._DB_PREFIX_.'order_carrier`
WHERE `id_order_invoice` = '.(int)$id_order_invoice;
return $carrier;
}
return Db::getInstance()->getValue($sql);
}
/**
* @since 1.5
* @static
* @param $id_order_invoice
*/
public static function getCarrierId($id_order_invoice)
{
$sql = 'SELECT `id_carrier`
FROM `'._DB_PREFIX_.'order_carrier`
WHERE `id_order_invoice` = '.(int)$id_order_invoice;
return Db::getInstance()->getValue($sql);
}
/**
* @static
* @param $id
* @return OrderInvoice
*/
public static function retrieveOneById($id)
{
$order_invoice = new OrderInvoice($id);
if (!Validate::isLoadedObject($order_invoice))
throw new PrestashopException('Can\'t load Order Invoice object for id: '.$id);
return $order_invoice;
}
}
+2
View File
@@ -29,6 +29,7 @@ class OrderPaymentCore extends ObjectModel
{
public $id_order;
public $id_currency;
public $id_order_invoice;
public $amount;
public $payment_method;
public $conversion_rate;
@@ -48,6 +49,7 @@ class OrderPaymentCore extends ObjectModel
'fields' => array(
'id_order' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'id_currency' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
'id_order_invoice' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
'amount' => array('type' => self::TYPE_FLOAT, 'validate' => 'isPrice', 'required' => true),
'payment_method' => array('type' => self::TYPE_STRING, 'validate' => 'isName'),
'conversion_rate' => array('type' => self::TYPE_INT, 'validate' => 'isFloat'),