<?php
class Casos extends MY_Controller
{

function __construct(){
	parent::__construct();
		$this->load->model('cases_model');
}

function index(){
	redirect('casos/lista');
	}

function acceso_restringido() {
	$data['content']='acceso_restringido';
	$this->load->view('v_content',$data);
}

function check_access () {
	$this->load->library('sec_validation');
	$result = $this->sec_validation->login_check_access($this->session->userdata('usuario_id'),$this->router->fetch_class(),$this->router->fetch_method());
	if (!$result) {
	$this->session->set_flashdata('message_error', 'Acceso Restringido=>'.$this->router->fetch_class()."/".$this->router->fetch_method());
	redirect('usuarios/acceso_restringido');
	}
}

function calcular_proximo_dia($fecha, $cantidad) {

$tmpDate = $fecha;

$this->load->model('holidays_model');
$holidays = $this->holidays_model->get_holidays_dates();

$i = $cantidad;

$nextBusinessDay = date('Y-m-d', strtotime($tmpDate . ' +' . $i . ' Weekday'));
//echo "Primero=>".$nextBusinessDay;

while (in_array($nextBusinessDay, $holidays)) {
    $i--;
    $nextBusinessDay = date('Y-m-d', strtotime($tmpDate . ' +' . $i . ' Weekday'));
}
	//echo "Segundo=>".$nextBusinessDay;
	return $nextBusinessDay	;
}

function lista($tipo = 1,$filtro=null,$bandera=null) {

	// Cambio session
	ini_set("session.cookie_lifetime","7200");
	ini_set("session.gc_maxlifetime","7200");
	session_start();
	$_SESSION['usuario_id_tipo'] = $tipo;
	$usuario_tipo = $tipo;

	if ($this->session->userdata('usuario_id')== 1) {
	$_SESSION['usuario_id_tipo'] = null;
	$usuario_tipo = 4;
	}

	if ($filtro != null){
		$this->load->model('model_users');
		$id= $this->session->userdata('usuario_id');
		$data = array();
		$data['grupo'] ='';
		$data['empresa'] ='';
		$data['sede'] ='';
		$data['consultante'] ='';
		$data['derivadoa'] ='';
		$data['estado'] ='Todos';
		$data['temabuscado'] ='';
		$data['tipobuscado'] ='';
		$data['f2f'] ='';
		$data['desde'] ='0000-00-00 00:00:00';
		$data['hasta'] ='0000-00-00 00:00:00';
		$data['fechacierre_desde'] ='0000-00-00 00:00:00';
		$data['fechacierre_hasta'] ='0000-00-00 00:00:00';
		$data['coincidir'] ='';
		$data['facturado'] ='';
		$data['registros'] ='25';

		//Cambio de Zona Horaria
		date_default_timezone_set ('America/Argentina/Buenos_Aires' );
		$hoy = date( 'Y-m-d');

		/*$fecha_vencidos = date( 'Y-m-d H:i:s' , strtotime ( '-2 weekdays' ));
		$fecha_ven_hoy = date( 'Y-m-d H:i:s' , strtotime ( '-1 weekdays' ));
		$fecha_ven_man = date( 'Y-m-d');
		*/
		$fecha_vencidos = date('Y-m-d', strtotime($this->calcular_proximo_dia($hoy,'-3'). ' + 1 days'));
		$fecha_ven_hoy = $this->calcular_proximo_dia($hoy,'-2'); //date( 'Y-m-d H:i:s' , strtotime ( '-1 weekdays' ));
		$fecha_ven_man = $this->calcular_proximo_dia($hoy,'-1'); //date( 'Y-m-d');
		$fecha_ven_man_1 = date('Y-m-d', strtotime($fecha_ven_man.' + 1 days'));

		switch ($filtro) {

		case "pendientes":
			//$data['desde'] =date("Y-m-d");
			$data['estado'] ='Contacto Pendiente';
			if ($bandera == "sos") {
				$data['bandera'] ='SOS';
				$data['coincidir'] ='Si';
			}

			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "nuevos":
			$data['desde'] =date("Y-m-d");
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);

			break;
		case "cerrados":
			$data['fechacierre_desde'] =date("Y-m-d");
			$data['estado'] ='Cerrados';
			$data['coincidir'] ='Si';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "noinformados":
			$data['estado'] ='Abiertos No Informados';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "noinformadosvencidos":
			$data['estado'] ='Abiertos No Informados';
			$data['hasta'] = $fecha_vencidos;
			$data['coincidir'] ='Si';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "noinformadosvenhoy":
			$data['estado'] ='Abiertos No Informados';
			$data['desde'] = $fecha_ven_hoy;
			$data['hasta'] = $fecha_ven_man;
			$data['coincidir'] ='Si';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "noinformadosven24":
			$data['estado'] ='Abiertos No Informados';
			$data['desde'] = $fecha_ven_man;
			$data['hasta'] = $fecha_ven_man_1;
			$data['coincidir'] ='Si';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "noinformadosven48":
			$data['estado'] ='Abiertos No Informados';
			$data['desde'] = $fecha_ven_man_1;
			$data['coincidir'] ='Si';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			break;
		case "informados":
			$data['estado'] ='Abiertos Informados';
			$this->model_users->set_usereap_by_type($id,$usuario_tipo,$data);
			//echo $this->db->last_query();
			break;
		}
	}


