Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4135 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Tenho uma DLL que faz consulta de um CNPJ na pagina da Receita Federal e importa os seguintes campos:

 

Razão social

Fantasia

Endereço

Numero

Bairro

Cidade

UF 

CEP

 

Eu utilizo ela para preencher os campos do cadastro de uma empresa para emitir a nota fiscal, e isso agiliza bastante. Sendo que muitas vezes o cliente que pede a nota fiscal para uma empresa não sabe por exemplo o CEP, aí fica ligando para perguntar alguém e nisso vai demorando um simples cadastro. E com está DLL consigo preencher os campos essenciais do cadastro, precisando saber apenas o CNPJ.

 

Então gostaria de colaborar com o meu humilde componente para o Projeto ACBR, que usa está DLL de maneira simplificada. E o mesmo componente téria a função de atualizar a mesma DLL toda vez que tive-se alguma mudança no site da receita federal.

 

Sendo que todos os CNPJ já consultados ficaria em um banco de dados, e toda vez que um outro usuário digita-se o mesmo CNPJ não seria mais necessário digitar o captcha, e o processo seria mais rápido e prático ainda.

 

A minha dúvida seria como posso colaborar com este componente para todos que tem a palette ACBR.

 

Quem tiver interesse de como baixar a DLL citada acima com um exemplo com fonte em delphi. Acessar http://www.fsist.com.br/CNPJConsultar2.0.rar

  • Consultores
Postado

Olá,

  Ficamos felizes em saber que tem interesse em contribuir para o ACBr. De um modo geral, para contribuir basta fazer o que fez, a saber, criar um tópico, anexar os arquivos fontes e aguardar a posição dos moderadores/Administradores.

 Mas só para ter certeza que sua sugestão atinja os objetivos do projeto ACBr, seria bom esclarecer alguns pormenores.

 

 Como pretende disponibilizar a DLL? Vai abrir o código fonte dela?

 Sobre a responsabilidade pelo Banco de Dados de onde as informações são retiradas, a dll faz uso apenas do site da Receita ou faz uso de algum outro site?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Olá,

  Ficamos felizes em saber que tem interesse em contribuir para o ACBr. De um modo geral, para contribuir basta fazer o que fez, a saber, criar um tópico, anexar os arquivos fontes e aguardar a posição dos moderadores/Administradores.

 Mas só para ter certeza que sua sugestão atinja os objetivos do projeto ACBr, seria bom esclarecer alguns pormenores.

 

 Como pretende disponibilizar a DLL? Vai abrir o código fonte dela?

 Sobre a responsabilidade pelo Banco de Dados de onde as informações são retiradas, a dll faz uso apenas do site da Receita ou faz uso de algum outro site?

 

 

Como pretende disponibilizar a DLL? 

Pelo endereço por exemplo http://www.fsist.com.br/cnpjdll.zip

 

Vai abrir o código fonte dela?

Se for necessário, posso abrir o código fonte. Mais o uso da dll é realmente necessário Exemplo: Se o site da receita mudar a página de consulta eu irei atualizar a dll. E o usuário que a fizer uso da dll, terá a sua dll atualizada sem fazer nenhum tipo de alteração em seu software. Já se ele fiz uso da código fonte da dll, ele terá que mudar o código fonte na mão caso a receita mude a pagina de consulta.

 

Sobre a responsabilidade pelo Banco de Dados de onde as informações são retiradas, a dll faz uso apenas do site da Receita ou faz uso de algum outro site?

Disponibilizarei 2 tipos de consulta:

1ª A informação é tirada exclusivamente da pagina da receita federal utilizando captcha e enviando os dados do cnpj, razao, endereco etc. Para um banco na internet.

 

2ª A informação é retirada do site http://www.fsist.com.br quando algum outro usuário já tiver consultado aquele CNPJ e quando for a primeira vez que um usuário da dll consultar tal CNPJ será consultado da pagina da receita federal e o mesmo atualizara o banco de dados na internet para que o próximo usuário que necessitar consultar tal CNPJ não será mais preciso utilizar o captcha.

 

