$(function(){
var blOptions = {
//Gerando o timestamp para evitar cache no ajax
dateTime : function(){
return new Date().getTime();
},
//ID da transação para poder solicitar o retorno das regras
transacaoID : getTransacaoID(),
//CNPJ da empresa provedora do ERP
cnpj : '26865820000130',
//EndPoint para realizar o login no Busca.Legal vinculando a Transação ID do usuário ao cnpj do ERP
callBuscaLegal : function(){
return 'https://www.busca.legal/portal/integra-erp/'+this.transacaoID+'/'+this.cnpj
},
//EndPoint para obter as regra consultada no Busca.Legal
getURLRegraBuscaLegal : function(){
return 'https://www.busca.legal/portal/get-erp-token/'+blOptions.transacaoID+'/'+this.cnpj+'?'+this.dateTime();
},
//Lendo retorno da API das regras
//Onde response é o array completo e a label a string do ponteiro do resultado
//Quando chamado o eval do javacsript ele já verifica se existe todo o endereçamento da value no json de resultado evitando multiplas verificações da estrutura, ou seja verifca se a string corresponde a estrutura json
getValueResponse : function(response,label){
try {
return eval(label);
}catch (e) {
//Caso não encontre o valor pesquisado retorna NULL
//A label só retornará null pois na consulta realizada não tem esse calculo
return '';
}
} ,
//Botão Click - Ação para chamar o EndPoint e obter a regra consultada
getRegrasBuscaLegal : function(){
//Mostrando a label carregando dentro do botão
$('.carregando').show();
//Limpa os inputs
$('input').val('');
//Chamando a API das regras consultadas no Busca.Legal
var request = $.ajax({
url : blOptions.getURLRegraBuscaLegal(),
method : 'POST',
crossDomain:true ,
dataType: "json"
});
//Quando sucesso é porque existe consulta realizada
request.done(function( response ) {
//Esconde a label carregando
$('.carregando').hide();
//Mostrando os resultados
//Natureza Operação:
$('.data_nat_op').val( blOptions.getValueResponse(response,'response.data.nat_op'));
//NCM
$('.data_ncm').val( blOptions.getValueResponse(response,'response.data.ncm'));
//ExTip
$('.data_ex_tipi').val( blOptions.getValueResponse(response,'response.data.ex_tipi'));
//Origem
$('.data_origem_produto').val( blOptions.getValueResponse(response,'response.data.origem_produto'));
//CFOP
$('.data_pesquisa_icms_cfop').val( blOptions.getValueResponse(response,'response.data.pesquisa.icms.cfop'));
//ICMS CST
$('.data_pesquisa_icms_cst').val( blOptions.getValueResponse(response,'response.data.pesquisa.icms.cst'));
//ICMS Aliquota
$('.data_pesquisa_icms_aliquota').val( blOptions.getValueResponse(response,'response.data.pesquisa.icms.aliquota'));
//ICMS Informações Adicionais:
$('.data_pesquisa_icms_inf_adicionais').val(blOptions.getValueResponse(response,'response.data.pesquisa.icms.inf_adicionais'));
//Percentual de redução de base de calculo
$('.data_calculo_ICMS_pRedBC').val( blOptions.getValueResponse(response,'response.data.calculo.ICMS.pRedBC'));
//IPI CST
$('.data_pesquisa_ipi_cst').val( blOptions.getValueResponse(response,'response.data.pesquisa.ipi.cst'));
//IPI Aliquota
$('.data_pesquisa_ipi_aliquota').val( blOptions.getValueResponse(response,'response.data.pesquisa.ipi.aliquota'));
//PIS CST
$('.data_pesquisa_pis_cst').val( blOptions.getValueResponse(response,'response.data.pesquisa.pis.cst'));
//PIS ALiquota
$('.data_pesquisa_pis_aliquota').val( blOptions.getValueResponse(response,'response.data.pesquisa.pis.aliquota'));
//Cofins CST
$('.data_pesquisa_cofins_cst').val( blOptions.getValueResponse(response,'response.data.pesquisa.cofins.cst'));
//Cofins Aliquota
$('.data_pesquisa_cofins_aliquota').val( blOptions.getValueResponse(response,'response.data.pesquisa.cofins.aliquota'));
//ICMS valor da base de calculo
$('.data_calculo_ICMS_vBC').val( blOptions.getValueResponse(response,'response.data.calculo.ICMS.vBC'));
//valor do ICMS
$('.data_calculo_ICMS_vICMS').val( blOptions.getValueResponse(response,'response.data.calculo.ICMS.vICMS'));
//Valor da base de calculo da ST
$('.data_calculo_ICMS_vBCST').val( blOptions.getValueResponse(response,'response.data.calculo.ICMS.vBCST'));
//valor do ICMS ST
$('.data_calculo_ICMS_vICMSST').val( blOptions.getValueResponse(response,'response.data.calculo.ICMS.vICMSST'));
//Valor PIS
$('.data_calculo_PIS_vPIS').val( blOptions.getValueResponse(response,'response.data.calculo.PIS.vPIS'));
//Valor COFINS
$('.data_calculo_COFINS_vCOFINS').val( blOptions.getValueResponse(response,'response.data.calculo.COFINS.vCOFINS'));
//Valor IPI
$('.data_calculo_IPI_vIPI').val( blOptions.getValueResponse(response,'response.data.calculo.IPI.vIPI'));
//Valor Total Produto
$('.data_calculo_vProd').val( blOptions.getValueResponse(response,'response.data.calculo.vProd'));
//Valor Frete
$('.data_calculo_vFrete').val( blOptions.getValueResponse(response,'response.data.calculo.vFrete'));
//Valor Seguro
$('.data_calculo_vSeg').val( blOptions.getValueResponse(response,'response.data.calculo.vSeg'));
//Valor despesas Acessórias:
$('.data_calculo_vOutro').val( blOptions.getValueResponse(response,'response.data.calculo.vOutro'));
//Valor despesas Acessórias:
$('.data_calculo_vDesc').val( blOptions.getValueResponse(response,'response.data.calculo.vDesc'));
//Fundo de Combate à pobreza
$('.data_calculo_vFCP').val( blOptions.getValueResponse(response,'response.data.calculo.vFCP'));
});
//Fail porque não há regras pesquisadas ainda
request.fail(function( jqXHR, textStatus ) {
//Escondendo a label Carregando
$('.carregando').hide();
//Alerta informativo
alert('Ainda não foi realizada consulta');
});
}
}
//Exemplo de como gerar transação ID para testes
//Caso Transação ID seja nula então gera a md5 da transacaoID
if(blOptions.transacaoID==undefined || blOptions.transacaoID==''){
blOptions.transacaoID = md5(randomInt(0,9999999999)+'BlCodeGenerate'+blOptions.dateTime());
local_setCookie('transacaoID',blOptions.transacaoID); // Salvando exemplo em cookie
}
//Ações da Ppágina
//Exibindo o ID da transação na tela
$('.clientIDBLTemp').html(blOptions.transacaoID);
//Adiciona o Link para o Login na Lataforma do Busca.Legal com o ID da transação + CNPJ
$('.call-page-bl').attr('href',blOptions.callBuscaLegal()).attr('target',"_blank");
//Evento Click quando acionar o Botão ir buscar a ultima consulta realiza para o ID Da transação informado
$('.get-result-bl').click(blOptions.getRegrasBuscaLegal);
//Escondendo a palavra carregando
$('.carregando').hide();
});