correios-frete 1.0.2 → 1.1.0

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