Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dantetesta/735a8c3610f745f91881bf23d780a4e3 to your computer and use it in GitHub Desktop.
Save dantetesta/735a8c3610f745f91881bf23d780a4e3 to your computer and use it in GitHub Desktop.
<script>
/*
AUTOR: DANTE TESTA
FUNÇÃO: PESQUISA CNPJ Receita WS + CEP na API VIA CEP + CONCATENAÇÃO DE ENDEREÇO
*/
jQuery(document).ready(function($) {
var cnpj = '#cnpj';
var situacao = '#situacao';
var natureza = '#natureza';
var capital = '#capital';
var nome = '#nome_empresarial';
var fantasia = '#nome_fantasia';
var telefone = '#telefone';
var email = '#email';
var abertura = '#abertura';
var porte = '#porte';
var atividade = '#atividade';
var cnae = '#cnae';
var cep = '#cep';
var rua = '#endereco';
var numero = '#numero';
var complemento = '#complemento';
var bairro = '#bairro';
var cidade = '#cidade';
var uf = '#estado';
var enderecoCompleto = '#endereco-completo';
$(cnpj).on('change', function() {
var cnpj_consultado = $(this).val().replace(/\D/g, '');
$.ajax({
url: 'https://www.receitaws.com.br/v1/cnpj/' + cnpj_consultado,
dataType: 'jsonp',
beforeSend: function() {
$(situacao).val('Carregando...');
$(natureza).val('Carregando...');
$(capital).val('Carregando...');
$(nome).val('Carregando...');
$(fantasia).val('Carregando...');
$(telefone).val('Carregando...');
$(email).val('Carregando...');
$(abertura).val('Carregando...');
$(porte).val('Carregando...');
$(atividade).val('Carregando...');
$(cnae).val('Carregando...');
$(cep).val('Carregando...');
$(rua).val('Carregando...');
$(numero).val('Carregando...');
$(complemento).val('Carregando...');
$(bairro).val('Carregando...');
$(cidade).val('Carregando...');
$(uf).val('Carregando...');
$(enderecoCompleto).val('Carregando...');
},
success: function(data) {
if(data.status == 'OK') {
$(situacao).val(data.situacao);
$(natureza).val(data.natureza_juridica);
$(capital).val(data.capital_social);
$(nome).val(data.nome);
$(fantasia).val(data.fantasia);
$(telefone).val(data.telefone);
$(email).val(data.email);
$(abertura).val(data.abertura);
$(porte).val(data.porte);
$(atividade).val(data.atividade_principal[0].text);
$(cnae).val(data.atividade_principal[0].code);
$(cep).val(data.cep);
$(rua).val(data.logradouro);
$(numero).val(data.numero);
$(complemento).val(data.complemento);
$(bairro).val(data.bairro);
$(cidade).val(data.municipio);
$(uf).val(data.uf);
// Atualizar endereço completo
$(enderecoCompleto).val(data.logradouro + ', ' + data.numero + ', ' + data.municipio + ', ' + data.uf);
} else {
alert("Erro: " + data.message);
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Erro na requisição: " + textStatus);
}
});
});
// Atualizar endereço completo quando o número mudar
$(numero).on('keyup', function() {
var novoEndereco = $(rua).val() + ', ' + $(this).val() + ', ' + $(cidade).val() + ', ' + $(uf).val();
$(enderecoCompleto).val(novoEndereco);
});
// Preencher endereço ao alterar o CEP
$(cep).on('change', function() {
let cep_val = $(this).val().replace(/\D/g, '');
if (cep_val != "") {
let validacep = /^[0-9]{8}$/;
if(validacep.test(cep_val)) {
$(rua).val('Carregando...');
$(bairro).val('Carregando...');
$(cidade).val('Carregando...');
$(uf).val('Carregando...');
$.getJSON("https://viacep.com.br/ws/"+ cep_val +"/json/?callback=?", function(dados) {
if (!("erro" in dados)) {
// Atualiza os campos com os valores da consulta.
$(rua).val(dados.logradouro);
$(bairro).val(dados.bairro);
$(cidade).val(dados.localidade);
$(uf).val(dados.uf);
var novoEndereco = $(rua).val() + ', ' + $(numero).val() + ', ' + $(cidade).val() + ', ' + $(uf).val();
$(enderecoCompleto).val(novoEndereco);
} else {
alert("CEP não encontrado.");
}
});
} else {
alert("Formato de CEP inválido.");
}
}
});
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment