Class: Touggsl::Customer

Inherits:
Object
  • Object
show all
Includes:
RequestHelper
Defined in:
lib/touggsl/customer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RequestHelper

#billings_request, #checks_if_client_is_inadimplente, #create_client, #do_request, #get_2via_link, #get_2via_link_normal_client, #get_clients_inadimplementes, #hiring_plan_for_client, #include_auth_to_requests, #new_billing_request, #pay_request

Constructor Details

#initialize(auth) ⇒ Customer

Recebe um Touggsl::Auth

Exemplo:

auth = Touggsl::Auth
auth.login("email, "password")
Touggsl::Client.new(auth)


19
20
21
22
# File 'lib/touggsl/customer.rb', line 19

def initialize(auth)
  @auth = auth
  include_auth_to_requests(@auth)
end

Instance Attribute Details

#authObject

Returns the value of attribute auth.



8
9
10
# File 'lib/touggsl/customer.rb', line 8

def auth
  @auth
end

Instance Method Details

#billings(client_id, status = 'pendentes') ⇒ Object

Retorna todas as cobrancas do cliente, com status pendente por default

Params

  • client_id - ID do cliente

  • status - status das cobranças



125
126
127
128
# File 'lib/touggsl/customer.rb', line 125

def billings(client_id, status = 'pendentes')
  billings = JSON.parse(billings_request(client_id, status))
  return billings['data']
end

#create_new_client(id, client_name, nome_fantasia, dia_vencimento = 0) ⇒ Object

Cadastra um novo cliente na Superlogica

Prams

  • id - ID para identificar o cliente.

  • client_name - Nome do cliente. Ex: Paulo

  • nome_fantasia - Nome fantasia. Ex: Tougg

  • dia_vencimento - Parametro opcional, por padrao eh setado como 0, isso significa que nao existe “dia de vencimento” para a fatura do cliente. Se voce deseja configurar algum dia, 5 por exemplo, para o “vencimento”



34
35
36
37
38
39
40
41
# File 'lib/touggsl/customer.rb', line 34

def create_new_client(id, client_name, nome_fantasia, dia_vencimento=0)
  response = create_client(id,client_name, nome_fantasia,dia_vencimento)
  json = JSON.parse(response)

  #create a class for response, at the time only return the
  # status
 json["status"]
end

#get_all_inadimplentesObject

Retorna todos os clientes que estão inadimplentes



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/touggsl/customer.rb', line 67

def get_all_inadimplentes
  clients = []
  clients_json = JSON.parse(get_clients_inadimplementes)
  clients_json["data"].each do |j|
    name = j["st_nomeref_sac"]
    recebimento = j["recebimento"]
    dias_atraso = recebimento[0]["encargos"][0]["diasatraso"]
    id_client = j["id_sacado_sac"]
    segunda_via = recebimento[0]["link_2via"]
    clients << Customer.new(id_client, name, dias_atraso, segunda_via)
  end
  clients
end

#hiring_plan(plan_id, client_id, contract_id, forma_pagamento) ⇒ Object

Contrata um plano para o cliente.

Params

  • plan_id - ID do plano cadastrado na Superlogica

  • client_id - ID do cliente que deseja contratar o plano

  • contract_id - ID do contrato. Unico para cada contratacao de plano



50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/touggsl/customer.rb', line 50

def hiring_plan(plan_id, client_id, contract_id, forma_pagamento)
  response = hiring_plan_for_client(plan_id, client_id, contract_id, forma_pagamento)
  json = JSON.parse(response)

  status = json["status"]
  if status == "206"
    return "Plano ja contratado para o cliente informado."
  else
    json["data"].each do |d|
      return d["data"]["link_boleto"]
    end
  end
end

#is_inadimplente(client_id) ⇒ Object

Retorna true se cliente esta inadimplente, false caso não for.

Params

  • client_id - ID do cliente



87
88
89
90
# File 'lib/touggsl/customer.rb', line 87

def is_inadimplente(client_id)
  client = JSON.parse(checks_if_client_is_inadimplente(client_id))
  client['data'].length > 0 ? true : false
end

Retorna link de 2 via do boleto para cliente inadimplente

Params

  • client_id - ID do cliente



110
111
112
113
114
115
116
117
# File 'lib/touggsl/customer.rb', line 110

def link_2via(client_id)
  link = JSON.parse(get_2via_link(client_id))
  link['data'].each do |d|
    d['recebimento'].each do |v|
      return v['link_2via']
    end
  end
end

Retorna link de 2 via do boleto para cliente que nao está inadimplente

# ==== Params

  • client_id - ID do cliente



98
99
100
101
102
103
# File 'lib/touggsl/customer.rb', line 98

def link_2via_normal_client(client_id)
  link = JSON.parse(get_2via_link_normal_client(client_id))
  link['data'].each do |d|
    return d['link_2via']
  end
end

#new_billing(client_id, data_vencimento, product_id, value, account_id = 1) ⇒ Object

Gerar uma cobranca

  • client_id - ID do cliente

  • data_vencimento - data de vecimento da cobrança

  • product_id - ID do produto/serviço na superlógica

  • value - valor da cobrança

  • account_id - ID da conta na superlógica



153
154
155
156
157
158
159
160
161
162
# File 'lib/touggsl/customer.rb', line 153

def new_billing(client_id, data_vencimento, product_id, value,  = 1)
  billing = JSON.parse(new_billing_request(client_id, data_vencimento, product_id, value, ))
  if billing['status'].to_i == 200
    billing["data"].each do |d|
      return d["data"]["link_2via"]
    end
  else
    billing['data'].each { |d| puts d['msg'] }
  end
end

#pay(pay_id, value = 24.90) ⇒ Object

Liquida uma cobrança

Params

  • pay_id - ID do pagamento

  • value - valor da cobrança. Padrão é 24.90.



137
138
139
140
141
142
143
# File 'lib/touggsl/customer.rb', line 137

def pay(pay_id, value = 24.90)
  pay = JSON.parse(pay_request(pay_id, value))
  status = pay['status'].to_i
  unless status == 200
    return "Ocorreu algum erro."
  end
end