Class: RubyCnab240::Arquivo
- Inherits:
-
Object
- Object
- RubyCnab240::Arquivo
- Defined in:
- lib/rubycnab240/arquivo.rb
Defined Under Namespace
Classes: Header, Lote, Trailer
Constant Summary collapse
- @@tipo_de_inscricao_da_empresa =
String.new
- @@numero_de_inscricao_da_empresa =
String.new
- @@codigo_do_convenio_do_banco =
String.new
- @@agencia_mantenedora_da_conta =
String.new
- @@digito_verificador_da_agencia =
String.new
- @@numero_da_conta_corrente =
String.new
- @@digito_verificador_da_conta =
String.new
- @@digito_verificador_da_agencia_e_conta =
String.new
- @@nome_da_empresa =
String.new
- @@data_dos_pagamentos =
String.new
Instance Attribute Summary collapse
-
#data_dos_pagamentos ⇒ Object
Returns the value of attribute data_dos_pagamentos.
-
#header ⇒ Object
Returns the value of attribute header.
-
#lot_header ⇒ Object
Returns the value of attribute lot_header.
-
#lot_trailer ⇒ Object
Returns the value of attribute lot_trailer.
-
#segments ⇒ Object
Returns the value of attribute segments.
-
#trailer ⇒ Object
Returns the value of attribute trailer.
Instance Method Summary collapse
- #<<(lote) ⇒ Object
-
#initialize(fields = {}) ⇒ Arquivo
constructor
A new instance of Arquivo.
- #number_of_segments ⇒ Object
- #save_to_file(file) ⇒ Object
- #to_string ⇒ Object
Constructor Details
#initialize(fields = {}) ⇒ Arquivo
Returns a new instance of Arquivo.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/rubycnab240/arquivo.rb', line 24 def initialize(fields = {}) fields[:tipo_de_registro] = '0' fields[:digito_verificador_da_agencia_e_conta] = '0' @@data_dos_pagamentos = fields[:data_dos_pagamentos] ? fields[:data_dos_pagamentos].strftime("%d%m%Y") : Date.today.strftime("%d%m%Y") @@tipo_de_inscricao_da_empresa = fields[:tipo_de_inscricao_da_empresa] @@numero_de_inscricao_da_empresa = fields[:numero_de_inscricao_da_empresa] @@codigo_do_convenio_do_banco = fields[:codigo_do_convenio_do_banco] @@agencia_mantenedora_da_conta = fields[:agencia_mantenedora_da_conta] @@digito_verificador_da_agencia = fields[:digito_verificador_da_agencia] @@numero_da_conta_corrente = fields[:numero_da_conta_corrente] @@digito_verificador_da_conta = fields[:digito_verificador_da_conta] @@digito_verificador_da_agencia_e_conta = fields[:digito_verificador_da_agencia_e_conta] @@nome_da_empresa = fields[:nome_da_empresa] @header = RubyCnab240::Arquivo::Header.new({ :codigo_do_banco_na_compensacao => fields[:codigo_do_banco_na_compensacao], :lote_do_servico => '0', :tipo_de_registro => fields[:tipo_de_registro], :tipo_de_inscricao_da_empresa => @@tipo_de_inscricao_da_empresa, :numero_de_inscricao_da_empresa => @@numero_de_inscricao_da_empresa, :codigo_do_convenio_do_banco => @@codigo_do_convenio_do_banco, :agencia_mantenedora_da_conta => @@agencia_mantenedora_da_conta, :digito_verificador_da_agencia => @@digito_verificador_da_agencia, :numero_da_conta_corrente => @@numero_da_conta_corrente, :digito_verificador_da_conta => @@digito_verificador_da_conta, :digito_verificador_da_agencia_e_conta => @@digito_verificador_da_agencia_e_conta, :nome_da_empresa => @@nome_da_empresa, :nome_do_banco => fields[:nome_do_banco], :codigo_remessa_retorno => fields[:codigo_remessa_retorno], :numero_sequencial_de_arquivo => fields[:numero_sequencial_de_arquivo], :para_uso_reservado_da_empresa => fields[:para_uso_reservado_da_empresa] }) @segments = [] @trailer = RubyCnab240::Arquivo::Trailer.new({ :codigo_do_banco_na_compensacao => fields[:codigo_do_banco_na_compensacao], :qtd_registros_de_lote => "0", :qtd_registros_do_arquivo => "0" }) end |
Instance Attribute Details
#data_dos_pagamentos ⇒ Object
Returns the value of attribute data_dos_pagamentos.
11 12 13 |
# File 'lib/rubycnab240/arquivo.rb', line 11 def data_dos_pagamentos @data_dos_pagamentos end |
#header ⇒ Object
Returns the value of attribute header.
6 7 8 |
# File 'lib/rubycnab240/arquivo.rb', line 6 def header @header end |
#lot_header ⇒ Object
Returns the value of attribute lot_header.
7 8 9 |
# File 'lib/rubycnab240/arquivo.rb', line 7 def lot_header @lot_header end |
#lot_trailer ⇒ Object
Returns the value of attribute lot_trailer.
9 10 11 |
# File 'lib/rubycnab240/arquivo.rb', line 9 def lot_trailer @lot_trailer end |
#segments ⇒ Object
Returns the value of attribute segments.
8 9 10 |
# File 'lib/rubycnab240/arquivo.rb', line 8 def segments @segments end |
#trailer ⇒ Object
Returns the value of attribute trailer.
10 11 12 |
# File 'lib/rubycnab240/arquivo.rb', line 10 def trailer @trailer end |
Instance Method Details
#<<(lote) ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'lib/rubycnab240/arquivo.rb', line 74 def <<(lote) numero_do_lote = (self.segments.size + 1).to_s[0..3].rjust(4, '0') lote.lot_header.lote_do_servico = numero_do_lote lote.lot_trailer.lote_do_servico = numero_do_lote self.segments << lote unless lote.class.to_s != "RubyCnab240::Arquivo::Lote" end |
#number_of_segments ⇒ Object
70 71 72 |
# File 'lib/rubycnab240/arquivo.rb', line 70 def number_of_segments self.segments.size + 1 end |
#save_to_file(file) ⇒ Object
112 113 114 115 116 |
# File 'lib/rubycnab240/arquivo.rb', line 112 def save_to_file(file) string = self.to_string File.open(file, 'w') { |file| file.write(string) } end |
#to_string ⇒ Object
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 |
# File 'lib/rubycnab240/arquivo.rb', line 83 def to_string rubycnab240 = String.new qtd_registros_de_lote = self.segments.size qtd_registros_do_arquivo = 0 self.segments.each do |segment| segment.lots.each do |lot| qtd_registros_do_arquivo += 1 lot.lote_do_servico = segment.lot_header.lote_do_servico lot.data_do_pagamento = @@data_dos_pagamentos unless lot.class.to_s == "RubyCnab240::Arquivo::Lote::Segment::B" end end qtd_registros_do_arquivo = qtd_registros_do_arquivo + (2 * self.segments.size) + 2 self.trailer.qtd_registros_de_lote = qtd_registros_de_lote.to_s[0..5].rjust(6, '0') self.trailer.qtd_registros_do_arquivo = qtd_registros_do_arquivo.to_s[0..5].rjust(6, '0') rubycnab240 << self.header.to_string + "\n" self.segments.each do |lot| rubycnab240 << lot.to_string + "\n" end rubycnab240 << self.trailer.to_string + "\n" end |