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

class Check 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('Habitaciones_Model');
        $this->load->model('Check_Model');
        $this->load->model('Reservas_Model');

    }
    
	//Listar Reservas para check ok
    public function listCheckIn($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        // $this->load->model('Habitaciones_Model');
        $this->load->model('Check_Model');

        $fecha = date("Y-m-d");

		//Configurando el array para consulta de Reserva
        $dato = array('1', 'null', 'null', 'null', 'null', 'null', 'null', 'null','null','null'); 
        $query = $this->Check_Model->getCheckforParameter(null,null,$dato);

		//Configurando el array para consultar el Hotel
		$hoteles = $this->session->userdata('hoteles');

		//Enviar Arreglo
		$data['reserva'] = $query;
		$data['hoteles'] = $hoteles;

		//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/CheckIn/list',$data);
    }

	//Listar Reservas para check
    public function listCheckOut($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        $this->load->model('Habitaciones_Model');
        $this->load->model('Check_Model');

		// $IdEstablecimiento  = $this->input->post('IdEstablecimiento')==''?null:$this->input->post('IdEstablecimiento');
        $fecha = date("Y-m-d");

		//Configurando el array para consulta de Reserva
        // $dato = array('2','null','null',$fecha,'null','null','null','null','null',$IdEstablecimiento); 
        // $query = $this->Check_Model->getCheckforParameter(null,null,$dato);

		//Configurando el array para consultar el Hotel
		$hoteles = $this->session->userdata('hoteles');

		//Enviar Arreglo
		// $data['reserva'] = $query;
		$data['hoteles'] = $hoteles;

		//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/CheckOut/list',$data);
    }


	//Editar Reservas ejecutada desde CheckIn
	public function editCheckIn($Reserva)
	{            
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		} 
 
		//Cargar Modelos
		$this->load->model('Reservas_Model');
		$this->load->model('Huespedes_Model');
		$this->load->model('Acompanantes_Model');
		$this->load->model('Establecimientos_Model');
		$this->load->model('Habitaciones_Model');
        $this->load->model('Tipos_Model');
        $this->load->model('TipoOcupacion_Model');
		$this->load->model('Generales_Model');
        $this->load->model('Vehiculos_Model');
		
		//Configurando el array para consulta de Resevas
		$dato = array('2',$Reserva,'null','null','null','null','null','null','null','null'); 
        $reservas = $this->Reservas_Model->getReservasforParameter(null,null,$dato);
		foreach($reservas as $k1) 
		{
			$vehiculoId   = "'".strval($k1['IdVehiculo'])."'";
			$HotelId      = $k1['IdEstablecimiento'];
		}
			
		//Configurando el array para consulta de Tipos Documentos
		$datotd = array('1','null');
        $tipodoc = $this->Tipos_Model->getTipoDoc($datotd);

		//Configurando el array para consulta estados
		$Info = 'RESERVA';
		$Info = "'".strval($Info)."'";
		$datoes = array('1','null',$Info);
        $estadoR = $this->Tipos_Model->getEstados($datoes);

		//Configurando el array para consulta de Tipos Documentos
		$datoocu = array('2','null');
        $ocupaciones = $this->Tipos_Model->getTipoDoc($datoocu);

		//Configurando el array para consulta de motivos viaje
		$datomv = array('3','null');
        $motivo = $this->Tipos_Model->getMotivosViaje($datomv);

		//Configurando el array para consulta de medios de pago
		$datomp = array('4', 'null');
        $mediopago = $this->Tipos_Model->getMedioPago($datomp);

		//Configurando el array para consulta de medios de pago
		$datotf  = array('5', 'null');
        $tipofac = $this->Tipos_Model->getTipoFac($datotf);

		//Configurando el array para consulta de Paises
		$datops = array('1', 'null');
        $paises = $this->Tipos_Model->getPaises($datops);
		
		//Configurando el array para consulta de Departamentos
		$datodt = array('3', 'null','null');
        $departamentos = $this->Tipos_Model->getDepartamentos($datodt);
		
		//Configurando el array para consulta de Ciudades
		$datocd = array('3', 'null', 'null');
        $ciudades = $this->Tipos_Model->getDepartamentos($datocd);

		//Configurando el array para consulta de Establecimientos
		$datoht = array('1','null','null', 'null');
		$hotel = $this->Establecimientos_Model->getEstablecimientosforParameter(null,null,$datoht);

		//Configurando el array para consulta de habitacion
		$datohb = array('2',$HotelId,'null','null','null','null','null','null'); 
	   	$habitacion = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$datohb);

		//Configurando el array para consulta de Tipo de ocupación
		$datoto = array('6','null'); 		
		$tipoocupacion = $this->TipoOcupacion_Model->getTipoOcupacion($datoto);

		//Configurando el array para consulta los vehiculos
		$datovh = array('1',$vehiculoId,'null','null','null');
		$vehiculo = $this->Vehiculos_Model->getVehiculosId(null,null,$datovh);
	
		//Configurando el array para el tipo de vehiculo
		$datotv = array('5','null','null'); 		
	   	$tipov = $this->Vehiculos_Model->getVehiculosTipos(null,null,$datotv);

		//Configurando el array para las marcas de los vehiculos
		$datom = array('2','null','null','null','null','null','null','null','null'); 
		$marca = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datom);
		
		//Configurando el array para los colores de los vehiculos
		$datoc = array('3','null','null','null','null','null','null','null','null'); 
        $color = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datoc);

		//Configurando el array para consulta de precios habitaciones
		$datoco = array('1','null','null'); 		
	   	$claseocupacion = $this->Tipos_Model->getClaseOcupacion($datoco);

		//Configurando el array para consultar el Hotel
		$hoteles = $this->session->userdata('hoteles');
	
		//Enviar Arreglo
        $data['habitacion']      = $habitacion;
        $data['hotel']           = $hotel;
        $data['reservas']        = $reservas;
        $data['estadoR']         = $estadoR;
    	$data['motivo']          = $motivo;
		$data['tipodoc']         = $tipodoc;
		$data['ocupaciones']     = $ocupaciones;
		$data['mediopago']       = $mediopago;
		$data['tipofac']         = $tipofac;
		$data['paises']          = $paises;
		$data['departamentos']   = $departamentos;
		$data['ciudades']        = $ciudades;
		$data['tipoocupacion']   = $tipoocupacion;
		$data['vehiculo']        = $vehiculo;
		$data['tipov']           = $tipov;
		$data['marca']           = $marca;
		$data['color']           = $color;
		$data['claseocupacion']  = $claseocupacion;
		$data['hoteles']         = $hoteles;
		$data['titulo']          = 'Editar Reservacion';
		$data['sidebar']         = 'Reservaciones';

		//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/CheckIn/edit', $data);
	}

	//Editar Reservas ejecutada desde CheckIn
	public function editCheckOut($Reserva)
	{            
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		} 
 
		//Cargar Modelos
		$this->load->model('Reservas_Model');
		$this->load->model('Huespedes_Model');
		$this->load->model('Acompanantes_Model');
		$this->load->model('Establecimientos_Model');
		$this->load->model('Habitaciones_Model');
        $this->load->model('Tipos_Model');
        $this->load->model('TipoOcupacion_Model');
		$this->load->model('Generales_Model');
        $this->load->model('Vehiculos_Model');
		
		//Configurando el array para consulta de Resevas
		$dato = array('2',$Reserva,'null','null','null','null','null','null','null','null'); 
        $reservas = $this->Reservas_Model->getReservasforParameter(null,null,$dato);
		foreach($reservas as $k1) 
		{
			$vehiculoId   = "'".strval($k1['IdVehiculo'])."'";
			$HotelId      = $k1['IdEstablecimiento'];
		}
			
		//Configurando el array para consulta de Tipos Documentos
		$datotd = array('1','null');
        $tipodoc = $this->Tipos_Model->getTipoDoc($datotd);

		//Configurando el array para consulta estados
		$Info = 'RESERVA';
		$Info = "'".strval($Info)."'";
		$datoes = array('1','null',$Info);
        $estadoR = $this->Tipos_Model->getEstados($datoes);

		//Configurando el array para consulta de Tipos Documentos
		$datoocu = array('2','null');
        $ocupaciones = $this->Tipos_Model->getTipoDoc($datoocu);

		//Configurando el array para consulta de motivos viaje
		$datomv = array('3','null');
        $motivo = $this->Tipos_Model->getMotivosViaje($datomv);

		//Configurando el array para consulta de medios de pago
		$datomp = array('4', 'null');
        $mediopago = $this->Tipos_Model->getMedioPago($datomp);

		//Configurando el array para consulta de medios de pago
		$datotf  = array('5', 'null');
        $tipofac = $this->Tipos_Model->getTipoFac($datotf);

		//Configurando el array para consulta de Paises
		$datops = array('1', 'null');
        $paises = $this->Tipos_Model->getPaises($datops);
		
		//Configurando el array para consulta de Departamentos
		$datodt = array('3', 'null','null');
        $departamentos = $this->Tipos_Model->getDepartamentos($datodt);
		
		//Configurando el array para consulta de Ciudades
		$datocd = array('3', 'null', 'null');
        $ciudades = $this->Tipos_Model->getDepartamentos($datocd);

		//Configurando el array para consulta de Establecimientos
		$datoht = array('1','null','null', 'null');
		$hotel = $this->Establecimientos_Model->getEstablecimientosforParameter(null,null,$datoht);

		//Configurando el array para consulta de habitacion
		$datohb = array('2',$HotelId,'null','null','null','null','null','null'); 
	   	$habitacion = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$datohb);

		//Configurando el array para consulta de Tipo de ocupación
		$datoto = array('6','null'); 		
		$tipoocupacion = $this->TipoOcupacion_Model->getTipoOcupacion($datoto);

		//Configurando el array para consulta los vehiculos
		$datovh = array('1',$vehiculoId,'null','null','null');
		$vehiculo = $this->Vehiculos_Model->getVehiculosId(null,null,$datovh);
	
		//Configurando el array para el tipo de vehiculo
		$datotv = array('5','null','null'); 		
	   	$tipov = $this->Vehiculos_Model->getVehiculosTipos(null,null,$datotv);

		//Configurando el array para las marcas de los vehiculos
		$datom = array('2','null','null','null','null','null','null','null','null'); 
		$marca = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datom);
		
		//Configurando el array para los colores de los vehiculos
		$datoc = array('3','null','null','null','null','null','null','null','null'); 
        $color = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datoc);

		//Configurando el array para consulta de precios habitaciones
		$datoco = array('1','null','null'); 		
	   	$claseocupacion = $this->Tipos_Model->getClaseOcupacion($datoco);

		//Configurando el array para consultar el Hotel
		$hoteles = $this->session->userdata('hoteles');
	
		//Enviar Arreglo
        $data['habitacion']      = $habitacion;
        $data['hotel']           = $hotel;
        $data['reservas']        = $reservas;
        $data['estadoR']         = $estadoR;
    	$data['motivo']          = $motivo;
		$data['tipodoc']         = $tipodoc;
		$data['ocupaciones']     = $ocupaciones;
		$data['mediopago']       = $mediopago;
		$data['tipofac']         = $tipofac;
		$data['paises']          = $paises;
		$data['departamentos']   = $departamentos;
		$data['ciudades']        = $ciudades;
		$data['tipoocupacion']   = $tipoocupacion;
		$data['vehiculo']        = $vehiculo;
		$data['tipov']           = $tipov;
		$data['marca']           = $marca;
		$data['color']           = $color;
		$data['claseocupacion']  = $claseocupacion;
		$data['hoteles']         = $hoteles;
		$data['titulo']          = 'Editar Reservacion';
		$data['sidebar']         = 'Reservaciones';

		//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/CheckOut/edit', $data);
	}

	//Nueva Reserva ejecutada desde CheckIn
	public function newCheckIn()
	{      
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		} 

		$this->load->model('Reservas_Model');
        $this->load->model('Establecimientos_Model');
		$this->load->model('Habitaciones_Model');
        $this->load->model('Tipos_Model');
		$this->load->model('TipoOcupacion_Model');
		$this->load->model('Generales_Model');
		$this->load->model('Vehiculos_Model');

		//Configurando el array para consulta de Tipos Documentos
		$datotd = array('1','null');
        $tipodoc = $this->Tipos_Model->getTipoDoc($datotd);

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

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

		//Configurando el array para consulta de Establecimientos
		$datoht = array('1','null','null', 'null');
		$hotel = $this->Establecimientos_Model->getEstablecimientosforParameter(null,null,$datoht);

		//Configurando el array para consulta ocupaciones
		$datoocu = array('2','null');
        $ocupaciones = $this->Tipos_Model->getTipoDoc($datoocu);

		//Configurando el array para consulta de Departamentos
		$datodt = array('3', 'null','null');
        $departamentos = $this->Tipos_Model->getDepartamentos($datodt);

		//Configurando el array para consulta de habitacion
		$IdHotel = $this->input->post('IdHotel')==''?'null':$this->input->post('IdHotel');
		$datohb = array('2',$IdHotel,'null','null','null','null','null','null'); 
	   	$habitacion = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$datohb);

		//Configurando el array para consulta de motivos viaje
		$datomv = array('3','null');
        $motivo = $this->Tipos_Model->getMotivosViaje($datomv);

		//Configurando el array para consulta de medios de pago
		$datomp = array('4', 'null');
        $mediopago = $this->Tipos_Model->getMedioPago($datomp);

		//Configurando el array para consulta de medios de pago
		$datotf  = array('5', 'null');
        $tipofac = $this->Tipos_Model->getTipoFac($datotf);

		//Configurando el array para consulta de precios habitaciones
		$datoco = array('1','null','null'); 		
	   	$claseocupacion = $this->Tipos_Model->getClaseOcupacion($datoco);

		//Configurando el array para consulta de Tipo de ocupación
		$datoto = array('6','null'); 		
		$tipoocupacion = $this->TipoOcupacion_Model->getTipoOcupacion($datoto);

		//Configurando el array para consulta de iva
		$datoi = array('7','null'); 		
		$iva = $this->Tipos_Model->getIva($datoi);

		//Configurando el array para las marcas de los vehiculos
		$datom = array('2','null','null','null','null','null','null','null','null'); 
		$marca = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datom);

		//Configurando el array para los colores de los vehiculos
		$datoc = array('3','null','null','null','null','null','null','null','null'); 
		$color = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datoc);

		//Configurando el array para el tipo de vehiculo
		$datotv = array('5','null','null','null','null'); 		
	   	$tipov = $this->Vehiculos_Model->getVehiculosTipos(null,null,$datotv);

		// //Configurando el array para consultar el Hotel
		// $hoteles = $this->session->userdata('hoteles');

		$data["hotel"]   	     = $hotel;
		$data["tipofac"]         = $tipofac;
		$data["tipodoc"]         = $tipodoc;
		$data["ciudades"]        = $ciudades;
		$data["paises"] 	     = $paises;
		$data['ocupaciones']     = $ocupaciones;
		$data["departamentos"]   = $departamentos;
		$data["habitacion"]      = $habitacion;
		$data['motivo']          = $motivo;
		$data['mediopago']       = $mediopago;
		$data['tipoocupacion']   = $tipoocupacion;
		$data['iva']             = $iva;
		$data['tipov']           = $tipov;
		$data['marca']           = $marca;
		$data['color']           = $color;
		$data['claseocupacion']  = $claseocupacion;

		//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/CheckIn/new',$data);    

		// if ($this->session->userdata('iduser')=='') {
		// 	redirect(base_url().'/admin');
		// } 

		// $this->load->model('Reservas_Model');
        // $this->load->model('Establecimientos_Model');
		// $this->load->model('Habitaciones_Model');
        // $this->load->model('Tipos_Model');
		// $this->load->model('TipoOcupacion_Model');
		// $this->load->model('Generales_Model');
		// $this->load->model('Vehiculos_Model');


		// //Configurando el array para consulta de medios de pago
		// $datomp = array('null', 'null');
        // $mediopago = $this->Tipos_Model->getMedioPago($datomp);

		// //Configurando el array para consulta de tipo factura
		// $datotf  = array('null', 'null');
        // $tipofac = $this->Tipos_Model->getTipoFac($datotf);

		// //Configurando el array para consulta de Tipos Documentos
		// $datotd = array('null', '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 Departamentos
		// $datodt = array('1', 'null', 'null');
        // $departamentos = $this->Tipos_Model->getDepartamentos($datodt);

		// //Configurando el array para consulta de Establecimientos
		// $datoht = array('1','null', 'null', 'null');
        // $hotel = $this->Establecimientos_Model->getEstablecimientosforParameter(null,null,$datoht);
		
		// //Configurando el array para consulta de habitacion
		// $datohb = array('10','null','null','null','null','null','null'); 
	   	// $habitacion = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$datohb);

		// //Configurando el array para consulta de Tipo de ocupación
		// $datoto = array('1','null'); 		
	   	// $tipoocupacion = $this->TipoOcupacion_Model->getTipoOcupacion(null,null,$datoto);

		// //Configurando el array para consulta de precios habitaciones
		// $datoph = array('1','null','null','null','null'); 		
	   	// $valorhabitacion = $this->Generales_Model->getPrecioHabitacion(null,null,$datoph);

		// //Configurando el array para consulta de iva
		// $datoi = array('1','null'); 		
	   	// $iva = $this->Generales_Model->getIva(null,null,$datoi);

		// //Configurando el array para el tipo de vehiculo
		// $datotv = array('1','null'); 		
	   	// $tipov = $this->Vehiculos_Model->getVehiculosTipos(null,null,$datotv);
		
		// //Configurando el array para las marcas de los vehiculos
		// $datom = array('1','null','null','null'); 
		// $marca = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datom);
		
		// //Configurando el array para los colores de los vehiculos
		// $datoc = array('4','null','null','null'); 
        // $color = $this->Vehiculos_Model->getVehiculosforParameter(null,null,$datoc);

		// //Configurando el array para consulta de precios habitaciones
		// $datoco = array('1','null'); 		
	   	// $claseocupacion = $this->Generales_Model->getClaseOcupacion(null,null,$datoco);

		// //Configurando el array para consultar el Hotel
		// $hoteles = $this->session->userdata('hoteles');
   
		// $data["hotel"] 	         = $hotel;
		// $data["habitaciones"]    = $habitacion;
		// $data["mediopago"]       = $mediopago;
		// $data["tipofac"]         = $tipofac;
		// $data["tipodoc"]         = $tipodoc;
		// $data["ciudades"]        = $ciudades;
		// $data["paises"] 	     = $paises;
		// $data["departamentos"]   = $departamentos;
		// $data['tipoocupacion']   = $tipoocupacion;
		// $data['valorhabitacion'] = $valorhabitacion;
		// $data['iva']             = $iva;
		// $data['tipov']           = $tipov;
		// $data['marca']           = $marca;
		// $data['color']           = $color;
		// $data['claseocupacion']  = $claseocupacion;
		// $data['hoteles']         = $hoteles;
		// $data['titulo']          = 'Nueva Reservacion';
		// $data['sidebar']         = 'Reservaciones';

		// //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/CheckIn/new',$data);
	}

	//Cambiar estado de la Habitacion 
    public function estadosHa()
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        $this->load->model('Habitaciones_Model');
        $this->load->model('Check_Model');
        $this->load->model('Reservas_Model');

		//Solo los datos validos 
		
		 
		$IdHabitacion          = $this->input->post('IdHabitacion')==''?false:$this->input->post('IdHabitacion');
		$Disponibilidad        = $this->input->post('Disponibilidad')==''?false:$this->input->post('Disponibilidad');
		$IdReserva             = $this->input->post('IdReserva')==''?null:$this->input->post('IdReserva');
		$EstadoRes             = $this->input->post('EstadoRes')==''?null:$this->input->post('EstadoRes');
		$ObservaHab            = $this->input->post('ObservaHab')==''?null:$this->input->post('ObservaHab');
		$Adicional             = $this->input->post('Adicional')==''?null:$this->input->post('Adicional');
		$NumeroKits            = $this->input->post('NumeroKits')==''?null:$this->input->post('NumeroKits');
		$Observacion           = $this->input->post('Observacion')==''?null:$this->input->post('Observacion');
		$ObservacionHabitacion = "'".strval($this->input->post('ObservaHab')==''?null:$this->input->post('ObservaHab'))."'";

		// //Arreglo Habitacion
        // $dataHa = array( 
		// 	'Opcion'         => '2',
        //     'IdHabitacion'   => $IdHabitacion, 
        //     'Disponibilidad' => $Disponibilidad
        // );
		
		//Arreglo Reserva
		// if($Adicional == 0)
		// {
		$dataR = array( 
			'Opcion'                => '3',
			'IdReserva'             => $IdReserva,
			'NumeroKits'            => $NumeroKits,
			'ObservacionHabitacion' => $ObservacionHabitacion
		);

		// }else{

			// $dataR = array( 
			// 	'IdReserva'  => $IdReserva,
			// 	'Estado'     => $EstadoRes,
			// 	'NumKits'    => $NumeroKits,
			// 	'ObservaHab' => $ObservaHab
			// );
		// }
		
		//validar si existe el registro en la base de datos
        // $resultado=$this->Habitaciones_Model->updateHabitacionesDisponibilidad($dataHa);
		$resultado = $this->Reservas_Model->updateReservasKits($dataR);
		
		if($resultado)
        {   
            print_r(json_encode(array("res"=>"ok","msg"=>"Check realizado satisfactoriamente")));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"Check no se puede realizar")));
             
        }
    }

	//Cambiar estado de la Habitacion 
    public function estadosHaCheckOut()
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        $this->load->model('Habitaciones_Model');
        $this->load->model('Check_Model');
        $this->load->model('Reservas_Model');

		//Solo los datos validos 
		
		 
		$IdHabitacion          = $this->input->post('IdHabitacion')==''?false:$this->input->post('IdHabitacion');
		$Disponibilidad        = $this->input->post('Disponibilidad')==''?false:$this->input->post('Disponibilidad');
		$IdReserva             = $this->input->post('IdReserva')==''?null:$this->input->post('IdReserva');
		$EstadoRes             = $this->input->post('EstadoRes')==''?null:$this->input->post('EstadoRes');
		$ObservaHab            = $this->input->post('ObservaHab')==''?null:$this->input->post('ObservaHab');
		$Adicional             = $this->input->post('Adicional')==''?null:$this->input->post('Adicional');
		$NumeroKits            = $this->input->post('NumeroKits')==''?null:$this->input->post('NumeroKits');
		$Observacion           = $this->input->post('Observacion')==''?null:$this->input->post('Observacion');
		$ObservacionHabitacion = "'".strval($this->input->post('ObservaHab')==''?null:$this->input->post('ObservaHab'))."'";

		//Arreglo Habitacion
        $dataHa = array( 
			'Opcion'         => '2',
            'IdHabitacion'   => $IdHabitacion, 
            'Disponibilidad' => $Disponibilidad
        );
		
		$dataR = array( 
			'Opcion'                => '4',
			'IdReserva'             => $IdReserva,
			'IdEstado'              => $EstadoRes,
			'ObservacionHabitacion' => $ObservacionHabitacion
		);

		//validar si existe el registro en la base de datos
        $resultado=$this->Habitaciones_Model->updateHabitacionesDisponibilidad($dataHa);
		$resultado = $this->Reservas_Model->updateReservasEstado($dataR);
		
		if($resultado)
        {   
            print_r(json_encode(array("res"=>"ok","msg"=>"CheckOut realizado satisfactoriamente")));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"CheckOut no se puede realizar")));
             
        }
    }

	//Buscar Reservas para realizar Registro ok
    public function searchCheck()
	{
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        $this->load->model('Habitaciones_Model');
        $this->load->model('Check_Model');

		//Captutando los datos de busqueda
        $Opcion            = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
        $IdReserva         = $this->input->post('IdReserva')==''?'null':$this->input->post('IdReserva');
        $IdEstado          = $this->input->post('EstadoHabita')==''?'null':$this->input->post('EstadoHabita');
        // $FechaIni          = "'".strval($this->input->post('FechaIni')==''?'null':$this->input->post('FechaIni'))."'";
        // $FechaFin          = "'".strval($this->input->post('FechaFin')==''?'null':$this->input->post('FechaFin'))."'";
        $FechaIni          = $this->input->post('FechaIni') == '' ? 'NULL' : "'".$this->input->post('FechaIni')."'";
        $FechaFin          = $this->input->post('FechaFin') == '' ? 'NULL' : "'".$this->input->post('FechaFin')."'";
        $Identificacion    = $this->input->post('Identificacion')==''?'null':$this->input->post('Identificacion');
        $Movil             = $this->input->post('Movil')==''?'null':$this->input->post('Movil');
        $IdVehiculo        = $this->input->post('IdVehiculo')==''?'null':$this->input->post('IdVehiculo');
        $Placa             = $this->input->post('Placa') == '' ? 'NULL' : "'".$this->input->post('Placa')."'";
        $IdEstablecimiento = $this->input->post('IdEstablecimiento')==''?'null':$this->input->post('IdEstablecimiento');
       
        $dato = array($Opcion, $IdReserva, $IdEstado, $FechaIni, $FechaFin, $Identificacion, $Movil, $IdVehiculo, $Placa, $IdEstablecimiento); 
        // print_r($dato); die();
        $query = $this->Check_Model->getCheckforParameter(null,null,$dato);
		

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

	//Buscar Reserva para realizar Registro en el Ministerio.
    public function BuscarRegistro()
	{
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        $this->load->model('Check_Model');
        $this->load->model('Acompanantes_Model');

        $Opcion    = $this->input->post('Opcion');
        $IdReserva = $this->input->post('IdReserva');
        
        $dato = array($Opcion,$IdReserva); 
        $query = $this->Check_Model->BuscarLlenarRegistro(null,null,$dato);
        
        $dato1 = array('3','null', 'null', $IdReserva, 'null'); 
        $query1 = $this->Acompanantes_Model->getAcompanantesforParameter(null,null,$dato1);

        //echo json_encode($query);
        print_r(json_encode(array("reserva"=>$query,"acompanantes"=>$query1)));
    }

	public function InsertarReservaCheck()
	{
		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('Reservas_Model');
		$this->load->model('Check_Model');
		$this->load->model('Bitacora_Model');

		// ================================= RESERVAS ============================================
		 
		$Opcion    = $this->input->post('Opcion')==''?null:$this->input->post('Opcion');
		$IdReserva = $this->input->post('IdReserva')==''?null:$this->input->post('IdReserva');

		$IdUsuario          = $this->session->userdata('iduser');
	
		//Arreglo Principal
		$data = array( 
			'Opcion'    => $Opcion, 
			'IdReserva' => $IdReserva         
		);

		//Arreglo Bitacora
		$datob = array( 
			'IdEvento ' => '15', 
            'Fecha'     => $Date,
            'Hora'      => $Time, 
            'IdUsuario' => $IdUsuario
		);
				
		//Guardar registro en la base de datos
        $resultado=$this->Check_Model->saveReservasCheck($data);
		
		//Recuperar ultimo id Guardado
		$query = $this->db->query("SELECT MAX(IdReserva) AS Max from Reserva r");
		$rta = $query->result();
		$ReservaId=($rta[0]->Max);
		
        if($resultado)
        {   
			// $this->Habitaciones_Model->updateHabitacionesDisponibilidad($dataHa);
			// //Buscar el número de habitación con la cual quedo la reserva
			// $dato = array('3', 'null', $HabitacionR, 'null', 'null', 'null', 'null', 'null');
        	// $habita = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$dato);
			// foreach ($habita as $k1 ){
			// 	$NumHabita = $k1['NumeroHabitacion'];
			// }
			
			// if($AcompanantesR > 0)
			// {
			// 	$this->Acompanantes_Model->updateAcompanantesHuesped($dataAc);
			// }
			// $this->Vehiculos_Model->updateVehiculoReserva($dataVH);
            $this->Bitacora_Model->saveBitacora($datob);

            print_r(json_encode(array("res"=>"ok","msg"=>"Reserva creada satisfactoriamente","id"=>$ReservaId)));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"Reserva no se puede crear")));
             
        }
	}

    //Cambiar valores reserva 
    public function UpdateReservasCheckOut()
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelos
        $this->load->model('Check_Model');
        $this->load->model('Reservas_Model');
        $this->load->model('RecibosCaja_Model');

		//Solo los datos validos 
		
		 
		$Opcion    = $this->input->post('Opcion')==''?false:$this->input->post('Opcion');
		$IdReserva = $this->input->post('IdReserva')==''?false:$this->input->post('IdReserva');
		$FechaFin  = "'".strval($this->input->post('FechaFin')==''?null:$this->input->post('FechaFin'))."'";
		$HoraFin   = "'".strval($this->input->post('HoraFin')==''?null:$this->input->post('HoraFin'))."'";
		// $ObservacionHabitacion = "'".strval($this->input->post('ObservaHab')==''?null:$this->input->post('ObservaHab'))."'";

		//Arreglo Habitacion
        $data = array( 
			'Opcion'    => $Opcion,
            'IdReserva' => $IdReserva, 
            'FechaFin'  => $FechaFin,
            'HoraFin'   => $HoraFin
        );

		//validar si existe el registro en la base de datos
        $resultado=$this->Check_Model->updateReservaCheckOut($data);
		
		if($resultado)
        {   
            $dato = array('5', $IdReserva, 'null', 'null', 'null', 'null', 'null', 'null', 'null', 'null');
        	$Res = $this->Reservas_Model->getReservasforParameter(null,null,$dato);
			foreach ($Res as $k1 ){

				$PrecioTotal = $k1['PrecioTotal'];
                $IdHuesped   = $k1['IdHuesped'];
                $CargoAdicional = $k1['CargoAdicional'];
                $Descuento = $k1['Descuento'];
			}

            $dataRC = array( 
                'Opcion'            => '2',
                'IdReserva'         => $IdReserva, 
                'IdHuesped'         => $IdHuesped,
                'ValorTotalReserva' => $PrecioTotal,
                'CargoAdicional'    => $CargoAdicional,
                'Descuento'         => $Descuento
            );

            // print_r($dataRC); die();
            //validar si existe el registro en la base de datos
            $resultadoRC=$this->RecibosCaja_Model->updateRecibosCaja($dataRC);

            print_r(json_encode(array("res"=>"ok","msg"=>"CheckOut realizado satisfactoriamente")));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"CheckOut no se puede realizar")));
             
        }
    }
	
}