chore: initial commit
This commit is contained in:
146
api/models/Client_groups_model.php
Normal file
146
api/models/Client_groups_model.php
Normal file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Client_groups_model extends App_Model {
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new customer group
|
||||
* @param array $data $_POST data
|
||||
*/
|
||||
public function add($data, $playground = false) {
|
||||
$this->db->insert(db_prefix() . ($playground ? 'playground_' : '') . 'customers_groups', $data);
|
||||
$insert_id = $this->db->insert_id();
|
||||
if ($insert_id) {
|
||||
log_activity('New Customer Group Created [ID:' . $insert_id . ', Name:' . $data['name'] . ']');
|
||||
return $insert_id;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get customer groups where customer belongs
|
||||
* @param mixed $id customer id
|
||||
* @return array
|
||||
*/
|
||||
public function get_customer_groups($id, $playground = false) {
|
||||
$this->db->where('customer_id', $id);
|
||||
return $this->db->get(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups')->result_array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all customer groups
|
||||
* @param string $id
|
||||
* @return mixed
|
||||
*/
|
||||
public function get_groups($id = '', $playground = false) {
|
||||
if (is_numeric($id)) {
|
||||
$this->db->where('id', $id);
|
||||
return $this->db->get(db_prefix() . ($playground ? 'playground_' : '') . 'customers_groups')->row();
|
||||
}
|
||||
$this->db->order_by('name', 'asc');
|
||||
return $this->db->get(db_prefix() . ($playground ? 'playground_' : '') . 'customers_groups')->result_array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit customer group
|
||||
* @param array $data $_POST data
|
||||
* @return boolean
|
||||
*/
|
||||
public function edit($data, $playground = false) {
|
||||
$this->db->where('id', $data['id']);
|
||||
$this->db->update(db_prefix() . ($playground ? 'playground_' : '') . 'customers_groups', ['name' => $data['name'], ]);
|
||||
if ($this->db->affected_rows() > 0) {
|
||||
log_activity('Customer Group Updated [ID:' . $data['id'] . ']');
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete customer group
|
||||
* @param mixed $id group id
|
||||
* @return boolean
|
||||
*/
|
||||
public function delete($id, $playground = false) {
|
||||
$this->db->where('id', $id);
|
||||
$this->db->delete(db_prefix() . ($playground ? 'playground_' : '') . 'customers_groups');
|
||||
if ($this->db->affected_rows() > 0) {
|
||||
$this->db->where('groupid', $id);
|
||||
$this->db->delete(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups');
|
||||
hooks()->do_action('customer_group_deleted', $id);
|
||||
log_activity('Customer Group Deleted [ID:' . $id . ']');
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update/sync customer groups where belongs
|
||||
* @param mixed $id customer id
|
||||
* @param mixed $groups_in
|
||||
* @return boolean
|
||||
*/
|
||||
public function sync_customer_groups($id, $groups_in, $playground = false) {
|
||||
if ($groups_in == false) {
|
||||
unset($groups_in);
|
||||
}
|
||||
$affectedRows = 0;
|
||||
$customer_groups = $this->get_customer_groups($id);
|
||||
if (sizeof($customer_groups) > 0) {
|
||||
foreach ($customer_groups as $customer_group) {
|
||||
if (isset($groups_in)) {
|
||||
if (!in_array($customer_group['groupid'], $groups_in)) {
|
||||
$this->db->where('customer_id', $id);
|
||||
$this->db->where('id', $customer_group['id']);
|
||||
$this->db->delete(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups');
|
||||
if ($this->db->affected_rows() > 0) {
|
||||
$affectedRows++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->db->where('customer_id', $id);
|
||||
$this->db->delete(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups');
|
||||
if ($this->db->affected_rows() > 0) {
|
||||
$affectedRows++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isset($groups_in)) {
|
||||
foreach ($groups_in as $group) {
|
||||
$this->db->where('customer_id', $id);
|
||||
$this->db->where('groupid', $group);
|
||||
$_exists = $this->db->get(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups')->row();
|
||||
if (!$_exists) {
|
||||
if (empty($group)) {
|
||||
continue;
|
||||
}
|
||||
$this->db->insert(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups', ['customer_id' => $id, 'groupid' => $group, ]);
|
||||
if ($this->db->affected_rows() > 0) {
|
||||
$affectedRows++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (isset($groups_in)) {
|
||||
foreach ($groups_in as $group) {
|
||||
if (empty($group)) {
|
||||
continue;
|
||||
}
|
||||
$this->db->insert(db_prefix() . ($playground ? 'playground_' : '') . 'customer_groups', ['customer_id' => $id, 'groupid' => $group, ]);
|
||||
if ($this->db->affected_rows() > 0) {
|
||||
$affectedRows++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($affectedRows > 0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user