Integração com ViaCEP para importação do CEP on-demand

447 views
Skip to first unread message

Wagner Pereira

unread,
Jun 25, 2015, 1:40:40 PM6/25/15
to openerp...@googlegroups.com
Boa tarde pessoal,

Esse é o meu primeiro post, faz um tempo que estou estudando o Odoo e finalmente tive a oportunidade de contribuir.

Criei este módulo que, quando instalado, automatiza a busca de CEP pegando as informações do site http://www.viacep.com.br usando uma API.

O módulo está disponivel em:


Para usá-lo é preciso desinstalar o módulo l10n_br_zip da localização brasileira pois eles conflitam.

Eu usei parte do código do l10n_br_zip.

O ViaCEP não é a única fonte de CEPs usando API disponível no Brasil, eu achei pelo menos 2 outras semelhantes, uma inclusive que é OpenSource, eu vou escrever outros módulos para cada um deles assim podemos escolher qual quiser usar.

Este módulo não guarda os dados do CEP no banco de dados, para cada vez que o botão de busca é clicado ele faz a busca usando a API do site e grava os dados diretamente no cliente ou compania.

Qualquer dúvida é só perguntar.

Obrigado.

Wagner Pereira 

Danimar Ribeiro

unread,
Jun 25, 2015, 2:15:08 PM6/25/15
to openerp...@googlegroups.com
Da uma melhoradinha no código, removendo os arquivos .pyc, e move eles para dentro de uma pasta, e podemos aceitar ele no odoo-brazil, se tiver interesse é claro. https://github.com/odoo-brazil/

Outra dica é que ele se integrasse com o l10n_br_zip, talvez guardar os ceps consultados não seja uma ideia ruim, seu módulo poderia sobrescrever apenas o zip_search. Seria bom também efetuar a pesquisa por endereço.

--
Você recebeu essa mensagem porque está inscrito no grupo "OdooBrasil / OpenERPBrasil.org" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para openerp-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Danimar Ribeiro

Wagner Pereira

unread,
Jun 25, 2015, 2:44:25 PM6/25/15
to openerp...@googlegroups.com

Eu pensei nesta hipótese e até tentei fazer o resultado gravar na tabela de ceps do l10n_br_zip, mas eu vi que o código deste módulo está em versão mais antiga do Openerp, apesar de eu estar aprendendo, eu senti muita dificuldade em integrar com este código.

 

Eu tenho interesse em fazer isso funcionar sim, isso ajudaria a criar uma tabela com os CEPs mais usados e evitaria consulta externa a todo momento.

Uma dificuldade que eu tive foi em como gravar os dados na tabela, eu tentei usar o self.env[‘l10n_br.zip’] mas sem sucesso, alguma ideia de como eu consigo gravar os dados diretamente ?

 

Wagner

Luis Felipe Miléo

unread,
Jun 25, 2015, 3:49:31 PM6/25/15
to openerp...@googlegroups.com
Pessoal a melhor maneira de se consultar a base de dados dos correios é usando os serviços dos correios...

O Correios disponibiliza um webservice para consulta de CEP no serviço http://www.correios.com.br/para-voce/correios-de-a-a-z/sigep-web-gerenciador-de-postagens-dos-correios

http://www.corporativo.correios.com.br/encomendas/sigepweb/doc/Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf

Estamos com essa integração pronta, um dos detalhes que faltam é a consulta do CEP, se alguém puder ajudar a testar agradeço.
https://github.com/kmee/carrier-delivery/tree/correios_sigep_web

Creio que valha a pena fazer um modulo mais simples somente para a consulta da URL do CEP.

Atenciosamente


De: "Wagner Pereira" <wagnerp...@gmail.com>
Para: openerp...@googlegroups.com
Enviadas: Quinta-feira, 25 de junho de 2015 15:44:14
Assunto: RES: [openerpbrasil.org] Integração com ViaCEP para importação do CEP on-demand

Danimar Ribeiro

unread,
Jun 25, 2015, 3:57:47 PM6/25/15
to openerp...@googlegroups.com
Bah, eu pensava que era necessário pagar este, mas é livre, show de bola.
Acho que da ate para adaptar o módulo que o Wagner fez para utilizar diretamente o correio, e integrar o mesmo com o l10n_br_zip.

Quanto a sua pergunta:

"Uma dificuldade que eu tive foi em como gravar os dados na tabela, eu tentei usar o self.env[‘l10n_br.zip’] mas sem sucesso, alguma ideia de como eu consigo gravar os dados diretamente ?"

Realmente trabalhar com o código antigo e o novo as vezes da alguns problemas, mas pra gravar é assim mesmo:
self.env['l10n_br_.zip'].write(id, valores) - API nova
self.pool('l10n_br_.zip''').write(cr, uid, id, valores)  - Api antiga.

Só tem que cuidar que dependendo do local que utiliza a api nova não esta disponivel, ou vice versa, depende se a sua classe herda da nova api ou da antiga.
https://www.odoo.com/documentation/8.0/reference/orm.html

Wagner Pereira

unread,
Jun 25, 2015, 9:15:56 PM6/25/15
to openerp...@googlegroups.com

Valeu, isso ajuda bastante, eu vou fazer um fork da l10n_br_zip e ajustar para fazer a busca online quando não tiver na tabela.

 

Eu consegui usar a nova API no meu módulo, mas não herdei nenhuma função do res.partner ou res.company, pelo visto o código do l10n_br_zip foi feito baseado na API antiga, muda-la teria que reescrever todo o código, eu vou tentar usar a API antiga com estas dicas, amanhã dou um retorno.

Reply all
Reply to author
Forward
0 new messages