<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of User
 *
 * @author Developer
 */
class Agencia extends MY_Model
{

    protected $_table;
    protected $_table_parent;
    protected $_table_parent2;
    private $_column = array('COD_AGENCIA', 'TEX_NOMAGE', 'BOL_ACTIVO');
    private $_order  = array('COD_AGENCIA' => 'desc');
    public function __construct()
    {
        parent::__construct();
        $this->load->database();
        $this->_table         = 'gen01agencias';
        $this->_table_parent  = 'par02empresa';
        $this->_table_parent2 = 'gen04ciudad';
        $this->primary_key    = 'COD_AGENCIA';
    }

    /**
     * Para editar el campo de una tabla.
     *
     * @param type @table Tabla
     * @param type @table_id Id a editar
     * @param type @id Id primaria
     * @param type $data datos
     * @return boolean
     */
    public function edit($id, $data)
    {
        $this->db->where($this->primary_key, $id);
        if ($this->db->update($this->_table, $data)):
            return true;
        else:
            return false;
        endif;

    }

    private function _get_datatables_query()
    {
        $this->db->select("$this->_table.*, $this->_table_parent.TEX_NOMEMP, $this->_table_parent2.TEX_NOMCIU");
        $this->db->from($this->_table);
        $this->db->join($this->_table_parent, "$this->_table_parent.ID_EMPRESA=$this->_table.ID_EMPRESA");
        $this->db->join($this->_table_parent2, "$this->_table_parent2.COD_CIUDAD=$this->_table.COD_CIUDAD");
        $this->db->where("$this->_table.IS_DELETE", 0);
        $i = 0;
        foreach ($this->_column as $item) {
            if ($_POST['search']['value']) {
                ($i === 0) ? $this->db->like($item, $_POST['search']['value']) : $this->db->or_like($item, $_POST['search']['value']);
            }

            $column[$i] = $item;
            $i++;
        }
        if (isset($_POST['order'])) {
            $this->db->order_by($column[$_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)]);
        }
    }

    public function get_datatables()
    {
        $this->_get_datatables_query();
        if ($_POST['length'] != -1):
            $this->db->limit($_POST['length'], $_POST['start']);
        endif;
        $query = $this->db->get();
        return $query->result();
    }

    public function count_filtered()
    {
        $this->_get_datatables_query();
        $query = $this->db->get();
        return $query->num_rows();
    }

    public function count_all()
    {
        $this->db->from($this->_table);
        $this->db->where("$this->_table.BOL_ACTIVO", 1);
        return $this->db->count_all_results();
    }

}
