Este plugin oferece por enquanto a funcionalidade de se conectar no servico de calculo de frete dos correios.
O servico de calculo de frete e gratuito no site dos correios, porem nao existe garantia de disponibilidade do mesmo.
O plugin oferece suporte aos seguintes tipos de envio:
- PAC (postagem.PAC)
- SEDEX (postagem.SEDEX)
- SEDEX 10 (postagem.SEDEX_10)
- SEDEX Hoje (postagem.SEDEX_HOJE)
- SEDEX a cobrar (postagem.SEDEX_A_COBRAR)
A referencia a postagem bem do import static acima descrito.
O plugin foi construido com a versao 1.2.2 do Grails mas deve rodar com qualquer versao a partir da 1.1, pois nao possui outras maiores dependencias.
O unico motivo para usar o 1.2.2 foi para poder usar o release-plugin apenas do ZIP e manter os fontes aqui no github.
Para instalar em sua app, basta baixar o zip daqui do github (area de downloads do projeto) ou com o classico
grails install-plugin correios-br
O plugin possui um Controller TesteController para que voce possa testar o calculo, neste controller e respectivas views um codigo totalmente funcional esta a disposicao para consulta.
E necessario importar as seguintes classes
import br.com.lucastex.grails.plugins.correios.CalculoFrete
import static br.com.lucastex.grails.plugins.correios.CalculoFrete.*
Apos isso, injete o servico dos correios em seu Controller
def correiosService
E chame o metodo calculoFrete passando os argumentos necessarios para o calculo. Abaixo uma lista dos argumentos:
Nome | Descricao | Obrigatorio | Valores possiveis |
servico | Tipo do servico para calcular | Sim | Uma das opcoes descritas acima (postagem.SEDEX ou postagem.SEDEX_A_COBRAR, etc) |
cepOrigem | CEP de origem do envio | Sim | CEP ‘xxxxx-xxx’ |
cepDestino | CEP de destino do envio | Sim | CEP ‘xxxxx-xxx’ |
peso | Peso da encomenda (em kg) | Sim | 0.35 (para 350 gramas) |
valorDeclarado | Valor declarado da encomenda (para seguro) | Nao | 230.45 (para R$ 240,45) |
avisoRecebimento | Para calcular encomendas com AR (Aviso de recebimento) | Nao | true / false |
maoPropria | Para calcular encomendas entregues em mao (requer assinatura) | Nao | true / false |
Toda chamada ira retornar um objeto do tipo CalculoFrete (pacote br.com.lucastex.grails.plugins.correio). Esta classe possui os seguintes atributos:
Atributo | Tipo | Descricao |
versao | String | Versao da resposta retornada pelos correios |
tipoPostagem | String | Tipo da postagem (SEDEX, SEDEX A COBRAR, etc) |
codigoTipoPostagem | String | Codigo do tipo da postagem |
peso | Double | Peso da encomenda |
maoPropria | boolean | Se a encomenda sera entregue em maos |
tarifaMaoPropria | Double | Custo adicional para ser entregue em maos |
avisoRecebimento | boolean | Se a encomenda ira gerar o aviso de recebimento |
tarifaAvisoRecebimento | Double | Custo adicional do aviso de recebimento |
valorDeclarado | Double | Valor declarado pela encomenda |
tarifaValorDeclarado | Double | Tarifa de seguro para o valor declarado |
valorFrete | Double | Valor total para envio da encomenda |
origem | Map | Map com as seguintes chaves (‘uf’ => UF de origem, ‘cep’ => CEP de origem, ‘local’ => Se e interior do estado ou capital) |
destino | Map | Map com as seguintes chaves (‘uf’ => UF de destino, ‘cep’ => CEP de destino, ‘local’ => Se e interior do estado ou capital) |
def calculo = correiosService.calculoFrete(servico: postagem.SEDEX, cepOrigem: "85851-150", cepDestino: "01331-001", peso: 0.850, avisoRecebimento: true)
def calculo = correiosService.calculoFrete(servico: postagem.SEDEX_A_COBRAR, cepOrigem: "86051-060", cepDestino: "01337-000", peso: 1.2, mapPropria: true)
Encomenda de 500 gramas, do cep 60245-965 para o cep 29018-973 com seguro para o valor de R$ 1500,00 por SEDEX_10:
def calculo = correiosService.calculoFrete(servico: postagem.SEDEX_10, cepOrigem: "60245-965", cepDestino: "29018-973", peso: 0.5, valorDeclarado: 1500)
Em caso de um erro retornado pelo Correios, uma exception ira ser lancada com a mensagem de erro que o Correios retornar, por exemplo: “CEP de origem invalido”, ou “Tipo de encomenda nao disponivel para este destino”, etc.
Tire a bunda desta cadeira, faca um fork do projeto, altere o que achar necessario e envio um pull request. Este plugin e da comunidade e e responsabilidade de todos fazer ele crescer.
- Servicos relacionados a CEP
Plugin desenvolvido por Lucas Teixeira.
Caso precise, entre em contato atraves do e-mail lucastex arroba gmail ponto com ou do twitter @lucastex
YourKit is kindly supporting open source projects with its full-featured Java Profiler.
YourKit, LLC is the creator of innovative and intelligent tools for profiling
Java and .NET applications. Take a look at YourKit’s leading software products:
YourKit Java Profiler (http://www.yourkit.com/java/profiler/index.jsp) and
YourKit .NET Profiler (http://www.yourkit.com/.net/profiler/index.jsp).