Class: Bbrcobranca::Remessa::Cnab400::Base
- Defined in:
- lib/bbrcobranca/remessa/cnab400/base.rb
Direct Known Subclasses
BancoBrasil, BancoBrasilia, BancoNordeste, Banrisul, Bradesco, Citibank, Credisis, Itau, Santander, Sicoob, Unicred
Instance Attribute Summary
Attributes inherited from Base
#aceite, #agencia, #carteira, #conta_corrente, #digito_conta, #documento_cedente, #empresa_mae, #pagamentos, #sequencial_remessa
Instance Method Summary collapse
-
#cod_banco ⇒ Object
Numero do banco na camara de compensacao.
-
#complemento ⇒ Object
Complemento do registro header.
-
#data_geracao ⇒ String
Data da geracao do arquivo seguindo o padrao DDMMAA.
-
#gera_arquivo ⇒ String
Gera o arquivo com os registros.
-
#info_conta ⇒ Object
Informacoes referentes a conta do cedente.
-
#monta_detalhe(_pagamento, _sequencial) ⇒ Object
Registro detalhe do arquivo remessa.
-
#monta_header ⇒ String
Header do arquivo remessa.
-
#monta_trailer(sequencial) ⇒ String
Trailer do arquivo remessa.
-
#nome_banco ⇒ Object
Nome por extenso do banco cobrador.
Methods inherited from Base
#initialize, #quantidade_titulos_cobranca, #totaliza_valor_titulos, #valor_titulos_carteira
Methods included from Validations
#errors, included, #invalid?, #valid?
Constructor Details
This class inherits a constructor from Bbrcobranca::Remessa::Base
Instance Method Details
#cod_banco ⇒ Object
Numero do banco na camara de compensacao
Este metodo deve ser sobrescrevido na classe do banco
97 98 99 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 97 def cod_banco raise Bbrcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#complemento ⇒ Object
Complemento do registro header
Este metodo deve ser sobrescrevido na classe do banco
113 114 115 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 113 def complemento raise Bbrcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#data_geracao ⇒ String
Data da geracao do arquivo seguindo o padrao DDMMAA
12 13 14 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 12 def data_geracao Date.current.strftime('%d%m%y') end |
#gera_arquivo ⇒ String
Gera o arquivo com os registros
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 63 def gera_arquivo raise Bbrcobranca::RemessaInvalida, self unless valid? # contador de registros no arquivo contador = 1 ret = [monta_header] pagamentos.each do |pagamento| contador += 1 ret << monta_detalhe(pagamento, contador) if pagamento.codigo_multa.to_i > 0 && self.respond_to?(:monta_detalhe_multa) contador += 1 ret << monta_detalhe_multa(pagamento, contador) end end ret << monta_trailer(contador + 1) remittance = ret.join("\n").to_ascii.upcase remittance << "\n" remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding, crlf_newline: true) end |
#info_conta ⇒ Object
Informacoes referentes a conta do cedente
Este metodo deve ser sobrescrevido na classe do banco
89 90 91 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 89 def info_conta raise Bbrcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#monta_detalhe(_pagamento, _sequencial) ⇒ Object
Registro detalhe do arquivo remessa
Este metodo deve ser sobrescrevido na classe do banco
56 57 58 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 56 def monta_detalhe(_pagamento, _sequencial) raise Bbrcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#monta_header ⇒ String
Header do arquivo remessa
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 20 def monta_header # CAMPO TAMANHO VALOR # tipo do registro [1] 0 # operacao [1] 1 # literal remessa [7] REMESSA # Código do serviço [2] 01 # cod. servico [15] COBRANCA # info. conta [20] # empresa mae [30] # cod. banco [3] # nome banco [15] # data geracao [6] formato DDMMAA # complemento registro [294] # num. sequencial [6] 000001 "01REMESSA01COBRANCA #{info_conta}#{empresa_mae.format_size(30)}#{cod_banco}#{nome_banco}#{data_geracao}#{complemento}000001" end |
#monta_trailer(sequencial) ⇒ String
Trailer do arquivo remessa
44 45 46 47 48 49 50 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 44 def monta_trailer(sequencial) # CAMPO TAMANHO VALOR # identificacao registro [1] 9 # complemento [393] # num. sequencial [6] "9#{''.rjust(393, ' ')}#{sequencial.to_s.rjust(6, '0')}" end |
#nome_banco ⇒ Object
Nome por extenso do banco cobrador
Este metodo deve ser sobrescrevido na classe do banco
105 106 107 |
# File 'lib/bbrcobranca/remessa/cnab400/base.rb', line 105 def nome_banco raise Bbrcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |