Class: Brcobranca::Remessa::Cnab400::Base
- Defined in:
- lib/brcobranca/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 Brcobranca::Remessa::Base
Instance Method Details
#cod_banco ⇒ Object
Numero do banco na camara de compensacao
Este metodo deve ser sobrescrevido na classe do banco
107 108 109 110 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 107 def cod_banco raise Brcobranca::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
125 126 127 128 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 125 def complemento raise Brcobranca::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
13 14 15 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 13 def data_geracao Date.current.strftime('%d%m%y') end |
#gera_arquivo ⇒ String
Gera o arquivo com os registros
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 65 def gera_arquivo raise Brcobranca::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.positive? && respond_to?(:monta_detalhe_multa) contador += 1 ret << monta_detalhe_multa(pagamento, contador) end # Adiciona registro de desconto adicional if pagamento.valor_segundo_desconto.to_f.positive? && respond_to?(:monta_descontos_adicionais) contador += 1 ret << monta_descontos_adicionais(pagamento, contador) end end ret << monta_trailer(contador + 1) remittance = ret.join("\n").remove_accents.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
98 99 100 101 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 98 def info_conta raise Brcobranca::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
57 58 59 60 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 57 def monta_detalhe(_pagamento, _sequencial) raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#monta_header ⇒ String
Header do arquivo remessa
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 21 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
45 46 47 48 49 50 51 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 45 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
116 117 118 119 |
# File 'lib/brcobranca/remessa/cnab400/base.rb', line 116 def nome_banco raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |