Emissão de Nota Fiscal

Dados da NF

Transação ID ()

Acessar Busca.Legal T2
Obs.: Essa tela é uma simples demonstração da integração com o Busca.Legal T2. É apenas um exemplo, portanto não estamos exibindo aqui todos os campos retornados pelo T2, como os relativos ao ICMS/ST e vários outros mais. Mas sua integração poderá sim contar com a totalidade dos campos.






Parâmetros para cálculo dos Tributos

CST Alíquota Redução de B.C Fundo de Combate à pobreza
ICMS
IPI
PIS
COFINS
Tributos Calculados do Item












Json Result


						
$(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();


});