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

class RecibosCaja 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('RecibosCaja_Model');
    }

    //Listar Recibos
    public function listRecibos($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

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

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

		//Captutando los datos de busqueda
		$Opcion         = $this->input->post('Opcion')==''?'null':$this->input->post('Opcion');
		$Recibo         = $this->input->post('Recibo')==''?'null':$this->input->post('Recibo');
		$Huesped        = $this->input->post('Huesped')==''?'null':$this->input->post('Huesped');
		$Reserva        = $this->input->post('Reserva')==''?'null':$this->input->post('Reserva');
        $Identificacion = $this->input->post('Identificacion')==''?'null':$this->input->post('Identificacion');
        $FechaIni       = "'".strval($this->input->post('FechaIni')==''?'null':$this->input->post('FechaIni'))."'";
        $FechaFin       = "'".strval($this->input->post('FechaFin')==''?'null':$this->input->post('FechaFin'))."'";
	
		//Armando el arreglo del dato
		$dato = array($Opcion,$Recibo,$Huesped,$Reserva,$Identificacion,'null',$FechaIni,$FechaFin);
		$query = $this->RecibosCaja_Model->getRecibosCajaforParameter(null, null, $dato);
		
		//retornar los valores
		echo json_encode($query);
       
    }
	
	//Actualizar Recibos Caja
    public function updateRecibosCaja()
    {     
        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('RecibosCaja_Model');
        $this->load->model('Bitacora_Model');
        
		//Solo los datos validos 
		$ReciboId    = $this->input->post('ReciboId')==''?false:$this->input->post('ReciboId');
		$ReservaId   = $this->input->post('ReservaId')==''?false:$this->input->post('ReservaId');
		$HuespedId   = $this->input->post('HuespedId')==''?false:$this->input->post('HuespedId');
		$FechaRecibo = $this->input->post('FechaRecibo')==''?false:$this->input->post('FechaRecibo');
		$ValorRecibo = $this->input->post('ValorRecibo')==''?false:$this->input->post('ValorRecibo');
		$TipoRecibo  = $this->input->post('TipoRecibo')==''?false:$this->input->post('TipoRecibo');

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

		//Arreglo Principal
		$data = array(
			'IdRecibo'    => $ReciboId,
			'IdReserva'   => $ReservaId,
			'IdHuesped'   => $HuespedId,
			'FechaRecibo' => $FechaRecibo,
			'ValorRecibo' => $ValorRecibo,
			'TipoRecibo'  => $TipoRecibo
        );

		//Arreglo Bitacora
        $datab = array( 
			'IdEvento ' => '28', 
            'Fecha'     => $Date,
            'Hora'      => $Time, 
            'IdUsuario' => $IdUsuario
		);
       
		$resultado=$this->RecibosCaja_Model->updateRecibosCaja($data);

        if($resultado)
        {   
            $this->Bitacora_Model->saveBitacora($datab);
            print_r(json_encode(array("res"=>"ok","msg"=>"Recibo de caja actualizado satisfactoriamente")));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"Recibo de caja no existe")));
             
        }
    }

	//Insertar Nueva Habitacion
    public function insertRecibosCaja()
    {     
        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 Modales
        $this->load->model('RecibosCaja_Model');
        $this->load->model('Reservas_Model');
        $this->load->model('Bitacora_Model');
        
        //Solo los datos validos 
		$ReservaId         = $this->input->post('ReservaId')==''?false:$this->input->post('ReservaId');
		$HuespedId         = $this->input->post('HuespedId')==''?false:$this->input->post('HuespedId');
		$FechaRecibo       = "'".strval($this->input->post('FechaRecibo')==''?null:$this->input->post('FechaRecibo'))."'";
		$ValorRecibo       = $this->input->post('ValorRecibo')==''?false:$this->input->post('ValorRecibo');
		$TipoRecibo        = $this->input->post('TipoRecibo')==''?false:$this->input->post('TipoRecibo');
		$ValorTotalReserva = "'".strval($this->input->post('ValorTotalReserva')==''?false:$this->input->post('ValorTotalReserva'))."'";
		$NombreFac         = "'".strval($this->input->post('NombreFac')==''?null:$this->input->post('NombreFac'))."'";
		$IdTipoDoc         = $this->input->post('IdTipoDoc')==''?false:$this->input->post('IdTipoDoc');
		$IdentificacionFac = "'".strval($this->input->post('IdentificacionFac')==''?null:$this->input->post('IdentificacionFac'))."'";

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

		//Arreglo Principal
		$data = array(
			'IdReserva'         => $ReservaId,
			'IdHuesped'         => $HuespedId,
			'FechaRecibo'       => $FechaRecibo,
			'ValorRecibo'       => $ValorRecibo,
			'TipoRecibo'        => $TipoRecibo,
            'ValorTotalReserva' => $ValorTotalReserva,
            'NombreFac'         => $NombreFac,
            'IdTipoDoc'         => $IdTipoDoc,
            'IdentificacionFac' => $IdentificacionFac    
        );
        
		//arreglo Bitacora
        $datab = array( 'IdEvento ' => '27', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);

		$resultado=$this->RecibosCaja_Model->saveRecibosCaja($data);

		//Recuperar ultimo id Guardado
		$query = $this->db->query("SELECT MAX(IdRecibo) AS Max from reciboscaja");
		$rta = $query->result();
		$ReciboId=($rta[0]->Max);

		// //Arreglo Reserva
		// $datarv = array( 
		// 	'IdReserva' => $ReservaId, 
		// 	'IdRecibo'  => $ReciboId
		// );

		
		if($resultado)
        {   
			// $this->Reservas_Model->updateReservas($datarv);
            $this->Bitacora_Model->saveBitacora($datab);
            print_r(json_encode(array("res"=>"ok","msg"=>"Recibo de Caja creado satisfactoriamente","id"=>$ReciboId)));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"Recibo de Caja No existe")));
             
        }
    }
	
}