Também fiz uma consulta do cnpj experimental que não precisa digitar o captcha só que é um pouco lenta para ler o capcha.

http://www.fsist.com.br/buscacnpj.aspx?cnpj=digite_aqui_cnpj

 

A quebra de linha utilizada é #13#10 e a resposta é dada na seguinte sequencia:

 

1.Resposta da Consulta {O Retorno vai ser OK quando a consulta não tiver nenhum erro}
2.Tipo da Empresa {Ex: matriz, filial etc..}
3.Razão Social {O nome da empresa}
4.Abertura {A data de abertura da empresa}
5.Endereço
6.Numero {O número do endereço}
7.Complemento {Complemento do endereço}
8.Bairro
9.Cidade
10.UF
11.CEP
12.Situação {A situação cadastral da empresa}
13.Fantasia {O nome fantasia da empresa quando cadastrado}
Postado

Como pretende disponibilizar a DLL? 

Pelo endereço por exemplo http://www.fsist.com.br/cnpjdll.zip

 

Vai abrir o código fonte dela?

Se for necessário, posso abrir o código fonte. Mais o uso da dll é realmente necessário Exemplo: Se o site da receita mudar a página de consulta eu irei atualizar a dll. E o usuário que a fizer uso da dll, terá a sua dll atualizada sem fazer nenhum tipo de alteração em seu software. Já se ele fiz uso da código fonte da dll, ele terá que mudar o código fonte na mão caso a receita mude a pagina de consulta.

 

Sobre a responsabilidade pelo Banco de Dados de onde as informações são retiradas, a dll faz uso apenas do site da Receita ou faz uso de algum outro site?

Disponibilizarei 2 tipos de consulta:

1ª A informação é tirada exclusivamente da pagina da receita federal utilizando captcha e enviando os dados do cnpj, razao, endereco etc. Para um banco na internet.

 

2ª A informação é retirada do site http://www.fsist.com.br quando algum outro usuário já tiver consultado aquele CNPJ e quando for a primeira vez que um usuário da dll consultar tal CNPJ será consultado da pagina da receita federal e o mesmo atualizara o banco de dados na internet para que o próximo usuário que necessitar consultar tal CNPJ não será mais preciso utilizar o captcha.

 

Também fiz uma consulta do cnpj experimental que não precisa digitar o captcha só que é um pouco lenta para ler o capcha.

http://www.fsist.com.br/buscacnpj.aspx?cnpj=digite_aqui_cnpj

 

A quebra de linha utilizada é #13#10 e a resposta é dada na seguinte sequencia:

 

1.Resposta da Consulta {O Retorno vai ser OK quando a consulta não tiver nenhum erro}
2.Tipo da Empresa {Ex: matriz, filial etc..}
3.Razão Social {O nome da empresa}
4.Abertura {A data de abertura da empresa}
5.Endereço
6.Numero {O número do endereço}
7.Complemento {Complemento do endereço}
8.Bairro
9.Cidade
10.UF
11.CEP
12.Situação {A situação cadastral da empresa}
13.Fantasia {O nome fantasia da empresa quando cadastrado}

 

 

Sua ideia é ótima!

sua DLL também (já fiz os teste em minha aplicação com ela e já começar a usar) mas,

Na Minha opinião vc de deveria disponibilizar os fontes assim como os outros componentes do acbr não em forma de DLL e sim como componente e sempre que tiver atualizações vc enviaria para o SVN se os moderadores permitirem isso 

assim fica mais facil a integração com os sistemas e a manutenção caso projeto seja descontinuado por qualquer motivo

e vc contaria ainda com as contribuições dos outros usuários comuns do fórum.

Postado

Penso que se disponibilizar o código fonte da dll os usuário poderão retirar as linhas de comandos que atualiza o banco de dados da internet, e desta maneira sempre ficaríamos digitando os captchas. Já quando é atualizado o banco de dados na internet, o próximo usuário que fizer a consulta do mesmo CNPJ não necessitara mais digitar o captcha por que vai importar os dados direto do banco de dados.

