From b8c77d90b49baa39b84871e7941853309bfa2e81 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 25 Nov 2013 12:17:26 +0100 Subject: [PATCH] [*] BO : Added countries to order list (idea from PhpMadman https://github.com/PrestaShop/PrestaShop/pull/909) --- controllers/admin/AdminOrdersController.php | 34 ++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index c121de902..9234c00fd 100755 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -46,10 +46,14 @@ class AdminOrdersControllerCore extends AdminController CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, - IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer) > 1, 0, 1) as new'; + IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer) > 1, 0, 1) as new, + country_lang.name as cname'; $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_.'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'; @@ -115,6 +119,34 @@ class AdminOrdersControllerCore extends AdminController 'search' => false, 'remove_onclick' => true) ); + + if (Country::isCurrentlyUsed('country', true)) + { + $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' + SELECT DISTINCT c.id_country, cl.`name` + FROM `'._DB_PREFIX_.'orders` o + '.Shop::addSqlAssociation('orders', 'o').' + INNER JOIN `'._DB_PREFIX_.'address` a ON a.id_address = o.id_address_delivery + INNER JOIN `'._DB_PREFIX_.'country` c ON a.id_country = c.id_country + INNER JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country` AND cl.`id_lang` = '.(int)$this->context->language->id.') + ORDER BY cl.name ASC'); + + $country_array = array(); + foreach ($result as $row) + $country_array[$row['id_country']] = $row['name']; + + $part1 = array_slice($this->fields_list, 0, 3); + $part2 = array_slice($this->fields_list, 3); + $part1['cname'] = array( + 'title' => $this->l('Delivery'), + 'type' => 'select', + 'list' => $country_array, + 'filter_key' => 'country!id_country', + 'filter_type' => 'int', + 'order_key' => 'cname' + ); + $this->fields_list = array_merge($part1, $part2); + } $this->shopLinkType = 'shop'; $this->shopShareDatas = Shop::SHARE_ORDER;