Class: Cielo

Inherits:
Object
  • Object
show all
Defined in:
lib/formatos/cielo/cielo.rb

Constant Summary collapse

SECTION_TYPES =
{header: '00', client: "01", trailler: '99'}
VERSAO =
"01"

Instance Method Summary collapse

Constructor Details

#initialize(file = "") ⇒ Cielo



Construtor



20
21
22
23
24
25
26
# File 'lib/formatos/cielo/cielo.rb', line 20

def initialize file = ""
  @sections = []

  if file.size > 0
    self.process_file file
  end
end

Instance Method Details

#add_clients(params = {}) ⇒ Object

Seção Client



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/formatos/cielo/cielo.rb', line 78

def add_clients(params = {})

  self.valida_existe_header

  section = self.get_new_section(:client)

  section.set_sequencial            params[:sequencial]
  section.set_numero_cartao         params[:numero_cartao]
  section.set_data_venda            params[:data_venda]
  section.set_valor_venda           params[:valor]
  section.set_numero_lote           params[:numero_lote]
  section.set_numero_cielo          params[:numero_cielo]
  section.set_validade_cartao       params[:validade_cartao]
  section.set_codigo_autorizacao
  section.set_opcao_venda
  section.numero_parcelas
  section.set_reservado_1
  section.set_reservado_2
  section.set_reservado_3
  section.set_valor_parcela
  section.set_reservado_4
  section.set_reservado_5           params[:reservado]
  section.set_status_venda
  section.set_data_liquidacao
  section.set_reservado_6
  section.set_reservado_7
  section.set_reservado_8
  section.set_codigo_erro
  section.set_reservado_9
  section.set_cartao_novo           params[:cartao_novo]
  section.set_vencimento_novo       params[:vencimento_novo]
  section.set_reservado_10

  self.add_section_from_business section
end

#create_header(params = {}) ⇒ Object

Seção Header



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/formatos/cielo/cielo.rb', line 53

def create_header(params = {})

  if self.get_header.nil?
    section = self.get_new_section(:header)


    section.set_data_deposito         params[:data_deposito]
    section.set_numero_lote           params[:numero_lote]
    section.set_numero_cielo          params[:numero_cielo]
    section.set_moeda                 params[:moeda]
    section.set_reservado_1
    section.set_reservado_2
    section.set_reservado_3
    section.set_indicador_processo
    section.set_indicador_venda
    section.set_indicador_especial

    self.add_section_from_business section

  else
    raise "Header já declarado!"
  end
end

#create_traillerObject

Seção Trailler



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/formatos/cielo/cielo.rb', line 115

def create_trailler
  self.valida_existe_header

  if self.get_trailler.nil?
    if self.get_section(SECTION_TYPES[:client]).length > 0
      section = self.get_new_section(:trailler)
      section.set_total_registros self.sections.length + 1
      section.set_valor_total     self.calculate_valor_total
      section.set_valor_aceito
      section.set_valor_liquido
      section.set_data_prevista
      section.set_reservado

      self.sections << section
    else
      raise "Nenhum valor declarado!"
    end
  else
    raise "Trailler já declarado!"
  end
end

#get_headerObject



188
189
190
# File 'lib/formatos/cielo/cielo.rb', line 188

def get_header
  self.get_section(SECTION_TYPES[:header]).first()
end

#get_section(section) ⇒ Object



176
177
178
# File 'lib/formatos/cielo/cielo.rb', line 176

def get_section section
  self.sections.select {|c| c.is_section?(section) == true }
end

#get_traillerObject



192
193
194
# File 'lib/formatos/cielo/cielo.rb', line 192

def get_trailler
  self.get_section(SECTION_TYPES[:trailler]).first()
end

#has_section(section) ⇒ Object



172
173
174
# File 'lib/formatos/cielo/cielo.rb', line 172

def has_section section
  self.get_section(section).length > 0
end

#is_valid?Boolean

Returns:

  • (Boolean)


180
181
182
# File 'lib/formatos/cielo/cielo.rb', line 180

def is_valid?
  self.sections.select {|b| b.is_valid? == false }.length == 0
end

#sectionsObject



168
169
170
# File 'lib/formatos/cielo/cielo.rb', line 168

def sections
  @sections.to_a
end

#to_sObject



184
185
186
# File 'lib/formatos/cielo/cielo.rb', line 184

def to_s
  self.sections.map{|a| a.to_s.concat("\r\n")}.join("")
end