Files
2024-10-25 14:16:28 +02:00

130 lines
5.0 KiB
PHP

<?php
class AdminOrdersController extends AdminOrdersControllerCore
{
public function __construct()
{
$this->bootstrap = true;
$this->table = 'order';
$this->className = 'Order';
$this->lang = false;
$this->addRowAction('view');
$this->explicitSelect = true;
$this->allow_export = true;
$this->deleted = false;
parent::__construct();
$this->_select = '
a.id_currency,
a.id_order AS id_pdf,
a.id_carrier,
carrier.name as crname,
CONCAT(LEFT(c.`firstname`, 100), \' \', c.`lastname`) AS `customer`,
osl.`name` AS `osname`,
os.`color`,
IF((SELECT so.id_order FROM `' . _DB_PREFIX_ . 'orders` so WHERE so.id_customer = a.id_customer AND so.id_order < a.id_order LIMIT 1) > 0, 0, 1) as new,
country_lang.name as cname,
IF(a.valid, 1, 0) badge_success';
$this->_join = '
LEFT JOIN `' . _DB_PREFIX_ . 'customer` c ON (c.`id_customer` = a.`id_customer`)
INNER JOIN `' . _DB_PREFIX_ . 'address` address ON address.id_address = a.id_address_delivery
INNER JOIN `'._DB_PREFIX_.'carrier` carrier ON carrier.id_carrier = a.id_carrier
INNER JOIN `' . _DB_PREFIX_ . 'country` country ON address.id_country = country.id_country
INNER JOIN `' . _DB_PREFIX_ . 'country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = ' . (int) $this->context->language->id . ')
LEFT JOIN `' . _DB_PREFIX_ . 'order_state` os ON (os.`id_order_state` = a.`current_state`)
LEFT JOIN `' . _DB_PREFIX_ . 'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = ' . (int) $this->context->language->id . ')';
$this->_orderBy = 'id_order';
$this->_orderWay = 'DESC';
$this->_use_found_rows = true;
$statuses = OrderState::getOrderStates((int) $this->context->language->id);
foreach ($statuses as $status) {
$this->statuses_array[$status['id_order_state']] = $status['name'];
}
$this->fields_list = array(
'id_order' => array(
'title' => $this->trans('ID', array(), 'Admin.Global'),
'align' => 'text-center',
'class' => 'fixed-width-xs',
'width' => 90,
),
/*'new' => array(
'title' => $this->trans('New client', array(), 'Admin.Orderscustomers.Feature'),
'align' => 'text-center',
'type' => 'bool',
'tmpTableFilter' => true,
'orderby' => false,
),*/
'customer' => array(
'title' => $this->trans('Customer', array(), 'Admin.Global'),
'havingFilter' => true,
),
);
if (Configuration::get('PS_B2B_ENABLE')) {
$this->fields_list = array_merge($this->fields_list, array(
'company' => array(
'title' => $this->trans('Company', array(), 'Admin.Global'),
'filter_key' => 'c!company',
),
));
}
$this->fields_list = array_merge($this->fields_list, array(
'total_paid_tax_incl' => array(
'title' => $this->trans('Total', array(), 'Admin.Global'),
'align' => 'text-right',
'type' => 'price',
'currency' => true,
'callback' => 'setOrderCurrency',
'badge_success' => true,
),
'payment' => array(
'title' => $this->trans('Payment', array(), 'Admin.Global'),
),
'osname' => array(
'title' => $this->trans('Status zamówienia', array(), 'Admin.Global'),
'type' => 'select',
'color' => 'color',
'list' => $this->statuses_array,
'filter_key' => 'os!id_order_state',
'filter_type' => 'int',
'order_key' => 'osname',
),
'date_add' => array(
'title' => $this->trans('Date', array(), 'Admin.Global'),
'align' => 'text-right',
'type' => 'datetime',
'filter_key' => 'a!date_add',
),
'crname' => array(
'title' => $this->trans('Sposób dostawy', array(), 'Admin.Global'),
'orderby' => false,
'search' => false,
'align' => 'text-left',
'width' => 35,
),
'order_source' => array(
'title' => $this->trans('Źródło zamówienia', array(), 'Admin.Global'),
'search' => false,
'align' => 'text-right',
'type' => 'enum',
'filter_key' => 'a!order_source',
),
/*'id_pdf' => array(
'title' => $this->trans('PDF', array(), 'Admin.Global'),
'align' => 'text-center',
'callback' => 'printPDFIcons',
'orderby' => false,
'search' => false,
'remove_onclick' => true,
),*/
));
}
}