<?php
class Acciones_tipos extends MY_Controller
{
	
function __construct(){
	parent::__construct();
	$this->load->model('actions_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['acciones_tipos'] = $this->actions_types_model->get_actions_types();	
	$data['content']='admin/acciones_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_acciones_tipos_msg_noexiste'));
		redirect('acciones_tipos/lista');		
	  }
	  
	$actions_type = $this->actions_types_model->get_actions_type($id);
	// No existe
	if (empty($actions_type)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_acciones_tipos_msg_noexiste'));
		redirect('acciones_tipos/lista');		
	  }
	$data['acciones_tipo'] = $actions_type;
	$data['logs'] = $this->actions_types_model->get_actions_type_log($id);		
	$data['content']='admin/acciones_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_acciones_tipos_msg_noexiste'));
		redirect('acciones_tipos/lista');		
	  }

	$acciones_tipo = $this->actions_types_model->get_actions_type($id);
	// No existe
	if (empty($acciones_tipo)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_acciones_tipos_msg_noexiste'));
		redirect('acciones_tipos/lista');		
	  }
	  
	$this->load->library('form_validation');
	
   if(isset($_POST["cancelar"])) {
		$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_cancelado'));
		if ($origen=="ver") { redirect('acciones_tipos/ver/'.$id);} else {redirect('acciones_tipos/lista');}
   }
			
	if (!empty($_POST))
	{    
		$this->form_validation->set_rules('nombre', 'lang:eap_acciones_tipos_nombre', 'required|trim|max_length[100]|xss_clean|callback_validar_unico['.$id.']');     
		$this->form_validation->set_rules('descripcion', 'lang:eap_acciones_tipos_descripcion', 'required|trim|max_length[100]|xss_clean');			
		
		$this->form_validation->run();
	}
	
   if($this->form_validation->run()){
   
		$historial='';

		$data['fecha_modificacion'] = date("Y-m-d H:i:s");
		$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
		if($this->input->post('nombre') != $acciones_tipo['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$acciones_tipo[nombre]@@$data[nombre]||";}
		if($this->input->post('descripcion') != $acciones_tipo['descripcion']) {$data['descripcion'] = $this->input->post('descripcion');$historial.="Descripcion@@$acciones_tipo[descripcion]@@$data[descripcion]||";}		
		
		if ($this->actions_types_model->set_actions_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);
			$this->actions_types_model->set_actions_type_log($data_log);			
			$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_guardado'));
			if ($origen=="ver") { redirect('acciones_tipos/ver/'.$id);} else {redirect('acciones_tipos/lista');}
			//echo $this->db->last_query();
		} else {
			$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_guardado_error'));	
		}

   }
	

	$data['origen']= $origen;
	$data['acciones_tipo'] = $acciones_tipo;
	$data['logs'] = $this->actions_types_model->get_actions_type_log($id);	
	$data['content']='admin/acciones_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_acciones_tipos_msg_cancelado_nuevo'));
		redirect('acciones_tipos/lista');
   }
			
	if (!empty($_POST))
	{    
		$this->form_validation->set_rules('nombre', 'lang:eap_acciones_tipos_nombre', 'required|trim|max_length[100]|xss_clean|callback_validar_unico');     
		$this->form_validation->set_rules('descripcion', 'lang:eap_acciones_tipos_descripcion', 'required|trim|max_length[100]|xss_clean');			
				
		$this->form_validation->run();
	}
	
   if($this->form_validation->run()){
		$historial='';
		$data['fecha_creacion'] = date("Y-m-d H:i:s");
		$data['id_usuario_creacion'] = $this->session->userdata('usuario_id');
		$data['fecha_modificacion'] = date("Y-m-d H:i:s");
		$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
		if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
		if($this->input->post('descripcion') != "") {$data['descripcion'] = $this->input->post('descripcion');$historial.="descripcion@@@@$data[descripcion]||";}		
				
		$id=$this->actions_types_model->set_actions_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->actions_types_model->set_actions_type_log($data_log);
			
			$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_guardado'));
			redirect('acciones_tipos/ver/'.$id);
			//echo $this->db->last_query();
		} else {
			$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_guardado_error'));	
		}
   }
	

	$actions_type = array(
		'nombre'=>'',
		'descripcion'=>'');

	$data['acciones_tipo'] = $actions_type;
	$data['content']='admin/acciones_tipos/nuevo';
	$this->load->view('v_content',$data);
	
	}	
	