Sendo que como dll os software que utilizar poderá simplesmente copiando a nova dll quando tiver atualização, e o software não precisaria ser copilado de novo. E podeira ser até de maneira automática. 

Já se o código fonte da dll for copilado junto com o código fonte do aplicativo isso não será possivel. E terá que atualizar o aplicativo inteiro.

  • Consultores
Postado

O problema com o segundo método é que alguém usando sua rotina que faz acesso ao seu banco de dados próprio estaria ajudando a montar um banco de dados com dados de empresas, dados estes providos direto da Receita. Não sei se isso é de alguma forma atrativo, ou se não poderia ter alguma implicação legal.

 

Por exemplo, será que alguma empresa ficaria feliz em expor os clientes e fornecedores dos usuários a essa exposição de dados? Não sei.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

O problema com o segundo método é que alguém usando sua rotina que faz acesso ao seu banco de dados próprio estaria ajudando a montar um banco de dados com dados de empresas, dados estes providos direto da Receita. Não sei se isso é de alguma forma atrativo, ou se não poderia ter alguma implicação legal.

 

Por exemplo, será que alguma empresa ficaria feliz em expor os clientes e fornecedores dos usuários a essa exposição de dados? Não sei.

Sua sugestão seria digitar o captcha para sempre, sem armazenar os dados ?

Postado

Só um comentario do seguimento Consulta CNPJ ,

 

Tenho uma rotina própria que faz este trabalho de pesquisa Cnpj e não utilizo componentes , dll's... , sei tbm que o componente que o Daniel comentou faz este serviço e não está presente no SVN , nem no trunk nem no branches  !

Teve algum problema em relação ao mesmo para não disponibilizar ou esta em outro link de download ?

 

Tópicos relacionados :

 

 

 

  • Fundadores
Postado

Apenas falta de tempo mesmo... sempre tem algo que fura a fila.... dessa vez foi o ACBrSAT

 

Fazer consultas HTTP em pascal não é difícil... o componente que tenho (interno) é muito parecido com os outros componentes do Pacote ACBrTCP, como ACBrCEP, ACBrIBGE, ACBrCNIEE, ACBrNFPws, etc...  Prometo que algum dia ainda modifico meu componente de uso interno para ele se ajustar ao ACBr...

 

 

Em relação a proposta de doação, acho que não é compatível com as premissas do ACBr... Código aberto, Multi Plataforma e Multi IDE...

O ideal seria transformar em componente compatibilizá-lo para usar a "Synapse" assim como os demais componentes da palheta ACBrTCP, (ACBrSocket)

 

Acho que só isso quebraria boa parte do seu código...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Consultores
Postado

Bom dia a todos,

 

Fernando, na minha opnião tem duas coisas que esta pegando.

 

1. você não quer transformar a DLL em um componente seguindo o padrão ACBr e disponibiliza-lo com o código fonte .

2. os dados retornados são armazenados em um banco de dados na internet e não no meu banco de dados.

 

Uma transportadora (por exemplo) polupar o seu banco de dados com os dados das empresas que aparecem em uma Nota Fiscal (Emitente e Destinatário) é normal pois os dados das mesmas vão aparecer no conhecimento como Remente e Destinatário.

 

Tanto o Emitente da nota bem como o Destinatário da mercadoria, entende perfeitamente bem essa necessidade da transportadora possuir esses dados.

 

Mas como já foi comentado, ninguem gostaria de saber que os dados de sua empresa encontra-se em um banco de dados na internet onde através do CNPJ alguem poderia ter acesso a todas as informações e começar a emitir notas ou conhecimentos de transporte sem essa empresas realmente ter comprado ou vendido ou solicitado o serviço.

 

Me desculpe, mas você permitindo que outros sistemas utilizem a sua DLL, gratuitamente ou não, o seu banco de dados que esta na internet vai sendo populado.

 

