<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Image_Gallery_Model extends CI_Model {
    var $table = TBL_IMG_GALLERY;
    var $column_order = array('ig.id','ic.cat_name','ig.name','ig.sequence_no','ig.image','ig.add_date','ig.status'); 
    var $column_search = array('ig.id','ic.cat_name','ig.name','ig.sequence_no','ig.image','ig.add_date','ig.status');  
    var $order = array('ig.id' => 'desc');  
    
    public function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
    
    private function _get_datatables_query()
    {
        $this->db->select('ig.*, ic.cat_name');
        $this->db->from($this->table . ' ig');
        $this->db->join('img_category ic', 'ic.id = ig.img_cat_id', 'LEFT');
        
        $i = 0;
        foreach ($this->column_search as $item) 
        {
            if($_POST['search']['value'])  
            {
                if($i===0)  
                {
                    $this->db->group_start();  
                    $this->db->like($item, $_POST['search']['value']);
                }
                else
                {
                    $this->db->or_like($item, $_POST['search']['value']);
                }
                if(count($this->column_search) - 1 == $i)  
                    $this->db->group_end();  
            }
            $i++;
        }
        
        if(isset($_POST['order']))  
        {
            $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
        } 
        else if(isset($this->order))
        {
            $order = $this->order;
            $this->db->order_by(key($order), $order[key($order)]);
        }
    }
    
    function get_datatables()
    {
        $this->_get_datatables_query();
        if($_POST['length'] != -1)
        $this->db->limit($_POST['length'], $_POST['start']);        
        $this->db->where('ig.publish',"1");
        $query = $this->db->get();
        return $query->result();
    }
    
    function count_filtered()
    {
        $this->_get_datatables_query();
        $this->db->where('ig.publish',"1");
        $query = $this->db->get();
        return $query->num_rows();
    }
    
    public function count_all()
    {
        $this->db->from($this->table);
        $this->db->where('publish',"1");
        return $this->db->count_all_results();
    }
    
    public function get_by_id($id)
    {
        $this->db->from($this->table);
        $this->db->where('id',$id);
        $query = $this->db->get();
        return $query->row();
    }
    
    public function save($data)
    {
        $this->db->insert($this->table, $data);
        return $this->db->insert_id();
    }
    
    public function update($where, $data)
    {
        $this->db->update($this->table, $data, $where);
        return $this->db->affected_rows();
    }
    
    public function delete_by_id($id)
    {
        $this->db->where('id', $id);
        $this->db->delete($this->table);
    } 
    
    public function delete_data($where, $data)
    {
        $this->db->update($this->table, $data, $where);
        return $this->db->affected_rows();
    }
    
    public function get_img_cat_list()
    {
        $this->db->select("id, cat_name, status, publish"); 
        $this->db->where('publish', "1");
        $this->db->where('status', "1"); 
        $this->db->order_by('cat_name', 'ASC');
        $query = $this->db->get(TBL_IMG_CATEGORY);
        return $query->result();
    }

    function get_quality_services($id) {
        $this->db->select("ig.*, ic.cat_name");
        $this->db->where('ig.id', $id);  
        $this->db->join('img_category ic', 'ic.id = ig.img_cat_id', 'LEFT'); 
        $query = $this->db->get(TBL_IMG_GALLERY . ' ig');
        if ($query->num_rows() > 0) {
            return $query->row();
        }
        return FALSE;
    }
}