voucher.php (4453B)
1 <?php 2 class ModelSaleVoucher extends Model { 3 public function addVoucher($data) { 4 $this->db->query("INSERT INTO " . DB_PREFIX . "voucher SET code = '" . $this->db->escape($data['code']) . "', from_name = '" . $this->db->escape($data['from_name']) . "', from_email = '" . $this->db->escape($data['from_email']) . "', to_name = '" . $this->db->escape($data['to_name']) . "', to_email = '" . $this->db->escape($data['to_email']) . "', voucher_theme_id = '" . (int)$data['voucher_theme_id'] . "', message = '" . $this->db->escape($data['message']) . "', amount = '" . (float)$data['amount'] . "', status = '" . (int)$data['status'] . "', date_added = NOW()"); 5 6 return $this->db->getLastId(); 7 } 8 9 public function editVoucher($voucher_id, $data) { 10 $this->db->query("UPDATE " . DB_PREFIX . "voucher SET code = '" . $this->db->escape($data['code']) . "', from_name = '" . $this->db->escape($data['from_name']) . "', from_email = '" . $this->db->escape($data['from_email']) . "', to_name = '" . $this->db->escape($data['to_name']) . "', to_email = '" . $this->db->escape($data['to_email']) . "', voucher_theme_id = '" . (int)$data['voucher_theme_id'] . "', message = '" . $this->db->escape($data['message']) . "', amount = '" . (float)$data['amount'] . "', status = '" . (int)$data['status'] . "' WHERE voucher_id = '" . (int)$voucher_id . "'"); 11 } 12 13 public function deleteVoucher($voucher_id) { 14 $this->db->query("DELETE FROM " . DB_PREFIX . "voucher WHERE voucher_id = '" . (int)$voucher_id . "'"); 15 $this->db->query("DELETE FROM " . DB_PREFIX . "voucher_history WHERE voucher_id = '" . (int)$voucher_id . "'"); 16 } 17 18 public function getVoucher($voucher_id) { 19 $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "voucher WHERE voucher_id = '" . (int)$voucher_id . "'"); 20 21 return $query->row; 22 } 23 24 public function getVoucherByCode($code) { 25 $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "voucher WHERE code = '" . $this->db->escape($code) . "'"); 26 27 return $query->row; 28 } 29 30 public function getVouchers($data = array()) { 31 $sql = "SELECT v.voucher_id, v.order_id, v.code, v.from_name, v.from_email, v.to_name, v.to_email, (SELECT vtd.name FROM " . DB_PREFIX . "voucher_theme_description vtd WHERE vtd.voucher_theme_id = v.voucher_theme_id AND vtd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS theme, v.amount, v.status, v.date_added FROM " . DB_PREFIX . "voucher v"; 32 33 $sort_data = array( 34 'v.code', 35 'v.from_name', 36 'v.to_name', 37 'theme', 38 'v.amount', 39 'v.status', 40 'v.date_added' 41 ); 42 43 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 44 $sql .= " ORDER BY " . $data['sort']; 45 } else { 46 $sql .= " ORDER BY v.date_added"; 47 } 48 49 if (isset($data['order']) && ($data['order'] == 'DESC')) { 50 $sql .= " DESC"; 51 } else { 52 $sql .= " ASC"; 53 } 54 55 if (isset($data['start']) || isset($data['limit'])) { 56 if ($data['start'] < 0) { 57 $data['start'] = 0; 58 } 59 60 if ($data['limit'] < 1) { 61 $data['limit'] = 20; 62 } 63 64 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 65 } 66 67 $query = $this->db->query($sql); 68 69 return $query->rows; 70 } 71 72 public function getTotalVouchers() { 73 $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "voucher"); 74 75 return $query->row['total']; 76 } 77 78 public function getTotalVouchersByVoucherThemeId($voucher_theme_id) { 79 $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "voucher WHERE voucher_theme_id = '" . (int)$voucher_theme_id . "'"); 80 81 return $query->row['total']; 82 } 83 84 public function getVoucherHistories($voucher_id, $start = 0, $limit = 10) { 85 if ($start < 0) { 86 $start = 0; 87 } 88 89 if ($limit < 1) { 90 $limit = 10; 91 } 92 93 $query = $this->db->query("SELECT vh.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, vh.amount, vh.date_added FROM " . DB_PREFIX . "voucher_history vh LEFT JOIN `" . DB_PREFIX . "order` o ON (vh.order_id = o.order_id) WHERE vh.voucher_id = '" . (int)$voucher_id . "' ORDER BY vh.date_added ASC LIMIT " . (int)$start . "," . (int)$limit); 94 95 return $query->rows; 96 } 97 98 public function getTotalVoucherHistories($voucher_id) { 99 $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "voucher_history WHERE voucher_id = '" . (int)$voucher_id . "'"); 100 101 return $query->row['total']; 102 } 103 }