Não estou conseguindo digirir a sua proposta.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Também não acho interessante esta ideia de popular um banco de dados na internet. Independente se a DLL foi ou não disponibilizada gratuitamente. Na verdade, mesmo disponibilizando gratuitamente e os dados sendo públicos  você deve deixar claro que está capturando os dados digitados e armazenando em um banco de dados, dessa forma quem estiver implementando poderá decidir se deseja ou não utilizar a DLL.

Além disso, há um outro detalhe. Os dados contidos no site da receita federal são atualizados, dessa forma se a pesquisa for feita em um banco de dados externo primeiramente, pode ocorrer que os dados da empresa estão atualizados no site da receita e não foram atualizados no banco de dados externo, resultando em uma informação incorreta.

Postado (editado)

Desculpe-me, aqueles que mim entenderão mal. Minha intensão não é popular um banco de dados na internet com os dados de cnpj. Isso foi apenas a ideia que tive para se evitar digitar sempre os captchas.

 

Em relação ao comentário de "ncc.star" concordo quando você disse "Os dados contidos no site da receita federal são atualizados, dessa forma se a pesquisa for feita em um banco de dados externo primeiramente, pode ocorrer que os dados da empresa estão atualizados no site da receita e não foram atualizados no banco de dados externo, resultando em uma informação incorreta."

Principalmente por isso estou abandonando está ideia de armazenar essas informações em um banco de dados. E ficando com a ideia de obter os dados atualizados direto na pagina da receita.

 

Em relação a utilizar DLL. Estou abandonando está ideia também, que era pensando em quando houver-se mundas na pagina da receita, a dll poderia ser atualizada automaticamente sem precisar alterar nada no código fonte do software que a utiliza-se. 

 

Agora estou seguindo o conceito do componente ACBrCEP, apesar de eu não está utilizando a uses ACBrSocket. Eu estou utilizando agora "httpsend" que é a mesma uses que ACBrSocket e ACBRNfe utiliza. Não sei se resolveria o problema em ser multi-plataforma que o "Daniel Simoes" comentou mais agora não estou utilizando dll alguma.

 

Quem quiser da uma olhar pode baixar aqui http://www.fsist.com.br/CNPJSemDLL.rar esse código fonte foi feito no delphi 2006.

 

 

Também esta estudando uma maneira de fazer a consulta de CNPJ sem captcha, mais ficou um pouco lenta mais tá funcionando e é muito simples veja só:

 

http://www.fsist.com.br/buscacnpj.aspx?cnpj=digite_aqui_o_cnpj

 

Para consulta funcionar basta apenas substituir "digite_aqui_o_cnpj" pelo CNPJ que deseja consultar sem ponto ou traço.

Que vai ser retornado os campos separados por #13#10 na seguinte sequencia Resposta da Consulta, Tipo da Empresa, Razão Social, Abertura, Endereço, Numero, Complemento, Bairro, Cidade, UF, CEP, Situação, Fantasia.

Editado por fernando-m
Postado

Estive analisando o código fonte que vc enviou, só não entendi porque vc está consultando o site fsist.com.br e não diretamente o site da receita federal. Há algum impedimento nisso?

Postado

Estive analisando o código fonte que vc enviou, só não entendi porque vc está consultando o site fsist.com.br e não diretamente o site da receita federal. Há algum impedimento nisso?

Não a impedimento. O principal motivo é por que, quando o site da receita federal mudar eu atualizo apenas a pagina responsável por isso, em vez de ter que atualizar todos aplicativos que utiliza está consulta.

Outro motivo é que estou começando a conhecer o "httpsend" agora e ainda não sei enviar posts e armazenar cookies.

Postado

Acho que se a ideia é disponibilizar em um componente não pode estar vinculado com um terceiro site. Mesmo sendo válida a intenção de não ser necessário alterar o componente se houve alteração no site da receita.

