<?php class requests_model extends CI_Model{

	private $table_name	= 'solicitudes';			// Solicitudes

	public function get_requests($active=null,$filtro,$data_f=null)
	{
		// FILTROS
		if ($filtro){
			if ($data_f['nombre'] != '') {
				$txtWhere = "(nombre like '%".$this->db->escape_like_str($data_f['nombre'])."%')";
				$this->db->where($txtWhere,null);
				}
			if ($data_f['id_grupo'] != '') {$this->db->where('id_grupo', $data_f['id_grupo']);}
			if ($data_f['id_empresa'] != '') {$this->db->where('id_empresa', $data_f['id_empresa']);}
			if ($data_f['estado'] != '%') {$this->db->where('estado', $data_f['estado']);}
			if ($data_f['urgencia'] != '%') {$this->db->where('urgencia', $data_f['urgencia']);}
			//ORDEN
			switch ($data_f['orden']) {
				case "0":
					$this->db->order_by('fecha_creacion');
					break;
				case "1":
					$this->db->order_by('fecha_creacion desc');
					break;
				case "2":
					$this->db->order_by('nombre');
					break;
				case "3":
					$this->db->order_by('nombre desc');
					break;
				case "4":
					$this->db->order_by('grupo_nombre');
					break;
				case "5":
					$this->db->order_by('grupo_nombre desc');
					break;
				case "6":
					$this->db->order_by('empresa_nombre');
					break;
				case "7":
					$this->db->order_by('empresa_nombre desc');
					break;
				case "8":
					$this->db->order_by('empresa_estado');
					break;
				case "9":
					$this->db->order_by('empresa_estado desc');
					break;
				default:
					$this->db->order_by('fecha_creacion');
			}
		}


		$txtSelect = '*, (select nombre from empresas e where e.id_empresas =solicitudes.id_empresa) as empresa_nombre';
		$txtSelect .= ',(select nombre from grupos g where g.id_grupos =solicitudes.id_grupo) as grupo_nombre';
		$txtSelect .= ", (CASE estado when 'N' then 'Nueva' when 'A' then 'Anulada' when 'C' then 'Caso Creado' else estado END) estado_nombre";
		$txtSelect .= ", (select estado from casos_eap where casos_eap.id_casos_eap = solicitudes.id_casos_eap) as caso_estado";
		$this->db->select($txtSelect);
		$this->db->from($this->table_name);
		$this->db->order_by('fecha_creacion');
		$query=$this->db->get();
		return $query->result_array();
	}


	public function get_request($id)
	{
		$txtSelect = '*, (select nombre from empresas e where e.id_empresas =solicitudes.id_empresa) as empresa_nombre';
		$txtSelect .= ',(select nombre from grupos g where g.id_grupos =solicitudes.id_grupo) as grupo_nombre';
		/*$txtSelect .= ', (select username from sec_usuarios u where u.id= solicitudes.id_usuario_creacion) as nombre_usuario_creacion';
		$txtSelect .= ', (select username from sec_usuarios u where u.id= solicitudes.id_usuario_modificacion) as nombre_usuario_modificacion';*/
		$txtSelect .= ', (select username from users u where u.id_user = solicitudes.id_usuario_creacion) as nombre_usuario_creacion';
		$txtSelect .= ', (select username from users u where u.id_user = solicitudes.id_usuario_modificacion) as nombre_usuario_modificacion';
		$txtSelect .= ", (CASE estado when 'N' then 'Nueva' when 'A' then 'Anulada' when 'C' then 'Caso Creado' else estado END) estado_nombre";
		$txtSelect .= ',(select printable_name from countries c where c.id_country =solicitudes.id_pais) as nombre_pais';
		$txtSelect .= ", (select estado from casos_eap where casos_eap.id_casos_eap = solicitudes.id_casos_eap) as caso_estado";
		$this->db->select($txtSelect);
		$this->db->from($this->table_name);
		$this->db->where('id', $id);
		$query=$this->db->get();
		return $query->row_array();

	}


	public function get_request_log($id)
	{
		$txtSelect = '*';
		$this->db->select($txtSelect);
		$this->db->from('solicitudes_log');
		$this->db->where('id_solicitudes', $id);
		$this->db->order_by('fecha','desc');
		$query=$this->db->get();
		return $query->result_array();
	}


	public function set_request($id,$data=null,$mode=null)
	{
		if($mode == 'insert') {
		$this->db->insert($this->table_name, $data);
		return $this->db->insert_id();
		}

		$this->db->where('id', $id);
		return $this->db->update($this->table_name, $data);

	}

	public function set_request_log($data)
	{
		return $this->db->insert('solicitudes_log', $data);
	}


}
