shop.balmet.com

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

chart.php (6564B)


      1 <?php
      2 class ModelExtensionDashboardChart extends Model {
      3 	public function getTotalOrdersByDay() {
      4 		$implode = array();
      5 
      6 		foreach ($this->config->get('config_complete_status') as $order_status_id) {
      7 			$implode[] = "'" . (int)$order_status_id . "'";
      8 		}
      9 
     10 		$order_data = array();
     11 
     12 		for ($i = 0; $i < 24; $i++) {
     13 			$order_data[$i] = array(
     14 				'hour'  => $i,
     15 				'total' => 0
     16 			);
     17 		}
     18 
     19 		$query = $this->db->query("SELECT COUNT(*) AS total, HOUR(date_added) AS hour FROM `" . DB_PREFIX . "order` WHERE order_status_id IN(" . implode(",", $implode) . ") AND DATE(date_added) = DATE(NOW()) GROUP BY HOUR(date_added) ORDER BY date_added ASC");
     20 
     21 		foreach ($query->rows as $result) {
     22 			$order_data[$result['hour']] = array(
     23 				'hour'  => $result['hour'],
     24 				'total' => $result['total']
     25 			);
     26 		}
     27 
     28 		return $order_data;
     29 	}
     30 
     31 	public function getTotalOrdersByWeek() {
     32 		$implode = array();
     33 
     34 		foreach ($this->config->get('config_complete_status') as $order_status_id) {
     35 			$implode[] = "'" . (int)$order_status_id . "'";
     36 		}
     37 
     38 		$order_data = array();
     39 
     40 		$date_start = strtotime('-' . date('w') . ' days');
     41 
     42 		for ($i = 0; $i < 7; $i++) {
     43 			$date = date('Y-m-d', $date_start + ($i * 86400));
     44 
     45 			$order_data[date('w', strtotime($date))] = array(
     46 				'day'   => date('D', strtotime($date)),
     47 				'total' => 0
     48 			);
     49 		}
     50 
     51 		$query = $this->db->query("SELECT COUNT(*) AS total, date_added FROM `" . DB_PREFIX . "order` WHERE order_status_id IN(" . implode(",", $implode) . ") AND DATE(date_added) >= DATE('" . $this->db->escape(date('Y-m-d', $date_start)) . "') GROUP BY DAYNAME(date_added)");
     52 
     53 		foreach ($query->rows as $result) {
     54 			$order_data[date('w', strtotime($result['date_added']))] = array(
     55 				'day'   => date('D', strtotime($result['date_added'])),
     56 				'total' => $result['total']
     57 			);
     58 		}
     59 
     60 		return $order_data;
     61 	}
     62 
     63 	public function getTotalOrdersByMonth() {
     64 		$implode = array();
     65 
     66 		foreach ($this->config->get('config_complete_status') as $order_status_id) {
     67 			$implode[] = "'" . (int)$order_status_id . "'";
     68 		}
     69 
     70 		$order_data = array();
     71 
     72 		for ($i = 1; $i <= date('t'); $i++) {
     73 			$date = date('Y') . '-' . date('m') . '-' . $i;
     74 
     75 			$order_data[date('j', strtotime($date))] = array(
     76 				'day'   => date('d', strtotime($date)),
     77 				'total' => 0
     78 			);
     79 		}
     80 
     81 		$query = $this->db->query("SELECT COUNT(*) AS total, date_added FROM `" . DB_PREFIX . "order` WHERE order_status_id IN(" . implode(",", $implode) . ") AND DATE(date_added) >= '" . $this->db->escape(date('Y') . '-' . date('m') . '-1') . "' GROUP BY DATE(date_added)");
     82 
     83 		foreach ($query->rows as $result) {
     84 			$order_data[date('j', strtotime($result['date_added']))] = array(
     85 				'day'   => date('d', strtotime($result['date_added'])),
     86 				'total' => $result['total']
     87 			);
     88 		}
     89 
     90 		return $order_data;
     91 	}
     92 
     93 	public function getTotalOrdersByYear() {
     94 		$implode = array();
     95 
     96 		foreach ($this->config->get('config_complete_status') as $order_status_id) {
     97 			$implode[] = "'" . (int)$order_status_id . "'";
     98 		}
     99 
    100 		$order_data = array();
    101 
    102 		for ($i = 1; $i <= 12; $i++) {
    103 			$order_data[$i] = array(
    104 				'month' => date('M', mktime(0, 0, 0, $i)),
    105 				'total' => 0
    106 			);
    107 		}
    108 
    109 		$query = $this->db->query("SELECT COUNT(*) AS total, date_added FROM `" . DB_PREFIX . "order` WHERE order_status_id IN(" . implode(",", $implode) . ") AND YEAR(date_added) = YEAR(NOW()) GROUP BY MONTH(date_added)");
    110 
    111 		foreach ($query->rows as $result) {
    112 			$order_data[date('n', strtotime($result['date_added']))] = array(
    113 				'month' => date('M', strtotime($result['date_added'])),
    114 				'total' => $result['total']
    115 			);
    116 		}
    117 
    118 		return $order_data;
    119 	}
    120 	
    121 	public function getTotalCustomersByDay() {
    122 		$customer_data = array();
    123 
    124 		for ($i = 0; $i < 24; $i++) {
    125 			$customer_data[$i] = array(
    126 				'hour'  => $i,
    127 				'total' => 0
    128 			);
    129 		}
    130 
    131 		$query = $this->db->query("SELECT COUNT(*) AS total, HOUR(date_added) AS hour FROM `" . DB_PREFIX . "customer` WHERE DATE(date_added) = DATE(NOW()) GROUP BY HOUR(date_added) ORDER BY date_added ASC");
    132 
    133 		foreach ($query->rows as $result) {
    134 			$customer_data[$result['hour']] = array(
    135 				'hour'  => $result['hour'],
    136 				'total' => $result['total']
    137 			);
    138 		}
    139 
    140 		return $customer_data;
    141 	}
    142 
    143 	public function getTotalCustomersByWeek() {
    144 		$customer_data = array();
    145 
    146 		$date_start = strtotime('-' . date('w') . ' days');
    147 
    148 		for ($i = 0; $i < 7; $i++) {
    149 			$date = date('Y-m-d', $date_start + ($i * 86400));
    150 
    151 			$customer_data[date('w', strtotime($date))] = array(
    152 				'day'   => date('D', strtotime($date)),
    153 				'total' => 0
    154 			);
    155 		}
    156 
    157 		$query = $this->db->query("SELECT COUNT(*) AS total, date_added FROM `" . DB_PREFIX . "customer` WHERE DATE(date_added) >= DATE('" . $this->db->escape(date('Y-m-d', $date_start)) . "') GROUP BY DAYNAME(date_added)");
    158 
    159 		foreach ($query->rows as $result) {
    160 			$customer_data[date('w', strtotime($result['date_added']))] = array(
    161 				'day'   => date('D', strtotime($result['date_added'])),
    162 				'total' => $result['total']
    163 			);
    164 		}
    165 
    166 		return $customer_data;
    167 	}
    168 
    169 	public function getTotalCustomersByMonth() {
    170 		$customer_data = array();
    171 
    172 		for ($i = 1; $i <= date('t'); $i++) {
    173 			$date = date('Y') . '-' . date('m') . '-' . $i;
    174 
    175 			$customer_data[date('j', strtotime($date))] = array(
    176 				'day'   => date('d', strtotime($date)),
    177 				'total' => 0
    178 			);
    179 		}
    180 
    181 		$query = $this->db->query("SELECT COUNT(*) AS total, date_added FROM `" . DB_PREFIX . "customer` WHERE DATE(date_added) >= '" . $this->db->escape(date('Y') . '-' . date('m') . '-1') . "' GROUP BY DATE(date_added)");
    182 
    183 		foreach ($query->rows as $result) {
    184 			$customer_data[date('j', strtotime($result['date_added']))] = array(
    185 				'day'   => date('d', strtotime($result['date_added'])),
    186 				'total' => $result['total']
    187 			);
    188 		}
    189 
    190 		return $customer_data;
    191 	}
    192 
    193 	public function getTotalCustomersByYear() {
    194 		$customer_data = array();
    195 
    196 		for ($i = 1; $i <= 12; $i++) {
    197 			$customer_data[$i] = array(
    198 				'month' => date('M', mktime(0, 0, 0, $i)),
    199 				'total' => 0
    200 			);
    201 		}
    202 
    203 		$query = $this->db->query("SELECT COUNT(*) AS total, date_added FROM `" . DB_PREFIX . "customer` WHERE YEAR(date_added) = YEAR(NOW()) GROUP BY MONTH(date_added)");
    204 
    205 		foreach ($query->rows as $result) {
    206 			$customer_data[date('n', strtotime($result['date_added']))] = array(
    207 				'month' => date('M', strtotime($result['date_added'])),
    208 				'total' => $result['total']
    209 			);
    210 		}
    211 
    212 		return $customer_data;
    213 	}	
    214 }