<?php
class Tipos extends MY_Controller
{

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

function index(){
	$this->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 lista(){
	// Valida Acceso
	$this->check_access();

	$data['tipos'] = $this->types_model->get_types();
	$data['content']='admin/tipos/lista';
	$this->load->view('v_content',$data);

	}

function ver($id= null){
	// Valida Acceso
	$this->check_access();

	// Sin parametro
	if (is_null($id)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_tipos_msg_noexiste'));
		redirect('tipos/lista');
	  }

	$tipo = $this->types_model->get_type($id);
	// No existe
	if (empty($tipo)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_tipos_msg_noexiste'));
		redirect('tipos/lista');
	  }
	$data['tipo'] = $tipo;
	$data['logs'] = $this->types_model->get_type_log($id);
	$data['content']='admin/tipos/ver';
	$this->load->view('v_content',$data);

	}


	function editar($id= null,$origen="lista"){
	// Valida Acceso
	$this->check_access();

	// Sin parametro
	if (is_null($id)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_tipos_msg_noexiste'));
		redirect('tipos/lista');
	  }

	$tipo = $this->types_model->get_type($id);
	// No existe
	if (empty($tipo)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_tipos_msg_noexiste'));
		redirect('tipos/lista');
	  }

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

   if(isset($_POST["cancelar"])) {
		$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_cancelado'));
		if ($origen=="ver") { redirect('tipos/ver/'.$id);} else {redirect('tipos/lista');}
   }

	if (!empty($_POST))
	{
		$this->form_validation->set_rules('nombre', 'lang:eap_tipos_nombre', 'required|trim|max_length[50]|xss_clean|callback_validar_unico['.$id.',nombre]');
		/*$this->form_validation->set_rules('graficos_nombre', 'lang:eap_tipos_graficos_nombre', 'required|trim|max_length[50]|xss_clean|callback_validar_unico['.$id.',graficos_nombre]');
		$this->form_validation->set_rules('graficos_nombre_pt', 'lang:eap_tipos_graficos_nombre_pt', 'required|trim|max_length[50]|xss_clean|callback_validar_unico['.$id.',graficos_nombre_pt]');
		********** SE QUITO LA VALIDACION DE UNICO EN LOS GRÁFICOS
		*/
		$this->form_validation->set_rules('graficos_nombre', 'lang:eap_tipos_graficos_nombre', 'required|trim|max_length[50]|xss_clean');
		$this->form_validation->set_rules('graficos_nombre_pt', 'lang:eap_tipos_graficos_nombre_pt', 'required|trim|max_length[50]|xss_clean');
		$this->form_validation->set_rules('graficos_nombre_en', 'lang:eap_tipos_graficos_nombre_en', 'required|trim|max_length[50]|xss_clean');

		$this->form_validation->run();
	}

   if($this->form_validation->run()){

		$historial='';

		if($this->input->post('nombre') != $tipo['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$tipo[nombre]@@$data[nombre]||";}
		if($this->input->post('graficos_nombre') != $tipo['graficos_nombre']) {$data['graficos_nombre'] = $this->input->post('graficos_nombre');$historial.="Nombre para Graficos@@$tipo[graficos_nombre]@@$data[graficos_nombre]||";}
		if($this->input->post('graficos_nombre_pt') != $tipo['graficos_nombre_pt']) {$data['graficos_nombre_pt'] = $this->input->post('graficos_nombre_pt');$historial.="Nombre para Graficos PT@@$tipo[graficos_nombre_pt]@@$data[graficos_nombre_pt]||";}
		if($this->input->post('graficos_nombre_en') != $tipo['graficos_nombre_en']) {$data['graficos_nombre_en'] = $this->input->post('graficos_nombre_en');$historial.="Nombre para Graficos EN@@$tipo[graficos_nombre_en]@@$data[graficos_nombre_en]||";}
		if ($historial != '') {$data['fecha'] = date("Y-m-d H:i:s");}

		if ($historial != '' && $this->types_model->set_type($id, $data)){
			// GUARDA LOG
			$data_log = array(
				'id_tipos' => $id,
				'fecha' => date("Y-m-d H:i:s"),
				'modificador' => $this->session->userdata('usuario_nombre_apellido'),
				'modificaciones' => $historial);
			if ($historial != '') {$this->types_model->set_type_log($data_log);}
			$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_guardado'));
			if ($origen=="ver") { redirect('tipos/ver/'.$id);} else {redirect('tipos/lista');}
			//echo $this->db->last_query();
		} else {
			$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_guardado_error'));
		}
   }


	$data['origen']= $origen;
	$data['tipo'] = $tipo;
	$data['logs'] = $this->types_model->get_type_log($id);
	$data['content']='admin/tipos/editar';
	$this->load->view('v_content',$data);

	}

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

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

   if(isset($_POST["cancelar"])) {
		$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_cancelado_nuevo'));
		redirect('tipos/lista');
   }

	if (!empty($_POST))
	{
		$this->form_validation->set_rules('nombre', 'lang:eap_tipos_nombre', 'required|trim|max_length[50]|xss_clean|callback_validar_unico');

		/*$this->form_validation->set_rules('graficos_nombre', 'lang:eap_tipos_graficos_nombre', 'required|trim|max_length[50]|xss_clean|callback_validar_unico[null,graficos_nombre]');
		$this->form_validation->set_rules('graficos_nombre_pt', 'lang:eap_tipos_graficos_nombre_pt', 'required|trim|max_length[50]|xss_clean|callback_validar_unico[null,graficos_nombre_pt]');
				********** SE QUITO LA VALIDACION DE UNICO EN LOS GRÁFICOS
		*/
		$this->form_validation->set_rules('graficos_nombre', 'lang:eap_tipos_graficos_nombre', 'required|trim|max_length[50]|xss_clean');
		$this->form_validation->set_rules('graficos_nombre_pt', 'lang:eap_tipos_graficos_nombre_pt', 'required|trim|max_length[50]|xss_clean');
		$this->form_validation->set_rules('graficos_nombre_en', 'lang:eap_tipos_graficos_nombre_en', 'required|trim|max_length[50]|xss_clean');
		$this->form_validation->run();

	}

   if($this->form_validation->run()){
		$historial='';
		$data['fecha'] = date("Y-m-d H:i:s");
		if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
		if($this->input->post('graficos_nombre') != "") {$data['graficos_nombre'] = $this->input->post('graficos_nombre');$historial.="Nombre para Graficos@@@@$data[graficos_nombre]||";}
		if($this->input->post('graficos_nombre_pt') != "") {$data['graficos_nombre_pt'] = $this->input->post('graficos_nombre_pt');$historial.="Nombre para Graficos PT@@@@$data[graficos_nombre_pt]||";}
		if($this->input->post('graficos_nombre_en') != "") {$data['graficos_nombre_en'] = $this->input->post('graficos_nombre_en');$historial.="Nombre para Graficos EN@@@@$data[graficos_nombre_en]||";}

		$id=$this->types_model->set_type('', $data,'insert');

		if (is_numeric($id)){
			// Guardar LOG de Modificacion
			$data_log = array(
				'id_tipos' => $id,
				'fecha' => date("Y-m-d H:i:s"),
				'modificador' => $this->session->userdata('usuario_nombre_apellido'),
				'modificaciones' => $historial);
			$this->types_model->set_type_log($data_log);

			$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_guardado'));
			redirect('tipos/ver/'.$id);
			//echo $this->db->last_query();
		} else {
			$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_guardado_error'));
		}
   }


	$tipo = array(
		'nombre'=>'',
		'graficos_nombre'=>'',
		'graficos_nombre_en'=>'',
		'graficos_nombre_pt'=>''
	);

	$data['tipo'] = $tipo;
	$data['content']='admin/tipos/nuevo';
	$this->load->view('v_content',$data);

	}

function validar_unico ($nombre=null,$id=null,$campo=null){
   if ($this->types_model->is_unique($nombre,$id,$campo)) {
	   return TRUE;
   } else {
	   $this->form_validation->set_message('validar_unico', $this->lang->line('eap_tipos_msg_validar_unico').'==>'.$nombre.'ID=>'.$id);
	   return FALSE;
   }
}

function borrar ($id=null){
	// Valida Acceso
	$this->check_access();

	if (is_null($id)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_tipos_msg_guardado_estado_error'));
		redirect('tipos/lista');
	}

	$this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_borrado'));

	if (!$this->types_model->delete_type($id)) { $this->session->set_flashdata('message', $this->lang->line('eap_tipos_msg_guardado_estado_error')); }
	redirect('tipos/lista');


}

}
