Class: Frete

Inherits:
Object
  • Object
show all
Includes:
REXML
Defined in:
lib/frete.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Frete

Returns a new instance of Frete.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/frete.rb', line 7

def initialize(options = {})
  # 41106  PAC sem contrato
  # 40010  SEDEX sem contrato
  # 40215  SEDEX 10, sem contrato
  # 40290  SEDEX Hoje, sem contrato
  self.codigo_empresa = options[:codigo_empresa]
  self.senha_empresa = options[:senha_empresa]
  self.codigo_servico = options[:codigo_servico]
  self.cep_origem = options[:cep_origem]
  self.cep_destino = options[:cep_destino]
  self.peso = options[:peso]
  self.codigo_formato = options[:codigo_formato]
  self.comprimento = options[:comprimento]
  self.altura = options[:altura]
  self.largura = options[:largura]
  self.codigo_mao_de_obra = options[:codigo_mao_de_obra]
  self.diametro = options[:diametro]
  self.valor_declarado = options[:valor_declarado]
  self.codigo_aviso_recebimento = options[:codigo_aviso_recebimento]
end

Instance Method Details

#alturaObject



132
133
134
# File 'lib/frete.rb', line 132

def altura
  return @altura
end

#altura=(c) ⇒ Object



136
137
138
# File 'lib/frete.rb', line 136

def altura=(c)
  @altura = c
end

#cepObject



112
113
114
# File 'lib/frete.rb', line 112

def cep
  return @cep
end

#cep=(c) ⇒ Object



108
109
110
# File 'lib/frete.rb', line 108

def cep=(c)
  @cep = c
end

#cep_destinoObject



96
97
98
# File 'lib/frete.rb', line 96

def cep_destino
  return @cep_destino
end

#cep_destino=(co) ⇒ Object



92
93
94
# File 'lib/frete.rb', line 92

def cep_destino=(co)
  @cep_destino = co
end

#cep_origemObject



88
89
90
# File 'lib/frete.rb', line 88

def cep_origem
  return @cep_origem
end

#cep_origem=(co) ⇒ Object



84
85
86
# File 'lib/frete.rb', line 84

def cep_origem=(co)
  @cep_origem = co
end

#codigo_aviso_recebimentoObject



56
57
58
# File 'lib/frete.rb', line 56

def codigo_aviso_recebimento
  return @codigo_aviso_recebimento
end

#codigo_aviso_recebimento=(cav) ⇒ Object



52
53
54
# File 'lib/frete.rb', line 52

def codigo_aviso_recebimento=(cav)
  @codigo_aviso_recebimento=cav
end

#codigo_empresaObject



64
65
66
# File 'lib/frete.rb', line 64

def codigo_empresa
  return @codigo_empresa
end

#codigo_empresa=(c) ⇒ Object



60
61
62
# File 'lib/frete.rb', line 60

def codigo_empresa=(c)
  @codigo_empresa=c
end

#codigo_formatoObject



104
105
106
# File 'lib/frete.rb', line 104

def codigo_formato
  return @codigo_formato
end

#codigo_formato=(c) ⇒ Object



100
101
102
# File 'lib/frete.rb', line 100

def codigo_formato=(c)
  @codigo_formato=c
end

#codigo_mao_de_obraObject



28
29
30
# File 'lib/frete.rb', line 28

def codigo_mao_de_obra
  @codigo_mao_de_obra
end

#codigo_mao_de_obra=(cmo) ⇒ Object



32
33
34
# File 'lib/frete.rb', line 32

def codigo_mao_de_obra=(cmo)
  @codigo_mao_de_obra=cmo
end

#codigo_servicoObject



80
81
82
# File 'lib/frete.rb', line 80

def codigo_servico
  return @codigo_servico
end

#codigo_servico=(c) ⇒ Object



76
77
78
# File 'lib/frete.rb', line 76

def codigo_servico=(c)
  @codigo_servico=c
