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

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

	//Insertar Acompañante === OK
    public function saveAcompanantes($data)
    {
        //Inicio transaccion    
        $this->db->trans_begin();  

        //recorrer el data. 
		$Opcion     = '1';      
		$IdHuesped         = $data['IdHuesped'];        
		$IdReserva         = $data['IdReserva'];        
		$Nombres           = $data['Nombres'];        
		$Apellidos         = $data['Apellidos'];        
		$IdTipoDocumento   = $data['IdTipoDocumento'];        
		$Identificacion    = $data['Identificacion'];        
		$FechaNac          = $data['FechaNac'];        
		$LugarNac          = $data['LugarNac'];      
		$Genero            = $data['Genero'];      
		$Telefono          = $data['Telefono'];      
		$Movil             = $data['Movil'];      
		$Nacionalidad      = $data['Nacionalidad'];      
		$IdOcupacion       = $data['IdOcupacion'];      
		$Email             = $data['Email'];      
		$CiudadResidencia  = $data['CiudadResidencia'];      
		$CiudadProcedencia = $data['CiudadProcedencia'];      

		//Llamo al procedimiento almacenado
        $misql='EXEC spInsertAcompanante @Opcion            = '.$Opcion.', 
									     @IdHuesped         = '.$IdHuesped.',  
									     @IdReserva         = '.$IdReserva.', 
									     @Nombres           = '.$Nombres.', 
									     @Apellidos         = '.$Apellidos.', 
									     @IdTipoDocumento   = '.$IdTipoDocumento.', 
									     @Identificacion    = '.$Identificacion.', 
									     @FechaNac          = '.$FechaNac.', 
									     @LugarNac          = '.$LugarNac.',
									     @Genero            = '.$Genero.',
									     @Movil             = '.$Movil.',
									     @Nacionalidad      = '.$Nacionalidad.',
									     @IdOcupacion       = '.$IdOcupacion.',
									     @Email             = '.$Email.',
									     @CiudadResidencia  = '.$CiudadResidencia.',
									     @CiudadProcedencia = '.$CiudadProcedencia.'';
        // 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 Acompañante por Id === OK
    public function updateAcompanantes($data)
    {
        //Inicio transaccion    
        $this->db->trans_begin();  

        //recorrer el data.
		$Opcion     = '1';
		$IdAcompanante     = $data['IdAcompanante'];        
		$IdHuesped         = $data['IdHuesped'];        
		$IdReserva         = $data['IdReserva'];        
		$Nombres           = $data['Nombres'];        
		$Apellidos         = $data['Apellidos'];        
		$IdTipoDocumento   = $data['IdTipoDocumento'];        
		$Identificacion    = $data['Identificacion'];        
		$FechaNac          = $data['FechaNac'];        
		$LugarNac          = $data['LugarNac'];      
		$Genero            = $data['Genero'];      
		$Telefono          = $data['Telefono'];      
		$Movil             = $data['Movil'];      
		$Nacionalidad      = $data['Nacionalidad'];      
		$IdOcupacion       = $data['IdOcupacion'];      
		$Email             = $data['Email'];      
		$CiudadResidencia  = $data['CiudadResidencia'];      
		$CiudadProcedencia = $data['CiudadProcedencia'];      
		
		//Llamo al procedimiento almacenado
        $misql='EXEC spUpdateAcompanante @Opcion            = '.$Opcion.',
									     @IdAcompanante     = '.$IdAcompanante.',
									     @IdHuesped         = '.$IdHuesped.',  
									     @IdReserva         = '.$IdReserva.', 
									     @Nombres           = '.$Nombres.', 
									     @Apellidos         = '.$Apellidos.', 
									     @IdTipoDocumento   = '.$IdTipoDocumento.', 
									     @Identificacion    = '.$Identificacion.', 
									     @FechaNac          = '.$FechaNac.', 
									     @LugarNac          = '.$LugarNac.',
									     @Genero            = '.$Genero.',
									     @Telefono          = '.$Telefono.',
									     @Movil             = '.$Movil.',
									     @Nacionalidad      = '.$Nacionalidad.',
									     @IdOcupacion       = '.$IdOcupacion.',
									     @Email             = '.$Email.',
									     @CiudadResidencia  = '.$CiudadResidencia.',
									     @CiudadProcedencia = '.$CiudadProcedencia.'';
		// 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;
		}
    //     //Inicio transaccion    
    //     $this->db->trans_begin();  
    //     //recorrer el data.
		        
    //     $id = $data['IdAcompanante'];

	// 	$this->db->where('IdAcompanante', $id);
    //     $this->db->update('acompanantes', $data);
        
    //     //Control de transacciones 
    //     if ($this->db->trans_status() === false) {
    //         $this->db->trans_rollback();
    //         return false;
    //     }else{
    //         $this->db->trans_commit();
    //         return true;
    //     }
    }

    //Actualizar Acompañante por Huesped === OK
    public function updateAcompanantesHuesped($data)
    {
        //Inicio transaccion    
        $this->db->trans_begin();  
 
        //recorrer el data.
        $Opcion     = $data['Opcion'];       
        $IdHuesped  = $data['IdHuesped'];        
        $IdReserva  = $data['IdReserva'];        
         
        //Llamo al procedimiento almacenado
        $misql='EXEC spUpdateAcompanante @Opcion            = '.$Opcion.',
                                         @IdHuesped         = '.$IdHuesped.',  
                                         @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 Acompañante por Huesped
    // public function updateAcompanantesHuesped($data)
    // {
    //     //Inicio transaccion    
    //     $this->db->trans_begin();  
    //     //recorrer el data.
		        
    //     $id = $data['IdHuesped'];

	// 	$this->db->where('IdHuesped', $id);
    //     $this->db->update('acompanantes', $data);
        
    //     //Control de transacciones 
    //     if ($this->db->trans_status() === false) {
    //         $this->db->trans_rollback();
    //         return false;
    //     }else{
    //         $this->db->trans_commit();
    //         return true;
    //     }
    // }

	//Bloquear acompañante por huesped === OK
    public function blockAcompanantes($data)
    {
        //Inicio transaccion    
        $this->db->trans_begin();  

        //recorrer el data.
        $Opcion     = '2';
        $IdAcompanante = $data['IdAcompanante'];        
        $IdHuesped     = $data['IdHuesped'];        
        $IdReserva     = $data['IdReserva'];        
          
         
        //Llamo al procedimiento almacenado
        $misql='EXEC spUpdateAcompanante @Opcion        = '.$Opcion.',
                                         @IdAcompanante = '.$IdAcompanante.',
                                         @IdHuesped     = '.$IdHuesped.',  
                                         @IdReserva     = '.$IdReserva.'';
                                        
         
        //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 Correos por codigo
    // public function getAcompanantes($data)
    // {
    //     //Realizar la Busqueda
    //     $this->db->select('*');
    //     $this->db->from('acompanantes');
       
    //     $query = $this->db->get();
	// 	return $query->result();

    // }
	 
    //Buscar RutasPlan por parametros
 	public function getAcompanantesforParameter($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 spGetAcompanantes @Opcion         = ".$data[0].",
                                     	 @IdAcompanante  = ".$data[1].",
                                         @IdHuesped      = ".$data[2].",
                                         @IdReserva      = ".$data[3].",
                                         @Identificacion = ".$data[4]."";
        // print_r($misql); die();
        $results=$this->CI_Consultar->consultarsp($misql,$conn);
        return $results;

	
        //     case 1: //Consultar todos los datos de todos los acompanantes
        //         $this->db->select('ac.*, td.Nombre as NomDoc, ps.Nombre as NomPais');
        //         $this->db->from('acompanantes as ac');
		// 		$this->db->join('tipodocumento as td','td.IdTipoDoc = ac.IdTipoDoc');
		// 		$this->db->join('paises as ps','ps.IdPais = ac.Nacionalidad', 'left');
        //     break;
            
        //     case 2://Consultar por identificacion
		// 		$this->db->select("ac.*, 
		// 						   td.Nombre as NomDoc, 
		// 						   ps.Nombre as NomPais, 
		// 						   cres.Nombre as CiudadRes, 
		// 						   dres.Nombre as DptoRes, 
		// 						   pres.Nombre as PaisRes, 
		// 						   cpro.Nombre as CiudadPro, 
		// 						   dpro.Nombre as DptoPro, 
		// 						   ppro.Nombre as PaisPro,
		// 						   cnac.Nombre as CiudadNac");
		// 		$this->db->from('acompanantes as ac');
		// 		$this->db->join('tipodocumento as td','td.IdTipoDoc = ac.IdTipoDoc');
		// 		$this->db->join('paises as ps','ps.IdPais = ac.Nacionalidad', 'left');
		// 		$this->db->join('ciudades as cres','cres.IdCiudad = ac.Ciudad_Residencia', 'left');
		// 		$this->db->join('departamentos as dres','dres.IdDepartamento = cres.IdDepartamento', 'left');
		// 		$this->db->join('paises as pres','pres.IdPais = dres.IdPais', 'left');
		// 		$this->db->join('ciudades as cpro','cpro.IdCiudad = ac.Ciudad_Procedencia', 'left');
		// 		$this->db->join('departamentos as dpro','dpro.IdDepartamento = cpro.IdDepartamento', 'left');
		// 		$this->db->join('paises as ppro','ppro.IdPais = dpro.IdPais', 'left');
		// 		$this->db->join('ciudades as cnac','cnac.IdCiudad = ac.LugarNac', 'left');
        //         $this->db->where('ac.Identificacion', $Identificacion);
        //     break;

                
        //     case 4://Validar la acompanantes
        //         $this->db->select('ac.*, td.Nombre as NomDoc, ps.Nombre as NomPais');
        //         $this->db->from('acompanantes as ac');
		// 		$this->db->join('tipodocumento as td','td.IdTipoDoc = ac.IdTipoDoc');
		// 		$this->db->join('paises as ps','ps.IdPais = ac.Nacionalidad', 'left');
        //         $this->db->where('ac.Apellidos', $Apellidos);
        //     break;
			 
		// 	case 5://Consultar por Reserva
		// 		$this->db->select("ac.*, td.Nombre as NomDoc, td.Nombre as NomDoc, ps.Nombre as NomPais");
		// 		$this->db->from('acompanantes as ac');
		// 		$this->db->join('tipodocumento as td','td.IdTipoDoc = ac.IdTipoDoc');
		// 		$this->db->join('paises as ps','ps.IdPais = ac.Nacionalidad', 'left');
		// 		$this->db->where('ac.IdAcompanante', $Acompanante);
		// 		break;

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

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

	// 	//recorrer el data.
    //     $this->db->where('IdAcompanante', $data);
    //     $this->db->delete('acompanantes');
        
    //     //Control de transacciones 
    //     if ($this->db->trans_status() === false) {
    //         $this->db->trans_rollback();
    //         return false;
    //     } else {
    //         $this->db->trans_commit();
    //         return true;
    //     }

    // }
}
?>
