Class: TntMercurio::Service::Helper

Inherits:
Object
  • Object
show all
Defined in:
lib/tnt_mercurio/service/helper.rb

Instance Method Summary collapse

Instance Method Details

#build_request_calculo_frete(parametros = {}) ⇒ Object

Montar o Hash com a requisão de calculo de frete



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tnt_mercurio/service/helper.rb', line 8

def build_request_calculo_frete(parametros = {})

  # Valida os parâmetros informados
  erros_params = ""
  erros_params << "Parâmetro obrigatório: login\n" if parametros[:login].blank?
  erros_params << "Parâmetro obrigatório: cep_origem\n" if parametros[:cep_origem].blank?
  erros_params << "Parâmetro obrigatório: cnpj_remetente\n" if parametros[:cnpj_remetente].blank?
  erros_params << "Parâmetro obrigatório: ie_remetente\n" if parametros[:ie_remetente].blank?
  erros_params << "Parâmetro obrigatório: cep_destino\n" if parametros[:cep_destino].blank?
  erros_params << "Parâmetro obrigatório: cpf_destinatario\n" if parametros[:cpf_destinatario].blank?
  erros_params << "Parâmetro obrigatório: valor_total\n" if parametros[:valor_total].blank?
  erros_params << "Parâmetro obrigatório: peso\n" if parametros[:peso].blank?
  raise erros_params unless erros_params.blank?

  params = {
    "ser:in0" => {
      "mod:login" => parametros[:login],
      "mod:cepOrigem" => parametros[:cep_origem],
      "mod:nrIdentifClienteRem" => parametros[:cnpj_remetente],
      "mod:nrInscricaoEstadualRemetente" => parametros[:ie_remetente],

      "mod:cepDestino" => parametros[:cep_destino],
      "mod:nrIdentifClienteDest" => parametros[:cpf_destinatario],

      "mod:vlMercadoria" => parametros[:valor_total],
      "mod:psReal" => parametros[:peso],
    }
  }

  # Adiciona as configurações padrões
  params["ser:in0"].merge! TntMercurio::Service.configuracoes_calculo_frete

  return params
end

#build_response_calculo_frete(resposta = {}) ⇒ Object

Montar o Hash com a resposta de calculo de frete



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/tnt_mercurio/service/helper.rb', line 45

def build_response_calculo_frete(resposta = {})
  response = {}
  if resposta.blank? or resposta[:calcula_frete_response].blank? or !resposta[:error].blank? or !resposta[:calcula_frete_response][:out][:error_list].blank?
    response[:sucesso?]       = false
    if resposta[:error].blank?
      response[:error]        = resposta[:calcula_frete_response][:out][:error_list][:string]
    else
      response[:error]        = resposta[:error].to_s
    end
    response[:valor]          = 0
    response[:prazo_entrega]  = 0
  else
    response[:sucesso?]       = true
    response[:error]          = ''
    response[:valor]          = resposta[:calcula_frete_response][:out][:vl_total_frete]
    response[:prazo_entrega]  = resposta[:calcula_frete_response][:out][:prazo_entrega]
  end
  return response
end