end

#comprimentoObject



124
125
126
# File 'lib/frete.rb', line 124

def comprimento
  return @comprimento
end

#comprimento=(c) ⇒ Object



128
129
130
# File 'lib/frete.rb', line 128

def comprimento=(c)
  @comprimento = c
end

#diametroObject



40
41
42
# File 'lib/frete.rb', line 40

def diametro
  return @diametro
end

#diametro=(d) ⇒ Object



36
37
38
# File 'lib/frete.rb', line 36

def diametro=(d)
  @diametro=d
end

#findObject



161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'lib/frete.rb', line 161

def find
  puts "chamo chamo"
  uri = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?"
  uri += "nCdEmpresa=" + @codigo_empresa
  uri += "&sDsSenha=" + @senha_empresa
  uri += "&sCepOrigem=" + @cep_origem
  uri += "&sCepDestino=" + @cep_destino
  uri += "&nVlPeso=" + @peso
  uri += "&nCdFormato=" + @codigo_formato
  uri += "&nVlComprimento=" + @comprimento
  uri += "&nVlAltura=" + @altura
  uri += "&nVlLargura=" + @largura
  uri += "&sCdMaoPropria=s"
  uri += "&nVlValorDeclarado=" + @valor_declarado
  uri += "&sCdAvisoRecebimento=" + @codigo_aviso_recebimento
  uri += "&nCdServico=" + @codigo_servico
  uri += "&nVlDiametro=" + @diametro
  uri += "&StrRetorno=xml"
  
  source = open(uri).read
  xml = Document.new(source).root
  
  list = []
  
  xml.elements.each("//Servicos/cServico") do |frete|
    
    s = Servico.new(
      :codigo => frete.elements["Codigo"].text,
      :valor => frete.elements["Valor"].text,
      :prazo_entrega => frete.elements["PrazoEntrega"].text,
      :valor_mao_de_obra => frete.elements["ValorMaoPropria"].text,
      :valor_aviso_recebimento => frete.elements["ValorAvisoRecebimento"].text,
      :valor_declarado => frete.elements["ValorValorDeclarado"].text,
      :entrega_domiciliar => frete.elements["EntregaDomiciliar"].text,
      :entrega_sabado => frete.elements["EntregaSabado"].text,
      :erro => frete.elements["Erro"].text,
      :messagem_erro => frete.elements["MsgErro"].text)
      
    list << s
  end
  
  return list
end

#larguraObject



144
145
146
# File 'lib/frete.rb', line 144

def largura
  return @largura
end

#largura=(l) ⇒ Object



140
141
142
# File 'lib/frete.rb', line 140

def largura=(l)
  @largura = l
end

#pesoObject



116
117
118
# File 'lib/frete.rb', line 116

def peso
  return @peso
end

#peso=(c) ⇒ Object



120
121
122
# File 'lib/frete.rb', line 120

def peso=(c)
  @peso = c
end

#senha_empresaObject



72
73
74
# File 'lib/frete.rb', line 72

def senha_empresa
  return @senha_empresa
end

#senha_empresa=(c) ⇒ Object



68
69
70
# File 'lib/frete.rb', line 68

def senha_empresa=(c)
  @senha_empresa=c
end

#servicosObject



148
149
150
# File 'lib/frete.rb', line 148

def servicos
  @servicos = find
end

#servicos_to_jsonObject



152
153
154
155
156
157
158
159
# File 'lib/frete.rb', line 152

def servicos_to_json
  json = "["
  self.servicos.each do |servico|      
    json += servico.to_json
    json += "," if @servicos.last != servico
  end
  json += "]"
end

#valor_declaradoObject



48
49
50
# File 'lib/frete.rb', line 48

def valor_declarado
  return @valor_declarado
end

#valor_declarado=(v) ⇒ Object



44
45
46
# File 'lib/frete.rb', line 44

def valor_declarado=(v)
  @valor_declarado=v
end