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

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

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

        //recorrer el data. 
        $Opcion            = '1';      
        $IdReserva         = $data['IdReserva'];        
        $IdHuesped         = $data['IdHuesped'];        
        $FechaRecibo       = $data['FechaRecibo'];        
        $ValorRecibo       = $data['ValorRecibo'];        
        $IdTipoRecibo      = $data['TipoRecibo'];         
        $ValorTotalReserva = $data['ValorTotalReserva'];
        $NombreFac         = $data['NombreFac'];
        $IdTipoDoc         = $data['IdTipoDoc'];
        $IdentificacionFac = $data['IdentificacionFac'];

        //Llamo al procedimiento almacenado
        $misql='EXEC spInsertReciboCaja @Opcion            = '.$Opcion.', 
                                        @IdReserva         = '.$IdReserva.',  
                                        @IdHuesped         = '.$IdHuesped.', 
                                        @FechaRecibo       = '.$FechaRecibo.', 
                                        @ValorRecibo       = '.$ValorRecibo.', 
                                        @IdTipoRecibo      = '.$IdTipoRecibo.',
                                        @ValorTotalReserva = '.$ValorTotalReserva.',
                                        @NombreFac         = '.$NombreFac.',
                                        @IdTipoDoc         = '.$IdTipoDoc.',
                                        @IdentificacionFac = '.$IdentificacionFac.'';
        // 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 RecibosCaja
    public function updateRecibosCaja($data)
    {
		 //Inicio transaccion    
         $this->db->trans_begin();  

         //recorrer el data.
         $Opcion             = $data['Opcion'];         
         $IdReserva          = $data['IdReserva'];        
         $IdHuesped          = $data['IdHuesped'];      
         $CargoAdicional     = $data['CargoAdicional'];        
         $Descuento          = $data['Descuento'];        
         $ValorTotalReserva  = $data['ValorTotalReserva'];    
              
          
         //Llamo al procedimiento almacenado
         $misql='EXEC spUpdateRecibos @Opcion            = '.$Opcion.',
                                      @IdReserva         = '.$IdReserva.',
                                      @IdHuesped         = '.$IdHuesped.',  
                                      @CargoAdicional    = '.$CargoAdicional.', 
                                      @Descuento         = '.$Descuento.', 
                                      @ValorTotalReserva = '.$ValorTotalReserva.'';
        //  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;
         }
    }

    //Buscar RecibosCaja por codigo
    public function getRecibosCaja($data)
    {
        //Realizar la Busqueda
        $this->db->select('*');
        $this->db->from('reciboscaja');
       
        $query = $this->db->get();
		return $query->result();
    }

    //Buscar Permiso por parametros
    public function getRecibosCajaforParameter($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 spGetRecibosCaja @Opcion         = ".$data[0].",
                                        @IdRecibo       = ".$data[1].",
                                        @IdHuesped      = ".$data[2].",
                                        @IdReserva      = ".$data[3].",
                                        @Identificacion = ".$data[4].",
                                        @IdTipoRecibo   = ".$data[5].",
                                        @FechaIni       = ".$data[6].",
                                        @FechaFin       = ".$data[7]."";
        // print_r($misql); die();
        $results=$this->CI_Consultar->consultarsp($misql,$conn);
        $results = mb_convert_encoding($results ,'UTF-8', 'HTML-ENTITIES');
        return $results;

        
    }

    //Borrar RecibosCaja
    public function deleteRecibosCaja($Data)
    {
		//Inicio transaccion    
        $this->db->trans_begin();  

		//recorrer el data.
        $id = $data['IdRecibo']; 
        $this->db->where('IdRecibo', $id);
        $this->db->delete('reciboscaja');
        
        //Control de transacciones 
        if ($this->db->trans_status() === false) {
            $this->db->trans_rollback();
            return false;
        } else {
            $this->db->trans_commit();
            return true;
        }
    }
}
?>