<?php
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Check_Model extends CI_Model
{
    //Constructor 
    function __construct()
    {
        parent::__construct();
        //$this->load->library('encryption');
    }

    //Buscar Reservas por codigo
    public function getCheckforParameter($limit=null,$offset=null,$data)
    {
        $limit ? $this->db->limit($limit, $offset):'';

        $this->load->library('Consultar');
        $conn = $this->CI_Consultar->conexion(APP_SERVERNAME,APP_DBNAME,APP_USER,APP_PASS);
     
        $misql = "EXEC spGetCheckIn  @Opcion            = ".$data[0].",
                                     @IdReserva         = ".$data[1].",
                                     @IdEstado          = ".$data[2].",
                                     @FechaIni          = ".$data[3].",
                                     @FechaFin          = ".$data[4].",
                                     @Identificacion    = ".$data[5].",
                                     @Movil             = ".$data[6].",
									 @IdVehiculo        = ".$data[7].",
									 @Placa             = ".$data[8].",
                                     @IdEstablecimiento = ".$data[9]."";
		// print_r($misql);die();
        $results=$this->CI_Consultar->consultarsp($misql,$conn);
		$results = mb_convert_encoding($results ,'UTF-8', 'HTML-ENTITIES');
        return $results;
    }

    public function  BuscarLlenarRegistro($limit=false,$offset=false,$data)
    {
        $limit ? $this->db->limit($limit, $offset):'';
            
        //Utilizar datos
        $Opcion     = $data[0];
        $IdReserva  = $data[1];

        switch (intval($Opcion)){
                
            case 1://Consultar todos las reservas del dia 
                $this->db->select( 'e.Nombre as NomHotel,
                                    e.Nit as NitHotel,
                                    e.Rnt as RntHotel,
                                    h.Identificacion,
                                    t.Nombre as TipoDoc,
                                    h.Nombres,
                                    h.Apellidos,
                                    h.FechaNac,
                                    h.Genero,
                                    p.Nombre as Nacionalidad,
                                    h2.Nombres as NomHabitacion,
                                    r.Motivo,
                                    h.Ocupacion,
                                    cr.Nombre as Ciudad_Res,
                                    dr.Nombre as Dpto_Res,
                                    pr.Nombre as Pais_Res,
                                    cp.Nombre as Ciudad_Pro,
                                    dp.Nombre as Dpto_Pro,
                                    pp.Nombre as Pais_Pro,
                                    r.FechaIni,
                                    r.FechaFin,
                                    r.ValorHabitacion,
                                    r.Acompanantes,
									r.IdTipFac,
                                    m.Nombre as MedioPago,
                                    h2.NumeroHabitacion');
                $this->db->from('establecimientos e');
                $this->db->join('reserva r','r.Establecimiento = e.IdEstablecimiento', 'left');
                $this->db->join('huesped h','h.IdHuesped = r.IdHuesped','left');
                $this->db->join('tipodocumento t','t.IdTipoDoc = h.IdTipoDoc', 'left');
                $this->db->join('paises p','p.IdPais = h.Nacionalidad', 'left');
                $this->db->join('habitacion h2','h2.IdHabitacion = r.IdHabitacion', 'left');
                $this->db->join('ciudades cr','cr.IdCiudad = h.Ciudad_Residencia', 'left');
                $this->db->join('departamentos dr','dr.IdDepartamento = cr.IdDepartamento', 'left');
                $this->db->join('paises pr','pr.IdPais = dr.IdPais', 'left');
                $this->db->join('ciudades cp','cp.IdCiudad = h.Ciudad_Residencia', 'left');
                $this->db->join('departamentos dp','dp.IdDepartamento = cr.IdDepartamento', 'left');
                $this->db->join('paises pp','pp.IdPais = dr.IdPais', 'left');
                $this->db->join('mediopago m','m.IdMedioPago = r.MedioPago', 'left');
                $this->db->where("r.IdReserva = '$IdReserva'");
            break;
        }

        $query = $this->db->get();
        // $str = $this->db->last_query();
        return $query->result();
    }

    public function saveReservasCheck($data)
    {
		//Inicio transaccion    
        $this->db->trans_begin();  

        //recorrer el data. 
		$Opcion            = '1';      
		$IdReserva         = $data['IdReserva'];        

		//Llamo al procedimiento almacenado
        $misql='EXEC spInsertReservaCheck @Opcion    = '.$Opcion.', 
									      @IdReserva = '.$IdReserva.'';
                                            // print_r($misql); die();
   
		//Envio el procedimiento y los parametros
		$result=$this->db->query($misql); 
        
		//Control de transacciones 
		if ($this->db->trans_status() === false) {
			$this->db->trans_rollback();
			return false;
		} else {
			$this->db->trans_commit();
			return true;
		}
    }

    // Actualizar valores del checkOut
    public function updateReservaCheckOut($data)
    {
		//Inicio transaccion    
        $this->db->trans_begin();  

        //recorrer el data. 
		$Opcion    = $data['Opcion'];      
		$IdReserva = $data['IdReserva'];        
		$FechaFin  = $data['FechaFin'];        
		$HoraFin   = $data['HoraFin'];        

		//Llamo al procedimiento almacenado
        $misql='EXEC spUpdateReservasCheckOut   @Opcion    = '.$Opcion.', 
									            @IdReserva = '.$IdReserva.',
									            @FechaFin  = '.$FechaFin.',
									            @HoraFin   = '.$HoraFin.'';
                                            // print_r($misql); die();
   
		//Envio el procedimiento y los parametros
		$result=$this->db->query($misql); 
        
		//Control de transacciones 
		if ($this->db->trans_status() === false) {
			$this->db->trans_rollback();
			return false;
		} else {
			$this->db->trans_commit();
			return true;
		}
    }

   
}