correios-frete-alternative 1.10.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|