<?php
class Usuarios extends MY_Controller
{

function __construct(){
	parent::__construct();
	$this->load->model('model_users');
	$this->load->model('profiles_model');
	$this->load->model('companies_model');
	$this->load->model('countries_model');
}


function index(){
	$this->lista();
	}

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

function check_access ($varClass = null,$varMethod = null) {
	$this->load->library('sec_validation');
	$varClass = ($varClass == null?$this->router->fetch_class():$varClass);
	$varMethod = ($varMethod == null?$this->router->fetch_method():$varMethod);

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

function cambiar_estado($id_usuario = null ,$estado= null,$tipo=null){
	// Valida Acceso
	$metodo = $this->router->fetch_method()."_".$tipo;
	$this->check_access(null,$metodo);

	if (is_null($id_usuario) or is_null($estado)) {
		$this->session->set_flashdata('message_error', 'Error en cambio de Estado.');
		redirect('usuarios/lista');
	}

	switch ($estado) {
		case "activar":
			$this->session->set_flashdata('message', 'Usuario Activado.');
			if (!$this->model_users->active_user($id_usuario)) { $this->session->set_flashdata('message', 'Error en cambio de Estado.'); }
			redirect('usuarios/lista');
			break;
		case "desactivar":
			$this->session->set_flashdata('message', 'Usuario Desactivado.');
			if (!$this->model_users->inactive_user($id_usuario)) { $this->session->set_flashdata('message', 'Error en cambio de Estado.'); }
			redirect('usuarios/lista');
			break;
		case "desbloquear":
			$this->session->set_flashdata('message', 'Usuario desbloqueado.');
			if (!$this->model_users->unlock_user($id_usuario)) { $this->session->set_flashdata('message', 'Error en cambio de Estado.'); }
			redirect('usuarios/lista');
			break;
		default:
			$this->session->set_flashdata('message', 'Error en cambio de Estado.');
			redirect('usuarios/lista');
	}
}



function cambiar_clave($id_usuario = null, $tipo=null){
	// Valida Acceso
	$metodo = $this->router->fetch_method()."_".($tipo);
	$this->check_access(null,$metodo);

	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;
	// Sin parametro o Usuario no existe
	if (is_null($id_usuario) or is_null($this->model_users->get_username($id_usuario))) {
		$this->session->set_flashdata('message_error', 'Error en cambio de Contraseña.');
		redirect('usuarios/lista'.$desde);
	  }

	if(isset($_POST["cancelar_submit"])) {
		$this->session->set_flashdata('message', 'Se canceló el cambio de Contraseña.');
		redirect('usuarios/lista'.$desde);
	  }

   $this->load->library('form_validation');
   $this->form_validation->set_rules('password','Nueva Contraseña','trim|min_length[8]|matches[password_conf]|callback_validar_cambio_clave');
   $this->form_validation->set_rules('password_conf','Confirmar Contraseña','trim|min_length[8]');
   $this->form_validation->set_rules('cambio_password','cambio_password','integer');

   if($this->form_validation->run()){
		//var_dump($_POST);
		if ($this->model_users->set_password($id_usuario, $this->input->post('password'),($this->input->post('cambio_password')=='1'?1:0))){
			//echo $this->db->last_query();
			$this->session->set_flashdata('message', 'Se grabó correctamente la nueva Contraseña');
			redirect('usuarios/lista'.$desde);

		} else {
			$data['id'] = $id_usuario;
			$data['usuario'] = $this->model_users->get_user($id_usuario);
			$data['content']='admin/usuarios/cambiar_clave';
			$this->load->view('v_content',$data);
		}

   }else{
		$data['id'] = $id_usuario;
		$data['tipo']=$tipo;
		$data['usuario'] = $this->model_users->get_user($id_usuario);
		$data['content']='admin/usuarios/cambiar_clave';
		$this->load->view('v_content',$data);
   }

}

function validar_cambio_clave($clave)
{
   if (preg_match('#[0-9]#', $clave) && preg_match('#[a-z]#', $clave) && preg_match('#[A-Z]#', $clave)) {
     return TRUE;
   }
   $this->form_validation->set_message('validar_cambio_clave', 'La contraseña debe contener Números, Letras Mayúsculas y Minúsuclas.');
   return FALSE;
}

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

	$this->load->library('table');
	$this->load->library('pagination');
	$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_usuarios_nombre', "");
		$this->session->set_userdata('filtro_usuarios_username', "");
		$this->session->set_userdata('filtro_usuarios_email', "");
		$this->session->set_userdata('filtro_usuarios_id_usuario_tipo', "");
		$this->session->set_userdata('filtro_usuarios_id_perfil', "");
		$this->session->set_userdata('filtro_usuarios_activo', "");
		$this->session->set_userdata('filtro_usuarios_bloqueado', "");
		$this->session->set_userdata('filtro_usuarios_vencido', "");
		$this->session->set_userdata('filtro_usuarios_id_pais', "");
		$this->session->set_userdata('filtro_usuarios_pagina', "0");
	}


	if (!empty($_POST) && !$this->input->post('limpiar'))
	{
		//limpiamos los campos del formulario, no necesitamos validar
		$this->form_validation->set_rules('nombre', 'nombre', 'trim|max_length[100]|xss_clean');
		$this->form_validation->set_rules('username', 'username', 'trim|max_length[20]|xss_clean');
		$this->form_validation->set_rules('email', 'email', 'trim|max_length[25]|xss_clean');
		$this->form_validation->set_rules('id_usuario_tipo', 'id_usuario_tipo', 'trim|xss_clean');
		$this->form_validation->set_rules('id_perfil', 'id_perfil', 'trim|xss_clean');
		$this->form_validation->set_rules('activo', 'activo', 'trim|xss_clean');
		$this->form_validation->set_rules('bloqueado', 'bloqueado', 'trim|xss_clean');
		$this->form_validation->set_rules('vencido', 'vencido', 'trim|xss_clean');
		$this->form_validation->set_rules('id_pais', 'id_pais', 'trim|xss_clean');
		$this->form_validation->set_rules('pagina', 'pagina', 'trim|xss_clean');
		$this->form_validation->run();

		//Paso el filtro del formulario a las variables de Session
		$this->session->set_userdata('filtro_usuarios_nombre', $this->input->post('nombre'));
		$this->session->set_userdata('filtro_usuarios_username', $this->input->post('username'));
		$this->session->set_userdata('filtro_usuarios_email', $this->input->post('email'));
		$this->session->set_userdata('filtro_usuarios_id_usuario_tipo', $this->input->post('id_usuario_tipo'));
		$this->session->set_userdata('filtro_usuarios_id_perfil', $this->input->post('id_perfil'));
		$this->session->set_userdata('filtro_usuarios_activo', $this->input->post('activo'));
		$this->session->set_userdata('filtro_usuarios_bloqueado', $this->input->post('bloqueado'));
		$this->session->set_userdata('filtro_usuarios_vencido', $this->input->post('vencido'));
		$this->session->set_userdata('filtro_usuarios_id_pais', $this->input->post('id_pais'));

		if ($this->input->post('filtro_submit')) {
			$this->session->set_userdata('filtro_usuarios_pagina', 0);
		} else {
			$this->session->set_userdata('filtro_usuarios_pagina', $this->input->post('pagina'));
		}
	}

	// Carga los filtros desde las variables de session
	$data_f = array();
	$data_f['nombre'] = $this->session->userdata('filtro_usuarios_nombre'); $filtro = ($this->session->userdata('filtro_usuarios_nombre')?true:$filtro);
	$data_f['username'] = $this->session->userdata('filtro_usuarios_username');$filtro = ($this->session->userdata('filtro_usuarios_username')?true:$filtro);
	$data_f['email'] = $this->session->userdata('filtro_usuarios_email');$filtro = ($this->session->userdata('filtro_usuarios_email')?true:$filtro);
	$data_f['id_usuario_tipo'] = $this->session->userdata('filtro_usuarios_id_usuario_tipo');$filtro = ($this->session->userdata('filtro_usuarios_id_usuario_tipo')?true:$filtro);
	$data_f['id_perfil'] = $this->session->userdata('filtro_usuarios_id_perfil');$filtro = ($this->session->userdata('filtro_usuarios_id_perfil')?true:$filtro);
	$data_f['activo'] = $this->session->userdata('filtro_usuarios_activo'); $filtro = (is_string($this->session->userdata('filtro_usuarios_activo'))?true:$filtro);
	$data_f['bloqueado'] = $this->session->userdata('filtro_usuarios_bloqueado');$filtro = (is_string($this->session->userdata('filtro_usuarios_bloqueado'))?true:$filtro);
	$data_f['vencido'] = $this->session->userdata('filtro_usuarios_vencido');$filtro = (is_string($this->session->userdata('filtro_usuarios_vencido'))?true:$filtro);
	$data_f['id_pais'] = $this->session->userdata('filtro_usuarios_id_pais');$filtro = ($this->session->userdata('filtro_usuarios_id_pais')?true:$filtro);
	$data_f['pagina'] = $this->session->userdata('filtro_usuarios_pagina');
	// Fin Filtro

	//var_dump($data_f);
	//echo "<br>==>";
	//var_dump($this->session->all_userdata());
	//exit;

	// Paginacion
    $opciones = array();
    $desde = ($this->session->userdata('filtro_usuarios_pagina') ? $this->session->userdata('filtro_usuarios_pagina'):0) ;
    $opciones['per_page'] = 10;
    $opciones['base_url'] = base_url().'index.php/usuarios/lista';
    $opciones['total_rows'] = $this->model_users->get_users(null,null,$filtro,$data_f,true);
    $opciones['uri_segment'] = 3;

	/* OLD without Bootstrap
	$opciones['first_link'] = '<< Inicio';
	$opciones['last_link'] = 'Final >>	';
	$opciones['next_link'] = 'Siguiente >';
	$opciones['prev_link'] = '< Anterior';
	$opciones['page_query_string'] = false;
	*/
	$opciones['full_tag_open'] = '<div class="text-center"><ul class="pagination pagination-small">';
	$opciones['full_tag_close'] = '</ul></div><!--pagination-->';

	$opciones['first_link'] = '&laquo; Inicio';
	$opciones['first_tag_open'] = '<li class="prev page">';
	$opciones['first_tag_close'] = '</li>';

	$opciones['last_link'] = 'Final &raquo;';
	$opciones['last_tag_open'] = '<li class="next page">';
	$opciones['last_tag_close'] = '</li>';

	$opciones['next_link'] = 'Siguiente &rarr;';
	$opciones['next_tag_open'] = '<li class="next page">';
	$opciones['next_tag_close'] = '</li>';

	$opciones['prev_link'] = '&larr; Anterior';
	$opciones['prev_tag_open'] = '<li class="prev page">';
	$opciones['prev_tag_close'] = '</li>';

	$opciones['cur_tag_open'] = '<li class="active"><a href="">';
	$opciones['cur_tag_close'] = '</a></li>';

	$opciones['num_tag_open'] = '<li class="page">';
	$opciones['num_tag_close'] = '</li>';

	// $opciones['anchor_class'] = 'onclick="submitir(this);" ';


	//if (count($_POST) > 0) $opciones['suffix'] = '/?' . http_build_query($_POST, '', "&");

    $this->pagination->initialize($opciones);
	// Fin Paginacion

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['perfiles'] = $this->profiles_model->get_profiles(1);
	$data['usuarios_tipo'] = $this->model_users->get_users_type();
	$data['usuarios'] = $this->model_users->get_users($opciones['per_page'],$desde,$filtro,$data_f);
	//echo $this->db->last_query();
	$data['filtro']=$filtro;
	$data['data_f']= $data_f;
    $data['paginacion'] = $this->pagination->create_links();
	$data['content']='admin/usuarios/lista';
	$this->load->view('v_content',$data);

	}

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

	$this->load->library('table');
	$this->load->library('pagination');
	$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_profesionales_nombre', "");
		$this->session->set_userdata('filtro_profesionales_username', "");
		$this->session->set_userdata('filtro_profesionales_email', "");
		$this->session->set_userdata('filtro_profesionales_activo', "1");
		$this->session->set_userdata('filtro_profesionales_pagina', "0");
		$this->session->set_userdata('filtro_profesionales_zonasdecobertura', "");
		$this->session->set_userdata('filtro_profesionales_especialidad', "");
		$this->session->set_userdata('filtro_profesionales_id_pais', "");
		$this->session->set_userdata('filtro_profesionales_orden', "");
	}

	if (!empty($_POST) && !$this->input->post('limpiar'))
	{
		//limpiamos los campos del formulario, no necesitamos validar
		$this->form_validation->set_rules('nombre', 'nombre', 'trim|max_length[100]|xss_clean');
		$this->form_validation->set_rules('username', 'username', 'trim|max_length[20]|xss_clean');
		$this->form_validation->set_rules('email', 'email', 'trim|max_length[25]|xss_clean');
		$this->form_validation->set_rules('activo', 'activo', 'trim|xss_clean');
		$this->form_validation->set_rules('pagina', 'pagina', 'trim|xss_clean');
		$this->form_validation->set_rules('zonasdecobertura', 'zonasdecobertura', 'trim|max_length[100]|xss_clean');
		$this->form_validation->set_rules('especialidad', 'especialidad', 'trim|xss_clean');
		$this->form_validation->set_rules('id_pais', 'id_pais', 'trim|xss_clean');
		$this->form_validation->set_rules('orden', 'orden', 'trim|xss_clean');
		$this->form_validation->run();

		//Paso el filtro del formulario a las variables de Session
		$this->session->set_userdata('filtro_profesionales_nombre', $this->input->post('nombre'));
		$this->session->set_userdata('filtro_profesionales_username', $this->input->post('username'));
		$this->session->set_userdata('filtro_profesionales_email', $this->input->post('email'));
		$this->session->set_userdata('filtro_profesionales_activo', $this->input->post('activo'));
		$this->session->set_userdata('filtro_profesionales_zonasdecobertura', $this->input->post('zonasdecobertura'));
		$this->session->set_userdata('filtro_profesionales_especialidad', $this->input->post('especialidad'));
		$this->session->set_userdata('filtro_profesionales_id_pais', $this->input->post('id_pais'));
		$this->session->set_userdata('filtro_profesionales_orden', $this->input->post('orden'));

		if ($this->input->post('filtro_submit')) {
			$this->session->set_userdata('filtro_profesionales_pagina', 0);
		} else {
			$this->session->set_userdata('filtro_profesionales_pagina', $this->input->post('pagina'));
		}
	}

	// Carga Valores por default
	if($this->session->userdata('filtro_profesionales_activo') == null )
	 {
	$this->session->set_userdata('filtro_profesionales_activo', '1');
	}


	// Carga los filtros desde las variables de session
	$data_f = array();
	$data_f['nombre'] = $this->session->userdata('filtro_profesionales_nombre'); $filtro = ($this->session->userdata('filtro_profesionales_nombre')?true:$filtro);
	$data_f['username'] = $this->session->userdata('filtro_profesionales_username');$filtro = ($this->session->userdata('filtro_profesionales_username')?true:$filtro);
	$data_f['email'] = $this->session->userdata('filtro_profesionales_email');$filtro = ($this->session->userdata('filtro_profesionales_email')?true:$filtro);
	$data_f['activo'] = $this->session->userdata('filtro_profesionales_activo'); $filtro = (is_string($this->session->userdata('filtro_profesionales_activo'))?true:$filtro);
	$data_f['pagina'] = $this->session->userdata('filtro_profesionales_pagina');
	$data_f['zonasdecobertura'] = $this->session->userdata('filtro_profesionales_zonasdecobertura'); $filtro = ($this->session->userdata('filtro_profesionales_zonasdecobertura')?true:$filtro);
	$data_f['especialidad'] = $this->session->userdata('filtro_profesionales_especialidad'); $filtro = ($this->session->userdata('filtro_profesionales_especialidad')?true:$filtro);
	$data_f['id_pais'] = $this->session->userdata('filtro_profesionales_id_pais'); $filtro = ($this->session->userdata('filtro_profesionales_id_pais')?true:$filtro);
	$data_f['orden'] = $this->session->userdata('filtro_profesionales_orden'); $filtro = ($this->session->userdata('filtro_profesionales_orden')?true:$filtro);

	// Fijo en profesionales
	$data_f['id_usuario_tipo']= 2;
	$filtro = true;

	// Fin Filtro

	//var_dump($data_f);
	//echo "<br>==>";
	//var_dump($this->session->all_userdata());
	//exit;

	// Paginacion
    $opciones = array();
    $desde = ($this->session->userdata('filtro_profesionales_pagina') ? $this->session->userdata('filtro_profesionales_pagina'):0) ;
    $opciones['per_page'] = 20;
    $opciones['base_url'] = base_url().'index.php/usuarios/lista_profesionales';
    $opciones['total_rows'] = $this->model_users->get_users_by_type(null,null,$filtro,$data_f,true);
    $opciones['uri_segment'] = 3;


	$opciones['full_tag_open'] = '<div class="text-center"><ul class="pagination pagination-small">';
	$opciones['full_tag_close'] = '</ul></div><!--pagination-->';

	$opciones['first_link'] = '&laquo; Inicio';
	$opciones['first_tag_open'] = '<li class="prev page">';
	$opciones['first_tag_close'] = '</li>';

	$opciones['last_link'] = 'Final &raquo;';
	$opciones['last_tag_open'] = '<li class="next page">';
	$opciones['last_tag_close'] = '</li>';

	$opciones['next_link'] = 'Siguiente &rarr;';
	$opciones['next_tag_open'] = '<li class="next page">';
	$opciones['next_tag_close'] = '</li>';

	$opciones['prev_link'] = '&larr; Anterior';
	$opciones['prev_tag_open'] = '<li class="prev page">';
	$opciones['prev_tag_close'] = '</li>';

	$opciones['cur_tag_open'] = '<li class="active"><a href="">';
	$opciones['cur_tag_close'] = '</a></li>';

	$opciones['num_tag_open'] = '<li class="page">';
	$opciones['num_tag_close'] = '</li>';


    $this->pagination->initialize($opciones);
	// Fin Paginacion
	$data['usuarios'] = $this->model_users->get_users_by_type($opciones['per_page'],$desde,$filtro,$data_f);
	// echo $this->db->last_query();

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['especialidades'] = $this->model_users->get_specialities();
	$data['filtro']=$filtro;
	$data['data_f']= $data_f;
    $data['paginacion'] = $this->pagination->create_links();
	$data['content']='admin/usuarios/lista_profesionales';
	$this->load->view('v_content',$data);

	}


