Class: Brcobranca::Remessa::Cnab240::Base
- Defined in:
- lib/brcobranca/remessa/cnab240/base.rb
Instance Attribute Summary collapse
-
#codigo_baixa(pagamento) ⇒ Object
codigo_baixa (verificar o padrao nas classes referentes aos bancos).
-
#codigo_carteira ⇒ Object
codigo da carteira opcoes: 1 - cobranca simples 2 - cobranca caucionada 3 - cobranca descontada 7 – modalidade Simples quando carteira 17 (apenas Banco do Brasil).
-
#convenio ⇒ Object
convenio do cedente.
-
#dias_baixa(pagamento) ⇒ Object
dias_baixa (verificar o padrao nas classes referentes aos bancos).
-
#distribuicao_boleto ⇒ Object
identificacao da distribuicao do boleto (verificar opcoes nas classes referentes aos bancos).
-
#emissao_boleto ⇒ Object
identificacao da emissao do boleto (verificar opcoes nas classes referentes aos bancos).
-
#especie_titulo ⇒ Object
especie do titulo (verificar o padrao nas classes referentes aos bancos).
-
#forma_cadastramento ⇒ Object
forma de cadastramento dos titulos (campo nao tratado pelo Banco do Brasil) opcoes: 1 - com cadastramento (cobrança registrada) 2 - sem cadastramento (cobrança sem registro).
-
#mensagem_1 ⇒ Object
mensagem 1.
-
#mensagem_2 ⇒ Object
mensagem 2.
-
#tipo_documento ⇒ Object
tipo de documento (verificar o padrao nas classes referentes aos bancos).
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
Codigo do banco.
-
#codigo_convenio ⇒ Object
Codigo do convenio.
- #codigo_desconto(pagamento) ⇒ Object
-
#complemento_header ⇒ Object
Complemento do registro.
-
#complemento_r ⇒ Object
Complemento do Segmento R.
-
#convenio_lote ⇒ Object
Informacoes do convenio para o lote.
-
#data_geracao ⇒ String
Data de geracao do arquivo.
- #data_mora(pagamento) ⇒ Object
- #data_multa(pagamento) ⇒ Object
-
#densidade_gravacao ⇒ Object
Densidade de gravacao do arquivo.
- #dv_agencia_cobradora ⇒ Object
-
#exclusivo_servico ⇒ Object
Campo exclusivo para serviço.
-
#gera_arquivo ⇒ String
Gera o arquivo remessa.
-
#hora_geracao ⇒ String
Hora de geracao do arquivo.
- #identificacao_titulo_empresa(pagamento) ⇒ Object
-
#info_conta ⇒ Object
Informacoes da conta do cedente.
-
#initialize(campos = {}) ⇒ Base
constructor
A new instance of Base.
-
#monta_header_arquivo ⇒ String
Monta o registro header do arquivo.
-
#monta_header_lote(nro_lote) ⇒ String
Monta o registro header do lote.
-
#monta_lote(nro_lote) ⇒ Array
Monta um lote para o arquivo.
-
#monta_segmento_p(pagamento, nro_lote, sequencial) ⇒ String
Monta o registro segmento P do arquivo.
-
#monta_segmento_q(pagamento, nro_lote, sequencial) ⇒ String
Monta o registro segmento Q do arquivo.
-
#monta_segmento_r(pagamento, nro_lote, sequencial) ⇒ String
Monta o registro segmento R do arquivo.
-
#monta_trailer_arquivo(nro_lotes, sequencial) ⇒ String
Monta o registro trailer do arquivo.
-
#monta_trailer_lote(nro_lote, nro_registros) ⇒ String
Monta o registro trailer do lote.
-
#nome_banco ⇒ Object
Nome do banco.
-
#numero(pagamento) ⇒ Object
Identificacao do titulo da empresa.
- #total_segmentos(pagamentos) ⇒ Object
-
#uso_exclusivo_banco ⇒ Object
Uso exclusivo do Banco.
-
#uso_exclusivo_empresa ⇒ Object
Uso exclusivo da Empresa.
-
#versao_layout_arquivo ⇒ Object
Numero da versao do layout do arquivo.
-
#versao_layout_lote ⇒ Object
Numero da versao do layout do lote.
Methods inherited from Base
#quantidade_titulos_cobranca, #totaliza_valor_titulos, #valor_titulos_carteira
Methods included from Validations
#errors, included, #invalid?, #valid?
Constructor Details
#initialize(campos = {}) ⇒ Base
Returns a new instance of Base.
45 46 47 48 49 50 51 52 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 45 def initialize(campos = {}) campos = { codigo_carteira: '1', forma_cadastramento: '1', tipo_documento: ' ' }.merge!(campos) super(campos) end |
Instance Attribute Details
#codigo_baixa(pagamento) ⇒ Object
codigo_baixa (verificar o padrao nas classes referentes aos bancos)
34 35 36 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 34 def codigo_baixa @codigo_baixa end |
#codigo_carteira ⇒ Object
codigo da carteira
opcoes:
1 - cobranca simples
2 - cobranca caucionada
3 - cobranca descontada
7 – modalidade Simples quando carteira 17 (apenas Banco do Brasil)
19 20 21 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 19 def codigo_carteira @codigo_carteira end |
#convenio ⇒ Object
convenio do cedente
8 9 10 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 8 def convenio @convenio end |
#dias_baixa(pagamento) ⇒ Object
dias_baixa (verificar o padrao nas classes referentes aos bancos)
36 37 38 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 36 def dias_baixa @dias_baixa end |
#distribuicao_boleto ⇒ Object
identificacao da distribuicao do boleto (verificar opcoes nas classes referentes aos bancos)
28 29 30 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 28 def distribuicao_boleto @distribuicao_boleto end |
#emissao_boleto ⇒ Object
identificacao da emissao do boleto (verificar opcoes nas classes referentes aos bancos)
26 27 28 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 26 def emissao_boleto @emissao_boleto end |
#especie_titulo ⇒ Object
especie do titulo (verificar o padrao nas classes referentes aos bancos)
30 31 32 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 30 def especie_titulo @especie_titulo end |
#forma_cadastramento ⇒ Object
forma de cadastramento dos titulos (campo nao tratado pelo Banco do Brasil)
opcoes:
1 - com cadastramento (cobrança registrada)
2 - sem cadastramento (cobrança sem registro)
24 25 26 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 24 def forma_cadastramento @forma_cadastramento end |
#mensagem_1 ⇒ Object
mensagem 1
10 11 12 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 10 def mensagem_1 @mensagem_1 end |
#mensagem_2 ⇒ Object
mensagem 2
12 13 14 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 12 def mensagem_2 @mensagem_2 end |
#tipo_documento ⇒ Object
tipo de documento (verificar o padrao nas classes referentes aos bancos)
32 33 34 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 32 def tipo_documento @tipo_documento end |
Instance Method Details
#cod_banco ⇒ Object
Codigo do banco
Este metodo deve ser sobrescrevido na classe do banco
440 441 442 443 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 440 def cod_banco raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#codigo_convenio ⇒ Object
Codigo do convenio
Este metodo deve ser sobrescrevido na classe do banco
458 459 460 461 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 458 def codigo_convenio raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#codigo_desconto(pagamento) ⇒ Object
493 494 495 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 493 def codigo_desconto(pagamento) pagamento.cod_desconto end |
#complemento_header ⇒ Object
Complemento do registro
Este metodo deve ser sobrescrevido na classe do banco
380 381 382 383 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 380 def complemento_header raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#complemento_r ⇒ Object
Complemento do Segmento R
Sobreescreva caso necessário
466 467 468 469 470 471 472 473 474 475 476 477 478 479 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 466 def complemento_r segmento_r = '' segmento_r += ''.rjust(20, ' ') # Exclusivo FEBRABAN 20 segmento_r << ''.rjust(8, '0') # Cod. Ocor do Pagador 8 segmento_r << ''.rjust(3, '0') # Cod. do Banco conta débito 3 segmento_r << ''.rjust(5, '0') # Cod. da Agencia do débito 5 segmento_r << ' ' # Cod. verificador da agencia 1 segmento_r << ''.rjust(12, '0') # Conta corrente para débito 12 segmento_r << ' ' # Cod. verificador da conta 1 segmento_r << ' ' # Cod. verificador da Ag/Conta 1 segmento_r << '0' # Aviso débito automático 1 segmento_r << ''.rjust(9, ' ') # Uso FEBRABAN 9 segmento_r end |
#convenio_lote ⇒ Object
Informacoes do convenio para o lote
Este metodo deve ser sobrescrevido na classe do banco
422 423 424 425 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 422 def convenio_lote raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#data_geracao ⇒ String
Data de geracao do arquivo
58 59 60 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 58 def data_geracao Date.current.strftime('%d%m%Y') end |
#data_mora(pagamento) ⇒ Object
487 488 489 490 491 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 487 def data_mora(pagamento) return ''.rjust(8, '0') unless %w[1 2].include? pagamento.tipo_mora pagamento.data_vencimento.strftime('%d%m%Y') end |
#data_multa(pagamento) ⇒ Object
481 482 483 484 485 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 481 def data_multa(pagamento) return ''.rjust(8, '0') if pagamento.codigo_multa == '0' pagamento.data_vencimento.strftime('%d%m%Y') end |
#densidade_gravacao ⇒ Object
Densidade de gravacao do arquivo
404 405 406 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 404 def densidade_gravacao '00000' end |
#dv_agencia_cobradora ⇒ Object
523 524 525 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 523 def dv_agencia_cobradora '0' end |
#exclusivo_servico ⇒ Object
Campo exclusivo para serviço
Sobreescreva caso necessário
519 520 521 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 519 def exclusivo_servico ''.rjust(2, ' ') end |
#gera_arquivo ⇒ String
Gera o arquivo remessa
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 349 def gera_arquivo raise Brcobranca::RemessaInvalida, self if invalid? arquivo = [monta_header_arquivo] # contador de do lotes contador = 1 arquivo.push monta_lote(contador) total_linhas = (total_segmentos(pagamentos) + (contador * 2) + 2) arquivo << monta_trailer_arquivo(contador, total_linhas) remittance = arquivo.join("\r\n").remove_accents.upcase remittance << "\n" remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding, crlf_newline: true) end |
#hora_geracao ⇒ String
Hora de geracao do arquivo
66 67 68 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 66 def hora_geracao Time.current.strftime('%H%M%S') end |
#identificacao_titulo_empresa(pagamento) ⇒ Object
512 513 514 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 512 def identificacao_titulo_empresa(pagamento) pagamento.formata_documento_ou_numero end |
#info_conta ⇒ Object
Informacoes da conta do cedente
Este metodo deve ser sobrescrevido na classe do banco
449 450 451 452 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 449 def info_conta raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#monta_header_arquivo ⇒ String
Monta o registro header do arquivo
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 74 def monta_header_arquivo header_arquivo = '' # CAMPO TAMANHO header_arquivo += cod_banco # codigo do banco 3 header_arquivo << '0000' # lote do servico 4 header_arquivo << '0' # tipo de registro 1 header_arquivo << ''.rjust(9, ' ') # uso exclusivo FEBRABAN 9 header_arquivo << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo inscricao 1 header_arquivo << documento_cedente.to_s.rjust(14, '0') # numero de inscricao 14 header_arquivo << codigo_convenio # codigo do convenio no banco 20 header_arquivo << info_conta # informacoes da conta 20 header_arquivo << empresa_mae.format_size(30) # nome da empresa 30 header_arquivo << nome_banco.format_size(30) # nome do banco 30 header_arquivo << ''.rjust(10, ' ') # uso exclusivo FEBRABAN 10 header_arquivo << '1' # codigo remessa 1 header_arquivo << data_geracao # data geracao 8 header_arquivo << hora_geracao # hora geracao 6 header_arquivo << sequencial_remessa.to_s.rjust(6, '0') # numero seq. arquivo 6 header_arquivo << versao_layout_arquivo # num. versao arquivo 3 header_arquivo << densidade_gravacao # densidade gravacao 5 header_arquivo << uso_exclusivo_banco # uso exclusivo 20 header_arquivo << uso_exclusivo_empresa # uso exclusivo 20 header_arquivo << complemento_header # complemento do arquivo 29 header_arquivo end |
#monta_header_lote(nro_lote) ⇒ String
Monta o registro header do lote
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 106 def monta_header_lote(nro_lote) header_lote = '' # CAMPO TAMANHO header_lote += cod_banco # codigo banco 3 header_lote << nro_lote.to_s.rjust(4, '0') # lote servico 4 header_lote << '1' # tipo de registro 1 header_lote << 'R' # tipo de operacao 1 header_lote << '01' # tipo de servico 2 header_lote << exclusivo_servico # uso exclusivo 2 header_lote << versao_layout_lote # num.versao layout lote 3 header_lote << ' ' # uso exclusivo 1 header_lote << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo de inscricao 1 header_lote << documento_cedente.to_s.rjust(15, '0') # inscricao cedente 15 header_lote << convenio_lote # codigo do convenio 20 header_lote << info_conta # informacoes conta 20 header_lote << empresa_mae.format_size(30) # nome empresa 30 header_lote << mensagem_1.to_s.format_size(40) # 1a mensagem 40 header_lote << mensagem_2.to_s.format_size(40) # 2a mensagem 40 header_lote << sequencial_remessa.to_s.rjust(8, '0') # numero remessa 8 header_lote << data_geracao # data gravacao 8 header_lote << ''.rjust(8, '0') # data do credito 8 header_lote << ''.rjust(33, ' ') # complemento 33 header_lote end |
#monta_lote(nro_lote) ⇒ Array
Monta um lote para o arquivo
numero do lote no arquivo
316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 316 def monta_lote(nro_lote) # contador dos registros do lote contador = 1 # header lote = [monta_header_lote(nro_lote)] pagamentos.each do |pagamento| raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid? lote << monta_segmento_p(pagamento, nro_lote, contador) contador += 1 lote << monta_segmento_q(pagamento, nro_lote, contador) contador += 1 next unless respond_to?(:monta_segmento_r) seg_r = monta_segmento_r(pagamento, nro_lote, contador) unless seg_r.blank? lote << seg_r contador += 1 end end contador += 1 # trailer lote << monta_trailer_lote(nro_lote, contador) lote end |
#monta_segmento_p(pagamento, nro_lote, sequencial) ⇒ String
Monta o registro segmento P do arquivo
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 141 def monta_segmento_p(pagamento, nro_lote, sequencial) segmento_p = '' # # DESCRICAO TAMANHO segmento_p += cod_banco # codigo banco 3 segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4 segmento_p << '3' # tipo de registro 1 segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5 segmento_p << 'P' # cod. segmento 1 segmento_p << ' ' # uso exclusivo 1 segmento_p << pagamento.identificacao_ocorrencia # cod. movimento remessa 2 segmento_p << agencia.to_s.rjust(5, '0') # agencia 5 segmento_p << digito_agencia.to_s # dv agencia 1 segmento_p << complemento_p(pagamento) # informacoes da conta 34 segmento_p << codigo_carteira # codigo da carteira 1 segmento_p << forma_cadastramento # forma de cadastro do titulo 1 segmento_p << tipo_documento # tipo de documento 1 segmento_p << emissao_boleto # identificaco emissao 1 segmento_p << distribuicao_boleto # indentificacao entrega 1 segmento_p << numero(pagamento) # uso exclusivo 4 segmento_p << pagamento.data_vencimento.strftime('%d%m%Y') # data de venc. 8 segmento_p << pagamento.formata_valor(15) # valor documento 15 segmento_p << ''.rjust(5, '0') # agencia cobradora 5 segmento_p << dv_agencia_cobradora # dv agencia cobradora 1 segmento_p << especie_titulo # especie do titulo 2 segmento_p << aceite # aceite 1 segmento_p << pagamento.data_emissao.strftime('%d%m%Y') # data de emissao titulo 8 segmento_p << pagamento.tipo_mora # cod. do mora 1 segmento_p << data_mora(pagamento) # data mora 8 segmento_p << pagamento.formata_valor_mora(15) # valor mora 15 segmento_p << codigo_desconto(pagamento) # cod. do desconto 1 segmento_p << pagamento.formata_data_desconto('%d%m%Y') # data desconto 8 segmento_p << pagamento.formata_valor_desconto(15) # valor desconto 15 segmento_p << pagamento.formata_valor_iof(15) # valor IOF 15 segmento_p << pagamento.formata_valor_abatimento(15) # valor abatimento 15 segmento_p << identificacao_titulo_empresa(pagamento) # identificacao titulo empresa 25 segmento_p << pagamento.codigo_protesto # cod. para protesto 1 segmento_p << pagamento.dias_protesto.to_s.rjust(2, '0') # dias para protesto 2 segmento_p << codigo_baixa(pagamento) # cod. para baixa 1 segmento_p << dias_baixa(pagamento) # dias para baixa 2 segmento_p << '09' # cod. da moeda 2 segmento_p << ''.rjust(10, '0') # uso exclusivo 10 segmento_p << ' ' # uso exclusivo 1 segmento_p end |
#monta_segmento_q(pagamento, nro_lote, sequencial) ⇒ String
Monta o registro segmento Q do arquivo
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 197 def monta_segmento_q(pagamento, nro_lote, sequencial) segmento_q = '' # CAMPO TAMANHO segmento_q += cod_banco # codigo banco 3 segmento_q << nro_lote.to_s.rjust(4, '0') # lote de servico 4 segmento_q << '3' # tipo de registro 1 segmento_q << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5 segmento_q << 'Q' # cod. segmento 1 segmento_q << ' ' # uso exclusivo 1 segmento_q << pagamento.identificacao_ocorrencia # cod. movimento remessa 2 segmento_q << pagamento.identificacao_sacado(false) # tipo insc. sacado 1 segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0') # documento sacado 14 segmento_q << pagamento.nome_sacado.format_size(40) # nome cliente 40 segmento_q << pagamento.endereco_sacado.format_size(40) # endereco cliente 40 segmento_q << pagamento.bairro_sacado.format_size(15) # bairro 15 segmento_q << pagamento.cep_sacado[0..4] # cep 5 segmento_q << pagamento.cep_sacado[5..7] # sufixo cep 3 segmento_q << pagamento.cidade_sacado.format_size(15) # cidade 15 segmento_q << pagamento.uf_sacado # uf 2 segmento_q << pagamento.identificacao_avalista(false) # identificacao do sacador 1 segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0') # documento sacador 15 segmento_q << pagamento.nome_avalista.format_size(40) # nome avalista 40 segmento_q << ''.rjust(3, '0') # cod. banco correspondente 3 segmento_q << ''.rjust(20, ' ') # nosso numero banco correspondente 20 segmento_q << ''.rjust(8, ' ') # uso exclusivo 8 segmento_q end |
#monta_segmento_r(pagamento, nro_lote, sequencial) ⇒ String
Monta o registro segmento R do arquivo
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 235 def monta_segmento_r(pagamento, nro_lote, sequencial) segmento_r = '' # CAMPO TAMANHO segmento_r += cod_banco # codigo banco 3 segmento_r << nro_lote.to_s.rjust(4, '0') # lote de servico 4 segmento_r << '3' # tipo do registro 1 segmento_r << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5 segmento_r << 'R' # cod. segmento 1 segmento_r << ' ' # uso exclusivo 1 segmento_r << pagamento.identificacao_ocorrencia # cod. movimento remessa 2 segmento_r << '0' # cod. desconto 2 1 segmento_r << ''.rjust(8, '0') # data desconto 2 8 segmento_r << ''.rjust(15, '0') # valor desconto 2 15 segmento_r << '0' # cod. desconto 3 1 segmento_r << ''.rjust(8, '0') # data desconto 3 8 segmento_r << ''.rjust(15, '0') # valor desconto 3 15 segmento_r << pagamento.codigo_multa # codigo multa 1 segmento_r << data_multa(pagamento) # data multa 8 segmento_r << pagamento.formata_percentual_multa(15) # valor multa 15 segmento_r << ''.rjust(10, ' ') # info pagador 10 segmento_r << ''.rjust(40, ' ') # mensagem 3 40 segmento_r << ''.rjust(40, ' ') # mensagem 4 40 segmento_r << complemento_r # complemento de acordo com o banco 61 segmento_r end |
#monta_trailer_arquivo(nro_lotes, sequencial) ⇒ String
Monta o registro trailer do arquivo
290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 290 def monta_trailer_arquivo(nro_lotes, sequencial) # CAMPO TAMANHO # codigo banco 3 # lote de servico 4 # tipo de registro 1 # uso FEBRABAN 9 # nro de lotes 6 # nro de registros(linhas) 6 # uso FEBRABAN 211 "#{cod_banco}99999#{''.rjust(9, ' ')}#{nro_lotes.to_s.rjust(6, '0')}#{sequencial.to_s.rjust(6, '0')}#{''.rjust(211, ' ')}" end |
#monta_trailer_lote(nro_lote, nro_registros) ⇒ String
Monta o registro trailer do lote
270 271 272 273 274 275 276 277 278 279 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 270 def monta_trailer_lote(nro_lote, nro_registros) trailer_lote = '' # CAMPO # TAMANHO trailer_lote += cod_banco # codigo banco 3 trailer_lote << nro_lote.to_s.rjust(4, '0') # lote de servico 4 trailer_lote << '5' # tipo de servico 1 trailer_lote << ''.rjust(9, ' ') # uso exclusivo 9 trailer_lote << nro_registros.to_s.rjust(6, '0') # qtde de registros lote 6 trailer_lote << complemento_trailer # uso exclusivo 217 trailer_lote end |
#nome_banco ⇒ Object
Nome do banco
Este metodo deve ser sobrescrevido na classe do banco
431 432 433 434 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 431 def nome_banco raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#numero(pagamento) ⇒ Object
Identificacao do titulo da empresa
Sobreescreva caso necessário
508 509 510 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 508 def numero(pagamento) pagamento.formata_documento_ou_numero(15, '0') end |
#total_segmentos(pagamentos) ⇒ Object
368 369 370 371 372 373 374 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 368 def total_segmentos(pagamentos) if respond_to?(:monta_segmento_r) pagamentos.size * 3 else pagamentos.size * 2 end end |
#uso_exclusivo_banco ⇒ Object
Uso exclusivo do Banco
409 410 411 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 409 def uso_exclusivo_banco ''.rjust(20, '0') end |
#uso_exclusivo_empresa ⇒ Object
Uso exclusivo da Empresa
414 415 416 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 414 def uso_exclusivo_empresa ''.rjust(20, '0') end |
#versao_layout_arquivo ⇒ Object
Numero da versao do layout do arquivo
Este metodo deve ser sobrescrevido na classe do banco
389 390 391 392 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 389 def versao_layout_arquivo raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |
#versao_layout_lote ⇒ Object
Numero da versao do layout do lote
Este metodo deve ser sobrescrevido na classe do banco
398 399 400 401 |
# File 'lib/brcobranca/remessa/cnab240/base.rb', line 398 def versao_layout_lote raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando' end |