1 2 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>
|