correios-frete-alternative 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +28 -0
- data/.rspec +2 -0
- data/.travis.yml +18 -0
- data/CHANGELOG.rdoc +107 -0
- data/Gemfile +2 -0
- data/README.rdoc +364 -0
- data/Rakefile +25 -0
- data/bin/console +12 -0
- data/correios-frete-alternative.gemspec +31 -0
- data/lib/correios-frete-alternative.rb +9 -0
- data/lib/correios/frete.rb +19 -0
- data/lib/correios/frete/calculador.rb +69 -0
- data/lib/correios/frete/pacote.rb +69 -0
- data/lib/correios/frete/pacote_item.rb +27 -0
- data/lib/correios/frete/parser.rb +20 -0
- data/lib/correios/frete/servico.rb +97 -0
- data/lib/correios/frete/version.rb +6 -0
- data/lib/correios/frete/web_service.rb +87 -0
- data/misc/correios_frete_manual_v1.7.pdf +0 -0
- data/misc/correios_frete_manual_v1.9.pdf +0 -0
- data/spec/correios/frete/calculador_spec.rb +174 -0
- data/spec/correios/frete/pacote_item_spec.rb +45 -0
- data/spec/correios/frete/pacote_spec.rb +188 -0
- data/spec/correios/frete/parser_spec.rb +44 -0
- data/spec/correios/frete/servico_spec.rb +185 -0
- data/spec/correios/frete/web_service_spec.rb +18 -0
- data/spec/correios/frete_spec.rb +79 -0
- data/spec/spec_helper.rb +13 -0
- data/spec/support/mock_request.rb +17 -0
- data/spec/support/responses/success-response-many-services.xml +27 -0
- data/spec/support/responses/success-response-one-service.xml +15 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9e388a73e550cea8fd88efcf81f77e786ed293f1
|
4
|
+
data.tar.gz: 294afb6601e0f43befcac0784c88f2bb73d7fa47
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 80d8679e4b56592430ceaced1d4cb74b13604b7770b5f1cbd097fd243689e9b2712414c1312cb36b70cfa9e52113d0c6d848a06cb76b5951e2c3b511945bbf5b
|
7
|
+
data.tar.gz: e6bd014f167905ad1aaecc0ae019d2f8946935ea4c192fdbd623b8d4d81e1b4285022e18e083de56de53d7f26d3586c55d7d97a4f775654cba31a084ee6ccaf7
|
data/.gitignore
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
|
19
|
+
# For MacOS:
|
20
|
+
.DS_Store
|
21
|
+
|
22
|
+
# For vim:
|
23
|
+
*.swp
|
24
|
+
*.swo
|
25
|
+
|
26
|
+
# RVM
|
27
|
+
.ruby-gemset
|
28
|
+
.ruby-version
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/CHANGELOG.rdoc
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
== Versão 1.10.1
|
2
|
+
- Atualização: suporte para nokogiri 1.7 (https://github.com/prodis/correios-frete/issues/25)
|
3
|
+
|
4
|
+
== Versão 1.10.0
|
5
|
+
- Novo: Versão mínima do Ruby é 1.9.3 a partir de agora.
|
6
|
+
|
7
|
+
== Versão 1.9.5
|
8
|
+
- Atualização: nokogiri e sax-machine gems.
|
9
|
+
|
10
|
+
== Versão 1.9.4
|
11
|
+
- Atualização: Versão 0.0.10 da gem log-me.
|
12
|
+
|
13
|
+
== Versão 1.9.3
|
14
|
+
- Correção: Valores a partir de 1000 retornam com pontos nos milhares (1.000,00) e a conversão para float não estava excluindo os pontos do número.
|
15
|
+
|
16
|
+
== Versão 1.9.2
|
17
|
+
- Correção: A condição de sucesso para frete cálculado a partir de agora é o valor do frete e não mais se existe uma mensagem de erro. Existem casos onde o frete é calculado, mas também é retornada uma mensagem de erro. Nesse caso não é erro um erro, e sim uma mensagem de aviso. Por exemplo, CEP de origem 20091-005 e CEP de destino 23085-270.
|
18
|
+
|
19
|
+
== Versão 1.9.1
|
20
|
+
- Atualização: Versão 0.0.7 da gem log-me.
|
21
|
+
- Atualização: Versão 1.6.2 da gem Nokogiri.
|
22
|
+
|
23
|
+
== Versão 1.9.0
|
24
|
+
- Novo: {Issue #11: Suporte ao formato envelope}[https://github.com/prodis/correios-frete/pull/11].
|
25
|
+
|
26
|
+
== Versão 1.8.0
|
27
|
+
- Novo: {Issue #10: Suporte ao formato envelope}[https://github.com/prodis/correios-frete/issues/10].
|
28
|
+
|
29
|
+
== Versão 1.7.0
|
30
|
+
- Novo: Configuração de tempo de espera de resposta (timeout) para requisições ao Web Service dos Correios.
|
31
|
+
- Atualização: Gem WebMock no lugar da gem FakeWeb e remoção da gem Jeweler.
|
32
|
+
|
33
|
+
== Versão 1.6.2
|
34
|
+
- Melhoria: Método HTTP no log de requisição.
|
35
|
+
- Atualização: Versão 0.0.3 da gem log-me.
|
36
|
+
|
37
|
+
== Versão 1.6.1
|
38
|
+
- Melhoria: Encoding de ISO-8859-1 para UTF-8 em toda resposta do Web Service.
|
39
|
+
|
40
|
+
== Versão 1.6.0
|
41
|
+
- Correção: Encoding de ISO-8859-1 para UTF-8 na mensagem de erro dos serviços, pois o parser não estava rolando para mensagens com acentos e/ou cedilhas.
|
42
|
+
|
43
|
+
== Versão 1.5.2
|
44
|
+
- Correção: {Issue #9: Bundler as dependency}[https://github.com/prodis/correios-frete/issues/9] - Remoção da gem bundler das dependências de ambiente de desenvolvimento.
|
45
|
+
- Atualização: Refatorações de testes.
|
46
|
+
|
47
|
+
== Versão 1.5.1
|
48
|
+
- Novo: Construtor de Correios::Frete::Pacote recebendo itens.
|
49
|
+
|
50
|
+
== Versão 1.5.0
|
51
|
+
- Novo: {Issue #3: Cálculo de frete para múltiplos itens}[https://github.com/prodis/correios-frete/issues/3] utilizando pacotes.
|
52
|
+
- Correção: Formatação de separador de casas decimais com vírgula na requisição do Web Service dos Correios.
|
53
|
+
|
54
|
+
== Versão 1.4.0
|
55
|
+
- Novo: Suporte para cálculo de e-SEDEX Prioritário e e-SEDEX Express.
|
56
|
+
|
57
|
+
== Versão 1.3.3
|
58
|
+
- Atualização: Versão 1.5.0 da gem nokogiri.
|
59
|
+
|
60
|
+
== Versão 1.3.2
|
61
|
+
- Correção: Data do gemspec estava sendo gerada com horário zerado e parava a instalação da gem.
|
62
|
+
|
63
|
+
== Versão 1.3.1
|
64
|
+
- Correção: Passagem correta de parâmetros na criação da classe Correios::Frete::WebService no cálculo de frete.
|
65
|
+
|
66
|
+
== Versão 1.3.0
|
67
|
+
- Atualização: Refatoração das classes Correios::Frete::Calculador e Correios::Frete::WebService.
|
68
|
+
|
69
|
+
== Versão 1.2.1
|
70
|
+
- Atualização: Documentação
|
71
|
+
|
72
|
+
== Versão 1.2.0
|
73
|
+
- Novo: Uso da gem LogMe.
|
74
|
+
- Melhoria: Opção de logar os cabeçalhos HTTP da resposta do Web Service dos Correios.
|
75
|
+
|
76
|
+
== Versão 1.1.0
|
77
|
+
- Novo: Suporte para todos os serviços de frete disponibilizados pelos Correios.
|
78
|
+
- Correção: Formatação com duas casas decimais do valor declarado.
|
79
|
+
|
80
|
+
== Versão 1.0.2
|
81
|
+
- Melhoria: Remoção dos cabeçalhos HTTP no log da resposta do Web Service dos Correios.
|
82
|
+
|
83
|
+
== Versão 1.0.1
|
84
|
+
- Atualização: Documentação.
|
85
|
+
|
86
|
+
== Versão 1.0.0
|
87
|
+
- Aviso: Quebra de compatibilidade com a versão 0.3.0.
|
88
|
+
- Novo: Adicionado log de requisição e resposta do Web Service dos Correios.
|
89
|
+
|
90
|
+
== Versão 0.3.0
|
91
|
+
- Novo: Métodos diretos para cálculo de um serviço de frete por vez. Exemplo: Correios::Frete#calcular_sedex.
|
92
|
+
|
93
|
+
== Versão 0.2.1
|
94
|
+
- Melhoria: Alias Correios::Frete::Servico#sucesso? para Correios::Frete::Servico#success?.
|
95
|
+
- Melhoria: Alias Correios::Frete::Servico#erro? para Correios::Frete::Servico#error?.
|
96
|
+
- Atualização: Documentação.
|
97
|
+
|
98
|
+
== Versão 0.2.0
|
99
|
+
- Novo: Suporte para cálculo de e-SEDEX.
|
100
|
+
- Melhoria: Alias Correios::Frete#calculate para Correios::Frete#calcular.
|
101
|
+
- Melhoria: Atributo "nome" em Correios::Frete::Servico.
|
102
|
+
- Correção: {Issue #2: undefined method `key' for #<Hash:0xb5e8eea4>}[https://github.com/prodis/correios-frete/issues/2].
|
103
|
+
|
104
|
+
== Versão 0.1.0
|
105
|
+
- Cálculo de frete para os serviços PAC, SEDEX, SEDEX 10 e SEDEX Hoje.
|
106
|
+
- Cálculo de um serviço de frete por vez.
|
107
|
+
- Cálculo de vários serviços de frete ao mesmo tempo.
|
data/Gemfile
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,364 @@
|
|
1
|
+
= correios-frete
|
2
|
+
|
3
|
+
Cálculo de frete utilizando o Web Service dos Correios (http://www.correios.com.br/webservices).
|
4
|
+
|
5
|
+
Os serviços de frete suportados são <b>PAC</b>, <b>SEDEX</b>, <b>SEDEX a Cobrar</b> (necessário informar o valor declarado), <b>SEDEX 10</b>, <b>SEDEX Hoje</b> e <b>e-SEDEX</b>. Para os serviços com contrato é necessário informar código de empresa e senha.
|
6
|
+
|
7
|
+
http://prodis.net.br/images/ruby/2011/correios_logo.png
|
8
|
+
|
9
|
+
|
10
|
+
== Instalando
|
11
|
+
|
12
|
+
=== Gemfile
|
13
|
+
gem 'correios-frete'
|
14
|
+
|
15
|
+
=== Instalação direta
|
16
|
+
$ gem install correios-frete
|
17
|
+
|
18
|
+
|
19
|
+
== Usando
|
20
|
+
|
21
|
+
require 'correios-frete'
|
22
|
+
|
23
|
+
frete = Correios::Frete::Calculador.new :cep_origem => "04094-050",
|
24
|
+
:cep_destino => "90619-900",
|
25
|
+
:peso => 0.3,
|
26
|
+
:comprimento => 30,
|
27
|
+
:largura => 15,
|
28
|
+
:altura => 2
|
29
|
+
|
30
|
+
Cálculo de vários serviços ao mesmo tempo:
|
31
|
+
|
32
|
+
servicos = frete.calcular :sedex, :pac
|
33
|
+
|
34
|
+
servicos[:sedex].nome # => "SEDEX"
|
35
|
+
servicos[:sedex].descricao # => "SEDEX sem contrato"
|
36
|
+
servicos[:sedex].valor # => 26.2
|
37
|
+
servicos[:sedex].prazo_entrega # => 1
|
38
|
+
|
39
|
+
servicos[:pac].nome # => "PAC"
|
40
|
+
servicos[:pac].descricao # => "PAC sem contrato"
|
41
|
+
servicos[:pac].valor # => 10.0
|
42
|
+
servicos[:pac].prazo_entrega # => 5
|
43
|
+
|
44
|
+
Cálculo de um serviço de frete passando o serviço para parâmetro:
|
45
|
+
|
46
|
+
servico = frete.calcular :sedex
|
47
|
+
servico.nome # => "SEDEX"
|
48
|
+
servico.descricao # => "SEDEX sem contrato"
|
49
|
+
servico.valor # => 26.2
|
50
|
+
servico.prazo_entrega # => 1
|
51
|
+
|
52
|
+
servico = frete.calcular :pac
|
53
|
+
servico.nome # => "PAC"
|
54
|
+
servico.descricao # => "PAC sem contrato"
|
55
|
+
servico.valor # => 10.0
|
56
|
+
servico.prazo_entrega # => 5
|
57
|
+
|
58
|
+
Cálculo de um serviço de frete chamando o método direto do serviço:
|
59
|
+
|
60
|
+
servico = frete.calcular_sedex
|
61
|
+
servico.nome # => "SEDEX"
|
62
|
+
servico.descricao # => "SEDEX sem contrato"
|
63
|
+
servico.valor # => 26.2
|
64
|
+
servico.prazo_entrega # => 1
|
65
|
+
|
66
|
+
servico = frete.calcular_pac
|
67
|
+
servico.nome # => "PAC"
|
68
|
+
servico.descricao # => "PAC sem contrato"
|
69
|
+
servico.valor # => 10.0
|
70
|
+
servico.prazo_entrega # => 5
|
71
|
+
|
72
|
+
Verificação de sucesso e erro:
|
73
|
+
|
74
|
+
frete.altura = 100
|
75
|
+
|
76
|
+
servico = frete.calcular_sedex
|
77
|
+
servico.sucesso? # => false
|
78
|
+
servico.erro? # => true
|
79
|
+
servico.msg_erro # => "A altura nao pode ser maior que o comprimento."
|
80
|
+
|
81
|
+
Usando a interface pública em inglês:
|
82
|
+
|
83
|
+
servicos = frete.calculate :sedex, :pac
|
84
|
+
|
85
|
+
servico = frete.calculate_sedex
|
86
|
+
servico.success? # => true
|
87
|
+
servico.error? # => false
|
88
|
+
|
89
|
+
|
90
|
+
=== Usando pacotes
|
91
|
+
|
92
|
+
Você pode "montar" um pacote com vários itens. Com o cálculo do volume dos itens adicionados, o pacote único será gerado em formato de cubo.
|
93
|
+
|
94
|
+
item1 = Correios::Frete::PacoteItem.new :peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2
|
95
|
+
item2 = Correios::Frete::PacoteItem.new :peso => 0.7, :comprimento => 70, :largura => 25, :altura => 3
|
96
|
+
|
97
|
+
pacote = Correios::Frete::Pacote.new
|
98
|
+
pacote.adicionar_item(item1)
|
99
|
+
pacote.adicionar_item(item2)
|
100
|
+
|
101
|
+
pacote.peso # => 1.0
|
102
|
+
pacote.comprimento # => 18.32138799447962
|
103
|
+
pacote.largura # => 18.32138799447962
|
104
|
+
pacote.altura # => 18.32138799447962
|
105
|
+
pacote.volume # => 6150.0
|
106
|
+
pacote.formato # => :caixa_pacote
|
107
|
+
pacote.itens.size # => 2
|
108
|
+
|
109
|
+
Caso alguma dimensão do pacote montado seja menor que o tamanho mínimo exigido pelos Correios, o valor mínimo será atribuído à dimensão.
|
110
|
+
|
111
|
+
item1 = Correios::Frete::PacoteItem.new :peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2
|
112
|
+
item2 = Correios::Frete::PacoteItem.new :peso => 0.7, :comprimento => 40, :largura => 10, :altura => 3
|
113
|
+
|
114
|
+
pacote = Correios::Frete::Pacote.new
|
115
|
+
pacote.adicionar_item(item1)
|
116
|
+
pacote.adicionar_item(item2)
|
117
|
+
|
118
|
+
pacote.comprimento # => 16.0
|
119
|
+
pacote.largura # => 12.80579164987494
|
120
|
+
pacote.altura # => 12.80579164987494
|
121
|
+
|
122
|
+
Montado o pacote, basta passá-lo pelo parâmetro <b>encomenda</b> no construtor de Correios::Frete::Calculador.
|
123
|
+
|
124
|
+
frete = Correios::Frete::Calculador.new :cep_origem => "04094-050",
|
125
|
+
:cep_destino => "90619-900",
|
126
|
+
:encomenda => pacote
|
127
|
+
|
128
|
+
servicos = frete.calcular :sedex, :pac
|
129
|
+
|
130
|
+
servicos[:sedex].valor # => 29.2
|
131
|
+
servicos[:sedex].prazo_entrega # => 1
|
132
|
+
|
133
|
+
servicos[:pac].valor # => 13.3
|
134
|
+
servicos[:pac].prazo_entrega # => 5
|
135
|
+
|
136
|
+
<b>Observação:</b> Quando uma encomenda é fornecida ao calculador de frete, os parâmetros <b>peso</b>, <b>comprimento</b>, <b>largura</b>, <b>altura</b> e <b>formato</b> serão ignorados, sendo utilizados os valores da encomenda.
|
137
|
+
|
138
|
+
Usando a interface pública em inglês:
|
139
|
+
|
140
|
+
item1 = Correios::Frete::PacoteItem.new :peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2
|
141
|
+
item2 = Correios::Frete::PacoteItem.new :peso => 0.7, :comprimento => 70, :largura => 25, :altura => 3
|
142
|
+
|
143
|
+
pacote = Correios::Frete::Pacote.new
|
144
|
+
pacote.add_item(item1)
|
145
|
+
pacote.add_item(item2)
|
146
|
+
pacote.items.size # => 2
|
147
|
+
|
148
|
+
|
149
|
+
== Configurações
|
150
|
+
|
151
|
+
=== Timeout
|
152
|
+
|
153
|
+
Por padrão, o tempo de espera de resposta (timeout) para uma requisição ao Web Service dos Correios é de <b>10 segundos</b>. Após isso, se o Web Service dos Correios não responder, uma exceção do tipo <b>Timeout::Error</b> será lançada.
|
154
|
+
Você pode configurar esse tempo de espera usando o módulo <b>Correios::Frete</b>.
|
155
|
+
|
156
|
+
Correios::Frete.configure do |config|
|
157
|
+
config.request_timeout = 3 # Configura o tempo de espera para 3 segundos
|
158
|
+
end
|
159
|
+
|
160
|
+
|
161
|
+
=== Log
|
162
|
+
|
163
|
+
Por padrão, cada chamada ao Web Service dos Correios é logada em STDOUT, com nível de log <b>:info</b>, usando a gem {LogMe}[http://github.com/prodis/log-me].
|
164
|
+
|
165
|
+
Exemplo de log:
|
166
|
+
I, [2011-10-01T00:26:16.864990 #5631] INFO -- : Correios-Frete Request:
|
167
|
+
http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?sCepOrigem=04094-050&sCepDestino=90619-900&nVlPeso=0.3&nVlComprimento=30&nVlAltura=2&nVlLargura=15&nVlDiametro=0.0&nCdFormato=1&sCdMaoPropria=N&sCdAvisoRecebimento=N&nVlValorDeclarado=0,00&nCdServico=04510&nCdEmpresa=&sDsSenha=&StrRetorno=xml
|
168
|
+
|
169
|
+
I, [2011-10-01T00:26:17.121822 #5631] INFO -- : Correios-Frete Response:
|
170
|
+
HTTP/1.1 200 OK
|
171
|
+
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
172
|
+
<Servicos><cServico><Codigo>04510</Codigo><Valor>10,00</Valor><PrazoEntrega>5</PrazoEntrega><ValorMaoPropria>0,00</ValorMaoPropria><ValorAvisoRecebimento>0,00</ValorAvisoRecebimento><ValorValorDeclarado>0,00</ValorValorDeclarado><EntregaDomiciliar>S</EntregaDomiciliar><EntregaSabado>N</EntregaSabado><Erro>0</Erro><MsgErro></MsgErro></cServico></Servicos>
|
173
|
+
|
174
|
+
Se você configurar o nível de log como <b>:debug</b>, serão logados também todos os cabeçalhos HTTP da resposta:
|
175
|
+
D, [2011-10-01T00:27:50.597961 #5631] DEBUG -- : Correios-Frete Request:
|
176
|
+
http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?sCepOrigem=04094-050&sCepDestino=90619-900&nVlPeso=0.3&nVlComprimento=30&nVlAltura=2&nVlLargura=15&nVlDiametro=0.0&nCdFormato=1&sCdMaoPropria=N&sCdAvisoRecebimento=N&nVlValorDeclarado=0,00&nCdServico=04510&nCdEmpresa=&sDsSenha=&StrRetorno=xml
|
177
|
+
|
178
|
+
D, [2011-10-01T00:27:50.812046 #5631] DEBUG -- : Correios-Frete Response:
|
179
|
+
HTTP/1.1 200 OK
|
180
|
+
date: Sat, 01 Oct 2011 03:27:55 GMT
|
181
|
+
server: Microsoft-IIS/6.0
|
182
|
+
x-powered-by: ASP.NET
|
183
|
+
x-aspnet-version: 1.1.4322
|
184
|
+
set-cookie: ASP.NET_SessionId=cnoejn3dpioxapejc0c3np55; path=/
|
185
|
+
cache-control: private
|
186
|
+
expires: Sat, 01 Oct 2011 03:27:55 GMT
|
187
|
+
content-type: text/xml; charset=iso-8859-1
|
188
|
+
content-length: 401
|
189
|
+
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
190
|
+
<Servicos><cServico><Codigo>04510</Codigo><Valor>10,00</Valor><PrazoEntrega>5</PrazoEntrega><ValorMaoPropria>0,00</ValorMaoPropria><ValorAvisoRecebimento>0,00</ValorAvisoRecebimento><ValorValorDeclarado>0,00</ValorValorDeclarado><EntregaDomiciliar>S</EntregaDomiciliar><EntregaSabado>N</EntregaSabado><Erro>0</Erro><MsgErro></MsgErro></cServico></Servicos>
|
191
|
+
|
192
|
+
Para desabilitar o log, mudar o nível do log ou configurar um outro mecanismo de log, use o módulo <b>Correios::Frete</b>.
|
193
|
+
|
194
|
+
Correios::Frete.configure do |config|
|
195
|
+
config.log_enabled = false # Desabilita o log
|
196
|
+
config.log_level = :debug # Altera o nível do log
|
197
|
+
config.logger = Rails.logger # Usa o logger do Rails
|
198
|
+
end
|
199
|
+
|
200
|
+
=== Exemplo de configuração
|
201
|
+
|
202
|
+
Correios::Frete.configure do |config|
|
203
|
+
config.log_level = :debug
|
204
|
+
config.logger = Rails.logger
|
205
|
+
config.request_timeout = 3
|
206
|
+
end
|
207
|
+
|
208
|
+
== Informações adicionais
|
209
|
+
|
210
|
+
=== Serviços suportados
|
211
|
+
|
212
|
+
:pac # 04510 - PAC sem contrato
|
213
|
+
:pac_com_contrato # 41068 - PAC com contrato
|
214
|
+
:pac_gf # 41300 - PAC para grandes formatos
|
215
|
+
:sedex # 04014 - SEDEX sem contrato
|
216
|
+
:sedex_a_cobrar # 40045 - SEDEX a Cobrar, sem contrato
|
217
|
+
:sedex_a_cobrar_com_contrato # 40126 - SEDEX a Cobrar, com contrato
|
218
|
+
:sedex_10 # 40215 - SEDEX 10, sem contrato
|
219
|
+
:sedex_hoje # 40290 - SEDEX Hoje, sem contrato
|
220
|
+
:sedex_com_contrato_1 # 40096 - SEDEX com contrato
|
221
|
+
:sedex_com_contrato_2 # 40436 - SEDEX com contrato
|
222
|
+
:sedex_com_contrato_3 # 40444 - SEDEX com contrato
|
223
|
+
:sedex_com_contrato_4 # 40568 - SEDEX com contrato
|
224
|
+
:sedex_com_contrato_5 # 40606 - SEDEX com contrato
|
225
|
+
:e_sedex # 81019 - e-SEDEX, com contrato
|
226
|
+
:e_sedex_prioritario # 81027 - e-SEDEX Prioritário, com contrato
|
227
|
+
:e_sedex_express # 81035 - e-SEDEX Express, com contrato
|
228
|
+
:e_sedex_grupo_1 # 81868 - (Grupo 1) e-SEDEX, com contrato
|
229
|
+
:e_sedex_grupo_2 # 81833 - (Grupo 2) e-SEDEX, com contrato
|
230
|
+
:e_sedex_grupo_3 # 81850 - (Grupo 3) e-SEDEX, com contrato
|
231
|
+
|
232
|
+
=== Maneiras de configurar atributos no construtor de Correios::Frete::Calculador
|
233
|
+
|
234
|
+
==== Com um hash
|
235
|
+
frete = Correios::Frete::Calculador.new :cep_origem => "04094-050",
|
236
|
+
:cep_destino => "90619-900",
|
237
|
+
:peso => 0.3,
|
238
|
+
:comprimento => 30,
|
239
|
+
:largura => 15,
|
240
|
+
:altura => 2
|
241
|
+
|
242
|
+
==== Com um bloco
|
243
|
+
frete = Correios::Frete::Calculador.new do |f|
|
244
|
+
f.cep_origem = "04094-050"
|
245
|
+
f.cep_destino = "90619-900"
|
246
|
+
f.peso = 0.3
|
247
|
+
f.comprimento = 30
|
248
|
+
f.largura = 15
|
249
|
+
f.altura = 2
|
250
|
+
end
|
251
|
+
|
252
|
+
=== Maneiras de adicionar itens em Correios::Frete::Pacote
|
253
|
+
|
254
|
+
==== Pelo método adicionar_item passando instâncias de Correios::Frete::PacoteItem
|
255
|
+
|
256
|
+
item1 = Correios::Frete::PacoteItem.new :peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2
|
257
|
+
item2 = Correios::Frete::PacoteItem.new :peso => 0.7, :comprimento => 70, :largura => 25, :altura => 3
|
258
|
+
|
259
|
+
pacote = Correios::Frete::Pacote.new
|
260
|
+
pacote.adicionar_item(item1)
|
261
|
+
pacote.adicionar_item(item2)
|
262
|
+
|
263
|
+
==== Pelo construtor passando instâncias de Correios::Frete::PacoteItem
|
264
|
+
|
265
|
+
pacote = Correios::Frete::Pacote.new [
|
266
|
+
Correios::Frete::PacoteItem.new(:peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2),
|
267
|
+
Correios::Frete::PacoteItem.new(:peso => 0.7, :comprimento => 70, :largura => 25, :altura => 3)
|
268
|
+
]
|
269
|
+
|
270
|
+
==== Pelo método adicionar_item passando parâmetros dos itens
|
271
|
+
|
272
|
+
pacote = Correios::Frete::Pacote.new
|
273
|
+
pacote.adicionar_item(:peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2)
|
274
|
+
pacote.adicionar_item(:peso => 0.7, :comprimento => 70, :largura => 25, :altura => 3)
|
275
|
+
|
276
|
+
==== Pelo construtor passando parâmetros dos itens
|
277
|
+
|
278
|
+
pacote = Correios::Frete::Pacote.new [
|
279
|
+
{ :peso => 0.3, :comprimento => 30, :largura => 15, :altura => 2 },
|
280
|
+
{ :peso => 0.7, :comprimento => 70, :largura => 25, :altura => 3 }
|
281
|
+
]
|
282
|
+
|
283
|
+
|
284
|
+
=== Atributos de Correios::Frete::Calculador
|
285
|
+
|
286
|
+
==== String
|
287
|
+
cep_origem, cep_destino, codigo_empresa, senha
|
288
|
+
==== Float
|
289
|
+
peso, comprimento, largura, altura, diametro, valor_declarado
|
290
|
+
==== Boolean
|
291
|
+
mao_propria, aviso_recebimento
|
292
|
+
==== Symbol
|
293
|
+
formato (:caixa_pacote, :rolo_prisma, :envelope)
|
294
|
+
|
295
|
+
|
296
|
+
=== Atributos de Correios::Frete::Pacote
|
297
|
+
|
298
|
+
==== Float
|
299
|
+
peso, comprimento, largura, altura, volume
|
300
|
+
==== Array de Correios::Frete::PacoteItem
|
301
|
+
itens
|
302
|
+
==== Symbol
|
303
|
+
formato (:caixa_pacote)
|
304
|
+
|
305
|
+
=== Atributos de Correios::Frete::PacoteItem
|
306
|
+
|
307
|
+
==== Float
|
308
|
+
peso, comprimento, largura, altura, volume
|
309
|
+
|
310
|
+
|
311
|
+
=== Atributos de Correios::Frete::Servico
|
312
|
+
|
313
|
+
==== String
|
314
|
+
codigo, erro, msg_erro, nome, descricao
|
315
|
+
==== Float
|
316
|
+
valor, valor_mao_propria, valor_aviso_recebimento, valor_valor_declarado
|
317
|
+
==== Fixnum
|
318
|
+
prazo_entrega
|
319
|
+
==== Boolean
|
320
|
+
entrega_domiciliar, entrega_sabado
|
321
|
+
==== Symbol
|
322
|
+
tipo (:pac, :pac_com_contrato, :pac_gf, :sedex, :sedex_a_cobrar, :sedex_a_cobrar_com_contrato, :sedex_10, :sedex_hoje, :sedex_com_contrato_1, :sedex_com_contrato_2, :sedex_com_contrato_3, :sedex_com_contrato_4, :sedex_com_contrato_5, :e_sedex, :e_sedex_prioritario, :e_sedex_express, :e_sedex_grupo_1, :e_sedex_grupo_2, :e_sedex_grupo_3)
|
323
|
+
|
324
|
+
|
325
|
+
== Autor
|
326
|
+
- {Fernando Hamasaki de Amorim (prodis)}[http://prodis.blog.br]
|
327
|
+
|
328
|
+
== Colaboradores
|
329
|
+
- {Daniel Konishi (dkonishi)}[https://github.com/dkonishi]
|
330
|
+
- {Denis Tierno (detierno)}[https://github.com/detierno]
|
331
|
+
- {Gui Albuk (guialbuk)}[https://github.com/guialbuk]
|
332
|
+
- {Rafael Barbolo (barbolo)}[https://github.com/barbolo]
|
333
|
+
- {Rafael Souza (rafaelss)}[https://github.com/rafaelss]
|
334
|
+
- {Ricardo Bernardelli (bernardelli)}[https://github.com/bernardelli]
|
335
|
+
- {Rodolfo Ferreira (rodolfo42)}[https://github.com/rodolfo42]
|
336
|
+
|
337
|
+
|
338
|
+
== Copyright
|
339
|
+
|
340
|
+
(The MIT License)
|
341
|
+
|
342
|
+
{Prodis a.k.a. Fernando Hamasaki de Amorim}[http://prodis.blog.br]
|
343
|
+
|
344
|
+
Copyright (c) 2011-2017 Prodis
|
345
|
+
|
346
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
347
|
+
a copy of this software and associated documentation files (the
|
348
|
+
"Software"), to deal in the Software without restriction, including
|
349
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
350
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
351
|
+
permit persons to whom the Software is furnished to do so, subject to
|
352
|
+
the following conditions:
|
353
|
+
|
354
|
+
The above copyright notice and this permission notice shall be
|
355
|
+
included in all copies or substantial portions of the Software.
|
356
|
+
|
357
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
358
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
359
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
360
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
361
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
362
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
363
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
364
|
+
|