Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Plugin Grails para uso de funcionalidades dos Correios BR
Groovy JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
grails-app
lib
scripts
src/groovy/br/com/lucastex/grails/plugins/correios
target
web-app
CorreiosBrGrailsPlugin.groovy
LICENSE.txt
README.textile
application.properties
plugin.xml
stacktrace.log

README.textile

Plugin Grails – Correios-BR

Proposito

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.

Tipos de envio suportados

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.

Download e dependencias

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

Como usar

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)

Exemplos

Encomenda de 850 gramas, do cep 85851-150 para o cep 01331-001 com AR por SEDEX:

def calculo = correiosService.calculoFrete(servico: postagem.SEDEX, cepOrigem: "85851-150", cepDestino: "01331-001", peso: 0.850, avisoRecebimento: true)

Encomenda de 1.2 kg, do cep 86051-060 para o cep 01337-000 entregue em maos por SEDEX a cobrar:

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)

Tratamento de erros

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.

Como contribuir

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.

Implementacoes futuras

  • Servicos relacionados a CEP

Sobre

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).

Something went wrong with that request. Please try again.