function upload($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_acciones_tipos_msg_noexiste'));
		redirect('acciones_tipos/lista');		
	  }

	$acciones_tipo = $this->actions_types_model->get_actions_type($id);
	// No existe
	if (empty($acciones_tipo)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_acciones_tipos_msg_noexiste'));
		redirect('acciones_tipos/lista');		
	  }
	  
	$this->load->library('form_validation');
	
   if(isset($_POST["cancelar"])) {
		$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_cancelado'));
		if ($origen=="ver") { redirect('acciones_tipos/ver/'.$id);} else {redirect('acciones_tipos/lista');}
   }
			
	if (!empty($_POST))
	{    
		$config = array(
			'upload_path' => 'private/promocion/',
			'allowed_types' => 'gif|jpg|jpeg|png|pdf|ppt|pptx|doc|docx',
			'max_size' => '0',
			'overwrite' => TRUE,
			'file_name' => $id.$_FILES['imagen']['name']
			);
			
		$this->load->library('upload', $config);

		if ( ! $this->upload->do_upload('imagen'))
		{
			$data['display_errors'] = $this->upload->display_errors().$config['upload_path'].$config['file_name'];
		}
		else
		{
			$upload_data = $this->upload->data();
			
			// Borra el Archivo anterior si existe y es diferente del actual
			if ($acciones_tipo['imagen']!= null and $acciones_tipo['imagen']!=$upload_data['file_name']){
				// Borrar
				$file = $config['upload_path'].$acciones_tipo['imagen'];
				if (is_readable($file)) { unlink($file);}
			}
			
			
			$historial='';

			$data['fecha_modificacion'] = date("Y-m-d H:i:s");
			$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
			$data['imagen'] = $upload_data['file_name'];
			$data['extension'] = $upload_data['file_ext'];
			$historial.="Imagen@@$acciones_tipo[imagen]@@$data[imagen]||";

			if ($this->actions_types_model->set_actions_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);
				$this->actions_types_model->set_actions_type_log($data_log);			
				$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_upload'));
				if ($origen=="ver") { redirect('acciones_tipos/ver/'.$id);} else {redirect('acciones_tipos/lista');}
				//echo $this->db->last_query();
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_upload_error'));	
			}
		}		
    }
	

	$data['origen']= $origen;
	$data['acciones_tipo'] = $acciones_tipo;
	$data['logs'] = $this->actions_types_model->get_actions_type_log($id);	
	$data['content']='admin/acciones_tipos/upload';
	$this->load->view('v_content',$data);
	
	}	
	
function validar_unico ($nombre=null,$id=null){
   if ($this->actions_types_model->is_unique($nombre,$id)) {
	   return TRUE;
   } else {
	   $this->form_validation->set_message('validar_unico', $this->lang->line('eap_acciones_tipos_msg_validar_unico').'==>'.$nombre.'ID=>'.$id);
	   return FALSE;
   }
}


function cambiar_estado($id=null,$estado=null) {
	// Valida Acceso
	$this->check_access();
	
	if (is_null($id) or is_null($estado)) {
		$this->session->set_flashdata('message_error', $this->lang->line('eap_acciones_tipos_msg_guardado_estado_error'));
		redirect('acciones_tipos/lista');	
	}

	switch ($estado) {
		case "activar":
			$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_activado'));
			if (!$this->actions_types_model->active_actions_type($id)) { $this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_guardado_estado_error')); }
			redirect('acciones_tipos/lista');	
			break;
		case "desactivar":
			$this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_desactivado'));
			if (!$this->actions_types_model->inactive_actions_type($id)) { $this->session->set_flashdata('message', $this->lang->line('eap_acciones_tipos_msg_guardado_estado_error')); }
			redirect('acciones_tipos/lista');	
			break;
		default:
			$this->session->set_flashdata('message_error', $this->lang->line('eap_acciones_tipos_msg_guardado_estado_error'));
			redirect('acciones_tipos/lista');	
	}
	
}



}


