Autocomplete ao digitar um cnpj
Ir para navegação
Ir para pesquisar
O algoritmo a seguir deve ser implantado na pagina:
vendor/experius/module-addresslines/view/frontend/templates/expirius/customer/form/register.phtml
O algoritmo a seguir consiste em uma requisicao ao webservice do governo para obter varios dados do cliente a partir de seu cnpj.
<script type="text/javascript"> function limpaFormularioCnpj() { document.getElementById('razao_social').value=(""); document.getElementById('street_1').value=(""); document.getElementById('street_2').value=(""); document.getElementById('street_3').value=(""); document.getElementById('street_4').value=(""); document.getElementById('city').value=(""); document.getElementById('region_id').value=(""); document.getElementById('telephone').value=(""); document.getElementById('email_address').value=(""); document.getElementById('zip').value=(""); } function meu_callback(conteudo) { if (!("erro" in conteudo)) { //Atualiza os campos com os valores. conteudo.nome != null && conteudo.nome != undefined ? document.getElementById('razao_social').value=(conteudo.nome) : document.getElementById('razao_social').value = ""; conteudo.logradouro != null && conteudo.logradouro != undefined ? document.getElementById('street_1').value=(conteudo.logradouro) : document.getElementById('street_1').value = ""; conteudo.numero != null && conteudo.numero != undefined ? document.getElementById('street_2').value=(conteudo.numero) : document.getElementById('street_2').value = ""; conteudo.bairro != null && conteudo.bairro != undefined ? document.getElementById('street_3').value=(conteudo.bairro) : document.getElementById('street_3').value = ""; conteudo.complemento != null && conteudo.complemento != undefined ? document.getElementById('street_4').value=(conteudo.complemento) : document.getElementById('street_4').value = ""; conteudo.municipio != null && conteudo.municipio != undefined ? document.getElementById('city').value=(conteudo.municipio) : document.getElementById('city').value=""; if(conteudo.uf != null && conteudo.uf != undefined) converteUFemPadraoValueDoMagento(conteudo.uf); conteudo.telefone != null && conteudo.telefone != undefined ? document.getElementById('telephone').value=(conteudo.telefone) : document.getElementById('telephone').value=""; conteudo.email != null && conteudo.email != undefined ? document.getElementById('email_address').value = (conteudo.email) : document.getElementById('email_address').value =""; conteudo.cep != null && conteudo.cep != undefined ? document.getElementById('zip').value = (conteudo.cep) : document.getElementById('zip').value =""; } if( document.getElementById('zip').value != null && document.getElementById('zip').value != ""){ document.getElementById("informacoesExtraEnderecoCadastro").style.display = "block"; } else { limpaFormularioCnpj(); // cnpj nao encontrado } } function pesquisaCnpj(valor) { var cnpj = retiraPontuacaoDoCnpjParaPesquisa(valor); //Verifica se campo cnpj possui valor informado. if (verificaSeTemOtamanhoCnpj() && realizaValidacaoTotalDeCpfECpnj(valor)) { // document.getElementById('razao_social').value="..."; // document.getElementById('street_1').value="..."; // document.getElementById('street_2').value="..."; // document.getElementById('street_3').value="..."; // document.getElementById('street_4').value="..."; // document.getElementById('city').value="..."; // document.getElementById('telephone').value="..."; // document.getElementById('email_address').value="..."; // document.getElementById('zip').value="..."; //Cria um elemento javascript. var script = document.createElement('script'); //Sincroniza com o callback. script.src = 'https://www.receitaws.com.br/v1/cnpj/'+ cnpj +'/?callback=meu_callback'; //Insere script no documento e carrega o conteúdo. document.body.appendChild(script); }else{ realizaValidacaoTotalDeCpfECpnj(valor); } }; document.getElementById("taxvat").onblur = function() { pesquisaCnpj(document.getElementById("taxvat").value) }; function verificaSeTemOtamanhoCnpj(){ return document.getElementById("taxvat").value != null && document.getElementById("taxvat").value.length >= 16; } function retiraPontuacaoDoCnpjParaPesquisa(valor){ var palavra = valor; for(var i = 0; i < valor.length; i++){ palavra = palavra.replace(".", ""); palavra = palavra.replace("/", ""); palavra = palavra.replace("-", ""); } return palavra; } </script>