function ver($id = null,$origen='lista'){

	if ($origen == 'lista') {
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;
	}
	if ($origen == 'lista_profesionales') {
	$desde = ($this->session->userdata('filtro_profesionales_pagina') ? "/".$this->session->userdata('filtro_profesionales_pagina'):"") ;
	}

	// Sin parametro o Usuario no existe
	if (is_null($id) or is_null($this->model_users->get_username($id))) {
		$this->session->set_flashdata('message_error', 'El usuario no existe');
		redirect('usuarios/'.$origen.$desde);
	  }

	$data['usuario'] = $this->model_users->get_user($id);

	// if es consultor
	if ($this->model_users->exists_usereap_by_type($id,1)) {
		$data['usuario_consultor'] = $this->model_users->get_usereap_by_type($id,1);
	}
	// if es profesional
	if ($this->model_users->exists_usereap_by_type($id,2)) {
		$data['usuario_profesional'] = $this->model_users->get_usereap_by_type($id,2);
		$data['especialidades'] = $this->model_users->get_specialities();
	}

	// if es cliente
	if ($this->model_users->exists_usereap_by_type($id,3)) {
		$data['usuario_cliente'] = $this->model_users->get_usereap_by_type($id,3);
		$data['empresas_grupos'] = $this->companies_model->get_companies_groups();
	}

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['origen']= $origen.$desde;
	$data['usuarios_tipo'] = $this->model_users->get_users_type();
	$data['logs'] = $this->model_users->get_user_log($id);
	$data['content']='admin/usuarios/ver';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios GENERAL
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

	// Sin parametro o Usuario no existe
	if (is_null($id) or is_null($this->model_users->get_username($id))) {
		$this->session->set_flashdata('message_error', 'El usuario no existe');
		redirect('usuarios/lista'.$desde);
	  }
   $this->load->library('form_validation');

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

	$usuario =  $this->model_users->get_user($id);

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/editar')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$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') != $usuario['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$usuario[nombre]@@$data[nombre]||";}
			if($this->input->post('apellido') != $usuario['apellido']) {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@$usuario[apellido]@@$data[apellido]||";}
			if($this->input->post('username') != $usuario['username']) {$data['username'] = $this->input->post('username');$historial.="Usuario@@$usuario[username]@@$data[username]||";}
			if($this->input->post('email') != $usuario['email']) {$data['email'] = $this->input->post('email');$historial.="Email@@$usuario[email]@@$data[email]||";}
			if($this->input->post('idioma') != $usuario['idioma']) {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@$usuario[idioma]@@$data[idioma]||";}
			if($this->input->post('id_pais') != $usuario['id_pais']) {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@$usuario[id_pais]@@$data[id_pais]||";}

			if ($this->model_users->set_user($id, $data)){
				// Guardar Perfiles si hay cambios
				$perfiles = $this->input->post('perfiles');
				$perfiles_text = implode(',',$perfiles);
				if($perfiles_text != $usuario['usuario_perfiles_id']) {
					$historial.="Perfiles@@$usuario[usuario_perfiles_id]@@$perfiles_text||";
					$this->model_users->set_user_profiles($id, $perfiles);
				}

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				if ($origen=="ver") { redirect('usuarios/ver/'.$id);} else {redirect('usuarios/lista'.$desde);}
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}

	$data['usuario'] = $usuario;
	// if es consultor
	if ($this->model_users->exists_usereap_by_type($id,1)) {
		$data['usuario_consultor'] = $this->model_users->get_usereap_by_type($id,1);
	}
	// if es profesional
	if ($this->model_users->exists_usereap_by_type($id,2)) {
		$data['usuario_profesional'] = $this->model_users->get_usereap_by_type($id,2);
		$data['especialidades'] = $this->model_users->get_specialities();
	}
	// if es cliente
	if ($this->model_users->exists_usereap_by_type($id,3)) {
		$data['usuario_cliente'] = $this->model_users->get_usereap_by_type($id,3);
		$data['empresas_grupos'] = $this->companies_model->get_companies_groups();
	}

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['perfiles'] = $this->profiles_model->get_profiles(1);
	$data['usuarios_tipos'] = $this->model_users->get_users_type();
	$data['logs'] = $this->model_users->get_user_log($id);
	$data['origen']= $origen;
	$data['content']='admin/usuarios/editar';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios PROFESIONAL
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

	// Sin parametro o Usuario no existe o no es profesional
	if (is_null($id) or is_null($this->model_users->get_username($id)) or ! ($this->model_users->exists_usereap_by_type($id,2))) {
		$this->session->set_flashdata('message_error', 'El usuario no existe');
		redirect('usuarios/lista'.$desde);
	  }
   $this->load->library('form_validation');

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

	$usuario =  $this->model_users->get_user($id);
	$usuario_profesional = $this->model_users->get_usereap_by_type($id,2);
	//echo $this->db->last_query();
	//var_dump($_POST);
	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/editar_profesional')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$historial="";

			// DATOS GENERALES
	   	    $data['fecha_modificacion'] = date("Y-m-d H:i:s");
			$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
			if($this->input->post('nombre') != $usuario['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$usuario[nombre]@@$data[nombre]||";}
			if($this->input->post('apellido') != $usuario['apellido']) {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@$usuario[apellido]@@$data[apellido]||";}
			if($this->input->post('username') != $usuario['username']) {$data['username'] = $this->input->post('username');$historial.="Usuario@@$usuario[username]@@$data[username]||";}
			if($this->input->post('email') != $usuario['email']) {$data['email'] = $this->input->post('email');$historial.="Email@@$usuario[email]@@$data[email]||";}
			if($this->input->post('idioma') != $usuario['idioma']) {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@$usuario[idioma]@@$data[idioma]||";}
			if($this->input->post('id_pais') != $usuario['id_pais']) {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@$usuario[id_pais]@@$data[id_pais]||";}

			// DATOS PROFESIONAL
			$data_profesional = array();
			if(($this->input->post('nombre') != $usuario['nombre']) or ($this->input->post('apellido') != $usuario['apellido'])) {$data_profesional['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != $usuario['username']) {$data_profesional['usuario'] = $this->input->post('username');}
			if($this->input->post('especialidad') != $usuario_profesional['especialidad']) {$data_profesional['especialidad'] = $this->input->post('especialidad');$historial.="Especialidad@@$usuario_profesional[especialidad]@@$data_profesional[especialidad]||";}
			if($this->input->post('fechadeinicio') != $usuario_profesional['fechadeinicio']){$data_profesional['fechadeinicio'] = $this->input->post('fechadeinicio');$historial.="Fecha Inicio@@$usuario_profesional[fechadeinicio]@@$data_profesional[fechadeinicio]||";}
			if($this->input->post('presentocv') != $usuario_profesional['presentocv']) {$data_profesional['presentocv'] = $this->input->post('presentocv');$historial.="Presento CV@@$usuario_profesional[presentocv]@@$data_profesional[presentocv]||";}
			if($this->input->post('presentotitulo') != $usuario_profesional['presentotitulo']) {$data_profesional['presentotitulo'] = $this->input->post('presentotitulo');$historial.="Presento Titulo@@$usuario_profesional[presentotitulo]@@$data_profesional[presentotitulo]||";}
			if($this->input->post('firmocontrato') != $usuario_profesional['firmocontrato']) {$data_profesional['firmocontrato'] = $this->input->post('firmocontrato');$historial.="Firmo Contrato@@$usuario_profesional[firmocontrato]@@$data_profesional[firmocontrato]||";}
			if($this->input->post('zonasdecobertura') != $usuario_profesional['zonasdecobertura']) {$data_profesional['zonasdecobertura'] = $this->input->post('zonasdecobertura');$historial.="Zonas de Cobertura@@$usuario_profesional[zonasdecobertura]@@$data_profesional[zonasdecobertura]||";}
			if($this->input->post('calle') != $usuario_profesional['calle']) {$data_profesional['calle'] = $this->input->post('calle');$historial.="Calle@@$usuario_profesional[calle]@@$data_profesional[calle]||";}
			if($this->input->post('numero') != $usuario_profesional['numero']) {$data_profesional['numero'] = $this->input->post('numero');$historial.="Número@@$usuario_profesional[numero]@@$data_profesional[numero]||";}
			if($this->input->post('piso') != $usuario_profesional['piso']) {$data_profesional['piso'] = $this->input->post('piso');$historial.="Piso@@$usuario_profesional[piso]@@$data_profesional[piso]||";}
			if($this->input->post('unidad') != $usuario_profesional['unidad']) {$data_profesional['unidad'] = $this->input->post('unidad');$historial.="Unidad@@$usuario_profesional[unidad]@@$data_profesional[unidad]||";}
			if($this->input->post('cp') != $usuario_profesional['cp']) {$data_profesional['cp'] = $this->input->post('cp');$historial.="CP@@$usuario_profesional[cp]@@$data_profesional[cp]||";}
			if($this->input->post('localidad') != $usuario_profesional['localidad']) {$data_profesional['localidad'] = $this->input->post('localidad');$historial.="Localidad@@$usuario_profesional[localidad]@@$data_profesional[localidad]||";}
			if($this->input->post('provincia') != $usuario_profesional['provincia']) {$data_profesional['provincia'] = $this->input->post('provincia');$historial.="Provincia@@$usuario_profesional[provincia]@@$data_profesional[provincia]||";}
			if($this->input->post('pretelcons') != $usuario_profesional['pretelcons']) {$data_profesional['pretelcons'] = $this->input->post('pretelcons');$historial.="Tel Consultorio - Prefijo@@$usuario_profesional[pretelcons]@@$data_profesional[pretelcons]||";}
			if($this->input->post('telcons') != $usuario_profesional['telcons']) {$data_profesional['telcons'] = $this->input->post('telcons');$historial.="Tel Consultorio - Número@@$usuario_profesional[telcons]@@$data_profesional[telcons]||";}
			if($this->input->post('pretelpart') != $usuario_profesional['pretelpart']) {$data_profesional['pretelpart'] = $this->input->post('pretelpart');$historial.="Tel Particular - Prefijo@@$usuario_profesional[pretelpart]@@$data_profesional[pretelpart]||";}
			if($this->input->post('telpart') != $usuario_profesional['telpart']) {$data_profesional['telpart'] = $this->input->post('telpart');$historial.="Tel Particular - Número@@$usuario_profesional[telpart]@@$data_profesional[telpart]||";}
			if($this->input->post('pretelmovil1') != $usuario_profesional['pretelmovil1']) {$data_profesional['pretelmovil1'] = $this->input->post('pretelmovil1');$historial.="Tel Movil 1 - Prefijo@@$usuario_profesional[pretelmovil1]@@$data_profesional[pretelmovil1]||";}
			if($this->input->post('telmovil1') != $usuario_profesional['telmovil1']) {$data_profesional['telmovil1'] = $this->input->post('telmovil1');$historial.="Tel Movil 1 - Número@@$usuario_profesional[telmovil1]@@$data_profesional[telmovil1]||";}
			if($this->input->post('empresatelmovil1') != $usuario_profesional['empresatelmovil1']) {$data_profesional['empresatelmovil1'] = $this->input->post('empresatelmovil1');$historial.="Tel Movil 1 - Empresa@@$usuario_profesional[empresatelmovil1]@@$data_profesional[empresatelmovil1]||";}
			if($this->input->post('alertatel1') != $usuario_profesional['alertatel1']) {$data_profesional['alertatel1'] = $this->input->post('alertatel1');$historial.="Tel Movil 1 - Alerta@@$usuario_profesional[alertatel1]@@$data_profesional[alertatel1]||";}
			if($this->input->post('pretelmovil2') != $usuario_profesional['pretelmovil2']) {$data_profesional['pretelmovil2'] = $this->input->post('pretelmovil2');$historial.="Tel Movil 2 - Prefijo@@$usuario_profesional[pretelmovil2]@@$data_profesional[pretelmovil2]||";}
			if($this->input->post('telmovil2') != $usuario_profesional['telmovil2']) {$data_profesional['telmovil2'] = $this->input->post('telmovil2');$historial.="Tel Movil 2 - Número@@$usuario_profesional[telmovil2]@@$data_profesional[telmovil2]||";}
			if($this->input->post('empresatelmovil2') != $usuario_profesional['empresatelmovil2']) {$data_profesional['empresatelmovil2'] = $this->input->post('empresatelmovil2');$historial.="Tel Movil 2 - Empresa@@$usuario_profesional[empresatelmovil2]@@$data_profesional[empresatelmovil2]||";}
			if($this->input->post('alertatel2') != $usuario_profesional['alertatel2']) {$data_profesional['alertatel2'] = $this->input->post('alertatel2');$historial.="Tel Movil 2 - Alerta@@$usuario_profesional[alertatel2]@@$data_profesional[alertatel2]||";}
			if($this->input->post('email1') != $usuario_profesional['email1']) {$data_profesional['email1'] = $this->input->post('email1');$historial.="E-Mail 1@@$usuario_profesional[email1]@@$data_profesional[email1]||";}
			if($this->input->post('alertamail1') != $usuario_profesional['alertamail1']) {$data_profesional['alertamail1'] = $this->input->post('alertamail1');$historial.="E-Mail 1 - Alerta@@$usuario_profesional[alertamail1]@@$data_profesional[alertamail1]||";}
			if($this->input->post('email2') != $usuario_profesional['email2']) {$data_profesional['email2'] = $this->input->post('email2');$historial.="E-Mail 2@@$usuario_profesional[email2]@@$data_profesional[email2]||";}
			if($this->input->post('alertamail2') != $usuario_profesional['alertamail2']) {$data_profesional['alertamail2'] = $this->input->post('alertamail2');$historial.="E-Mail 2 - Alerta@@$usuario_profesional[alertamail2]@@$data_profesional[alertamail2]||";}
			if($this->input->post('skype') != $usuario_profesional['skype']) {$data_profesional['skype'] = $this->input->post('skype');$historial.="Skype@@$usuario_profesional[skype]@@$data_profesional[skype]||";}
			if($this->input->post('honorarios1') != $usuario_profesional['honorarios1']) {$data_profesional['honorarios1'] = $this->input->post('honorarios1');$historial.="Honorarios Pactados - Hora Profesional@@$usuario_profesional[honorarios1]@@$data_profesional[honorarios1]||";}
			if($this->input->post('fechah1') != $usuario_profesional['fechah1']) {$data_profesional['fechah1'] = $this->input->post('fechah1');$historial.="Honorarios Pactados - Hora Profesional - Fecha@@$usuario_profesional[fechah1]@@$data_profesional[fechah1]||";}
			if($this->input->post('honorarios2') != $usuario_profesional['honorarios2']) {$data_profesional['honorarios2'] = $this->input->post('honorarios2');$historial.="Honorarios Pactados - Caso@@$usuario_profesional[honorarios2]@@$data_profesional[honorarios2]||";}
			if($this->input->post('fechah2') != $usuario_profesional['fechah2']) {$data_profesional['fechah2'] = $this->input->post('fechah2');$historial.="Honorarios Pactados - Caso - Fecha@@$usuario_profesional[fechah2]@@$data_profesional[fechah2]||";}
			if($this->input->post('honorarios3') != $usuario_profesional['honorarios3']) {$data_profesional['honorarios3'] = $this->input->post('honorarios3');$historial.="Honorarios Pactados - Entrevista Individual@@$usuario_profesional[honorarios3]@@$data_profesional[honorarios3]||";}
			if($this->input->post('fechah3') != $usuario_profesional['fechah3']) {$data_profesional['fechah3'] = $this->input->post('fechah3');$historial.="Honorarios Pactados - Entrevista Individual - Fecha@@$usuario_profesional[fechah3]@@$data_profesional[fechah3]||";}
			if($this->input->post('honorarios4') != $usuario_profesional['honorarios4']) {$data_profesional['honorarios4'] = $this->input->post('honorarios4');$historial.="Honorarios Pactados - Entrevista Grupal@@$usuario_profesional[honorarios4]@@$data_profesional[honorarios4]||";}
			if($this->input->post('fechah4') != $usuario_profesional['fechah4']) {$data_profesional['fechah4'] = $this->input->post('fechah4');$historial.="Honorarios Pactados - Entrevista Grupal - Fecha@@$usuario_profesional[fechah4]@@$data_profesional[fechah4]||";}
			if($this->input->post('honorarios5') != $usuario_profesional['honorarios5']) {$data_profesional['honorarios5'] = $this->input->post('honorarios5');$historial.="Honorarios Pactados - Capacitación@@$usuario_profesional[honorarios5]@@$data_profesional[honorarios5]||";}
			if($this->input->post('fechah5') != $usuario_profesional['fechah5']) {$data_profesional['fechah5'] = $this->input->post('fechah5');$historial.="Honorarios Pactados - Capacitación - Fecha@@$usuario_profesional[fechah5]@@$data_profesional[fechah5]||";}
			if($this->input->post('honorarios6') != $usuario_profesional['honorarios6']) {$data_profesional['honorarios6'] = $this->input->post('honorarios6');$historial.="Honorarios Pactados - Incidente Crítico@@$usuario_profesional[honorarios6]@@$data_profesional[honorarios6]||";}
			if($this->input->post('fechah6') != $usuario_profesional['fechah6']) {$data_profesional['fechah6'] = $this->input->post('fechah6');$historial.="Honorarios Pactados - Incidente Crítico - Fecha@@$usuario_profesional[fechah6]@@$data_profesional[fechah6]||";}
			if($this->input->post('honorarios7') != $usuario_profesional['honorarios7']) {$data_profesional['honorarios7'] = $this->input->post('honorarios7');$historial.="Honorarios Pactados - Talleres Grupales@@$usuario_profesional[honorarios7]@@$data_profesional[honorarios7]||";}
			if($this->input->post('fechah7') != $usuario_profesional['fechah7']) {$data_profesional['fechah7'] = $this->input->post('fechah7');$historial.="Honorarios Pactados - Talleres Grupales - Fecha@@$usuario_profesional[fechah7]@@$data_profesional[fechah7]||";}
			if($this->input->post('cuit') != $usuario_profesional['cuit']) {$data_profesional['cuit'] = $this->input->post('cuit');$historial.="CUIT@@$usuario_profesional[cuit]@@$data_profesional[cuit]||";}
			if($this->input->post('formadepago') != $usuario_profesional['formadepago']) {$data_profesional['formadepago'] = $this->input->post('formadepago');$historial.="Forma de Pago@@$usuario_profesional[formadepago]@@$data_profesional[formadepago]||";}
			if($this->input->post('banco') != $usuario_profesional['banco']) {$data_profesional['banco'] = $this->input->post('banco');$historial.="Banco@@$usuario_profesional[banco]@@$data_profesional[banco]||";}
			if($this->input->post('sucursal') != $usuario_profesional['sucursal']) {$data_profesional['sucursal'] = $this->input->post('sucursal');$historial.="Sucursal@@$usuario_profesional[sucursal]@@$data_profesional[sucursal]||";}
			if($this->input->post('numerodecuenta') != $usuario_profesional['numerodecuenta']) {$data_profesional['numerodecuenta'] = $this->input->post('numerodecuenta');$historial.="N° de Cuenta@@$usuario_profesional[numerodecuenta]@@$data_profesional[numerodecuenta]||";}
			if($this->input->post('nombredecuenta') != $usuario_profesional['nombredecuenta']) {$data_profesional['nombredecuenta'] = $this->input->post('nombredecuenta');$historial.="Nombre de la cuenta Titular@@$usuario_profesional[nombredecuenta]@@$data_profesional[nombredecuenta]||";}
			if($this->input->post('cbu') != $usuario_profesional['cbu']) {$data_profesional['cbu'] = $this->input->post('cbu');$historial.="CBU@@$usuario_profesional[cbu]@@$data_profesional[cbu]||";}
			if($this->input->post('observaciones') != $usuario_profesional['observaciones']) {$data_profesional['observaciones'] = $this->input->post('observaciones');$historial.="Observaciones@@$usuario_profesional[observaciones]@@$data_profesional[observaciones]||";}


			if ($this->model_users->set_user($id, $data)&& $this->model_users->set_usereap_by_type($id,2,$data_profesional)){

				// Guardar Perfiles si hay cambios
				$perfiles = $this->input->post('perfiles');
				$perfiles_text = implode(',',$perfiles);
				if($perfiles_text != $usuario['usuario_perfiles_id']) {
					$historial.="Perfiles@@$usuario[usuario_perfiles_id]@@$perfiles_text||";
					$this->model_users->set_user_profiles($id, $perfiles);
				}

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				if ($origen=="ver") { redirect('usuarios/ver/'.$id);} else {redirect('usuarios/lista'.$desde);}
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}

	$data['usuario'] = $usuario;
	$data['usuario_profesional'] = $usuario_profesional;
	$data['especialidades'] = $this->model_users->get_specialities();

	// if es consultor
	if ($this->model_users->exists_usereap_by_type($id,1)) {
		$data['usuario_consultor'] = $this->model_users->get_usereap_by_type($id,1);
	}
	// if es cliente
	if ($this->model_users->exists_usereap_by_type($id,3)) {
		$data['usuario_cliente'] = $this->model_users->get_usereap_by_type($id,3);
		$data['empresas_grupos'] = $this->companies_model->get_companies_groups();
	}

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['perfiles'] = $this->profiles_model->get_profiles(1);
	$data['usuarios_tipos'] = $this->model_users->get_users_type();
	$data['logs'] = $this->model_users->get_user_log($id);
	$data['origen']= $origen;
	$data['content']='admin/usuarios/editar';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios CONSULTOR
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;
	// Sin parametro o Usuario no existe o no es Consultor
	if (is_null($id) or is_null($this->model_users->get_username($id)) or !($this->model_users->exists_usereap_by_type($id,1))) {
		$this->session->set_flashdata('message_error', 'El usuario no existe');
		redirect('usuarios/lista'.$desde);
	  }
   $this->load->library('form_validation');

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

	$usuario =  $this->model_users->get_user($id);
	$usuario_consultor = $this->model_users->get_usereap_by_type($id,1);

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/editar_consultor')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$historial="";

			// DATOS GENERALES
	   	    $data['fecha_modificacion'] = date("Y-m-d H:i:s");
			$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
			if($this->input->post('nombre') != $usuario['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$usuario[nombre]@@$data[nombre]||";}
			if($this->input->post('apellido') != $usuario['apellido']) {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@$usuario[apellido]@@$data[apellido]||";}
			if($this->input->post('username') != $usuario['username']) {$data['username'] = $this->input->post('username');$historial.="Usuario@@$usuario[username]@@$data[username]||";}
			if($this->input->post('email') != $usuario['email']) {$data['email'] = $this->input->post('email');$historial.="Email@@$usuario[email]@@$data[email]||";}
			if($this->input->post('idioma') != $usuario['idioma']) {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@$usuario[idioma]@@$data[idioma]||";}
			if($this->input->post('id_pais') != $usuario['id_pais']) {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@$usuario[id_pais]@@$data[id_pais]||";}

			// DATOS CONSULTOR
			$data_consultor = array();
			if(($this->input->post('nombre') != $usuario['nombre']) or ($this->input->post('apellido') != $usuario['apellido'])) {$data_consultor['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != $usuario['username']) {$data_consultor['usuario'] = $this->input->post('username');}
			if($this->input->post('configuracion') != $usuario_consultor['configuracion']) {$data_consultor['configuracion'] = $this->input->post('configuracion');$historial.="Cerrar Caso@@$usuario_consultor[configuracion]@@$data_consultor[configuracion]||";}
			if($this->input->post('abrir') != $usuario_consultor['abrir']) {$data_consultor['abrir'] = $this->input->post('abrir');$historial.="Reabir Caso@@$usuario_consultor[abrir]@@$data_consultor[abrir]||";}
			if($this->input->post('exportar') != $usuario_consultor['exportar']) {$data_consultor['exportar'] = $this->input->post('exportar');$historial.="Exportar@@$usuario_consultor[exportar]@@$data_consultor[exportar]||";}
			if($this->input->post('inicio') != $usuario_consultor['inicio']) {$data_consultor['inicio'] = $this->input->post('inicio');$historial.="Inicio@@".$this->dar_permisos_d($usuario_consultor['inicio'])."@@".$this->dar_permisos_d($data_consultor['inicio'])."||";}
			if($this->input->post('cons') != $usuario_consultor['cons']) {$data_consultor['cons'] = $this->input->post('cons');$historial.="Consultante@@".$this->dar_permisos_d($usuario_consultor['cons'])."@@".$this->dar_permisos_d($data_consultor['cons'])."||";}
			if($this->input->post('problema') != $usuario_consultor['problema']) {$data_consultor['problema'] = $this->input->post('problema');$historial.="Problema@@".$this->dar_permisos_d($usuario_consultor['problema'])."@@".$this->dar_permisos_d($data_consultor['problema'])."||";}
			if($this->input->post('derivacion') != $usuario_consultor['derivacion']) {$data_consultor['derivacion'] = $this->input->post('derivacion');$historial.="Derivacion@@".$this->dar_permisos_d($usuario_consultor['derivacion'])."@@".$this->dar_permisos_d($data_consultor['derivacion'])."||";}
			if($this->input->post('informes') != $usuario_consultor['informes']) {$data_consultor['informes'] = $this->input->post('informes');$historial.="Informes@@".$this->dar_permisos_d($usuario_consultor['informes'])."@@".$this->dar_permisos_d($data_consultor['informes'])."||";}
			if($this->input->post('seguimiento') != $usuario_consultor['seguimiento']) {$data_consultor['seguimiento'] = $this->input->post('seguimiento');$historial.="Seguimiento@@".$this->dar_permisos_d($usuario_consultor['seguimiento'])."@@".$this->dar_permisos_d($data_consultor['seguimiento'])."||";}
			if($this->input->post('encuesta') != $usuario_consultor['encuesta']) {$data_consultor['encuesta'] = $this->input->post('encuesta');$historial.="Encuesta@@".$this->dar_permisos_d($usuario_consultor['encuesta'])."@@".$this->dar_permisos_d($data_consultor['encuesta'])."||";}
			if($this->input->post('usuarios') != $usuario_consultor['usuarios']) {$data_consultor['usuarios'] = $this->input->post('usuarios');$historial.="Configuración@@$usuario_consultor[usuarios]@@$data_consultor[usuarios]||";}
			if($this->input->post('verprof') != $usuario_consultor['verprof']) {$data_consultor['verprof'] = $this->input->post('verprof');$historial.="Datos Profesionales@@$usuario_consultor[verprof]@@$data_consultor[verprof]||";}

			$data_consultor_c = array();
			if($this->input->post('configuracion_graficos') != $usuario_consultor['configuracion_graficos']) {$data_consultor_c['configuracion_graficos'] = $this->input->post('verprof');$historial.="Gráficos@@$usuario_consultor[configuracion_graficos]@@$data_consultor_c[configuracion_graficos]||";}
			if($this->input->post('configuracion_acciones_tipos') != $usuario_consultor['configuracion_acciones_tipos']) {$data_consultor_c['configuracion_acciones_tipos'] = $this->input->post('configuracion_acciones_tipos');$historial.="Conf Tipos AP@@".$this->dar_permisos_d($usuario_consultor['configuracion_acciones_tipos'])."@@".$this->dar_permisos_d($data_consultor_c['configuracion_acciones_tipos'])."||";}
			if($this->input->post('configuracion_acciones') != $usuario_consultor['configuracion_acciones']) {$data_consultor_c['configuracion_acciones'] = $this->input->post('configuracion_acciones');$historial.="Acciones Promoción@@".$this->dar_permisos_d($usuario_consultor['configuracion_acciones'])."@@".$this->dar_permisos_d($data_consultor_c['configuracion_acciones'])."||";}
			if($this->input->post('idioma') != $usuario_consultor['configuracion_idioma']) {$data_consultor_c['configuracion_idioma'] = $this->input->post('idioma');}

			if ($this->model_users->set_user($id, $data) && $this->model_users->set_usereap_by_type($id,1,$data_consultor,$data_consultor_c)){
				// Guardar Perfiles si hay cambios
				$perfiles = $this->input->post('perfiles');
				$perfiles_text = implode(',',$perfiles);
				if($perfiles_text != $usuario['usuario_perfiles_id']) {
					$historial.="Perfiles@@$usuario[usuario_perfiles_id]@@$perfiles_text||";
					$this->model_users->set_user_profiles($id, $perfiles);
				}

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				if ($origen=="ver") { redirect('usuarios/ver/'.$id);} else {redirect('usuarios/lista'.$desde);}
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}

	$data['usuario'] = $usuario;
	$data['usuario_consultor'] = $usuario_consultor;

	// if es profesional
	if ($this->model_users->exists_usereap_by_type($id,2)) {
		$data['usuario_profesional'] = $this->model_users->get_usereap_by_type($id,2);
		$data['especialidades'] = $this->model_users->get_specialities();
	}
	// if es cliente
	if ($this->model_users->exists_usereap_by_type($id,3)) {
		$data['usuario_cliente'] = $this->model_users->get_usereap_by_type($id,3);
		$data['empresas_grupos'] = $this->companies_model->get_companies_groups();
	}

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['perfiles'] = $this->profiles_model->get_profiles(1);
	$data['usuarios_tipos'] = $this->model_users->get_users_type();
	$data['logs'] = $this->model_users->get_user_log($id);
	$data['origen']= $origen;
	$data['content']='admin/usuarios/editar';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios CLIENTE
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;
	// Sin parametro o Usuario no existe o no es Cliente
	if (is_null($id) or is_null($this->model_users->get_username($id)) or !($this->model_users->exists_usereap_by_type($id,3))) {
		$this->session->set_flashdata('message_error', 'El usuario no existe');
		redirect('usuarios/lista'.$desde);
	  }
   $this->load->library('form_validation');

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

	$usuario =  $this->model_users->get_user($id);
	$usuario_cliente = $this->model_users->get_usereap_by_type($id,3);

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/editar_cliente')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$historial="";

			// DATOS GENERALES
	   	    $data['fecha_modificacion'] = date("Y-m-d H:i:s");
			$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
			if($this->input->post('nombre') != $usuario['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$usuario[nombre]@@$data[nombre]||";}
			if($this->input->post('apellido') != $usuario['apellido']) {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@$usuario[apellido]@@$data[apellido]||";}
			if($this->input->post('username') != $usuario['username']) {$data['username'] = $this->input->post('username');$historial.="Usuario@@$usuario[username]@@$data[username]||";}
			if($this->input->post('email') != $usuario['email']) {$data['email'] = $this->input->post('email');$historial.="Email@@$usuario[email]@@$data[email]||";}
			if($this->input->post('idioma') != $usuario['idioma']) {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@$usuario[idioma]@@$data[idioma]||";}
			if($this->input->post('id_pais') != $usuario['id_pais']) {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@$usuario[id_pais]@@$data[id_pais]||";}

			// DATOS CLIENTE
			$data_cliente = array();
			if(($this->input->post('nombre') != $usuario['nombre']) or ($this->input->post('apellido') != $usuario['apellido'])) {$data_cliente['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != $usuario['username']) {$data_cliente['usuario'] = $this->input->post('username');}
			if($this->input->post('grupo') != $usuario_cliente['grupo']) {$data_cliente['grupo'] = $this->input->post('grupo');$data_cliente['grupobuscado'] = $this->input->post('grupo');$historial.="Grupo@@$usuario_cliente[grupo]@@$data_cliente[grupo]||";}
			if($this->input->post('empresa') != $usuario_cliente['empresa']) {$data_cliente['empresa'] = $this->input->post('empresa');$data_cliente['empresabuscado'] = $this->input->post('empresa');$historial.="Empresa@@$usuario_cliente[empresa]@@$data_cliente[empresa]||";}


			if ($this->model_users->set_user($id, $data) && $this->model_users->set_usereap_by_type($id,3,$data_cliente)){
				// Guardar Perfiles si hay cambios
				$perfiles = $this->input->post('perfiles');
				$perfiles_text = implode(',',$perfiles);
				if($perfiles_text != $usuario['usuario_perfiles_id']) {
					$historial.="Perfiles@@$usuario[usuario_perfiles_id]@@$perfiles_text||";
					$this->model_users->set_user_profiles($id, $perfiles);
				}

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				if ($origen=="ver") { redirect('usuarios/ver/'.$id);} else {redirect('usuarios/lista'.$desde);}
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}

	$data['usuario'] = $usuario;
	$data['usuario_cliente'] = $usuario_cliente;
	$data['empresas_grupos'] = $this->companies_model->get_companies_groups();

	// if es consultor
	if ($this->model_users->exists_usereap_by_type($id,1)) {
		$data['usuario_consultor'] = $this->model_users->get_usereap_by_type($id,1);
	}

	// if es profesional
	if ($this->model_users->exists_usereap_by_type($id,2)) {
		$data['usuario_profesional'] = $this->model_users->get_usereap_by_type($id,2);
		$data['especialidades'] = $this->model_users->get_specialities();
	}

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['perfiles'] = $this->profiles_model->get_profiles(1);
	$data['usuarios_tipos'] = $this->model_users->get_users_type();
	$data['logs'] = $this->model_users->get_user_log($id);
	$data['origen']= $origen;
	$data['content']='admin/usuarios/editar';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios CLIENTE
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;
	// Sin parametro o Usuario no existe o no es Cliente
	if (is_null($id) or is_null($this->model_users->get_username($id)) or !($this->model_users->exists_usereap_by_type($id,5))) {
		$this->session->set_flashdata('message_error', 'El usuario no existe');
		redirect('usuarios/lista'.$desde);
	  }
   $this->load->library('form_validation');

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

	$usuario =  $this->model_users->get_user($id);
	$usuario_cliente = $this->model_users->get_usereap_by_type($id,5);

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/editar_cliente_front')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$historial="";

			// DATOS GENERALES
	   	    $data['fecha_modificacion'] = date("Y-m-d H:i:s");
			$data['id_usuario_modificacion'] = $this->session->userdata('usuario_id');
			if($this->input->post('nombre') != $usuario['nombre']) {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@$usuario[nombre]@@$data[nombre]||";}
			if($this->input->post('apellido') != $usuario['apellido']) {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@$usuario[apellido]@@$data[apellido]||";}
			if($this->input->post('username') != $usuario['username']) {$data['username'] = $this->input->post('username');$historial.="Usuario@@$usuario[username]@@$data[username]||";}
			if($this->input->post('email') != $usuario['email']) {$data['email'] = $this->input->post('email');$historial.="Email@@$usuario[email]@@$data[email]||";}
			if($this->input->post('idioma') != $usuario['idioma']) {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@$usuario[idioma]@@$data[idioma]||";}
			if($this->input->post('id_pais') != $usuario['id_pais']) {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@$usuario[id_pais]@@$data[id_pais]||";}

			// DATOS CLIENTE
			$data_cliente = array();
			if(($this->input->post('nombre') != $usuario['nombre']) or ($this->input->post('apellido') != $usuario['apellido'])) {$data_cliente['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != $usuario['username']) {$data_cliente['usuario'] = $this->input->post('username');}
			if($this->input->post('grupo') != $usuario_cliente['grupo']) {$data_cliente['grupo'] = $this->input->post('grupo');$data_cliente['grupobuscado'] = $this->input->post('grupo');$historial.="Grupo@@$usuario_cliente[grupo]@@$data_cliente[grupo]||";}
			if($this->input->post('empresa') != $usuario_cliente['empresa']) {$data_cliente['empresa'] = $this->input->post('empresa');$data_cliente['empresabuscado'] = $this->input->post('empresa');$historial.="Empresa@@$usuario_cliente[empresa]@@$data_cliente[empresa]||";}


			if ($this->model_users->set_user($id, $data) && $this->model_users->set_usereap_by_type($id,3,$data_cliente)){
				// Guardar Perfiles si hay cambios
				$perfiles = $this->input->post('perfiles');
				$perfiles_text = implode(',',$perfiles);
				if($perfiles_text != $usuario['usuario_perfiles_id']) {
					$historial.="Perfiles@@$usuario[usuario_perfiles_id]@@$perfiles_text||";
					$this->model_users->set_user_profiles($id, $perfiles);
				}

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				if ($origen=="ver") { redirect('usuarios/ver/'.$id);} else {redirect('usuarios/lista'.$desde);}
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}

	$data['usuario'] = $usuario;
	$data['usuario_cliente'] = $usuario_cliente;
	$data['empresas_grupos'] = $this->companies_model->get_companies_groups();



	$data['paises'] = $this->countries_model->get_countries(1);
	$data['perfiles'] = $this->profiles_model->get_profiles(1);
	$data['usuarios_tipos'] = $this->model_users->get_users_type();
	$data['logs'] = $this->model_users->get_user_log($id);
	$data['origen']= $origen;
	$data['content']='admin/usuarios/editar';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios GENERAL
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

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

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

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/nuevo')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$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');
			$data['fecha_vencimiento_password'] = $this->input->post('fecha_vencimiento_password');
			$data['cambio_password'] = $this->input->post('cambio_password');
			$data['activo'] = $this->input->post('activo');
			$data['password'] = $this->encrypt->encode($this->input->post('password'));

			if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
			if($this->input->post('apellido') != "") {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@@@$data[apellido]||";}
			if($this->input->post('username') != "") {$data['username'] = $this->input->post('username');$historial.="Usuario@@@@$data[username]||";}
			if($this->input->post('email') != "") {$data['email'] = $this->input->post('email');$historial.="Email@@@@$data[email]||";}
			if($this->input->post('idioma') != "") {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@@@$data[idioma]||";}
			if($this->input->post('id_pais') != "") {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@@@$data[id_pais]||";}


		    $id = $this->model_users->set_user('', $data,'insert');
			if (is_numeric($id)){
				// Guarda Usuario EAP ADMINISTRADOR
				 $data_eap = array(
				 	'id_usuario' => $id,
					'nombre' => $this->input->post('nombre').' '.$this->input->post('apellido')  ,
					'usuario'=>$this->input->post('username'),
					'tipo'=>4
				);
				$this->model_users->set_usereap_by_type(null,null,$data_eap,null,'insert');
				// Guarda Perfiles
				 $data_pro = array(
				 	'id_usuario' => $id,
					'id_perfil' => 1,
				);
				$this->model_users->set_user_profile($data_pro);

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				redirect('usuarios/ver/'.$id);
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}
	// Valores por DEFAULT

		$usuario = array(
		'username'=>'',
		'nombre'=>'',
		'apellido'=>'',
		'email'=>'',
		'id_usuario_tipo' => 0,
		'fecha_acceso'=>'',
		'ip_acceso'=>'',
		'fecha_vencimiento_password'=>date("Y-m-d H:i:s", strtotime("+3 Months")),
		'cambio_password'=> 1,
		'activo' => 1,
		'bloqueado'=>0,
		'idioma' => 'ES',
		'id_pais' => 13,
		'usuario_tipos' => 'Administrador',
		'usuario_perfiles' => ''
	);

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['usuario'] = $usuario;
	$data['content']='admin/usuarios/nuevo';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios GENERAL
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

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

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

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/nuevo_consultor')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$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');
			$data['fecha_vencimiento_password'] = $this->input->post('fecha_vencimiento_password');
			$data['cambio_password'] = $this->input->post('cambio_password');
			$data['activo'] = $this->input->post('activo');
			$data['password'] = $this->encrypt->encode($this->input->post('password'));

			if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
			if($this->input->post('apellido') != "") {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@@@$data[apellido]||";}
			if($this->input->post('username') != "") {$data['username'] = $this->input->post('username');$historial.="Usuario@@@@$data[username]||";}
			if($this->input->post('email') != "") {$data['email'] = $this->input->post('email');$historial.="Email@@@@$data[email]||";}
			if($this->input->post('idioma') != "") {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@@@$data[idioma]||";}
			if($this->input->post('id_pais') != "") {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@@@$data[id_pais]||";}

			// DATOS CONSULTOR
			$data_consultor = array();
			if($this->input->post('tipo') != ""){$data_consultor['tipo'] = $this->input->post('tipo');}
			if(($this->input->post('nombre') != "") or ($this->input->post('apellido') != "")) {$data_consultor['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != "") {$data_consultor['usuario'] = $this->input->post('username');}
			if($this->input->post('configuracion') != "") {$data_consultor['configuracion'] = $this->input->post('configuracion');$historial.="Cerrar Caso@@@@$data_consultor[configuracion]||";}
			if($this->input->post('abrir') != "") {$data_consultor['abrir'] = $this->input->post('abrir');$historial.="Reabir Caso@@@@$data_consultor[abrir]||";}
			if($this->input->post('exportar') != "") {$data_consultor['exportar'] = $this->input->post('exportar');$historial.="Exportar@@@@$data_consultor[exportar]||";}
			if($this->input->post('inicio') != "") {$data_consultor['inicio'] = $this->input->post('inicio');$historial.="Inicio@@@@".$this->dar_permisos_d($data_consultor['inicio'])."||";}
			if($this->input->post('cons') != "") {$data_consultor['cons'] = $this->input->post('cons');$historial.="Consultante@@@@".$this->dar_permisos_d($data_consultor['cons'])."||";}
			if($this->input->post('problema') != "") {$data_consultor['problema'] = $this->input->post('problema');$historial.="Problema@@@@".$this->dar_permisos_d($data_consultor['problema'])."||";}
			if($this->input->post('derivacion') != "") {$data_consultor['derivacion'] = $this->input->post('derivacion');$historial.="Derivacion@@@@".$this->dar_permisos_d($data_consultor['derivacion'])."||";}
			if($this->input->post('informes') != "") {$data_consultor['informes'] = $this->input->post('informes');$historial.="Informes@@@@".$this->dar_permisos_d($data_consultor['informes'])."||";}
			if($this->input->post('seguimiento') != "") {$data_consultor['seguimiento'] = $this->input->post('seguimiento');$historial.="Seguimiento@@@@".$this->dar_permisos_d($data_consultor['seguimiento'])."||";}
			if($this->input->post('encuesta') != "") {$data_consultor['encuesta'] = $this->input->post('encuesta');$historial.="Encuesta@@@@".$this->dar_permisos_d($data_consultor['encuesta'])."||";}
			if($this->input->post('usuarios') != "") {$data_consultor['usuarios'] = $this->input->post('usuarios');$historial.="Configuración@@@@$data_consultor[usuarios]||";}
			if($this->input->post('verprof') != "") {$data_consultor['verprof'] = $this->input->post('verprof');$historial.="Datos Profesionales@@@@$data_consultor[verprof]||";}

			$data_consultor_c = array();
			if($this->input->post('configuracion_graficos') != "") {$data_consultor_c['configuracion_graficos'] = $this->input->post('verprof');$historial.="Gráficos@@@@$data_consultor_c[configuracion_graficos]||";}
			if($this->input->post('configuracion_acciones_tipos') != "") {$data_consultor_c['configuracion_acciones_tipos'] = $this->input->post('configuracion_acciones_tipos');$historial.="Conf Tipos AP@@@@".$this->dar_permisos_d($data_consultor_c['configuracion_acciones_tipos'])."||";}
			if($this->input->post('configuracion_acciones') != "") {$data_consultor_c['configuracion_acciones'] = $this->input->post('configuracion_acciones');$historial.="Acciones Promoción@@@@".$this->dar_permisos_d($data_consultor_c['configuracion_acciones'])."||";}
			if($this->input->post('idioma') != "") {$data_consultor_c['configuracion_idioma'] = $this->input->post('idioma');}

			// GUARDA
		    $id = $this->model_users->set_user('', $data,'insert');
			if (is_numeric($id)){

				// Guarda Usuario EAP
				$data_consultor['id_usuario'] = $id;
				$this->model_users->set_usereap_by_type(null,null,$data_consultor,$data_consultor_c,'insert');

				// Guarda Perfiles
				 $data_pro = array(
				 	'id_usuario' => $id,
					'id_perfil' => 5,
				);
				$this->model_users->set_user_profile($data_pro);

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				redirect('usuarios/ver/'.$id);
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}
	// Valores por DEFAULT GENERAL
		$usuario = array(
		'username'=>'',
		'nombre'=>'',
		'apellido'=>'',
		'email'=>'',
		'id_usuario_tipo' => 0,
		'fecha_acceso'=>'',
		'ip_acceso'=>'',
		'fecha_vencimiento_password'=>date("Y-m-d H:i:s", strtotime("+3 Months")),
		'cambio_password'=> 1,
		'activo' => 1,
		'bloqueado'=>0,
		'idioma' => 'ES',
		'id_pais' => 13,
		'usuario_tipos' => 'Administrador',
		'usuario_perfiles' => '',
		'tipo'=>1
	);


	// Valores por DEFAULT CONSULTOR
		$usuario_consultor = array(
		'configuracion'=>'',
		'abrir'=>'',
		'exportar'=>'',
		'inicio'=>1,
		'cons' => 1,
		'problema'=>1,
		'derivacion'=>1,
		'informes'=>1,
		'seguimiento'=> 1,
		'encuesta' => 1,
		'usuarios'=>'',
		'verprof' => '',
		'configuracion_graficos'=>'',
		'configuracion_acciones_tipos'=>0,
		'configuracion_acciones' => 0);

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['usuario'] = $usuario;
	$data['usuario_consultor'] = $usuario_consultor;
	$data['content']='admin/usuarios/nuevo';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios PROFESIONAL
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

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

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

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/nuevo_profesional')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$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');
			$data['fecha_vencimiento_password'] = $this->input->post('fecha_vencimiento_password');
			$data['cambio_password'] = $this->input->post('cambio_password');
			$data['activo'] = $this->input->post('activo');
			$data['password'] = $this->encrypt->encode($this->input->post('password'));

			if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
			if($this->input->post('apellido') != "") {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@@@$data[apellido]||";}
			if($this->input->post('username') != "") {$data['username'] = $this->input->post('username');$historial.="Usuario@@@@$data[username]||";}
			if($this->input->post('email') != "") {$data['email'] = $this->input->post('email');$historial.="Email@@@@$data[email]||";}
			if($this->input->post('idioma') != "") {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@@@$data[idioma]||";}
			if($this->input->post('id_pais') != "") {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@@@$data[id_pais]||";}

			// DATOS PROFESIONAL
			$data_profesional = array();
			$data_profesional['estado2'] = 'Activo';
			if($this->input->post('tipo') != ""){$data_profesional['tipo'] = $this->input->post('tipo');}
			if(($this->input->post('nombre') != "") or ($this->input->post('apellido') != "")) {$data_profesional['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != "") {$data_profesional['usuario'] = $this->input->post('username');}
			if($this->input->post('especialidad') != "") {$data_profesional['especialidad'] = $this->input->post('especialidad');$historial.="Especialidad@@@@$data_profesional[especialidad]||";}
			if($this->input->post('fechadeinicio') != ""){$data_profesional['fechadeinicio'] = $this->input->post('fechadeinicio');$historial.="Fecha Inicio@@@@$data_profesional[fechadeinicio]||";}
			if($this->input->post('presentocv') != "") {$data_profesional['presentocv'] = $this->input->post('presentocv');$historial.="Presento CV@@@@$data_profesional[presentocv]||";}
			if($this->input->post('presentotitulo') != "") {$data_profesional['presentotitulo'] = $this->input->post('presentotitulo');$historial.="Presento Titulo@@@@$data_profesional[presentotitulo]||";}
			if($this->input->post('firmocontrato') != "") {$data_profesional['firmocontrato'] = $this->input->post('firmocontrato');$historial.="Firmo Contrato@@@@$data_profesional[firmocontrato]||";}
			if($this->input->post('zonasdecobertura') != "") {$data_profesional['zonasdecobertura'] = $this->input->post('zonasdecobertura');$historial.="Zonas de Cobertura@@@@$data_profesional[zonasdecobertura]||";}
			if($this->input->post('calle') != "") {$data_profesional['calle'] = $this->input->post('calle');$historial.="Calle@@@@$data_profesional[calle]||";}
			if($this->input->post('numero') != "") {$data_profesional['numero'] = $this->input->post('numero');$historial.="Número@@@@$data_profesional[numero]||";}
			if($this->input->post('piso') != "") {$data_profesional['piso'] = $this->input->post('piso');$historial.="Piso@@@@$data_profesional[piso]||";}
			if($this->input->post('unidad') != "") {$data_profesional['unidad'] = $this->input->post('unidad');$historial.="Unidad@@@@$data_profesional[unidad]||";}
			if($this->input->post('cp') != "") {$data_profesional['cp'] = $this->input->post('cp');$historial.="CP@@@@$data_profesional[cp]||";}
			if($this->input->post('localidad') != "") {$data_profesional['localidad'] = $this->input->post('localidad');$historial.="Localidad@@@@$data_profesional[localidad]||";}
			if($this->input->post('provincia') != "") {$data_profesional['provincia'] = $this->input->post('provincia');$historial.="Provincia@@@@$data_profesional[provincia]||";}
			if($this->input->post('pretelcons') != "") {$data_profesional['pretelcons'] = $this->input->post('pretelcons');$historial.="Tel Consultorio - Prefijo@@@@$data_profesional[pretelcons]||";}
			if($this->input->post('telcons') != "") {$data_profesional['telcons'] = $this->input->post('telcons');$historial.="Tel Consultorio - Número@@@@$data_profesional[telcons]||";}
			if($this->input->post('pretelpart') != "") {$data_profesional['pretelpart'] = $this->input->post('pretelpart');$historial.="Tel Particular - Prefijo@@@@$data_profesional[pretelpart]||";}
			if($this->input->post('telpart') != "") {$data_profesional['telpart'] = $this->input->post('telpart');$historial.="Tel Particular - Número@@@@$data_profesional[telpart]||";}
			if($this->input->post('pretelmovil1') != "") {$data_profesional['pretelmovil1'] = $this->input->post('pretelmovil1');$historial.="Tel Movil 1 - Prefijo@@@@$data_profesional[pretelmovil1]||";}
			if($this->input->post('telmovil1') != "") {$data_profesional['telmovil1'] = $this->input->post('telmovil1');$historial.="Tel Movil 1 - Número@@@@$data_profesional[telmovil1]||";}
			if($this->input->post('empresatelmovil1') != "") {$data_profesional['empresatelmovil1'] = $this->input->post('empresatelmovil1');$historial.="Tel Movil 1 - Empresa@@@@$data_profesional[empresatelmovil1]||";}
			if($this->input->post('alertatel1') != "") {$data_profesional['alertatel1'] = $this->input->post('alertatel1');$historial.="Tel Movil 1 - Alerta@@@@$data_profesional[alertatel1]||";}
			if($this->input->post('pretelmovil2') != "") {$data_profesional['pretelmovil2'] = $this->input->post('pretelmovil2');$historial.="Tel Movil 2 - Prefijo@@@@$data_profesional[pretelmovil2]||";}
			if($this->input->post('telmovil2') != "") {$data_profesional['telmovil2'] = $this->input->post('telmovil2');$historial.="Tel Movil 2 - Número@@@@$data_profesional[telmovil2]||";}
			if($this->input->post('empresatelmovil2') != "") {$data_profesional['empresatelmovil2'] = $this->input->post('empresatelmovil2');$historial.="Tel Movil 2 - Empresa@@@@$data_profesional[empresatelmovil2]||";}
			if($this->input->post('alertatel2') != "") {$data_profesional['alertatel2'] = $this->input->post('alertatel2');$historial.="Tel Movil 2 - Alerta@@@@$data_profesional[alertatel2]||";}
			if($this->input->post('email1') != "") {$data_profesional['email1'] = $this->input->post('email1');$historial.="E-Mail 1@@@@$data_profesional[email1]||";}
			if($this->input->post('alertamail1') != "") {$data_profesional['alertamail1'] = $this->input->post('alertamail1');$historial.="E-Mail 1 - Alerta@@@@$data_profesional[alertamail1]||";}
			if($this->input->post('email2') != "") {$data_profesional['email2'] = $this->input->post('email2');$historial.="E-Mail 2@@$unidad[email2]@@$data_profesional[email2]||";}
			if($this->input->post('alertamail2') != "") {$data_profesional['alertamail2'] = $this->input->post('alertamail2');$historial.="E-Mail 2 - Alerta@@@@$data_profesional[alertamail2]||";}
			if($this->input->post('skype') != "") {$data_profesional['skype'] = $this->input->post('skype');$historial.="Skype@@@@$data_profesional[skype]||";}
			if($this->input->post('honorarios1') != "") {$data_profesional['honorarios1'] = $this->input->post('honorarios1');$historial.="Honorarios Pactados - Hora Profesional@@@@$data_profesional[honorarios1]||";}
			if($this->input->post('fechah1') != "") {$data_profesional['fechah1'] = $this->input->post('fechah1');$historial.="Honorarios Pactados - Hora Profesional - Fecha@@@@$data_profesional[fechah1]||";}
			if($this->input->post('honorarios2') != "") {$data_profesional['honorarios2'] = $this->input->post('honorarios2');$historial.="Honorarios Pactados - Caso@@@@$data_profesional[honorarios2]||";}
			if($this->input->post('fechah2') !="") {$data_profesional['fechah2'] = $this->input->post('fechah2');$historial.="Honorarios Pactados - Caso - Fecha@@@@$data_profesional[fechah2]||";}
			if($this->input->post('honorarios3') != "") {$data_profesional['honorarios3'] = $this->input->post('honorarios3');$historial.="Honorarios Pactados - Entrevista Individual@@@@$data_profesional[honorarios3]||";}
			if($this->input->post('fechah3') != "") {$data_profesional['fechah3'] = $this->input->post('fechah3');$historial.="Honorarios Pactados - Entrevista Individual - Fecha@@@@$data_profesional[fechah3]||";}
			if($this->input->post('honorarios4') !="") {$data_profesional['honorarios4'] = $this->input->post('honorarios4');$historial.="Honorarios Pactados - Entrevista Grupal@@@@$data_profesional[honorarios4]||";}
			if($this->input->post('fechah4') != "") {$data_profesional['fechah4'] = $this->input->post('fechah4');$historial.="Honorarios Pactados - Entrevista Grupal - Fecha@@@@$data_profesional[fechah4]||";}
			if($this->input->post('honorarios5') != "") {$data_profesional['honorarios5'] = $this->input->post('honorarios5');$historial.="Honorarios Pactados - Capacitación@@@@$data_profesional[honorarios5]||";}
			if($this->input->post('fechah5') != "") {$data_profesional['fechah5'] = $this->input->post('fechah5');$historial.="Honorarios Pactados - Capacitación - Fecha@@@@$data_profesional[fechah5]||";}
			if($this->input->post('honorarios6') != "") {$data_profesional['honorarios6'] = $this->input->post('honorarios6');$historial.="Honorarios Pactados - Incidente Crítico@@@@$data_profesional[honorarios6]||";}
			if($this->input->post('fechah6') != "") {$data_profesional['fechah6'] = $this->input->post('fechah6');$historial.="Honorarios Pactados - Incidente Crítico - Fecha@@@@$data_profesional[fechah6]||";}
			if($this->input->post('honorarios7') != "") {$data_profesional['honorarios7'] = $this->input->post('honorarios7');$historial.="Honorarios Pactados - Talleres Grupales@@@@$data_profesional[honorarios7]||";}
			if($this->input->post('fechah7') != "") {$data_profesional['fechah7'] = $this->input->post('fechah7');$historial.="Honorarios Pactados - Talleres Grupales - Fecha@@@@$data_profesional[fechah7]||";}
			if($this->input->post('cuit') != "") {$data_profesional['cuit'] = $this->input->post('cuit');$historial.="CUIT@@@@$data_profesional[cuit]||";}
			if($this->input->post('formadepago') != "") {$data_profesional['formadepago'] = $this->input->post('formadepago');$historial.="Forma de Pago@@@@$data_profesional[formadepago]||";}
			if($this->input->post('banco') != "") {$data_profesional['banco'] = $this->input->post('banco');$historial.="Banco@@@@$data_profesional[banco]||";}
			if($this->input->post('sucursal') != "") {$data_profesional['sucursal'] = $this->input->post('sucursal');$historial.="Sucursal@@@@$data_profesional[sucursal]||";}
			if($this->input->post('numerodecuenta') != "") {$data_profesional['numerodecuenta'] = $this->input->post('numerodecuenta');$historial.="N° de Cuenta@@@@$data_profesional[numerodecuenta]||";}
			if($this->input->post('nombredecuenta') != "") {$data_profesional['nombredecuenta'] = $this->input->post('nombredecuenta');$historial.="Nombre de la cuenta Titular@@@@$data_profesional[nombredecuenta]||";}
			if($this->input->post('cbu') != "") {$data_profesional['cbu'] = $this->input->post('cbu');$historial.="CBU@@@@$data_profesional[cbu]||";}
			if($this->input->post('observaciones') != "") {$data_profesional['observaciones'] = $this->input->post('observaciones');$historial.="Observaciones@@@@$data_profesional[observaciones]||";}


			// GUARDA
		    $id = $this->model_users->set_user('', $data,'insert');
			if (is_numeric($id)){
				// Guarda Usuario EAP
				$data_profesional['id_usuario'] = $id;
				$this->model_users->set_usereap_by_type(null,null,$data_profesional,null,'insert');
				// var_dump($data_profesional);
				// Guarda Perfiles
				 $data_pro = array(
				 	'id_usuario' => $id,
					'id_perfil' => 4,
				);
				$this->model_users->set_user_profile($data_pro);

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				redirect('usuarios/ver/'.$id);
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}
	// Valores por DEFAULT GENERAL
		$usuario = array(
		'username'=>'',
		'nombre'=>'',
		'apellido'=>'',
		'email'=>'',
		'id_usuario_tipo' => 0,
		'fecha_acceso'=>'',
		'ip_acceso'=>'',
		'fecha_vencimiento_password'=>date("Y-m-d H:i:s", strtotime("+3 Months")),
		'cambio_password'=> 1,
		'activo' => 1,
		'bloqueado'=>0,
		'idioma' => 'ES',
		'id_pais' => 13,
		'usuario_tipos' => 'Profesional',
		'usuario_perfiles' => '',
		'tipo'=>2
	);


	// Valores por DEFAULT PROFESIONAL
		$usuario_profesional = array(
		'especialidad'=>'',
		'fechadeinicio'=>'',
		'presentocv'=>'',
		'presentotitulo'=>'',
		'firmocontrato' => '',
		'zonasdecobertura'=>'',
		'calle'=>'',
		'numero'=>'',
		'piso'=>'',
		'unidad' =>'',
		'cp'=>'',
		'localidad' => '',
		'provincia'=>'',
		'pretelcons'=>'',
		'telcons'=>'',
		'pretelpart'=>'',
		'telpart'=>'',
		'pretelmovil1'=>'',
		'telmovil1' => '',
		'empresatelmovil1'=>'',
		'alertatel1'=>'',
		'alertatel1'=>'',
		'pretelmovil2'=>'',
		'telmovil2' =>'',
		'empresatelmovil2'=>'',
		'alertatel2' => '',
		'email1'=>'',
		'alertamail1'=>'',
		'email2'=>'',
		'alertamail2'=>'',
		'skype'=>'',
		'honorarios1' =>'',
		'fechah1'=>'',
		'honorarios2' => '',
		'fechah2'=>'',
		'honorarios3'=>'',
		'fechah3'=>'',
		'honorarios4'=>'',
		'fechah4'=>'',
		'honorarios5'=>'',
		'fechah5' => '',
		'honorarios6'=>'',
		'fechah6'=>'',
		'honorarios7'=>'',
		'fechah7'=>'',
		'cuit'=>'',
		'formadepago' =>'',
		'banco'=>'',
		'sucursal' => '',
		'numerodecuenta'=>'',
		'nombredecuenta'=>'',
		'cbu' =>'',
		'observaciones'=>'');

	$data['paises'] = $this->countries_model->get_countries(1);
	$data['especialidades'] = $this->model_users->get_specialities();
	$data['usuario'] = $usuario;
	$data['usuario_profesional'] = $usuario_profesional;
	$data['content']='admin/usuarios/nuevo';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios CLIENTE
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

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

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

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/nuevo_cliente')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$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');
			$data['fecha_vencimiento_password'] = $this->input->post('fecha_vencimiento_password');
			$data['cambio_password'] = $this->input->post('cambio_password');
			$data['activo'] = $this->input->post('activo');
			$data['password'] = $this->encrypt->encode($this->input->post('password'));

			if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
			if($this->input->post('apellido') != "") {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@@@$data[apellido]||";}
			if($this->input->post('username') != "") {$data['username'] = $this->input->post('username');$historial.="Usuario@@@@$data[username]||";}
			if($this->input->post('email') != "") {$data['email'] = $this->input->post('email');$historial.="Email@@@@$data[email]||";}
			if($this->input->post('idioma') != "") {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@@@$data[idioma]||";}
			if($this->input->post('id_pais') != "") {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@@@$data[id_pais]||";}

			// DATOS CLIENTE
			$data_cliente = array();
			if($this->input->post('tipo') != ""){$data_cliente['tipo'] = $this->input->post('tipo');}
			if(($this->input->post('nombre') != "") or ($this->input->post('apellido') != "")) {$data_cliente['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != "") {$data_cliente['usuario'] = $this->input->post('username');}
			if($this->input->post('grupo') != "") {$data_cliente['grupo'] = $this->input->post('grupo');$data_cliente['grupobuscado'] = $this->input->post('grupo');$historial.="Grupo@@@@$data_cliente[grupo]||";}
			if($this->input->post('empresa') != "") {$data_cliente['empresa'] = $this->input->post('empresa');$data_cliente['empresabuscado'] = $this->input->post('empresa');$historial.="Empresa@@@@$data_cliente[empresa]||";}

			$data_cliente_c = array();
			if($this->input->post('idioma') != "") {$data_cliente_c['configuracion_idioma'] = $this->input->post('idioma');}


		    $id = $this->model_users->set_user('', $data,'insert');
			if (is_numeric($id)){
				// Guarda Usuario EAP
				$data_cliente['id_usuario'] = $id;
				$this->model_users->set_usereap_by_type(null,null,$data_cliente,$data_cliente_c,'insert');
				// var_dump($data_cliente);
				// Guarda Perfiles
				 $data_pro = array(
				 	'id_usuario' => $id,
					'id_perfil' => 6,
				);
				$this->model_users->set_user_profile($data_pro);

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

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				redirect('usuarios/ver/'.$id);
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}
	// Valores por DEFAULT GENERAL
		$usuario = array(
		'username'=>'',
		'nombre'=>'',
		'apellido'=>'',
		'email'=>'',
		'id_usuario_tipo' => 0,
		'fecha_acceso'=>'',
		'ip_acceso'=>'',
		'fecha_vencimiento_password'=>date("Y-m-d H:i:s", strtotime("+3 Months")),
		'cambio_password'=> 1,
		'activo' => 1,
		'bloqueado'=>0,
		'idioma' => 'ES',
		'id_pais' => 13,
		'usuario_tipos' => 'Cliente',
		'usuario_perfiles' => '',
		'tipo'=>3);


	// Valores por DEFAULT CLIENTE
		$usuario_cliente = array(
		'grupo'=>'',
		'empresa'=>'');


	$data['paises'] = $this->countries_model->get_countries(1);
	$data['empresas_grupos'] = $this->companies_model->get_companies_groups();
	$data['usuario'] = $usuario;
	$data['usuario_cliente'] = $usuario_cliente;
	$data['content']='admin/usuarios/nuevo';
	$this->load->view('v_content',$data);

	}

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

	// Usuarios CLIENTE
	$desde = ($this->session->userdata('filtro_usuarios_pagina') ? "/".$this->session->userdata('filtro_usuarios_pagina'):"") ;

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

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

	if (!empty($_POST))
	{
	   if($this->form_validation->run('usuarios/nuevo_cliente_front')){

		   	// CARGO LOS POST PARA PASAR AL MODELO SOLO SI HUBO CAMBIOS
			$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');
			$data['fecha_vencimiento_password'] = $this->input->post('fecha_vencimiento_password');
			$data['cambio_password'] = $this->input->post('cambio_password');
			$data['activo'] = $this->input->post('activo');
			$data['password'] = $this->encrypt->encode($this->input->post('password'));

			if($this->input->post('nombre') != "") {$data['nombre'] = $this->input->post('nombre');$historial.="Nombre@@@@$data[nombre]||";}
			if($this->input->post('apellido') != "") {$data['apellido'] = $this->input->post('apellido');$historial.="Apellido@@@@$data[apellido]||";}
			if($this->input->post('username') != "") {$data['username'] = $this->input->post('username');$historial.="Usuario@@@@$data[username]||";}
			if($this->input->post('email') != "") {$data['email'] = $this->input->post('email');$historial.="Email@@@@$data[email]||";}
			if($this->input->post('idioma') != "") {$data['idioma'] = $this->input->post('idioma');$historial.="Idioma@@@@$data[idioma]||";}
			if($this->input->post('id_pais') != "") {$data['id_pais'] = $this->input->post('id_pais');$historial.="Pais@@@@$data[id_pais]||";}

			// DATOS CLIENTE
			$data_cliente = array();
			if($this->input->post('tipo') != ""){$data_cliente['tipo'] = $this->input->post('tipo');}
			if(($this->input->post('nombre') != "") or ($this->input->post('apellido') != "")) {$data_cliente['nombre'] = $this->input->post('nombre').' '.$this->input->post('apellido');}
			if($this->input->post('username') != "") {$data_cliente['usuario'] = $this->input->post('username');}
			if($this->input->post('grupo') != "") {$data_cliente['grupo'] = $this->input->post('grupo');$data_cliente['grupobuscado'] = $this->input->post('grupo');$historial.="Grupo@@@@$data_cliente[grupo]||";}
			if($this->input->post('empresa') != "") {$data_cliente['empresa'] = $this->input->post('empresa');$data_cliente['empresabuscado'] = $this->input->post('empresa');$historial.="Empresa@@@@$data_cliente[empresa]||";}

			$data_cliente_c = array();
			if($this->input->post('idioma') != "") {$data_cliente_c['configuracion_idioma'] = $this->input->post('idioma');}


		    $id = $this->model_users->set_user('', $data,'insert');
			if (is_numeric($id)){
				// Guarda Usuario EAP
				$data_cliente['id_usuario'] = $id;
				$this->model_users->set_usereap_by_type(null,null,$data_cliente,$data_cliente_c,'insert');

				// var_dump($data_cliente);
				// Guarda Perfiles - =?? POR AHORA SIN PERFIL
				/* $data_pro = array(
				 	'id_usuario' => $id,
					'id_perfil' => 6,
				);
				$this->model_users->set_user_profile($data_pro);
				*/
				// Guardar LOG de Modificacion
				 $data_log = array(
				 	'id_usuario' => $id,
					'fecha' => date("Y-m-d H:i:s"),
					'modificador' => $this->session->userdata('usuario_nombre_apellido'),
					'modificaciones' => $historial);

				$this->model_users->set_user_log($data_log);
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado'));
				redirect('usuarios/ver/'.$id);
			} else {
				$this->session->set_flashdata('message', $this->lang->line('eap_usuarios_msg_guardado_error'));
			}
	   }
	}
	// Valores por DEFAULT GENERAL
		$usuario = array(
		'username'=>'',
		'nombre'=>'',
		'apellido'=>'',
		'email'=>'',
		'id_usuario_tipo' => 0,
		'fecha_acceso'=>'',
		'ip_acceso'=>'',
		'fecha_vencimiento_password'=>date("Y-m-d H:i:s", strtotime("+5 Years")),
		'cambio_password'=> 0,
		'activo' => 1,
		'bloqueado'=>0,
		'idioma' => 'ES',
		'id_pais' => 13,
		'usuario_tipos' => 'Cliente Front',
		'usuario_perfiles' => '',
		'tipo'=>5);


	// Valores por DEFAULT CLIENTE
		$usuario_cliente = array(
		'grupo'=>'',
		'empresa'=>'');


	$data['paises'] = $this->countries_model->get_countries(1);
	$data['empresas_grupos'] = $this->companies_model->get_companies_groups();
	$data['usuario'] = $usuario;
	$data['usuario_cliente'] = $usuario_cliente;
	$data['content']='admin/usuarios/nuevo';
	$this->load->view('v_content',$data);

	}

function validar_unico ($nombre=null){

   $id=$this->input->post('id');

   if ($this->model_users->is_unique($id,'username',$nombre)) {
	   return TRUE;
   } else {
	   $this->form_validation->set_message('validar_unico', $this->lang->line('eap_usuarios_msg_validar_unico').'==>'.$nombre);
	   return FALSE;
   }
}

function validar_unico_email ($email=null){

   $id=$this->input->post('id');

   if ($this->model_users->is_unique($id,'email',$email)) {
	   return TRUE;

   } else {
	   $this->form_validation->set_message('validar_unico_email', $this->lang->line('eap_usuarios_msg_validar_unico_email').'==>'.$email);
	   return FALSE;
   }
}


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

	$this->load->model('login_attempts');
	$this->load->config('sec_validation', TRUE);

	$data['ingresos'] = $this->login_attempts->get_attempt_list();
	$data['content']='admin/usuarios/ingresos_lista';
	$data['max_attempts'] = $this->config->item('login_max_attempts', 'sec_validation');
	$this->load->view('v_content',$data);

	}

function ingresos_ver($ip_address = null){
	// Valida Acceso
	$this->check_access();

	// Sin parametro ***** FALTA SI NO EXISTE LA IP
	if (is_null($ip_address)) {
		$this->session->set_flashdata('message_error', 'Error al visualzar ingresos.');
		redirect('usuarios/ingresos_lista');
	  }

	$this->load->model('login_attempts');
	$this->load->config('sec_validation', TRUE);

	$data['ingresos'] = $this->login_attempts->get_attempt_list($ip_address);
	$data['content']='admin/usuarios/ingresos_ver';
	$data['max_attempts'] = $this->config->item('login_max_attempts', 'sec_validation');
	$data['ip_address']=$ip_address;
	$this->load->view('v_content',$data);

	}

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

	// Sin parametro ***** FALTA SI NO EXISTE LA IP
	if (is_null($ip_address)) {
		$this->session->set_flashdata('message_error', 'Error al limpiar ingresos.');
		redirect('usuarios/ingresos_lista');
	  }

	$this->load->model('login_attempts');

	$this->session->set_flashdata('message', 'Ingresos Fallidos Borrados para IP ==> '.$ip_address.'.');
	$this->login_attempts->clear_attempts($ip_address,'',0);
	redirect('usuarios/ingresos_lista');

	}

function dar_permisos_d($id=null){
	switch ($id) {
		case "0" : return "Sin Acceso";
		case "1" : return "Ver";
		case "2" : return "Ver y Editar";
		case "3" : return "Editar Siempre";
		default : return "";
	}
	}
}
