<?php 
defined('BASEPATH') OR exit('No direct script access allowed');
header('Access-Control-Allow-Origin: *');

class Huespedes extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    
        //cargar la base de datos
        $this->load->database();
        //parser de json y xml
        $this->load->library("parser");

        //$this->load->model('Sesion_Model');
        $this->load->library('form_validation');
        //$this->load->library("Form_validation");
        $this->load->helper("url");
        $this->load->helper('form');
        $this->load->helper('text');
        
        //Cargando los modelos para gestion de la data sistema pena
        $this->load->model('Huespedes_Model');
        
    }
    
    //Listar Huespedes
    public function listHuespedes($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelo
        $this->load->model('Huespedes_Model');
        $this->load->model('Tipos_Model');
        
        //Configurndo el array para consulta de huesped
		$dato = array('1','null','null','null','null','null'); 
        $query = $this->Huespedes_Model->getHuespedesforParameter(null,null,$dato);
       
        //Configurando el array para consulta de Tipos Documentos
		$datotd = array('1', 'null');
        $tipodoc = $this->Tipos_Model->getTipoDoc($datotd);

		//Configurando el array para consulta de Paises
		$datops = array('1', 'null');
        $paises = $this->Tipos_Model->getPaises($datops);

		//Configurando el array para consulta de Ciudades
		$datocd = array('1', 'null', 'null', 'null');
        $ciudades = $this->Tipos_Model->getCiudades($datocd);

        //Configurando el array para consulta de Tipo ocupaciones
		$datooc = array('2', 'null');
        $ocupaciones = $this->Tipos_Model->getOcupaciones($datooc);
      
		//envio el arreglo
		$data['huespedes']   = $query;
		$data['tipodoc']     = $tipodoc;
		$data['paises']      = $paises;
		$data['ciudades']    = $ciudades;
		$data['ocupaciones'] = $ocupaciones;
        $data['titulo']      = 'Huespedes';
		$data['sidebar']     = 'Lista de Huespedes';

		//Cargar los permisos
        $this->load->model('Security_Model');
        $profile = $this->session->userdata('profile');
        $modulo  = "all";
        $datos   = array('1', $profile, $modulo); 
		$permiso = $this->Security_Model->getAllSecurityProfile($datos);
        $data['permisos'] = $permiso;
		
		$this->load->view('admin/Huespedes/list', $data);
        
    }

    //Buscar Huespedes por parametro ok
    public function searchHuespedes()
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//cargr Modelos
        $this->load->model('Huespedes_Model');
        
        //Captutando los datos de busqueda
        $Opcion         = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
        $Identificacion = $this->input->post('Identificacion')==''?'null':$this->input->post('Identificacion');
        $Nombre         = $this->input->post('Nombre')==''?'null':$this->input->post('Nombre');
        $Apellido       = $this->input->post('Apellido')==''?'null':$this->input->post('Apellido');

		//Configurndo el array para consulta de huesped
		$dato = array($Opcion,'null', $Identificacion, $Nombre, $Apellido,'null'); 
		$query = $this->Huespedes_Model->getHuespedesforParameter(null,null,$dato);
        
        
		//Enviar Arreglo
        echo json_encode($query);
    }

	//Buscar Huesped por parametro ok
	public function searchHuesped()
	{
      
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		}

		//cargr Modelos
        $this->load->model('Huespedes_Model');
        $this->load->model('Vehiculos_Model');

		//Captutando los datos de busqueda
        $Opcion = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
        $Ident  = $this->input->post('Ident')==''?'null':$this->input->post('Ident');
        $Movil  = $this->input->post('Movil')==''?'null':$this->input->post('Movil');
        $Placa  = "'".strval($this->input->post('Placa')==''?'null':$this->input->post('Placa'))."'";

		if($Placa != 'null')
		{
			$datov = array('12','null',$Placa,'null','null','null','null','null','null');
			$placa = $this->Vehiculos_Model->getVehiculosforParameter(null, null, $datov);
				foreach($placa as $k1) {
					$Ident = $k1['Identificacion'];
				}

			//Configurndo el array para consulta de huesped
			$dato = array($Opcion, 'null', $Ident, 'null', 'null', $Movil);
			$huesped = $this->Huespedes_Model->getHuespedesforParameter(null, null, $dato);

		}else{

			//Configurndo el array para consulta de huesped
			$dato = array($Opcion, 'null', $Ident, 'null', 'null', $Movil);
			$huesped = $this->Huespedes_Model->getHuespedesforParameter(null, null, $dato);
				// foreach($huesped as $k1) {
				// 	$Ident = $k1->Identificacion;
				// }
			
		}

        //retornar los valores
        echo json_encode($huesped);
	}

    //Update Huespedes ok
    public function updateHuespedes()
    {     
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        } 

        date_default_timezone_set("America/Bogota");
        setlocale(LC_ALL,"es_CO");

        $meses = array("01","02","03","04","05","06","07","08","09","10","11","12");
        $Date = (date('Y')."-".$meses[date('n')-1]."-".date('d'));  
        $Time = (date('H').":".date('i').":".date('s'));  

        //Cargar Modal
        $this->load->model('Huespedes_Model');
        $this->load->model('Bitacora_Model');

        //Solo los datos validos  
		$Huesped        = $this->input->post('Huesped')==''?null:$this->input->post('Huesped');
		$Nombres        = "'".strval($this->input->post('Nombres')==''?null:$this->input->post('Nombres'))."'";
		$Apellidos      = "'".strval($this->input->post('Apellidos')==''?null:$this->input->post('Apellidos'))."'";
		$TipoDocumento  = $this->input->post('TipoDocumento')==''?null:$this->input->post('TipoDocumento');
		$Identificacion = $this->input->post('Identificacion')==''?null:$this->input->post('Identificacion');
		$FechaNac       = "'".strval($this->input->post('FechaNac')==''?null:$this->input->post('FechaNac'))."'";
		$LugarNac       = $this->input->post('LugarNac')==''?null:$this->input->post('LugarNac');
		$Genero         = $this->input->post('Genero')==''?null:$this->input->post('Genero');
		$Telefono       = "'".strval($this->input->post('Telefono')==''?null:$this->input->post('Telefono'))."'";
		$Movil          = "'".strval($this->input->post('Movil')==''?null:$this->input->post('Movil'))."'";
		$Nacionalidad   = $this->input->post('Nacionalidad')==''?null:$this->input->post('Nacionalidad');
		$Ocupacion      = $this->input->post('Ocupacion')==''?null:$this->input->post('Ocupacion');
		$Email          = "'".strval($this->input->post('Email')==''?null:$this->input->post('Email'))."'";
		$CiudadResidencia = $this->input->post('CiudadResidencia')==''?null:$this->input->post('CiudadResidencia');
		$CiudadProcedencia = $this->input->post('CiudadProcedencia')==''?null:$this->input->post('CiudadProcedencia');
        $Direccion      = "'".strval($this->input->post('Direccion')==''?null:$this->input->post('Direccion'))."'";
        // $Placa          = $this->input->post('Placa')==''?null:$this->input->post('Placa');
		 
		$IdUsuario      = $this->session->userdata('iduser');

		//Arreglo Principal
		$data = array(
            'IdHuesped'   	    => $Huesped, 
            'Nombres'      	    => $Nombres, 
			'Apellidos'         => $Apellidos, 
			'IdTipoDocumento'   => $TipoDocumento, 
			'Identificacion'    => $Identificacion, 
			'FechaNac'          => $FechaNac, 
			'LugarNac'          => $LugarNac, 
			'Genero'            => $Genero, 
			'Telefono'          => $Telefono, 
			'Movil'             => $Movil, 
			'Nacionalidad'      => $Nacionalidad, 
			'Ocupacion'         => $Ocupacion, 
			'Email'             => $Email,          
			'CiudadResidencia'  => $CiudadResidencia,          
			'CiudadProcedencia' => $CiudadProcedencia,
			'Direccion'         => $Direccion  
        );
     	
		//Arreglo Bitacora
        $datob = array( 
			'IdEvento'  => '9', 
            'Fecha'     => $Date,
            'Hora'      => $Time, 
            'IdUsuario' => $IdUsuario
		);
		
        //validar si existe el registro en la base de datos
        $resultado=$this->Huespedes_Model->updateHuespedes($data);
        
        if($resultado)
        {   
            $this->Bitacora_Model->saveBitacora($datob);
            print_r(json_encode(array("res"=>"ok","msg"=>"Huésped actualizado satisfactoriamente")));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"El huésped no existe")));
             
        }
            
    }

	//Insertar Nueva Huespedes
    public function insertHuespedes()
    {     
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        } 

        date_default_timezone_set("America/Bogota");
        setlocale(LC_ALL,"es_CO");

        $meses = array("01","02","03","04","05","06","07","08","09","10","11","12");
        $Date = (date('Y')."-".$meses[date('n')-1]."-".date('d'));  
        $Time = (date('H').":".date('i').":".date('s'));  


		//Cargar Modal
        $this->load->model('Huespedes_Model');
        $this->load->model('Bitacora_Model');
        
        //Solo los datos validos 
		$Opcion            = $this->input->post('Opcion')==''?null:$this->input->post('Opcion');
		$Nombres           = "'".strval($this->input->post('Nombres')==''?null:$this->input->post('Nombres'))."'";
		$Apellidos         = "'".strval($this->input->post('Apellidos')==''?null:$this->input->post('Apellidos'))."'";
		$TipoDocumento     = $this->input->post('TipoDocumento')==''?null:$this->input->post('TipoDocumento');
		$Identificacion    = $this->input->post('Identificacion')==''?null:$this->input->post('Identificacion');
		$FechaNac          = "'".strval($this->input->post('FechaNac')==''?null:$this->input->post('FechaNac'))."'";
		$LugarNac          = $this->input->post('LugarNac')==''?null:$this->input->post('LugarNac');
		$Genero            = $this->input->post('Genero')==''?null:$this->input->post('Genero');
		$Telefono          = "'".strval($this->input->post('Telefono')==''?null:$this->input->post('Telefono'))."'";
		$Movil             = "'".strval($this->input->post('Movil')==''?null:$this->input->post('Movil'))."'";
		$Nacionalidad      = $this->input->post('Nacionalidad')==''?null:$this->input->post('Nacionalidad');
		$IdOcupacion       = $this->input->post('IdOcupacion')==''?null:$this->input->post('IdOcupacion');
		$Email             = "'".strval($this->input->post('Email')==''?null:$this->input->post('Email'))."'";
		$CiudadResidencia  = $this->input->post('CiudadResidencia')==''?null:$this->input->post('CiudadResidencia');
		$CiudadProcedencia = $this->input->post('CiudadProcedencia')==''?null:$this->input->post('CiudadProcedencia');
		$Direccion         = "'".strval($this->input->post('Direccion')==''?null:$this->input->post('Direccion'))."'";
		 
		$IdUsuario      = $this->session->userdata('iduser');

		//Arreglo Principal
		$data = array(
            'Opcion'            => $Opcion,
            'Nombres'      	    => $Nombres, 
			'Apellidos'         => $Apellidos, 
			'IdTipoDocumento'   => $TipoDocumento, 
			'Identificacion'    => $Identificacion, 
			'FechaNac'          => $FechaNac, 
			'LugarNac'          => $LugarNac, 
			'Genero'            => $Genero, 
			'Telefono'          => $Telefono, 
			'Movil'             => $Movil, 
			'Nacionalidad'      => $Nacionalidad, 
			'IdOcupacion'       => $IdOcupacion, 
			'Email'             => $Email,          
			'CiudadResidencia'  => $CiudadResidencia,          
			'CiudadProcedencia' => $CiudadProcedencia,
			'Direccion'         => $Direccion          
        );
 
        
		//Arreglo Bitacota
        $datob = array( 'IdEvento'  => '8', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);
		
        //validar si existe el registro en la base de datos
        $dato = array('2','null', $Identificacion, 'null', 'null','null'); 
        $resultado=$this->Huespedes_Model->getHuespedesforParameter(null,null,$dato);

        if(count($resultado)>0)
        {
            print_r(json_encode(array("res"=>"bad","msg"=>"Huesped no se puede crear, ya existe")));

        }else{
			$this->Huespedes_Model->saveHuespedes($data);
			
			//Recuperar ultimo id Guardado
			$query = $this->db->query("SELECT MAX(IdHuesped) AS Max from Huesped h");
			$rta = $query->result();
			$HuespedId=($rta[0]->Max);
			
			$this->Bitacora_Model->saveBitacora($datob);
			print_r(json_encode(array("res"=>"ok","msg"=>"Huesped creado satisfactoriamente","id"=>$HuespedId)));      

		}
    }

	// //Eliminar Huespedes
    // public function deleteHuespedes($Codigo_habitacion)
    // {            
    //     if ($this->session->userdata('iduser')=='') {
    //         redirect(base_url().'/admin');
    //     } 

    //     date_default_timezone_set("America/Bogota");
    //     setlocale(LC_ALL,"es_CO");

    //     $meses = array("01","02","03","04","05","06","07","08","09","10","11","12");
    //     $Date = (date('Y')."-".$meses[date('n')-1]."-".date('d'));  
    //     $Time = (date('H').":".date('i').":".date('s')); 
        
	// 	$this->load->model('Huespedes_Model');
    //     $this->load->model('Bitacora_Model');
        
    //     $Codigo_habitacion = $this->session->userdata('iduser');
        
    //     $datab = array(
    //         'IdEvento'  => '4', 
    //         'Codigo_habitacion' => $Codigo_habitacion
    //     );
        
    //     //Llamar el Procedimiento
    //     $Huespedes = $this->Huespedes_Model->deleteHuespedes($Codigo_habitacion);
        
    //     if($Huespedes)
    //     {   
    //         $this->Bitacora_Model->saveBitacora($datab);
    //         print_r(json_encode(array("res"=>"ok","msg"=>"Habitación Elimindo Satisfactoriamente")));
             
    //     }else{
            
    //         print_r(json_encode(array("res"=>"bad","msg"=>"Habitación No Eliminado")));
              
    //     }
    
    // }

}
