﻿function jHotelBook()
{
    var This = this;
    
    var startEnv = {
        doReservationHotelVB: function(codPedidoVB, rowHotelTrip, pCodEmpresaOperadora, pCodPedidoMSPHotel, pNomeSource, pCodHotel, pNomeHotel, pCodCoef, pNumeroCC, pCodSeguranca, pTitularCC, pCPFCC, pValidadeCC, pCodCoeficienteParcelamento, pCodHistoricoClearSale, pHotelCodDestino, pHotelNomeDestino)
        { 
            This.exec.setTelaAcaoSession("Inserir Pedido H - B2C");
            var res = clDetalhesPedido.inserirPedidoHotelV3(codPedidoVB,                                                //int CodPedidoHotel, 
                                                  pCodEmpresaOperadora,                             //int CodEmpresaOperadora, 
                                                  AgenciaPacote.exec.getAgenciasSelecionadas()[0],  //int CodEmpresaAgencia, 
                                                  parseInt(PubLogin.getSession("CodUsuario")),      //int CodUsuario, 
                                                  pCodPedidoMSPHotel,                               //int CodPedidoMSPHotel,
                                                  rowHotelTrip.LOCTrip,                             //string LocVTPHotel, 
                                                  rowHotelTrip.totalValue,                          //decimal ValorHotel, 
                                                  1,                                                //int OrigemPedido, 
                                                  new Date(),                                       //DateTime DataPedido,
                                                  rowHotelTrip.ReservationID,                       //string LocSource, 
                                                  pNomeSource,                                      //string NomeSource, 
                                                  pCodHotel,                                        //string CodHotel, 
                                                  pNomeHotel,                                       //string NomeHotel, 
                                                  Date.parse(rowHotelTrip.checkIn, 'dd/MM/yyyy'),   //DateTime Checkin, 
                                                  Date.parse(rowHotelTrip.checkIn, 'dd/MM/yyyy'),    //DateTime Checkout
                                                  pCodCoef,
                                                  pNumeroCC,
                                                  pCodSeguranca,
                                                  pTitularCC,
                                                  pCPFCC,
                                                  pValidadeCC,
                                                  (pCodCoeficienteParcelamento == undefined ? 0 : pCodCoeficienteParcelamento),
                                                  pCodHistoricoClearSale, 
                                                  pHotelCodDestino, 
                                                  pHotelNomeDestino
                                                  );
        }
    };
    
    this.exec = {
        setTelaAcaoSession: function(pNomeTela)
        {
            try
            {
                clLogin.setTelaAcaoSession(pNomeTela);
            }
            catch(e){};
        },
        doReservation: function(codPedidoVB, rowHotelTrip, pCodEmpresaOperadora, pCodPedidoMSPHotel, pNomeSource, pCodHotel, pNomeHotel, pCodCoef, pNumeroCC, pCodSeguranca, pTitularCC, pCPFCC, pValidadeCC, pCodCoeficienteParcelamento, pCodHistoricoClearSale, pHotelCodDestino, pHotelNomeDestino)
        {
            startEnv.doReservationHotelVB(codPedidoVB, rowHotelTrip, pCodEmpresaOperadora, pCodPedidoMSPHotel, pNomeSource, pCodHotel, pNomeHotel, pCodCoef, pNumeroCC, pCodSeguranca, pTitularCC, pCPFCC, pValidadeCC, pCodCoeficienteParcelamento, pCodHistoricoClearSale, pHotelCodDestino, pHotelNomeDestino);
        },
        doClearSale: function(codEmpresa, cardNumber, ValorTotal, CPF, cardHolderName, ExpireMonth, ExpireYear) {
            //********************* Envia consulta ao Clear Sale -  by Jorge Aires ********************--//
            //  STATUS retornado:
            //              BAIXO   - 0
            //              MÉDIO   - 1
            //              ALTO    - 2
            //              CRÍTICO - 3 
            //              ERRO    - 4
            //              ERRO DADOS DE ENDEREÇO INCOMPLETO - 5
            //  PARÂMETRO DE ENTRADA:
            //              string Reanalise - Flag que indica se é novo ou já existe - FALSE = Novo
            //              int CodPedido - Código do Pedido Atual - Se ainda não existir deve ser "0"
            //              string TotalAmount - Valor Total
            //              string CPF - CPF Obrigatório
            //              string ccTipo - Sigla do cartão de crédito => VI - Visa; MC - MasterCard
            //              string ccNumero - Númeto do Cartão de crédito
            //              string ccNome - Nome no cartão
            //              int ccExpMes - Mês de validade
            //              int ccExcAno - Ano de validade    
            
            if(cardNumber.isMasterCard())
            {
                ccCode = "MC";
            }
            else
            {
                if(cardNumber.isVisa())
                {
                    ccCode = "VI"
                }
                else
                {
                    alert('Cartão de Crédito inválido.');                            
                    return false;
                };  
            };                                      
            
            //-- Comment by Wagner Vieira - CLEAR SALE DESATIVADO
            //return true;
            
            This.exec.setTelaAcaoSession("ClearSale H - B2C");
            var statusClearSale = VTPInterface.RequestClearSaleV2( 
                codEmpresa,
                "false", 
                0, 
                ValorTotal, 
                CPF, 
                ccCode, 
                cardNumber, 
                cardHolderName, 
                ExpireMonth, 
                ExpireYear
            ).value;
            
            //--- Considera APROVADO que tiver no mínimo ALTO
            if(statusClearSale <= 2)
            {             
                return true;   
            }
            else
            { 
                //--- Trata as respostas de erro do Clear Sale
                if (statusClearSale == 3 || statusClearSale == 4)
                {
                    alert('Seu pedido não foi aprovado! Por favor, atualize seus dados cadastrais ou informe outro cartão de crédito.');
                }                    
                if (statusClearSale == 5)
                {
                    alert('Seu pedido não foi aprovado! Por favor, atualize seus dados cadastrais antes de realizar uma nova compra.');    	                        
                }                       
                
                return false;                
            };                        
        }
    };
    
    this.constructor = new function(){};
};