	// Redirect
	redirect($this->config->item('base_old_url')."list_".$tipo.".php");

}

function lista_profesional(){
	// Valida Acceso
	$this->check_access();

	$this->load->library('form_validation');

	// Filtro
	 $filtro = false;

	if (!empty($_POST) && $this->input->post('limpiar'))	{
		//Limpio filtro del formulario a las variables de Session
		$this->session->set_userdata('filtro_casos_profesional_estado_informe', "");
	}


	if (!empty($_POST) && !$this->input->post('limpiar'))
	{
		//limpiamos los campos del formulario, no necesitamos validar
		$this->form_validation->set_rules('estado_informe');
		$this->form_validation->run();

		//Paso el filtro del formulario a las variables de Session
		$this->session->set_userdata('filtro_casos_profesional_estado_informe', $this->input->post('estado_informe'));
	}

	//var_dump($_POST);

	// Filtro Fijo para profesionales
	$filtro = true;
	$data_f = array();
	$data_f['estado'] = "estado != 'Cerrado'";
	$data_f['derivadoa'] = $this->session->userdata('usuario_id');

	//Resumen de Cant de Casos por Estado
	$data['casos_por_estado'] = $this->cases_model->get_cases_profesional_by_status(true,$data_f);

	// Carga los filtros desde las variables de session
	$data_f['estado_informe'] = $this->session->userdata('filtro_casos_profesional_estado_informe');
	// Fin Filtro

	$data['filtro']=$filtro;
	$data['data_f']= $data_f;
	$data['casos'] = $this->cases_model->get_cases_profesional(null,$filtro,$data_f);
	//echo $this->db->last_query();

	$data['content']='casos/lista_profesional';
	$this->load->view('v_content',$data);

	}


	function ver_profesional($id= null){ 		//Similar a Casos_Informar de Version 0
		// Valida Acceso
		$this->check_access();

		// Sin parametro
		if (is_null($id)) {
			$this->session->set_flashdata('message_error', $this->lang->line('eap_casos_msg_noexiste'));
			redirect('casos/lista_profesional');
		  }

		$caso = $this->cases_model->get_case($id);
		//echo $this->db->last_query();
		// No existe
		if (empty($caso)) {
			$this->session->set_flashdata('message_error', $this->lang->line('eap_casos_msg_noexiste'));
			redirect('casos/lista_profesional');
		  }
		$data['caso'] = $caso;
		$data['seguimientos'] = $this->cases_model->get_case_followup($id);
		$data['sesiones'] = $this->cases_model->get_case_session($id);

		//echo $this->db->last_query();
		$data['content']='casos/ver_profesional';
		$this->load->view('v_content',$data);

		}


function editar($id,$tipo = 1,$estado="") {

	// Cambio session
	ini_set("session.cookie_lifetime","7200");
	ini_set("session.gc_maxlifetime","7200");
	session_start();
	$_SESSION['usuario_id_tipo'] = $tipo;
	$usuario_tipo = $tipo;

	if ($this->session->userdata('usuario_id')== 1) {
	$_SESSION['usuario_id_tipo'] = null;
	$usuario_tipo = 4;
	}

	if ($estado=="Contacto%20Pendiente" or $estado=="Contacto Pendiente") {
		$pag_editar = "casos_nuevo_solicitud.php";
	} else {
		$pag_editar = "casos_editar.php";
	}
	// Redirect
	redirect($this->config->item('base_old_url').$pag_editar."?cod=".$id."&pag=1");

}

function lista_seguimientos($id = null) {

	if (! is_null($id)) {
			$data['seguimientos'] = $this->cases_model->get_case_followup($id);
			//$data['content']='casos/inc_seguimiento_ajax';
			$this->load->view('casos/inc_seguimiento_ajax',$data);
	 }
 }

function nuevo_seguimiento() {

	if ($this->input->post('caso') != "" and $this->input->post('texto') != "")	{

		$data = array(
						'caso' => $this->input->post('caso'),
						'consultante' => $this->input->post('consultante'),
						'texto' => $this->input->post('texto'),
						'fecha' => date("Y-m-d H:i:s"),
						);

		$id = $this->cases_model->set_case_followup($data);
		if ($id) {
			echo json_encode(array("status" => TRUE));
		 }

	 } else {
		echo json_encode(array("status" => FALSE));
	 }

	}



}