Como o projeto ACBr é um projeto de código aberto, nenhum componente  pode ficar dependente de um serviço externo onde que ninguém tem acesso ao código fonte para que se for necessário faça-se alguma alteração. 

Você não pode garantir que seu site vai ficar indefinidamente on-line, se vai suportar os acessos ou mesmo, que você vai conseguir fazer as alterações necessárias no tempo hábil. Além disso, não temos garantia que em algum momento você altere para que salve os dados consultados para um banco de dados (como você comentou anteriormente). 

Para fazer um componente para o ACBr é necessário que toda a implementação seja dentro dos padrões do ACBr, pois se caso seja necessária uma correção, qualquer um pode fazer essa correção e enviar para ser aprovada, dessa forma o projeto cresce e todos ganham.

Postado

Acho que se a ideia é disponibilizar em um componente não pode estar vinculado com um terceiro site. Mesmo sendo válida a intenção de não ser necessário alterar o componente se houve alteração no site da receita.

Como o projeto ACBr é um projeto de código aberto, nenhum componente  pode ficar dependente de um serviço externo onde que ninguém tem acesso ao código fonte para que se for necessário faça-se alguma alteração. 

Você não pode garantir que seu site vai ficar indefinidamente on-line, se vai suportar os acessos ou mesmo, que você vai conseguir fazer as alterações necessárias no tempo hábil. Além disso, não temos garantia que em algum momento você altere para que salve os dados consultados para um banco de dados (como você comentou anteriormente). 

Para fazer um componente para o ACBr é necessário que toda a implementação seja dentro dos padrões do ACBr, pois se caso seja necessária uma correção, qualquer um pode fazer essa correção e enviar para ser aprovada, dessa forma o projeto cresce e todos ganham.

Então agora ficou mais difícil ainda. Tó vendo como posso fazer isso com o "httpsend"

Postado

Então agora ficou mais difícil ainda. Tó vendo como posso fazer isso com o "httpsend"

 

Fernando , muito bacana sua iniciativa viu !

 

Veja só , eu desenvolvi um componente pra uso próprio ha um tempo comummente como todos faz , que faz este trabalho de consulta CNPJ via HTTP nesse mesmo esquema seu , pra vc ter idéia alem de consultar no site da RF , fiz uma rotina que consulto em + 5 UF's no Sintegra SP , BA , SE , SC e RJ ,  pensei em oferecer aqui no fórum , mas é bem como o Daniel disse na questão tempo e tbm na questão compatibilidade .

 

Enfim , se vc tem tempo hábil e esta realmente empenhado em desenvolver e disponibilizar este componente , como já dito pelos colegas acima , acho que o legal primeiramente era estar saindo desta regra de vinculo ao seu próprio domínio =  http://www.fsist.com.br  , e segundo fazer oque vc já está fazendo , partindo da ideia que o Daniel comenta pra um desenvolvimento de Código via Synapse e não como está .

  • 2 semanas depois ...
  • Moderadores
Postado

Verifiquei o componente, e precisaria fazer alguns acertos:

 

 
- Usar como ponto de partida a classe já existente TACBrHTTP ao invés de usar métodos do delphi
- Não utilizar os 3 arquivos, fazer tudo em um só, veja que por exemplo as configurações de proxy que foram criadas já existem no ACBrHTTP
- Padronizar a nomenclatura das classes e métodos para o padrão ACBr o componente poderia se chamar por exemplo ACBrConsultaCNPJ ficando mais fácil de entender seu propósito, e seguir então a nomenclatura
- Remover dependência da JPG pois o Lazarus não a possui e ela causa problemas de compilação entre as versões de delphi,
- Remover o Form de captch (ver próximo tópico)
- Criar evento onde o usuário possa escolher o que fazer quanto ao captcha, penso que algo onde o usuário possa receber o stream e carrega-lo em um form da própria aplicação e passar ao evento o ok ou não.
- Criar o Package para instalação, 
- Criar um Icone, 
- Criar um Demo 

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Este tópico foi criado há 4135 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.