first commit
This commit is contained in:
109
admin/export/orders.php
Normal file
109
admin/export/orders.php
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
|
||||
|
||||
function ordersOutputBuffer($buffer, $phase)
|
||||
{
|
||||
return iconv('utf-8', getVal('coding', null, 'utf-8').'//TRANSLIT', $buffer);
|
||||
}
|
||||
|
||||
class ExportOrders
|
||||
{
|
||||
/** @var KupShop\OrderingBundle\Util\Order\DeliveryInfo */
|
||||
protected $deliveryInfoService;
|
||||
|
||||
protected $orderIds;
|
||||
|
||||
protected function setHeader($params)
|
||||
{
|
||||
if (!empty($params['dateFrom']) && !empty($params['dateTo'])) {
|
||||
$filename = 'objednavky_'.$params['dateFrom'].'-'.$params['dateTo'];
|
||||
} else {
|
||||
$filename = 'objednavky_'.date('Y-m-d_H-i');
|
||||
}
|
||||
$filename .= '.'.$params['file_ext'];
|
||||
|
||||
header("Content-type: {$params['content_type']}");
|
||||
header("Content-Disposition: attachment; filename=\"{$filename}\"");
|
||||
}
|
||||
|
||||
public function setOrderIds($orderIds)
|
||||
{
|
||||
$this->orderIds = $orderIds;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOrderIds()
|
||||
{
|
||||
return $this->orderIds;
|
||||
}
|
||||
|
||||
protected function prepdate($date)
|
||||
{
|
||||
if (empty($date)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$date = new DateTime($date);
|
||||
|
||||
return $date->format('Y-m-d');
|
||||
}
|
||||
|
||||
public function exportData($params)
|
||||
{
|
||||
$this->setHeader($params);
|
||||
|
||||
/* @var KupShop\OrderingBundle\Util\Order\DeliveryInfo deliveryInfoService */
|
||||
$this->deliveryInfoService = ServiceContainer::getService('KupShop\OrderingBundle\Util\Order\DeliveryInfo');
|
||||
|
||||
$where = 'o.id IN ('.(!empty($this->orderIds) ? join(',', $this->orderIds) : '0').')';
|
||||
|
||||
$orders = sqlQuery("SELECT o.id FROM orders o WHERE {$where}");
|
||||
|
||||
// Select all vats
|
||||
$vats = sqlFetchAll(sqlQuery('SELECT vat, 0 tmp FROM vats ORDER BY vat'), ['vat' => 'tmp']);
|
||||
|
||||
// Append non-existent vats from orders
|
||||
$vats_order = sqlQuery("SELECT distinct COALESCE(tax, 0) vat, 0 tmp
|
||||
FROM orders as o
|
||||
LEFT JOIN order_items oi on oi.id_order=o.id
|
||||
WHERE {$where}
|
||||
ORDER BY vat");
|
||||
|
||||
foreach ($vats_order as $row) {
|
||||
if (!isset($vats[$row['vat']])) {
|
||||
$vats[$row['vat']] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
$smarty = createSmarty(true, true);
|
||||
$smarty->assign([
|
||||
'orders' => $orders,
|
||||
'vats' => $vats,
|
||||
'this' => $this,
|
||||
]);
|
||||
|
||||
ob_start('ordersOutputBuffer', 4096);
|
||||
|
||||
$template = getVal('format', $params, $params['file_ext']);
|
||||
|
||||
$smarty->display("export/orders_{$template}.tpl");
|
||||
}
|
||||
|
||||
public function getOrder($id_order)
|
||||
{
|
||||
$orderObj = new \Order($id_order);
|
||||
$orderObj->createFromDB($id_order);
|
||||
$orderObj->fetchItems();
|
||||
$orderObj->fetchDates();
|
||||
|
||||
$orderObj->deliveryItemId = $this->deliveryInfoService->getDeliveryItem($orderObj);
|
||||
|
||||
if (is_null($orderObj->date_handle)) {
|
||||
$orderObj->date_handle = $orderObj->date_created;
|
||||
}
|
||||
|
||||
return $orderObj;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user