coupon.php (1745B)
1 <?php 2 class ModelExtensionReportCoupon extends Model { 3 public function getCoupons($data = array()) { 4 $sql = "SELECT ch.coupon_id, c.name, c.code, COUNT(DISTINCT ch.order_id) AS `orders`, SUM(ch.amount) AS total FROM `" . DB_PREFIX . "coupon_history` ch LEFT JOIN `" . DB_PREFIX . "coupon` c ON (ch.coupon_id = c.coupon_id)"; 5 6 $implode = array(); 7 8 if (!empty($data['filter_date_start'])) { 9 $implode[] = "DATE(ch.date_added) >= '" . $this->db->escape($data['filter_date_start']) . "'"; 10 } 11 12 if (!empty($data['filter_date_end'])) { 13 $implode[] = "DATE(ch.date_added) <= '" . $this->db->escape($data['filter_date_end']) . "'"; 14 } 15 16 if ($implode) { 17 $sql .= " WHERE " . implode(" AND ", $implode); 18 } 19 20 $sql .= " GROUP BY ch.coupon_id ORDER BY total DESC"; 21 22 if (isset($data['start']) || isset($data['limit'])) { 23 if ($data['start'] < 0) { 24 $data['start'] = 0; 25 } 26 27 if ($data['limit'] < 1) { 28 $data['limit'] = 20; 29 } 30 31 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 32 } 33 34 $query = $this->db->query($sql); 35 36 return $query->rows; 37 } 38 39 public function getTotalCoupons($data = array()) { 40 $sql = "SELECT COUNT(DISTINCT coupon_id) AS total FROM `" . DB_PREFIX . "coupon_history`"; 41 42 $implode = array(); 43 44 if (!empty($data['filter_date_start'])) { 45 $implode[] = "DATE(date_added) >= '" . $this->db->escape($data['filter_date_start']) . "'"; 46 } 47 48 if (!empty($data['filter_date_end'])) { 49 $implode[] = "DATE(date_added) <= '" . $this->db->escape($data['filter_date_end']) . "'"; 50 } 51 52 if ($implode) { 53 $sql .= " WHERE " . implode(" AND ", $implode); 54 } 55 56 $query = $this->db->query($sql); 57 58 return $query->row['total']; 59 } 60 }