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

class Habitaciones 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('Establecimientos_Model');
    }
    
    //Listar Habitaciones
    public function listHabitaciones($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

        $this->load->model('Habitaciones_Model');
        $this->load->model('Establecimientos_Model');
        $this->load->model('Tipos_Model');

        $dato = array('1','null','null','null','null','null','null','null'); 
        $query = $this->Habitaciones_Model->getHabitacionforParameter(null, null, $dato);

        $datoe = array('2','null','null'); 
        $estado = $this->Tipos_Model->getEstados($datoe);

        $datod = array('3','null','null'); 
        $disponibilidad = $this->Tipos_Model->getEstados($datod);

        $datoh = array('1','null','null','null'); 
        $establecimiento = $this->Establecimientos_Model->getEstablecimientos($datoh);

        $datot = array('1','null'); 
        $tipohabitacion = $this->Tipos_Model->getTipoHabitacion($datot);

		//envio el arreglo
        $data['habitacion']      = $query;
        $data['estado']          = $estado;
        $data['disponibilidad']  = $disponibilidad;
        $data['establecimiento'] = $establecimiento;
        $data['tipohabitacion']  = $tipohabitacion;

        $data['titulo'] = 'Habitaciones';
		$data['sidebar'] = 'Lista de Habitaciones';

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

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

	// 	//Captutando los datos de busqueda
	// 	$nombre      = $this->input->post('nombre')==''?'null':$this->input->post('nombre');
	// 	$fechaini    = $this->input->post('FechaIni')==''?'null':$this->input->post('FechaIni');
	// 	$fechafin    = $this->input->post('FechaFin')==''?'null':$this->input->post('FechaFin');
	// 	$estado      = $this->input->post('estado')==''?'null':$this->input->post('estado');
	
	// 	//Armando el arreglo del dato
	// 	$dato = array('3','null',$nombre,$estado,$fechaini,$fechafin,'null','null');
	// 	$query = $this->Habitaciones_Model->getHabitacionforParameter(null, null, $dato);
		
	// 	//retornar los valores
	// 	echo json_encode($query);
       
    // }

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

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

        $Opcion            = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
        $IdEstablecimiento = $this->input->post('IdEstablecimiento')==''?'null':$this->input->post('IdEstablecimiento');
        $NumHabitacion     = $this->input->post('NumHabitacion')==''?'null':$this->input->post('NumHabitacion');
        $IdHabitacion      = $this->input->post('IdHabitacion')==''?'null':$this->input->post('IdHabitacion');
        $Disponibilidad    = $this->input->post('Disponibilidad')==''?'null':$this->input->post('Disponibilidad');

		//Armando el arreglo del dato
		$dato = array($Opcion, $IdEstablecimiento, $IdHabitacion, $Disponibilidad, 'null','null', $NumHabitacion,'null');
		$query = $this->Habitaciones_Model->getHabitacionforParameter(null, null, $dato);
	
		// retornar los valores
		echo json_encode($query);
		
	}

    // //Crear Usuario
	// public function newHabitacion()
	// {
	// 	if ($this->session->userdata('iduser')=='') {
	// 		redirect(base_url().'/admin');
	// 	}
		
	// 	//Cargar Modelos
    //     $this->load->model('Generales_Model');
    //     $this->load->model('Establecimientos_Model');
    //     $this->load->model('ValorHabitacion_Model');
    //     $this->load->model('TipoOcupacion_Model');
        
    //     $dato = array('1','null','null','null'); 
    //     $establecimiento = $this->Establecimientos_Model->getEstablecimientos(null, null, $dato);	
		
	// 	//Configurando el array para consulta de Clase Ocupacion
	// 	$datoco = array('1','null'); 
	// 	$claseocupacion = $this->Generales_Model->getClaseOcupacion(null, null, $datoco);

	// 	//Configurando el array para consulta de Valor Habitacion
	// 	$datovh = array('1','null','null','null','null'); 
	// 	$valorhabitacion = $this->ValorHabitacion_Model->getValorHabitacionforParameter(null, null, $datovh);

	// 	//Configurando el array para consulta de Valor Habitacion
	// 	$contadorTipo = $this->TipoOcupacion_Model->countTipoOcupacion();
		
	// 	//Enviar Arreglo
    //     $data['contadorTipo']    = $contadorTipo;
    //     $data['valorhabitacion'] = $valorhabitacion;
    //     $data['claseocupacion']  = $claseocupacion;
    //     $data['establecimiento'] = $establecimiento;
    //     $data['titulo']          = 'Nuevo Usuario';
    //     $data['sidebar']         = 'Habitaciones';

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

    // }

	// //Editar Habitación
	// public function editHabitacion($Codigo_habitacion)
	// {            
	// 	if ($this->session->userdata('iduser')=='') {
	// 		redirect(base_url().'/admin');
	// 	} 
		
	// 	//Cargar Modelos
	// 	$this->load->model('Habitaciones_Model');
    //     $this->load->model('Generales_Model');
    //     $this->load->model('Establecimientos_Model');
    //     $this->load->model('ValorHabitacion_Model');
    //     $this->load->model('TipoOcupacion_Model');
		
	// 	//Configurando el array para consulta de Habitaciones
	// 	$datohb = array('2','null','null','null',$Codigo_habitacion); 
	//    	$habitacion = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$datohb);
		   
	// 	//Configurando el array para consulta de Establecimientos
	// 	$datoes = array('1','null','null','null','null'); 
    //     $establecimiento = $this->Establecimientos_Model->getEstablecimientosforParameter(null, null, $datoes);

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

	// 	//Configurando el array para consulta de Valor Habitacion
	// 	$datovh = array('5','null','null',$Codigo_habitacion,'null'); 
	// 	$valorhabitacion = $this->ValorHabitacion_Model->getValorHabitacionforParameter(null, null, $datovh);

	// 	//Configurando el array para consulta de Valor Habitacion
	// 	$contadorTipo = $this->TipoOcupacion_Model->countTipoOcupacion();
		
	// 	//Enviar Arreglo
    //     $data['contadorTipo']    = $contadorTipo;
    //     $data['valorhabitacion'] = $valorhabitacion;
    //     $data['claseocupacion']  = $claseocupacion;
    //     $data['establecimiento'] = $establecimiento;
    //     $data['habitacion']      = $habitacion;
	// 	$data['titulo']          = 'Editar Habitacion';
	// 	$data['sidebar']         = 'Habitaciones';

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

	// //Actualizar Habitacion
    // public function updateHabitacion()
    // {     
    //     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('Habitaciones_Model');
    //     $this->load->model('Bitacora_Model');
        
    //      //Solo los datos validos 
    //      $IdHabitacion     = $this->input->post('IdHabitacion')==''?false:$this->input->post('IdHabitacion');
	// 	 $Establecimiento  = $this->input->post('Establecimiento')==''?false:$this->input->post('Establecimiento');
	// 	 $NumeroHabitacion = $this->input->post('NumeroHabitacion')==''?false:$this->input->post('NumeroHabitacion');
	// 	 $NombreHabitacion = $this->input->post('NombreHabitacion')==''?false:$this->input->post('NombreHabitacion');
	// 	 $Capacidad        = $this->input->post('Capacidad')==''?false:$this->input->post('Capacidad');
    //      $Descripcion      = $this->input->post('Descripcion')==''?false:$this->input->post('Descripcion');
    //      $Estado           = $this->input->post('Estado')==''?false:$this->input->post('Estado');
    //      $Disponibilidad   = $this->input->post('Disponibilidad')==''?false:$this->input->post('Disponibilidad');

	// 	 $IdUsuario        = $this->session->userdata('iduser');

	// 	 //Arreglo Principal
	// 	 $data = array(
    //         'IdHabitacion'     => $IdHabitacion,
    //         'IdEstablecimiento'=> $Establecimiento,
	// 		'NumeroHabitacion' => $NumeroHabitacion,
	// 		'Nombres'          => $NombreHabitacion,
	// 		'Capacidad' 	   => $Capacidad,
    //         'Descripcion' 	   => $Descripcion,
    //         'Estado' 	       => $Estado,
    //         'Disponibilidad'   => $Disponibilidad,
    //     );

	// 	//Arreglo Bitacora
    //     $datab = array( 
	// 		'IdEvento ' => '8', 
    //         'Fecha'     => $Date,
    //         'Hora'      => $Time, 
    //         'IdUsuario' => $IdUsuario
	// 	);
       
	// 	$resultado=$this->Habitaciones_Model->updateHabitaciones($data);

		

    //     if($resultado)
    //     {   
    //         $this->Bitacora_Model->saveBitacora($datab);
    //         print_r(json_encode(array("res"=>"ok","msg"=>"Habitación Actualizada Satisfactoriamente")));
             
    //     }else{
            
    //         print_r(json_encode(array("res"=>"bad","msg"=>"Habitación No existe")));
             
    //     }
    // }

	// //Actualizar Habitacion
    // public function updateHabDisponible()
    // {     
    //     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('Habitaciones_Model');
    //     $this->load->model('Bitacora_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');

	// 	 $IdUsuario        = $this->session->userdata('iduser');

	// 	 //Arreglo Principal
	// 	 $data = array(
    //         'IdHabitacion'     => $IdHabitacion,
    //         'Disponibilidad'   => $Disponibilidad,
    //     );

       
	// 	$resultado=$this->Habitaciones_Model->updateHabitaciones($data);

    //     if($resultado)
    //     {   
    //         print_r(json_encode(array("res"=>"ok","msg"=>"Habitación Actualizada Satisfactoriamente")));
             
    //     }else{
            
    //         print_r(json_encode(array("res"=>"bad","msg"=>"Habitación No existe")));
             
    //     }
    // }

	//Insertar Nueva Habitacion
    public function insertHabitacion()
    {     
        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('Habitaciones_Model');
        $this->load->model('Bitacora_Model');
        
         //Solo los datos validos  
		 $IdEstablecimiento = $this->input->post('IdEstablecimiento')==''?false:$this->input->post('IdEstablecimiento');
		 $NumeroHabitacion  = $this->input->post('NumeroHabitacion')==''?false:$this->input->post('NumeroHabitacion');
		 $IdTipoHabitacion  = $this->input->post('IdTipoHabitacion')==''?false:$this->input->post('IdTipoHabitacion');
		 $Descripcion       = $this->input->post('Descripcion')==''?false:$this->input->post('Descripcion');
         $IdEstado          = $this->input->post('IdEstado')==''?false:$this->input->post('IdEstado');
         $IdDisponibilidad  = $this->input->post('IdDisponibilidad')==''?false:$this->input->post('IdDisponibilidad');

		 $IdUsuario = $this->session->userdata('iduser');

		 //Arreglo Principal
		 $data = array(
            'IdEstablecimiento' => $IdEstablecimiento,
			'NumeroHabitacion'  => $NumeroHabitacion,
			'IdEstado'          => $IdEstado,
			'Disponibilidad' 	=> $IdDisponibilidad,
            'IdTipoHabitacion' 	=> $IdTipoHabitacion
        );
       
		//arreglo Bitacora
        $datab = array( 'IdEvento ' => '6', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);

		$resultado=$this->Habitaciones_Model->saveHabitaciones($data);
		
        //Recuperar ultimo id Guardado
        $query = $this->db->query("SELECT IDENT_CURRENT('Habitacion') as last_id");
        $rta = $query->result();
        $HabitacionId=($rta[0]->last_id);
		
        if($resultado)
        {   
            $this->Bitacora_Model->saveBitacora($datab);
            print_r(json_encode(array("res"=>"ok","msg"=>"Habitación creada satisfactoriamente","id"=>$HabitacionId))); 
        }else{  
            print_r(json_encode(array("res"=>"bad","msg"=>"Habitación no existe")));
        }
    }
    
	// //Eliminar Materiales
    // public function deleteHabitaciones($Codigo_habitacion)
    // {            
    //     if ($this->session->userdata('iduser')=='') {
    //         redirect(base_url().'/admin');
    //     } 
        
	// 	$this->load->model('Habitaciones_Model');
        
    //     $Codigo_habitacion = $this->session->userdata('iduser');
        
    //     $datab = array(
    //         'IdEvento'  => '4', 
    //         'Codigo_habitacion' => $Codigo_habitacion
    //     );
        
    //     //Llamar el Procedimiento
    //     $Habitaciones = $this->Habitaciones_Model->deleteHabitacion($Codigo_habitacion);
        
    //     if($Habitaciones)
    //     {   
    //         $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")));
              
    //     }
    
    // }

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

    //     $this->load->model('Habitaciones_Model');
        
    //     //Solo los datos validos
    //     $IdHabitacion   = $this->input->post('IdHabitacion')==''?false:$this->input->post('IdHabitacion'); 
    //     $Disponibilidad = "'".strval($this->input->post('Disponibilidad')==''?false:$this->input->post('Disponibilidad'))."'";
        		
    //     $IdUsuario = $this->session->userdata('iduser');

    //     $data = array(
    //         'IdHabitacion' 	   => $IdHabitacion,
	// 		'Disponibilidad'   => $Disponibilidad,
    //     );
       
    //     //validar si existe el registro en la base de datos
    //     $resultado=$this->Habitaciones_Model->actualizarHabitaciones($data);
                
       
            
    // }  

	//Update Habitaciones
	public function updateHabitaciones()
	{     
        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('Habitaciones_Model');
        $this->load->model('Bitacora_Model');

        //Solo los datos validos  
        $Opcion            = $this->input->post('Opcion')==''?false:$this->input->post('Opcion');
    	$IdHabitacion      = $this->input->post('IdHabitacion')==''?false:$this->input->post('IdHabitacion');
    	$IdEstablecimiento = $this->input->post('IdEstablecimiento')==''?false:$this->input->post('IdEstablecimiento');
		$NumeroHabitacion  = $this->input->post('NumeroHabitacion')==''?false:$this->input->post('NumeroHabitacion');
		$IdTipoHabitacion  = $this->input->post('IdTipoHabitacion')==''?false:$this->input->post('IdTipoHabitacion');
        $IdEstado          = $this->input->post('IdEstado')==''?false:$this->input->post('IdEstado');
        $Disponibilidad    = $this->input->post('Disponibilidad')==''?false:$this->input->post('Disponibilidad');

		$IdUsuario = $this->session->userdata('iduser');

		//Arreglo Principal
		$data = array('Opcion'            => $Opcion,
                      'IdHabitacion'      => $IdHabitacion,
                      'IdEstablecimiento' => $IdEstablecimiento,
			          'NumeroHabitacion'  => $NumeroHabitacion,
			          'IdTipoHabitacion'  => $IdTipoHabitacion,
			          'IdEstado' 	      => $IdEstado,
                      'Disponibilidad' 	  => $Disponibilidad);
     
        //Arreglo Bitacora
        $datob = array( 'IdEvento'  => '7', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);

        
        //validar si existe el registro en la base de datos
        $resultado=$this->Habitaciones_Model->updateHabitaciones($data);
                
        if($resultado)
        {   
            // $this->Bitacora_Model->saveBitacora($datob);
            print_r(json_encode(array("res"=>"ok","msg"=>"Habitación actualizada satisfactoriamente")));
     
        }else{
            print_r(json_encode(array("res"=>"bad","msg"=>"Habitación no existe")));
        }
	}

    //Buscar Habitaciones === OK 
	public function searchHabitaciones()
	{
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		}

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

         //capturar datos
        $Opcion            = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
        $IdEstablecimiento = $this->input->post('IdHotel')==''?'null':$this->input->post('IdHotel');
        $IdHabitacion      = $this->input->post('IdHabitacion')==''?'null':$this->input->post('IdHabitacion');

		//Configurando el array para consulta de Paises
		$datoh = array($Opcion,$IdEstablecimiento,$IdHabitacion,'null','null','null','null','null');
		$query = $this->Habitaciones_Model->getHabitacionforParameter(null,null,$datoh);
		
		//retornar los valores
		echo json_encode($query);
	}

    //Buscar habitaciones disponibles
    public function searchHabitacionesDisponibles()
	{
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		}

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

         //capturar datos
        $Opcion            = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
        $IdEstablecimiento = $this->input->post('IdHotel')==''?'null':$this->input->post('IdHotel');
        $Fecha             = "'".strval($this->input->post('Fecha')==''?'null':$this->input->post('Fecha'))."'";
        $Hora             = "'".strval($this->input->post('Hora')==''?'null':$this->input->post('Hora'))."'";

		//Configurando el array para consulta de Paises
		$datoh = array($Opcion,$IdEstablecimiento,$Fecha,$Hora);
		$query = $this->Habitaciones_Model->getHabitacionDiponible(null,null,$datoh);
		
		//retornar los valores
		echo json_encode($query);
	}

	
}
