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

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

    //Registrar reservas
    
    public function saveReservas($data)
    {
        //Inicio transacción
        $this->db->trans_begin();
        
        //recorrer el dato
        $this->db->insert('reserva',$data);
		
        //control de transacciones
        if ($this->db->trans_status() === false){
            $this->db->trans_rollback();
            return false;
        }else {
            $this->db->trans_commit();
            return true;
        }

    }

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

        //recorrer el data. 
		$Opcion            = '1';      
		$FechaIni          = $data['FechaIni'];        
		$HoraIni           = $data['HoraIni'];        
		$FechaFin          = $data['FechaFin'];        
		$HoraFin           = $data['HoraFin'];        
		$IdEstado          = $data['IdEstado'];        
		$IdHabitacion      = $data['IdHabitacion'];        
		$IdMotivo          = $data['IdMotivo'];        
		$CantAcompanantes  = $data['CantAcompanantes'];      
		$IdMedioPago       = $data['IdMedioPago'];      
		$ValorHabitacion   = $data['ValorHabitacion'];      
		$IdHuesped         = $data['IdHuesped'];      
		$IdUsuario         = $data['IdUsuario'];      
		$IdEstablecimiento = $data['IdEstablecimiento'];      
		$IdTipoFactura     = $data['IdTipoFactura'];      
		$PrecioHabitacion  = $data['PrecioHabitacion'];      
		$PrecioAdicional   = $data['PrecioAdicional'];      
		$Descuento         = $data['Descuento'];      
		$CargoAdicional    = $data['CargoAdicional'];      
		$IdIva             = $data['IdIva'];      
		$PrecioTotal       = $data['PrecioTotal'];      
		$IdTipoOcupacion   = $data['IdTipoOcupacion'];      
		$Adicional         = $data['Adicional'];      
		$IdClaseMatricula  = $data['IdClaseMatricula'];      
		$Observacion       = $data['Observacion'];      
		$IdVehiculo        = $data['IdVehiculo'];   

		//Llamo al procedimiento almacenado
        $misql='EXEC spInsertReserva @Opcion            = '.$Opcion.', 
									 @FechaIni          = '.$FechaIni.',  
									 @HoraIni           = '.$HoraIni.', 
									 @FechaFin          = '.$FechaFin.', 
									 @HoraFin           = '.$HoraFin.', 
									 @IdEstado          = '.$IdEstado.', 
									 @IdHabitacion      = '.$IdHabitacion.', 
									 @IdMotivo          = '.$IdMotivo.', 
									 @CantAcompanantes  = '.$CantAcompanantes.',
									 @IdMedioPago       = '.$IdMedioPago.',
									 @ValorHabitacion   = '.$ValorHabitacion.',
									 @IdHuesped         = '.$IdHuesped.',
									 @IdUsuario         = '.$IdUsuario.',
									 @IdEstablecimiento = '.$IdEstablecimiento.',
									 @IdTipoFactura     = '.$IdTipoFactura.',
									 @PrecioHabitacion  = '.$PrecioHabitacion.',
									 @PrecioAdicional   = '.$PrecioAdicional.',
									 @Descuento         = '.$Descuento.',
									 @CargoAdicional    = '.$CargoAdicional.',
									 @IdIva             = '.$IdIva.',
									 @PrecioTotal       = '.$PrecioTotal.',
									 @IdTipoOcupacion   = '.$IdTipoOcupacion.',
									 @Adicional         = '.$Adicional.',
									 @IdClaseMatricula  = '.$IdClaseMatricula.',
									 @Observacion       = '.$Observacion.',
									 @IdVehiculo        = '.$IdVehiculo.'';
   
		//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 Reservas === OK
    public function updateReservas($data)
    {
    	//Inicio transaccion    
	  	$this->db->trans_begin();  

	  	//recorrer el data.
	  	$Opcion                = $data['Opcion'];
	  	$IdReserva             = $data['IdReserva'];        
	  	$FechaIni              = $data['FechaIni'];        
	  	$HoraIni               = $data['HoraIni'];        
	  	$FechaFin              = $data['FechaFin'];        
	  	$HoraFin               = $data['HoraFin'];        
	  	$IdEstado              = $data['IdEstado'];        
	  	$IdHabitacion          = $data['IdHabitacion'];        
	  	$IdMotivo              = $data['IdMotivo'];        
	  	$CantAcompanantes      = $data['CantAcompanantes'];      
	  	$IdMedioPago           = $data['IdMedioPago'];      
	  	$ValorHabitacion       = $data['ValorHabitacion'];      
	  	$IdHuesped             = $data['IdHuesped'];      
	  	$IdUsuario             = $data['IdUsuario'];      
	  	$IdEstablecimiento     = $data['IdEstablecimiento'];      
	  	$IdTipoFactura         = $data['IdTipoFactura'];      
	  	$PrecioHabitacion      = $data['PrecioHabitacion'];      
	  	$PrecioAdicional       = $data['PrecioAdicional'];      
	  	$Descuento             = $data['Descuento'];      
	  	$CargoAdicional        = $data['CargoAdicional'];      
	  	$IdIva                 = $data['IdIva'];      
	  	$PrecioTotal           = $data['PrecioTotal'];      
	  	$IdTipoOcupacion       = $data['IdTipoOcupacion'];      
	  	$Adicional             = $data['Adicional'];      
	  	$IdClaseMatricula      = $data['IdClaseMatricula'];      
	  	$Observacion           = $data['Observacion'];           
	  	// $ObservacionAnular = $data['ObservacionAnular'];           
	  	$IdVehiculo            = $data['IdVehiculo'];      
	  
		//Llamo al procedimiento almacenado
	  	$misql='EXEC spUpdateReservas @Opcion                = '.$Opcion.',
									  @IdReserva             = '.$IdReserva.',
									  @FechaIni              = '.$FechaIni.',  
									  @HoraIni               = '.$HoraIni.', 
									  @FechaFin              = '.$FechaFin.', 
									  @HoraFin               = '.$HoraFin.', 
									  @IdEstado              = '.$IdEstado.', 
									  @IdHabitacion          = '.$IdHabitacion.', 
									  @IdMotivo              = '.$IdMotivo.', 
									  @CantAcompanantes      = '.$CantAcompanantes.', 
									  @IdMedioPago           = '.$IdMedioPago.',
									  @ValorHabitacion       = '.$ValorHabitacion.',
									  @IdHuesped             = '.$IdHuesped.',
									  @IdUsuario             = '.$IdUsuario.',
									  @IdEstablecimiento     = '.$IdEstablecimiento.',
									  @IdTipoFactura         = '.$IdTipoFactura.',
									  @PrecioHabitacion      = '.$PrecioHabitacion.',
									  @PrecioAdicional       = '.$PrecioAdicional.',
									  @Descuento             = '.$Descuento.',
									  @CargoAdicional        = '.$CargoAdicional.',
									  @IdIva                 = '.$IdIva.',
									  @PrecioTotal           = '.$PrecioTotal.',
									  @IdTipoOcupacion       = '.$IdTipoOcupacion.',
									  @Adicional             = '.$Adicional.',
									  @IdClaseMatricula      = '.$IdClaseMatricula.',
									  @Observacion           = '.$Observacion.',
									  @IdVehiculo            = '.$IdVehiculo.'';
		
		//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 Kits
	public function updateReservasKits($data)
	{
		//Inicio transaccion    
		$this->db->trans_begin();  
	
		//recorrer el data.
		$Opcion                = $data['Opcion'];
		$IdReserva             = $data['IdReserva'];        
		$ObservacionHabitacion = $data['ObservacionHabitacion'];        
		$NumeroKits            = $data['NumeroKits'];        
		
		  
		//Llamo al procedimiento almacenado
		$misql='EXEC spUpdateReservas @Opcion                = '.$Opcion.',
									  @IdReserva             = '.$IdReserva.',
									  @ObservacionHabitacion = '.$ObservacionHabitacion.',  
									  @NumeroKits            = '.$NumeroKits.'';
			
		//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 Kits
	public function updateReservasEstado($data)
	{
		//Inicio transaccion    
		$this->db->trans_begin();  
	
		//recorrer el data.
		$Opcion                = $data['Opcion'];
		$IdReserva             = $data['IdReserva'];        
		$ObservacionHabitacion = $data['ObservacionHabitacion'];        
		$IdEstado              = $data['IdEstado'];        
		
		  
		//Llamo al procedimiento almacenado
		$misql='EXEC spUpdateReservas @Opcion                = '.$Opcion.',
									  @IdReserva             = '.$IdReserva.',
									  @ObservacionHabitacion = '.$ObservacionHabitacion.',  
									  @IdEstado              = '.$IdEstado.'';
			
		//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 Reservas === OK
    public function updateReservasAnular($data)
    {
    	//Inicio transaccion    
	  	$this->db->trans_begin();  

	  	//recorrer el data.
	  	$Opcion            = $data['Opcion'];
	  	$IdReserva         = $data['IdReserva'];        
	  	$IdEstado          = $data['IdEstado'];        
	  	$IdHabitacion      = $data['IdHabitacion'];        
	  	$ObservacionAnular = $data['ObservacionAnular'];           
	  
		//Llamo al procedimiento almacenado
	  	$misql='EXEC spUpdateReservas @Opcion            = '.$Opcion.',
									  @IdReserva         = '.$IdReserva.',
									  @IdEstado          = '.$IdEstado.', 
									  @IdHabitacion      = '.$IdHabitacion.', 
									  @ObservacionAnular = '.$ObservacionAnular.'';

		//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;
	  	}
    }

    //Buscar Reservas por Codigo
    public function getReservas($data)
    {
        //Utilizar la libreria
        $id=$data['IdReserva'];
        //$id=$data[0];
        $this->db->select('*');
        $this->db->from('reserva');
        $this->db->where('IdReserva', $id);
        $query = $this->db->get();
        return $query;

    }

    //Buscar Permiso por parametros
    public function getReservasforParameter($limit=false,$offset=false,$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 spGetReservas @Opcion         = ".$data[0].",
                                     @IdReserva      = ".$data[1].",
                                     @IdEstado       = ".$data[2].",
                                     @FechaIni       = ".$data[3].",
                                     @FechaFin       = ".$data[4].",
                                     @Identificacion = ".$data[5].",
                                     @Movil          = ".$data[6].",
									 @IdVehiculo     = ".$data[7].",
									 @IdHabitacion   = ".$data[8].", 
									 @Placa          = ".$data[9]."";
		// print_r($misql);die();
        $results=$this->CI_Consultar->consultarsp($misql,$conn);
		$results = mb_convert_encoding($results ,'UTF-8', 'HTML-ENTITIES');
        return $results;
    }
    
	//Actualizar Kits
	public function updateReservasCheckOut($data)
	{
		//Inicio transaccion    
		$this->db->trans_begin();  
	
		//recorrer el data.
		$Opcion           = $data['Opcion'];
		$IdReserva        = $data['IdReserva'];        
		$FechaFin         = $data['FechaFin'];        
		$PrecioHabitacion = $data['PrecioHabitacion'];        
		$PrecioTotal      = $data['PrecioTotal'];        
		
		  
		//Llamo al procedimiento almacenado
		$misql='EXEC spUpdateReservas @Opcion           = '.$Opcion.',
									  @IdReserva        = '.$IdReserva.',
									  @FechaFin         = '.$FechaFin.',
									  @ValorHabitacion  = '.$PrecioHabitacion.',  
									  @PrecioTotal      = '.$PrecioTotal.'';
		// 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;
		}
	}
}
?>
