| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 
 | <modification>
 <id>Very simple AJAX live search</id>
 <version>1.0.0</version>
 <vqmver>1.2.3</vqmver>
 <author>n[oO]ne</author>
 
 <file path="admin/controller/sale/order.php">
 <operation>
 <search position="before"><![CDATA[
 $data['invoice'] = $this->url->link('sale/order/invoice', 'token=' . $this->session->data['token'], 'SSL');
 ]]></search>
 <add><![CDATA[
 $data['export'] = $this->url->link('sale/order/export', 'token=' . $this->session->data['token'] . $url, 'SSL');
 ]]></add>
 </operation>
 
 <operation>
 <search position="before"><![CDATA[
 $data['button_invoice_print'] = $this->language->get('button_invoice_print');
 ]]></search>
 <add><![CDATA[
 $data['button_export'] = $this->language->get('button_export');
 ]]></add>
 </operation>
 
 <operation>
 <search position="before"><![CDATA[
 protected function getList() {
 ]]></search>
 <add><![CDATA[
 public function export()
 {
 
 $data = array();
 $orders = array();
 $orders_column = array();
 $this->load->model('sale/order');
 $results = $this->model_sale_order->getOrdersexport($data);
 $orders_list = array();
 foreach ($results as $result) {
 $orders_list[] = array('order_id' => $result['order_id'], 'order_rand_no' => $result['order_rand_no'], 'customer_group' => $result['customer_group'], 'customer_name' => $result['customer_name'], 'email' => $result['email'], 'telephone' => $result['telephone'], 'payment_address' => $result['payment_address'], 'shipping_address' => $result['shipping_address'], 'payment_method' => $result['payment_method'], 'shipping_method' => $result['shipping_method'], 'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']), 'currency_code' => $result['currency_code'], 'date_added' => $result['date_added'], 'order_status' => $result['order_status']);
 }
 $orders_column = array('Order ID', 'Order Rand No', 'Customer Group', 'Customer Name', 'Email', 'Telephone', 'Payment Address', 'Shipping Address', 'Payment Method', 'Shipping Method', 'Total', 'Currency Code', 'Date Added', 'Order Status');
 $orders[0] = $orders_column;
 foreach ($orders_list as $orders_row) {
 $orders[] = $orders_row;
 }
 require_once DIR_SYSTEM . 'library/excel_xml.php';
 $xls = new Excel_XML('UTF-8', false, 'Orders List');
 $xls->addArray($orders);
 $xls->generateXML('orderslist_' . date('Y-m-d _ H:i:s'));
 }
 ]]></add>
 </operation>
 
 </file>
 
 <file path="admin/model/sale/order.php">
 <operation>
 <search position="before"><![CDATA[public function getOrders($data = array()) {]]></search>
 <add><![CDATA[
 public function getOrdersexport($data = array())
 {
 $sql = "SELECT o.order_id, o.order_rand_no, cgd.name as customer_group, CONCAT(o.firstname, ' ', o.lastname) AS customer_name,\r\nemail, telephone, CONCAT(o.payment_firstname, ' ', o.payment_lastname,',',o.payment_address_1,',',o.payment_address_2,',',o.payment_city,'-',o.payment_postcode) AS payment_address,\r\nCONCAT(o.shipping_firstname, ' ', o.shipping_lastname,',',o.shipping_address_1,',',o.shipping_address_2,',', o.shipping_city,'-',o.shipping_postcode) AS shipping_address,\r\n o.payment_method, o.shipping_method, o.total, o.currency_code,o.currency_value,\r\n o.date_added, oos.name as order_status\r\nFROM `" . DB_PREFIX . "order` o\r\nLEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (o.customer_group_id = cgd.customer_group_id and cgd.language_id = '" . (int) $this->config->get('config_language_id') . "')\r\nLEFT JOIN " . DB_PREFIX . "order_status oos ON (o.order_status_id = oos.order_status_id) WHERE oos.language_id = '" . (int) $this->config->get('config_language_id') . "'";
 if (isset($data['filter_order_status_id']) && !is_null($data['filter_order_status_id'])) {
 $sql .= " AND o.order_status_id = '" . (int) $data['filter_order_status_id'] . "'";
 } else {
 $sql .= " AND o.order_status_id > '0'";
 }
 if (!empty($data['filter_order_id'])) {
 $sql .= " AND o.order_id = '" . (int) $data['filter_order_id'] . "'";
 }
 if (!empty($data['filter_customer'])) {
 $sql .= " AND CONCAT(o.firstname, ' ', o.lastname) LIKE '%" . $this->db->escape($data['filter_customer']) . "%'";
 }
 if (!empty($data['filter_date_added'])) {
 $sql .= " AND DATE(o.date_added) = DATE('" . $this->db->escape($data['filter_date_added']) . "')";
 }
 if (!empty($data['filter_date_modified'])) {
 $sql .= " AND DATE(o.date_modified) = DATE('" . $this->db->escape($data['filter_date_modified']) . "')";
 }
 if (!empty($data['filter_total'])) {
 $sql .= " AND o.total = '" . (double) $data['filter_total'] . "'";
 }
 $sort_data = array('o.order_id', 'customer', 'status', 'o.date_added', 'o.date_modified', 'o.total');
 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
 $sql .= " ORDER BY " . $data['sort'];
 } else {
 $sql .= " ORDER BY o.order_id";
 }
 $data['order'] = 'DESC';
 if (isset($data['order']) && $data['order'] == 'DESC') {
 $sql .= " DESC";
 } else {
 $sql .= " ASC";
 }
 if (isset($data['start']) || isset($data['limit'])) {
 if ($data['start'] < 0) {
 $data['start'] = 0;
 }
 if ($data['limit'] < 1) {
 $data['limit'] = 20;
 }
 $sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
 }
 $query = $this->db->query($sql);
 return $query->rows;
 }
 ]]></add>
 </operation>
 </file>
 </modification>
 
 |