You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

137 lines
5.8 KiB

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Event_speaker_assignee_model extends CI_Model {
var $column_order = array('sa.speaker_assignee_id','s.speaker_id',null,'s.speaker',null); //set column field database for datatable orderable
var $column_search = array('s.speaker'); //set column field database for datatable searchable just firstname , lastname , address are searchable
// var $order = array('sa.speaker_assignee_id' => 'desc'); // default order
public function __construct() {
parent::__construct();
}
private function _get_datatables_query($data_source, $event_id){
$this->db->select("
s.speaker_id,
s.speaker,
sa.speaker_assignee_id")
->from("event_speaker_assignee sa")
->join('event_speaker s', 's.speaker_id = sa.speaker_id', 'left')
->where("sa.event_id", $event_id)
->where("sa.status", 1)
->where("s.status", 1);
$i = 0;
foreach ($this->column_search as $item) {// loop column
if ($data_source['search']['value']) { // if datatable send POST for search
if ($i === 0) { // first loop
$this->db->like($item, $data_source['search']['value']);
} else {
$this->db->or_like($item, $data_source['search']['value']);
}
}
$i++;
}
// if(isset($data_source['order'])) { // here order processing
// if(isset($data_source['order']['0']['dir']) && !empty($data_source['order']['0']['dir'])) {
// $this->db->order_by($this->column_order[$data_source['order']['0']['column']], $data_source['order']['0']['dir']);
// }
// } else if(isset($this->order)) {
// $order = $this->order;
// $this->db->order_by(key($order), $order[key($order)]);
// }
}
public function get_events_list_export($data_source,$event_id){
$this->_get_datatables_query($data_source, $event_id);
$query = $this->db->get();
$res = $query->result();
return $res;
}
public function get_datatables($data_source, $event_id){
$this->_get_datatables_query($data_source, $event_id);
if($data_source['length'] != -1)
$this->db->limit($data_source['length'], $data_source['start']);
$query = $this->db->get();
return $query->result();
}
public function count_filtered($data_source, $event_id){
$this->_get_datatables_query($data_source, $event_id);
$query = $this->db->get();
return $query->num_rows();
}
public function count_all($data_source, $event_id){
$this->_get_datatables_query($data_source, $event_id);
return $this->db->count_all_results();
}
public function add_new_speaker_assignee($data){
$result = $this->check_duplicate_speaker_assignment($data);
if(countVal($result) > 0){
if($result->status == 0){
$this->db->where("speaker_assignee_id", $result->speaker_assignee_id);
$this->db->update("event_speaker_assignee", array("status" => 1));
}
//duplication happens here
return $result->speaker_assignee_id;
} else {
$this->db->insert("event_speaker_assignee", array(
"speaker_id" => $data["speaker_id"],
"event_id" => $data["event_id"],
"added_by" => $data["added_by"]
));
return $this->db->insert_id();
}
}
public function check_for_duplication($data){
$this->db->select("esa.speaker_assignee_id");
$this->db->where("es.speaker", $data["speaker"]);
$this->db->where("es.status", 1);
$this->db->where("esa.status", 1);
$this->db->where("esa.event_id", $data["event_id"]);
$this->db->from("event_speaker es");
$this->db->join("event_speaker_assignee esa", "esa.speaker_id = es.speaker_id", "left");
return $this->db->get()->num_rows();
}
private function check_duplicate_speaker_assignment($data){
$this->db->select("speaker_assignee_id, status");
$this->db->where("speaker_id", $data["speaker_id"]);
$this->db->where("event_id", $data["event_id"]);
return $this->db->get("event_speaker_assignee")->row();
}
public function event_details($user_id, $event_id)
{
$query = $this->db->select('`event_speaker_assignee`.`speaker_assignee_id`, `event_speaker_assignee`.`speaker_id`, `event_speaker`.`speaker`, `event_speaker`.`description`, `event_speaker`.`status`, `event_speaker_assignee`.`event_id`, `event_speaker_assignee`.`status`')
->from('event_speaker_assignee')
->join('event_speaker', 'event_speaker.speaker_id=event_speaker_assignee.speaker_id')
->where('event_speaker_assignee.status', 1)
->where('event_speaker.status', 1)
->where('event_speaker_assignee.event_id', $event_id)
->get()
->result();
return $query;
}
public function event_details_preview($event_id)
{
$query = $this->db->select('`event_speaker_assignee`.`speaker_assignee_id`, `event_speaker_assignee`.`speaker_id`, `event_speaker`.`speaker`, `event_speaker`.`description`, `event_speaker`.`status`, `event_speaker_assignee`.`event_id`, `event_speaker_assignee`.`status`')
->from('event_speaker_assignee')
->join('event_speaker', 'event_speaker.speaker_id=event_speaker_assignee.speaker_id')
->where('event_speaker_assignee.status', 1)
->where('event_speaker.status', 1)
->where('event_speaker_assignee.event_id', $event_id)
->get()
->result();
return $query;
}
}