customer_group.php (4512B)
1 <?php 2 class ModelCustomerCustomerGroup extends Model { 3 public function addCustomerGroup($data) { 4 $this->db->query("INSERT INTO " . DB_PREFIX . "customer_group SET approval = '" . (int)$data['approval'] . "', sort_order = '" . (int)$data['sort_order'] . "'"); 5 6 $customer_group_id = $this->db->getLastId(); 7 8 foreach ($data['customer_group_description'] as $language_id => $value) { 9 $this->db->query("INSERT INTO " . DB_PREFIX . "customer_group_description SET customer_group_id = '" . (int)$customer_group_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "'"); 10 } 11 12 return $customer_group_id; 13 } 14 15 public function editCustomerGroup($customer_group_id, $data) { 16 $this->db->query("UPDATE " . DB_PREFIX . "customer_group SET approval = '" . (int)$data['approval'] . "', sort_order = '" . (int)$data['sort_order'] . "' WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 17 18 $this->db->query("DELETE FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 19 20 foreach ($data['customer_group_description'] as $language_id => $value) { 21 $this->db->query("INSERT INTO " . DB_PREFIX . "customer_group_description SET customer_group_id = '" . (int)$customer_group_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "'"); 22 } 23 } 24 25 public function deleteCustomerGroup($customer_group_id) { 26 $this->db->query("DELETE FROM " . DB_PREFIX . "customer_group WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 27 $this->db->query("DELETE FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 28 $this->db->query("DELETE FROM " . DB_PREFIX . "product_discount WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 29 $this->db->query("DELETE FROM " . DB_PREFIX . "product_special WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 30 $this->db->query("DELETE FROM " . DB_PREFIX . "product_reward WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 31 $this->db->query("DELETE FROM " . DB_PREFIX . "tax_rate_to_customer_group WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 32 } 33 34 public function getCustomerGroup($customer_group_id) { 35 $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "customer_group cg LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (cg.customer_group_id = cgd.customer_group_id) WHERE cg.customer_group_id = '" . (int)$customer_group_id . "' AND cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'"); 36 37 return $query->row; 38 } 39 40 public function getCustomerGroups($data = array()) { 41 $sql = "SELECT * FROM " . DB_PREFIX . "customer_group cg LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (cg.customer_group_id = cgd.customer_group_id) WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'"; 42 43 $sort_data = array( 44 'cgd.name', 45 'cg.sort_order' 46 ); 47 48 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 49 $sql .= " ORDER BY " . $data['sort']; 50 } else { 51 $sql .= " ORDER BY cgd.name"; 52 } 53 54 if (isset($data['order']) && ($data['order'] == 'DESC')) { 55 $sql .= " DESC"; 56 } else { 57 $sql .= " ASC"; 58 } 59 60 if (isset($data['start']) || isset($data['limit'])) { 61 if ($data['start'] < 0) { 62 $data['start'] = 0; 63 } 64 65 if ($data['limit'] < 1) { 66 $data['limit'] = 20; 67 } 68 69 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 70 } 71 72 $query = $this->db->query($sql); 73 74 return $query->rows; 75 } 76 77 public function getCustomerGroupDescriptions($customer_group_id) { 78 $customer_group_data = array(); 79 80 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'"); 81 82 foreach ($query->rows as $result) { 83 $customer_group_data[$result['language_id']] = array( 84 'name' => $result['name'], 85 'description' => $result['description'] 86 ); 87 } 88 89 return $customer_group_data; 90 } 91 92 public function getTotalCustomerGroups() { 93 $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer_group"); 94 95 return $query->row['total']; 96 } 97 }