correios-frete 1.0.2 → 1.1.0

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.
data/README.rdoc CHANGED
@@ -7,7 +7,7 @@ Para a versão 0.3.0, por favor veja {README_v0.3.0.rdoc}[https://github.com/pro
7
7
 
8
8
  Cálculo de frete utilizando o Web Service dos Correios (http://www.correios.com.br/webservices).
9
9
 
10
- Os serviços de frete suportados são <b>PAC</b>, <b>SEDEX</b>, <b>SEDEX 10</b>, <b>SEDEX Hoje</b> e <b>e-SEDEX</b> (necessário informar código de empresa e senha).
10
+ 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.
11
11
 
12
12
  == Instalando
13
13
 
@@ -34,10 +34,12 @@ Cálculo de vários serviços ao mesmo tempo:
34
34
  servicos = frete.calcular :sedex, :pac
35
35
 
36
36
  servicos[:sedex].nome # => "SEDEX"
37
+ servicos[:sedex].descricao # => "SEDEX sem contrato"
37
38
  servicos[:sedex].valor # => 26.2
38
39
  servicos[:sedex].prazo_entrega # => 1
39
40
 
40
41
  servicos[:pac].nome # => "PAC"
42
+ servicos[:pac].descricao # => "PAC sem contrato"
41
43
  servicos[:pac].valor # => 10.0
42
44
  servicos[:pac].prazo_entrega # => 5
43
45
 
@@ -45,11 +47,13 @@ Cálculo de um serviço de frete passando o serviço para parâmetro:
45
47
 
46
48
  servico = frete.calcular :sedex
47
49
  service.nome # => "SEDEX"
50
+ service.descricao # => "SEDEX sem contrato"
48
51
  servico.valor # => 26.2
49
52
  servico.prazo_entrega # => 1
50
53
 
51
54
  servico = frete.calcular :pac
52
55
  service.nome # => "PAC"
56
+ service.descricao # => "PAC sem contrato"
53
57
  servico.valor # => 10.0
54
58
  servico.prazo_entrega # => 5
55
59
 
@@ -99,12 +103,23 @@ Exemplo de log:
99
103
  == Informações adicionais
100
104
 
101
105
  === Serviços suportados
102
- :pac
103
- :sedex
104
- :sedex_10
105
- :sedex_hoje
106
- :e_sedex
107
106
 
107
+ :pac # 41106 - PAC sem contrato
108
+ :pac_com_contrato # 41068 - PAC com contrato
109
+ :sedex # 40010 - SEDEX sem contrato
110
+ :sedex_a_cobrar # 40045 - SEDEX a Cobrar, sem contrato
111
+ :sedex_a_cobrar_com_contrato # 40126 - SEDEX a Cobrar, com contrato
112
+ :sedex_10 # 40215 - SEDEX 10, sem contrato
113
+ :sedex_hoje # 40290 - SEDEX Hoje, sem contrato
114
+ :sedex_com_contrato_1 # 40096 - SEDEX com contrato
115
+ :sedex_com_contrato_2 # 40436 - SEDEX com contrato
116
+ :sedex_com_contrato_3 # 40444 - SEDEX com contrato
117
+ :sedex_com_contrato_4 # 40568 - SEDEX com contrato
118
+ :sedex_com_contrato_5 # 40606 - SEDEX com contrato
119
+ :e_sedex # 81019 - e-SEDEX, com contrato
120
+ :e_sedex_grupo_1 # 81868 - (Grupo 1) e-SEDEX, com contrato
121
+ :e_sedex_grupo_2 # 81833 - (Grupo 2) e-SEDEX, com contrato
122
+ :e_sedex_grupo_3 # 81850 - (Grupo 3) e-SEDEX, com contrato
108
123
 
109
124
  === Maneiras de configurar atributos no construtor de Correios::Frete::Calculador
110
125
 
@@ -144,7 +159,7 @@ Exemplo de log:
144
159
  === Atributos de Correios::Frete::Servico
145
160
 
146
161
  ==== String
147
- codigo, erro, msg_erro, nome
162
+ codigo, erro, msg_erro, nome, descricao
148
163
  ==== Float
149
164
  valor, valor_mao_propria, valor_aviso_recebimento, valor_valor_declarado
150
165
  ==== Fixnum
@@ -152,7 +167,8 @@ Exemplo de log:
152
167
  ==== Boolean
153
168
  entrega_domiciliar, entrega_sabado
154
169
  ==== Symbol
155
- tipo (:pac, :sedex, :sedex_10, :sedex_hoje, :e_sedex)
170
+ tipo (:pac, :pac_com_contrato, :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_grupo_1, :e_sedex_grupo_2, :e_sedex_grupo_3)
171
+
156
172
 
157
173
  == Copyright
158
174
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{correios-frete}
8
- s.version = "1.0.2"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Prodis a.k.a. Fernando Hamasaki"]
12
- s.date = %q{2011-08-14}
12
+ s.date = %q{2011-09-07}
13
13
  s.description = %q{Cálculo de frete utilizando o Web Service dos Correios (http://www.correios.com.br/webservices). Serviços de frete suportados são PAC, SEDEX, SEDEX 10, SEDEX Hoje e e-SEDEX (necessário informar código de empresa e senha).}
14
14
  s.email = %q{prodis@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -7,16 +7,27 @@ module Correios
7
7
  include SAXMachine
8
8
 
9
9
  AVAILABLE_SERVICES = {
10
- "41106" => { :type => :pac , :name => "PAC" },
11
- "40010" => { :type => :sedex , :name => "SEDEX" },
12
- "40215" => { :type => :sedex_10 , :name => "SEDEX 10" },
13
- "40290" => { :type => :sedex_hoje, :name => "SEDEX Hoje" },
14
- "81019" => { :type => :e_sedex , :name => "e-SEDEX" }
10
+ "41106" => { :type => :pac , :name => "PAC", :description => "PAC sem contrato" },
11
+ "41068" => { :type => :pac_com_contrato , :name => "PAC", :description => "PAC com contrato" },
12
+ "40010" => { :type => :sedex , :name => "SEDEX", :description => "SEDEX sem contrato" },
13
+ "40045" => { :type => :sedex_a_cobrar , :name => "SEDEX a Cobrar", :description => "SEDEX a Cobrar, sem contrato" },
14
+ "40126" => { :type => :sedex_a_cobrar_com_contrato , :name => "SEDEX a Cobrar", :description => "SEDEX a Cobrar, com contrato" },
15
+ "40215" => { :type => :sedex_10 , :name => "SEDEX 10", :description => "SEDEX 10, sem contrato" },
16
+ "40290" => { :type => :sedex_hoje , :name => "SEDEX Hoje", :description => "SEDEX Hoje, sem contrato" },
17
+ "40096" => { :type => :sedex_com_contrato_1 , :name => "SEDEX", :description => "SEDEX com contrato" },
18
+ "40436" => { :type => :sedex_com_contrato_2 , :name => "SEDEX", :description => "SEDEX com contrato" },
19
+ "40444" => { :type => :sedex_com_contrato_3 , :name => "SEDEX", :description => "SEDEX com contrato" },
20
+ "40568" => { :type => :sedex_com_contrato_4 , :name => "SEDEX", :description => "SEDEX com contrato" },
21
+ "40606" => { :type => :sedex_com_contrato_5 , :name => "SEDEX", :description => "SEDEX com contrato" },
22
+ "81019" => { :type => :e_sedex , :name => "e-SEDEX", :description => "e-SEDEX, com contrato" },
23
+ "81868" => { :type => :e_sedex_grupo_1 , :name => "e-SEDEX", :description => "(Grupo 1) e-SEDEX, com contrato" },
24
+ "81833" => { :type => :e_sedex_grupo_2 , :name => "e-SEDEX", :description => "(Grupo 2) e-SEDEX, com contrato" },
25
+ "81850" => { :type => :e_sedex_grupo_3 , :name => "e-SEDEX", :description => "(Grupo 3) e-SEDEX, com contrato" }
15
26
  }
16
27
 
17
28
  element :Codigo, :as => :codigo
18
29
  element :Valor, :as => :valor
19
- element :PrazoEntrega, :as => :prazo_entrega
30
+ element :PrazoEntrega, :as => :prazo_entrega
20
31
  element :ValorMaoPropria, :as => :valor_mao_propria
21
32
  element :ValorAvisoRecebimento, :as => :valor_aviso_recebimento
22
33
  element :ValorValorDeclarado, :as => :valor_valor_declarado
@@ -24,7 +35,7 @@ module Correios
24
35
  element :EntregaSabado, :as => :entrega_sabado
25
36
  element :Erro, :as => :erro
26
37
  element :MsgErro, :as => :msg_erro
27
- attr_reader :tipo, :nome
38
+ attr_reader :tipo, :nome, :descricao
28
39
 
29
40
  alias_method :original_parse, :parse
30
41
 
@@ -34,6 +45,7 @@ module Correios
34
45
  if AVAILABLE_SERVICES[codigo]
35
46
  @tipo = AVAILABLE_SERVICES[codigo][:type]
36
47
  @nome = AVAILABLE_SERVICES[codigo][:name]
48
+ @descricao = AVAILABLE_SERVICES[codigo][:description]
37
49
  end
38
50
 
39
51
  cast_to_float! :valor, :valor_mao_propria, :valor_aviso_recebimento, :valor_valor_declarado
@@ -3,8 +3,8 @@ module Correios
3
3
  module Frete
4
4
  module Version
5
5
  MAJOR = 1
6
- MINOR = 0
7
- PATCH = 2
6
+ MINOR = 1
7
+ PATCH = 0
8
8
  VERSION = [MAJOR, MINOR, PATCH].join(".")
9
9
  end
10
10
  end
@@ -27,7 +27,7 @@ module Correios
27
27
  "nCdFormato=#{FORMATS[frete.formato]}&" +
28
28
  "sCdMaoPropria=#{CONDITIONS[frete.mao_propria]}&" +
29
29
  "sCdAvisoRecebimento=#{CONDITIONS[frete.aviso_recebimento]}&" +
30
- "nVlValorDeclarado=#{frete.valor_declarado}&" +
30
+ "nVlValorDeclarado=#{format("%.2f" % frete.valor_declarado)}&" +
31
31
  "nCdServico=#{service_codes_for(service_types)}&" +
32
32
  "nCdEmpresa=#{frete.codigo_empresa}&" +
33
33
  "sDsSenha=#{frete.senha}&" +
@@ -23,6 +23,7 @@ describe Correios::Frete::Servico do
23
23
 
24
24
  { :tipo => :pac,
25
25
  :nome => "PAC",
26
+ :descricao => "PAC sem contrato",
26
27
  :codigo => "41106",
27
28
  :valor => 15.70,
28
29
  :prazo_entrega => 3,
@@ -14,7 +14,7 @@ describe Correios::Frete::WebService do
14
14
  :formato => :rolo_prisma,
15
15
  :mao_propria => true,
16
16
  :aviso_recebimento => false,
17
- :valor_declarado => 1.99,
17
+ :valor_declarado => 10.0,
18
18
  :codigo_empresa => "1234567890",
19
19
  :senha => "senha"
20
20
 
@@ -29,7 +29,7 @@ describe Correios::Frete::WebService do
29
29
  "nCdFormato=2&" +
30
30
  "sCdMaoPropria=S&" +
31
31
  "sCdAvisoRecebimento=N&" +
32
- "nVlValorDeclarado=1.99&" +
32
+ "nVlValorDeclarado=10.00&" +
33
33
  "nCdServico=41106,40010&" +
34
34
  "nCdEmpresa=1234567890&" +
35
35
  "sDsSenha=senha&" +
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: correios-frete
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.2
5
+ version: 1.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Prodis a.k.a. Fernando Hamasaki
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-08-14 00:00:00 -03:00
13
+ date: 2011-09-07 00:00:00 -03:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency