// OrderInvoice PDF compliant

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@10830 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
fBrignoli
2011-12-01 14:24:17 +00:00
parent 2ae9a4281b
commit b2f33740fe
4 changed files with 59 additions and 14 deletions
+15 -10
View File
@@ -116,15 +116,12 @@ function generateDeliverySlipPDF()
function generateInvoicesPDF()
{
$id_orders_list = Order::getOrdersIdInvoiceByDate($_GET['date_from'], $_GET['date_to'], NULL, 'invoice');
$id_orders_list = OrderInvoice::getByDateInterval($_GET['date_from'], $_GET['date_to'], NULL, 'invoice');
if (!is_array($id_orders_list))
die (Tools::displayError('No invoices found'));
$orders = array();
foreach ($id_orders_list as $id_order)
$orders[] = new Order((int)$id_order);
generatePDF($orders, PDF::TEMPLATE_INVOICE);
generateOrderInvoicesPDF($id_orders_list);
}
function generateInvoicesPDF2()
@@ -134,11 +131,19 @@ function generateInvoicesPDF2()
if (is_array($id_orders = Order::getOrderIdsByStatus((int)$id_order_state)))
$id_orders_list = array_merge($id_orders_list, $id_orders);
$orders = array();
foreach ($id_orders_list as $id_order)
$orders[] = new Order((int)$id_order);
generateOrderInvoicesPDF($id_orders_list);
}
generatePDF($orders, PDF::TEMPLATE_INVOICE);
function generateOrderInvoicesPDF($id_orders_list)
{
$orders_invoices = array();
foreach ($id_orders_list as $id_order)
{
$order = new Order((int)$id_order);
$orders_invoices = array_merge($orders_invoices, $order->getInvoicesCollection());
}
generatePDF($orders_invoices, PDF::TEMPLATE_INVOICE);
}
function generateOrderSlipsPDF()
+12
View File
@@ -826,8 +826,20 @@ class OrderCore extends ObjectModel
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
}
/**
* @deprecated since 1.5.0.2
*
* @static
* @param $date_from
* @param $date_to
* @param $id_customer
* @param $type
*
* @return array
*/
public static function getOrdersIdInvoiceByDate($date_from, $date_to, $id_customer = NULL, $type = NULL)
{
Tools::displayAsDeprecated();
$sql = 'SELECT `id_order`
FROM `'._DB_PREFIX_.'orders`
WHERE DATE_ADD(invoice_date, INTERVAL -1 DAY) <= \''.pSQL($date_to).'\' AND invoice_date >= \''.pSQL($date_from).'\'
+22
View File
@@ -384,4 +384,26 @@ class OrderInvoiceCore extends ObjectModel
AND `id_order_invoice` = '.(int)$this->id
);
}
/**
* Returns all the order invoice that match the date interval
*
* @since 1.5.0.2
* @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);
}
}
+10 -4
View File
@@ -147,11 +147,12 @@ class AdminInvoicesControllerCore extends AdminController
SELECT COUNT(*) as nbOrders, (
SELECT oh.id_order_state
FROM '._DB_PREFIX_.'order_history oh
WHERE oh.id_order = o.id_order
WHERE oh.id_order = oi.id_order
ORDER BY oh.date_add DESC, oh.id_order_history DESC
LIMIT 1
) id_order_state
FROM '._DB_PREFIX_.'orders o
FROM '._DB_PREFIX_.'order_invoice oi
LEFT JOIN '._DB_PREFIX_.'orders o ON (oi.id_order = o.id_order)
WHERE o.id_shop IN('.implode(', ', $this->context->shop->getListOfID()).')
GROUP BY id_order_state
');
@@ -204,13 +205,17 @@ class AdminInvoicesControllerCore extends AdminController
{
if (!Validate::isDate(Tools::getValue('date_from')))
$this->_errors[] = $this->l('Invalid from date');
if (!Validate::isDate(Tools::getValue('date_to')))
$this->_errors[] = $this->l('Invalid end date');
if (!count($this->_errors))
{
$orders = Order::getOrdersIdInvoiceByDate(Tools::getValue('date_from'), Tools::getValue('date_to'), null, 'invoice');
if (count($orders))
$order_invoice_list = OrderInvoice::getByDateInterval(Tools::getValue('date_from'), Tools::getValue('date_to'));
if (count($order_invoice_list))
Tools::redirectAdmin('pdf.php?invoices&date_from='.urlencode(Tools::getValue('date_from')).'&date_to='.urlencode(Tools::getValue('date_to')).'&token='.$this->token);
$this->_errors[] = $this->l('No invoice found for this period');
}
}
@@ -223,6 +228,7 @@ class AdminInvoicesControllerCore extends AdminController
foreach ($status_array as $id_order_state)
if (count($orders = Order::getOrderIdsByStatus((int)$id_order_state)))
Tools::redirectAdmin('pdf.php?invoices2&id_order_state='.implode('-', $status_array).'&token='.$this->token);
$this->_errors[] = $this->l('No invoice found for this status');
}
}