Ir para conteúdo
  • Cadastre-se

dev botao

ACBRConsultaCNPJ retornando o Nome da Empresa errado quando tem um E-Comercial


Ver Solução Respondido por Victor H. Gonzales - Panda,

Recommended Posts

  • Membros Pro
Postado (editado)

Bom dia pessoal!

Um cliente me passou uma situação em que fez uma consulta de CNPJ e retornou o nome com uma "&" no lugar do E-Comercial. Dei uma pesquisada e vi que no html o E-Comercial aparece desta forma. 

Então para resolver o problema eu inclui uma linha a mais na função TACBrConsultaCNPJ.LerCampo :

  if linha = NomeCampo then
    begin
      Result := StringReplace(Trim(Texto[i+1]),' ',' ',[rfReplaceAll]);
      Result := StringReplace(Result,'&','&',[rfReplaceAll]);                 // linha incluída
      Texto.Delete(I);
      break;
    end;
  end

Isso resolveu o problema aqui, mas não tenho certeza se essa é a melhor solução.

Em anexo a unit alterada.

Abraços

ACBrConsultaCNPJ.pas

Editado por CarlosSolla
Acertar o titulo
Link para o comentário
Compartilhar em outros sites

  • CarlosSolla changed the title to ACBRConsultaCNPJ retornando o Nome da Empresa errado quando tem um E-Comercial
  • Consultores
2 horas atrás, CarlosSolla disse:

Bom dia pessoal!

Um cliente me passou uma situação em que fez uma consulta de CNPJ e retornou o nome com uma "&" no lugar do E-Comercial. Dei uma pesquisada e vi que no html o E-Comercial aparece desta forma. 

Então para resolver o problema eu inclui uma linha a mais na função TACBrConsultaCNPJ.LerCampo :

  if linha = NomeCampo then
    begin
      Result := StringReplace(Trim(Texto[i+1]),' ',' ',[rfReplaceAll]);
      Result := StringReplace(Result,'&','&',[rfReplaceAll]);                 // linha incluída
      Texto.Delete(I);
      break;
    end;
  end

Isso resolveu o problema aqui, mas não tenho certeza se essa é a melhor solução.

Em anexo a unit alterada.

Abraços

ACBrConsultaCNPJ.pas 17.3 kB · 0 downloads

na utilização de qual provedor?

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Consultores

image.png

Teste usando o CNPJWS e o ReceitaWS não tive nenhum problema.

 

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Postado (editado)
2 horas atrás, Victor H. Gonzales - Panda disse:

na utilização de qual provedor?

Eu utilizo o evento SolicitarCaptcha que faz a consulta usando o TEdgeBrowser.

o codigo utilizado no evento é o seguinte:

procedure TFormCadTercImpDados.ACBrConsultaCNPJSolicitarCaptcha(var AHtml: string);
var Url: string;
begin
  Url := 'https://solucoes.receita.fazenda.gov.br/Servicos/cnpjreva/Cnpjreva_Solicitacao.asp?cnpj=' + editCNPJ.text;
  AHtml := TFNavegar.Navegar(Url);
end;

a classe TFNavegar está na unit em anexo.

Grato

ACBrConsultaCNPJNavegar.dfm ACBrConsultaCNPJNavegar.pas

Editado por CarlosSolla
Correção
Link para o comentário
Compartilhar em outros sites

  • Consultores

Esses códigos não fazem parte do componente oficial.

a consulta por captcha é depreciada no componente, e há implementações de Webservices.

esses codigos enviados não pertencem ao componente em si, pelo o que parece está fazendo um webcrawler embarcando a dependencia do navegador edge.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Consultores

a sua Unit está muito desatualizada, que não há nem suporte a Webservices, sugiro fazer uma atualização e reinstalação do componente
image.png

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Sim, faz um tempo que não atualizo, estou na revisão 31538.

Peço desculpas, verifiquei agora a revisão mais recente e a função LerCampo nem existe mais nela.

Uma pena, porém, a funcionalidade que permite utilizar o Navegador ter sido retirada; eu prefiro consultar diretamente o site do governo pela garantia de que ali os dados estão sempre atualizados.

Vou então fazer uma cópia da unit ACBRConsultaCNPJ e inclui-la diretamente no meu projeto. Agradeço pela atenção de todos.

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

É que embarcar o navegador não é nativo do componente, 

Talvez gerar uma dependência de dll vi algumas com 100mb também não é uma boa pratica.

Os endpoints que tem hoje no componente tem uma leve discrepância, também tem as versões comerciais que prometem consulta diretamente a Serpro em tempo real.

Talvez seja uma boa rever essa prática.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.