shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

order.php (6608B)


      1 <?php
      2 class ModelExtensionOpenBayOrder extends Model {
      3 	public function getTotalOrders($data = array()) {
      4 		$sql = "SELECT COUNT(*) AS `total` FROM `" . DB_PREFIX . "order` AS o";
      5 
      6 		if ($this->config->get('ebay_status')) {
      7 			$sql .= " LEFT JOIN " . DB_PREFIX . "ebay_order eo ON o.order_id = eo.order_id ";
      8 		} else {
      9 			$sql .= " JOIN (SELECT NULL AS order_id) eo ";
     10 		}
     11 
     12 		if ($this->config->get('openbay_amazon_status')) {
     13 			$sql .= " LEFT JOIN " . DB_PREFIX . "amazon_order ao ON o.order_id = ao.order_id ";
     14 		} else {
     15 			$sql .= " JOIN (SELECT NULL AS order_id) ao ";
     16 		}
     17 
     18 		if ($this->config->get('openbay_amazonus_status')) {
     19 			$sql .= " LEFT JOIN " . DB_PREFIX . "amazonus_order auso ON o.order_id = auso.order_id ";
     20 		} else {
     21 			$sql .= " JOIN (SELECT NULL AS order_id) auso ";
     22 		}
     23 
     24 		if ($this->config->get('etsy_status')) {
     25 			$sql .= " LEFT JOIN " . DB_PREFIX . "etsy_order eto ON o.order_id = eto.order_id ";
     26 		} else {
     27 			$sql .= " JOIN (SELECT NULL AS order_id) eto ";
     28 		}
     29 
     30 		if (isset($data['filter_order_status_id']) && !is_null($data['filter_order_status_id'])) {
     31 			$sql .= " WHERE `o`.`order_status_id` = '" . (int)$data['filter_order_status_id'] . "'";
     32 		} else {
     33 			$sql .= " WHERE `o`.`order_status_id` > '0'";
     34 		}
     35 
     36 		if (!empty($data['filter_order_id'])) {
     37 			$sql .= " AND o.`order_id` = '" . (int)$data['filter_order_id'] . "'";
     38 		}
     39 
     40 		if (!empty($data['filter_customer'])) {
     41 			$sql .= " AND CONCAT(`firstname`, ' ', `lastname`) LIKE '%" . $this->db->escape($data['filter_customer']) . "%'";
     42 		}
     43 
     44 		if (!empty($data['filter_date_added'])) {
     45 			$sql .= " AND DATE(`date_added`) = DATE('" . $this->db->escape($data['filter_date_added']) . "')";
     46 		}
     47 
     48 		if (!empty($data['filter_channel'])) {
     49 			$sql .= " AND IF(eto.order_id IS NULL, IF(ao.order_id IS NULL, IF(auso.order_id IS NULL, IF(eo.order_id IS NULL, 'web', 'ebay'), 'amazonus'), 'amazon'), 'etsy') = '" . $this->db->escape($data['filter_channel']) . "'";
     50 		}
     51 
     52 		$query = $this->db->query($sql);
     53 
     54 		return $query->row['total'];
     55 	}
     56 
     57 	public function getOrders($data = array()) {
     58 		$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.currency_code, o.currency_value, o.date_added, IF(eto.order_id IS NULL, IF(ao.order_id IS NULL, IF(auso.order_id IS NULL, IF(eo.order_id IS NULL, 'web', 'ebay'), 'amazonus'), 'amazon'), 'etsy') AS channel FROM `" . DB_PREFIX . "order` o";
     59 
     60 		if ($this->config->get('ebay_status')) {
     61 			$sql .= " LEFT JOIN " . DB_PREFIX . "ebay_order eo ON eo.order_id = o.order_id";
     62 		} else {
     63 			$sql .= " JOIN (SELECT NULL AS order_id) eo ";
     64 		}
     65 
     66 		if ($this->config->get('openbay_amazon_status')) {
     67 			$sql .= " LEFT JOIN " . DB_PREFIX . "amazon_order ao ON ao.order_id = o.order_id ";
     68 		} else {
     69 			$sql .= " JOIN (SELECT NULL AS order_id) ao ";
     70 		}
     71 
     72 		if ($this->config->get('openbay_amazonus_status')) {
     73 			$sql .= " LEFT JOIN " . DB_PREFIX . "amazonus_order auso ON auso.order_id = o.order_id ";
     74 		} else {
     75 			$sql .= " JOIN (SELECT NULL AS order_id) auso ";
     76 		}
     77 
     78 		if ($this->config->get('etsy_status')) {
     79 			$sql .= " LEFT JOIN " . DB_PREFIX . "etsy_order eto ON eto.order_id = o.order_id ";
     80 		} else {
     81 			$sql .= " JOIN (SELECT NULL AS order_id) eto ";
     82 		}
     83 
     84 		if (isset($data['filter_order_status_id']) && !is_null($data['filter_order_status_id'])) {
     85 			$sql .= " WHERE o.order_status_id = '" . (int)$data['filter_order_status_id'] . "'";
     86 		} else {
     87 			$sql .= " WHERE o.order_status_id > '0'";
     88 		}
     89 
     90 		if (!empty($data['filter_order_id'])) {
     91 			$sql .= " AND o.order_id = '" . (int)$data['filter_order_id'] . "'";
     92 		}
     93 
     94 		if (!empty($data['filter_customer'])) {
     95 			$sql .= " AND LCASE(CONCAT(o.firstname, ' ', o.lastname)) LIKE '" . $this->db->escape(utf8_strtolower($data['filter_customer'])) . "%'";
     96 		}
     97 
     98 		if (!empty($data['filter_date_added'])) {
     99 			$sql .= " AND DATE(o.date_added) = DATE('" . $this->db->escape($data['filter_date_added']) . "')";
    100 		}
    101 
    102 		if (!empty($data['filter_channel'])) {
    103 			$sql .= " HAVING channel = '" . $this->db->escape($data['filter_channel']) . "'";
    104 		}
    105 
    106 		$sort_data = array(
    107 			'o.order_id',
    108 			'customer',
    109 			'status',
    110 			'o.date_added',
    111 			'channel',
    112 		);
    113 
    114 		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
    115 			$sql .= " ORDER BY " . $data['sort'];
    116 		} else {
    117 			$sql .= " ORDER BY o.order_id";
    118 		}
    119 
    120 		if (isset($data['order']) && ($data['order'] == 'DESC')) {
    121 			$sql .= " DESC";
    122 		} else {
    123 			$sql .= " ASC";
    124 		}
    125 
    126 		if (isset($data['start']) || isset($data['limit'])) {
    127 			if ($data['start'] < 0) {
    128 				$data['start'] = 0;
    129 			}
    130 
    131 			if ($data['limit'] < 1) {
    132 				$data['limit'] = 20;
    133 			}
    134 
    135 			$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
    136 		}
    137 
    138 		$query = $this->db->query($sql);
    139 
    140 		return $query->rows;
    141 	}
    142 
    143 	public function getOrder($order_id) {
    144 		$sql = "SELECT o.order_id, o.order_status_id, o.shipping_method, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.currency_code, o.currency_value, o.date_added, IF(eto.order_id IS NULL, IF(ao.order_id IS NULL, IF(auso.order_id IS NULL, IF(eo.order_id IS NULL, 'web', 'ebay'), 'amazonus'), 'amazon'), 'etsy') AS channel FROM `" . DB_PREFIX . "order` o";
    145 
    146 		if ($this->config->get('ebay_status')) {
    147 			$sql .= " LEFT JOIN " . DB_PREFIX . "ebay_order eo ON eo.order_id = o.order_id ";
    148 		} else {
    149 			$sql .= " JOIN (SELECT NULL AS order_id) eo ";
    150 		}
    151 
    152 		if ($this->config->get('openbay_amazon_status')) {
    153 			$sql .= " LEFT JOIN " . DB_PREFIX . "amazon_order ao ON ao.order_id = o.order_id ";
    154 		} else {
    155 			$sql .= " JOIN (SELECT NULL AS order_id) ao ";
    156 		}
    157 
    158 		if ($this->config->get('openbay_amazonus_status')) {
    159 			$sql .= " LEFT JOIN " . DB_PREFIX . "amazonus_order auso ON auso.order_id = o.order_id ";
    160 		} else {
    161 			$sql .= " JOIN (SELECT NULL AS order_id) auso ";
    162 		}
    163 
    164 		if ($this->config->get('etsy_status')) {
    165 			$sql .= " LEFT JOIN " . DB_PREFIX . "etsy_order eto ON eto.order_id = o.order_id ";
    166 		} else {
    167 			$sql .= " JOIN (SELECT NULL AS order_id) eto ";
    168 		}
    169 
    170 		$sql .= " WHERE `o`.`order_id` = '" . (int)$order_id . "'";
    171 
    172 		$sql = $this->db->query($sql);
    173 
    174 		return $sql->row;
    175 	}
    176 }