marketing.php (3706B)
1 <?php 2 class ModelMarketingMarketing extends Model { 3 public function addMarketing($data) { 4 $this->db->query("INSERT INTO " . DB_PREFIX . "marketing SET name = '" . $this->db->escape($data['name']) . "', description = '" . $this->db->escape($data['description']) . "', code = '" . $this->db->escape($data['code']) . "', date_added = NOW()"); 5 6 return $this->db->getLastId(); 7 } 8 9 public function editMarketing($marketing_id, $data) { 10 $this->db->query("UPDATE " . DB_PREFIX . "marketing SET name = '" . $this->db->escape($data['name']) . "', description = '" . $this->db->escape($data['description']) . "', code = '" . $this->db->escape($data['code']) . "' WHERE marketing_id = '" . (int)$marketing_id . "'"); 11 } 12 13 public function deleteMarketing($marketing_id) { 14 $this->db->query("DELETE FROM " . DB_PREFIX . "marketing WHERE marketing_id = '" . (int)$marketing_id . "'"); 15 } 16 17 public function getMarketing($marketing_id) { 18 $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "marketing WHERE marketing_id = '" . (int)$marketing_id . "'"); 19 20 return $query->row; 21 } 22 23 public function getMarketingByCode($code) { 24 $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "marketing WHERE code = '" . $this->db->escape($code) . "'"); 25 26 return $query->row; 27 } 28 29 public function getMarketings($data = array()) { 30 $implode = array(); 31 32 $order_statuses = $this->config->get('config_complete_status'); 33 34 foreach ($order_statuses as $order_status_id) { 35 $implode[] = "o.order_status_id = '" . (int)$order_status_id . "'"; 36 } 37 38 $sql = "SELECT *, (SELECT COUNT(*) FROM `" . DB_PREFIX . "order` o WHERE (" . implode(" OR ", $implode) . ") AND o.marketing_id = m.marketing_id) AS orders FROM " . DB_PREFIX . "marketing m"; 39 40 $implode = array(); 41 42 if (!empty($data['filter_name'])) { 43 $implode[] = "m.name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; 44 } 45 46 if (!empty($data['filter_code'])) { 47 $implode[] = "m.code = '" . $this->db->escape($data['filter_code']) . "'"; 48 } 49 50 if (!empty($data['filter_date_added'])) { 51 $implode[] = "DATE(m.date_added) = DATE('" . $this->db->escape($data['filter_date_added']) . "')"; 52 } 53 54 if ($implode) { 55 $sql .= " WHERE " . implode(" AND ", $implode); 56 } 57 58 $sort_data = array( 59 'm.name', 60 'm.code', 61 'm.date_added' 62 ); 63 64 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 65 $sql .= " ORDER BY " . $data['sort']; 66 } else { 67 $sql .= " ORDER BY m.name"; 68 } 69 70 if (isset($data['order']) && ($data['order'] == 'DESC')) { 71 $sql .= " DESC"; 72 } else { 73 $sql .= " ASC"; 74 } 75 76 if (isset($data['start']) || isset($data['limit'])) { 77 if ($data['start'] < 0) { 78 $data['start'] = 0; 79 } 80 81 if ($data['limit'] < 1) { 82 $data['limit'] = 20; 83 } 84 85 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 86 } 87 88 $query = $this->db->query($sql); 89 90 return $query->rows; 91 } 92 93 public function getTotalMarketings($data = array()) { 94 $sql = "SELECT COUNT(*) AS total FROM " . DB_PREFIX . "marketing"; 95 96 $implode = array(); 97 98 if (!empty($data['filter_name'])) { 99 $implode[] = "name LIKE '" . $this->db->escape($data['filter_name']) . "'"; 100 } 101 102 if (!empty($data['filter_code'])) { 103 $implode[] = "code = '" . $this->db->escape($data['filter_code']) . "'"; 104 } 105 106 if (!empty($data['filter_date_added'])) { 107 $implode[] = "DATE(date_added) = DATE('" . $this->db->escape($data['filter_date_added']) . "')"; 108 } 109 110 if ($implode) { 111 $sql .= " WHERE " . implode(" AND ", $implode); 112 } 113 114 $query = $this->db->query($sql); 115 116 return $query->row['total']; 117 } 118 }