Class: BrBoleto::Remessa::Cnab400::BancoBrasil
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- Base
- BrBoleto::Remessa::Cnab400::BancoBrasil
- Defined in:
- lib/br_boleto/remessa/cnab400/banco_brasil.rb
Instance Attribute Summary
Attributes inherited from Base
#data_hora_arquivo, #sequencial_remessa
Instance Method Summary collapse
-
#complemento_registro ⇒ Object
Complemento do registro Posição: 101 até 394 POSIÇÂO TAM.
- #conta_class ⇒ Object
-
#detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente aos juros e multas do pagamento Posição: 161 a 218 POSIÇÂO TAM.
-
#detalhe_posicao_001_001 ⇒ Object
Identificação do Registro Detalhe.
-
#detalhe_posicao_038_062(pagamento) ⇒ Object
Nosso numero do pagamento e outras informações Posição: 063 até 108 POSIÇÂO TAM.
- #detalhe_posicao_039_108(pagamento) ⇒ Object
- #detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object
- #detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object
-
#header_posicao_002_a_002 ⇒ Object
Código da remessa Tipo: Numérico Tamanho: 001.
-
#informacoes_da_conta(local) ⇒ Object
Informações da conta <- Específico para cada banco Posição: 018 até 037 (Detalhe) Posição: 027 até 046 (Header) Tamanho: 020.
-
#informacoes_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente ao pagamento Posição 121 até 160 POSIÇÂO TAM.
-
#informacoes_do_sacado(pagamento, sequencial) ⇒ Object
Informações referente aos dados do sacado/pagador Posição: 219 a 394 POSIÇÂO TAM.
-
#sacador_avalista(pagamento) ⇒ Object
-
Composição dados Sacador/Avalista Para CNPJ: Posição 352 à 372 - Preencher com o nome do Sacador/Avalista.
-
-
#tipo_cobranca ⇒ Object
TIPO DE COBRANÇA a) Carteiras 11 ou 17: - ‘04DSC’: Solicitação de registro na Modalidade Descontada - ‘08VDR’: Solicitação de registro na Modalidade BBVendor - ‘02VIN’: solicitação de registro na Modalidade Caucionada/Vinculada - BRANCOS: Registro na Modalidade Simples b) Demais Carteiras: - Brancos.
Methods inherited from Base
#dados_do_arquivo, #dados_do_pagamento, #informacoes_do_banco
Methods included from Helper::Trailer
#monta_trailer, #trailer_arquivo_posicao_001_a_001, #trailer_arquivo_posicao_002_a_394, #trailer_arquivo_posicao_394_a_400
Methods included from Helper::Detalhe
#detalhe_posicao_002_003, #detalhe_posicao_004_017, #detalhe_posicao_018_037, #detalhe_posicao_109_110, #detalhe_posicao_111_120, #detalhe_posicao_121_160, #detalhe_posicao_161_218, #detalhe_posicao_219_394, #detalhe_posicao_395_400, #monta_detalhe
Methods included from Helper::Header
#header_posicao_001_a_001, #header_posicao_003_a_009, #header_posicao_010_a_011, #header_posicao_012_a_026, #header_posicao_027_a_046, #header_posicao_047_a_076, #header_posicao_077_a_094, #header_posicao_095_a_100, #header_posicao_101_a_394, #header_posicao_395_a_400, #monta_header
Methods inherited from Base
#data_geracao, #hora_geracao, #pagamento_valid_cod_desconto_length, #pagamento_valid_distribuicao_boleto_length, #pagamento_valid_emissao_boleto_length, #pagamento_valid_tipo_impressao_required, #persisted?
Methods included from HaveConta
Methods inherited from ActiveModelBase
#assign_attributes, #default_values, #initialize
Constructor Details
This class inherits a constructor from BrBoleto::ActiveModelBase
Instance Method Details
#complemento_registro ⇒ Object
Complemento do registro Posição: 101 até 394
POSI
101 a 107 007 No Seqüencial de Remessa (deve iniciar de 0000001 e incrementado de + 1 a cada NOVO Arquivo Remessa) 108 a 129 022 Branco 130 a 136 007 Convênio Lider (Opcional) 137 a 394 258 Branco Tamanho total: 294
27 28 29 30 31 32 33 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 27 def complemento_registro info = "#{sequencial_remessa}".adjust_size_to(7, '0', :right) info << ''.adjust_size_to(22) info << "#{conta.convenio}".adjust_size_to(7, '0', :right) info << ''.adjust_size_to(258) info end |
#conta_class ⇒ Object
6 7 8 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 6 def conta_class BrBoleto::Conta::BancoBrasil end |
#detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente aos juros e multas do pagamento Posição: 161 a 218 POSIÇÂO TAM. Descrição 161 a 173 013 Valor a ser cobrado por Dia de Atraso 174 a 179 006 Data Limite P/Concessão de Desconto 180 a 192 013 Valor do Desconto 193 a 205 013 Valor do IOF 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado Tamanho: 58
185 186 187 188 189 190 191 192 193 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 185 def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) detalhe = '' detalhe << pagamento.valor_juros_monetario_formatado(13) detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right ) detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right ) detalhe << "#{pagamento.valor_iof_formatado}".adjust_size_to(13,'0', :right ) detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right ) detalhe end |
#detalhe_posicao_001_001 ⇒ Object
Identificação do Registro Detalhe
38 39 40 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 38 def detalhe_posicao_001_001 '7' end |
#detalhe_posicao_038_062(pagamento) ⇒ Object
Nosso numero do pagamento e outras informações Posição: 063 até 108 POSIÇÂO TAM. Descrição
039 a 063 025 Cod. Controle da Empresa (Brancos) 064 a 080 017 Nosso Número 081 a 082 002 Número da Prestação (Zeros) 083 a 084 002 Grupo de Valor (Zeros) 085 a 087 003 Complemento do Registro (Brancos) 088 a 088 001 Indicativo de Mensagem ou Sacador/Avalista 089 a 091 003 Prefixo do Título (Brancos) 092 a 094 003 Variação da Carteira 095 a 095 001 Conta Caução (Zero) 096 a 101 006 Número do Borderô (Zeros) 102 a 106 005 Tipo de Cobrança 107 a 108 002 Carteira
Tamanho: 70
94 95 96 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 94 def detalhe_posicao_038_062(pagamento) detalhe_posicao_039_108(pagamento) end |
#detalhe_posicao_039_108(pagamento) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 103 def detalhe_posicao_039_108(pagamento) detalhe = ''.adjust_size_to(25) detalhe << "#{pagamento.nosso_numero}".adjust_size_to(17, '0', :right) detalhe << ''.adjust_size_to(2, "0") detalhe << ''.adjust_size_to(2, "0") detalhe << ''.adjust_size_to(3) detalhe << ''.adjust_size_to(1) detalhe << ''.adjust_size_to(3) detalhe << "#{conta.variacao_carteira}".adjust_size_to(3, '0', :right) detalhe << '0' detalhe << ''.adjust_size_to(6, "0") detalhe << "#{tipo_cobranca}".adjust_size_to(5) detalhe << "#{conta.carteira}".adjust_size_to(2, '0', :right) detalhe end |
#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object
97 98 99 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 97 def detalhe_posicao_063_076(pagamento, sequencial) '' end |
#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object
100 101 102 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 100 def detalhe_posicao_077_108(pagamento, sequencial) '' end |
#header_posicao_002_a_002 ⇒ Object
Código da remessa Tipo: Numérico Tamanho: 001
15 16 17 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 15 def header_posicao_002_a_002 '1' end |
#informacoes_da_conta(local) ⇒ Object
Informações da conta <- Específico para cada banco Posição: 018 até 037 (Detalhe) Posição: 027 até 046 (Header) Tamanho: 020
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 46 def informacoes_da_conta(local) # POSIÇÂO: # Detalhe | Header TAM. Descrição # 18 a 21 27 a 30 004 Agência # 22 a 22 31 a 31 001 Agência DV # 23 a 30 32 a 39 008 Conta Corrente # 31 a 31 40 a 40 001 Conta Corrente DV info = "#{conta.agencia}".adjust_size_to(4, '0', :right) info << "#{conta.agencia_dv}".adjust_size_to(1, '0', :right) info << "#{conta.conta_corrente}".adjust_size_to(8, '0', :right) info << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right) if local == :detalhe # POSIÇÂO TAM. Descrição # ------------------------------- # 032 a 038 007 Código Convênio info << "#{conta.convenio}".adjust_size_to(7, '0', :right) elsif local == :header # POSIÇÂO TAM. Descrição # ------------------------------- # 041 a 046 006 Brancos info << ''.adjust_size_to(6, "0") end info end |
#informacoes_do_pagamento(pagamento, sequencial) ⇒ Object
Informações referente ao pagamento Posição 121 até 160 POSIÇÂO TAM. Descrição 121 a 126 006 Data do Vencimento do Título 127 a 139 013 Valor do Título 140 a 142 003 Banco Encarregado da Cobrança 143 a 147 005 Agência Depositária (preencher com zeros) 148 a 149 002 Espécie de Título 150 a 150 001 Identificação (Sempre ‘N’) 151 a 156 006 Data da emissão do Título 157 a 158 002 1a instrução 159 a 160 002 2a instrução Tamanho: 40
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 159 def informacoes_do_pagamento(pagamento, sequencial) dados = '' dados << pagamento.data_vencimento_formatado('%d%m%y') dados << pagamento.valor_documento_formatado(13) dados << "#{conta.codigo_banco}".adjust_size_to(3,'0', :right) dados << ''.adjust_size_to(5,'0', :right) dados << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(2, '0', :right) dados << 'N' dados << pagamento.data_emissao_formatado('%d%m%y') # 1a / 2a Instrução, conforme documentação (pag. 11, Nota 09): dados << ''.adjust_size_to(2,'0', :right) # 1a Instrução dados << ''.adjust_size_to(2,'0', :right) # 2a Instrução dados end |
#informacoes_do_sacado(pagamento, sequencial) ⇒ Object
Informações referente aos dados do sacado/pagador Posição: 219 a 394 POSIÇÂO TAM. Descrição 219 a 220 002 Identificação do Tipo de Inscrição do Pagador 221 a 234 014 No Inscrição do Pagador 235 a 264 030 Nome do Pagador 265 a 274 010 Complemento Registro (Brancos) 275 a 314 040 Endereço Pagador 315 a 326 012 Bairro Pagador 327 a 331 005 CEP 332 a 334 003 Sufixo do CEP 335 a 349 015 Cidade Pagador 350 a 351 002 UF Pagador 352 a 391 040 Observações/Mensagem ou Sacador/Avalista * 292 a 293 002 Número de Dias Para Protesto 294 a 294 001 Complemento Registro (Branco)
Tamanho: 176
213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 213 def informacoes_do_sacado(pagamento, sequencial) info = '' # Tipo de Inscrição do Pagador: "01" = CPF , "02" = CNPJ , "03" = PIS/PASEP , "98" = Não tem , "99" = Outros info << "#{pagamento.pagador.tipo_cpf_cnpj}".adjust_size_to(2, '0', :right) info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right) info << "#{pagamento.pagador.nome}".adjust_size_to(30) info << ''.adjust_size_to(10) # Complemento Registro (Brancos) info << "#{pagamento.pagador.endereco}".adjust_size_to(40) info << "#{pagamento.pagador.bairro}".adjust_size_to(12) info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP info << "#{pagamento.pagador.cidade}".adjust_size_to(15) info << "#{pagamento.pagador.uf}".adjust_size_to(2) info << "#{sacador_avalista(pagamento)}".adjust_size_to(40) # Observações/Mensagem ou Sacador/Avalista * info << ''.adjust_size_to(2) # Quantidade de dias para Protesto info << ''.adjust_size_to(1) # Complemento Registro (Brancos) info end |
#sacador_avalista(pagamento) ⇒ Object
-
Composição dados Sacador/Avalista
Para CNPJ:
Posi
Para CPF:
Posi
Tamanho: 40
245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 245 def sacador_avalista(pagamento) info = '' if "#{pagamento.pagador.tipo_documento_avalista}".to_i == 2 info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(21) # Sacador/Avalista (Nome) info << ''.adjust_size_to(1) # Complemento Registro (Branco) info << "CNPJ" # CNPJ info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(14) # Sacador/Avalista (CNPJ) elsif "#{pagamento.pagador.tipo_documento_avalista}".to_i == 1 info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(25) # Sacador/Avalista (Nome) info << ''.adjust_size_to(1) # Complemento Registro (Branco) info << "CPF" # CPF info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(11) # Sacador/Avalista (CPF) end info end |
#tipo_cobranca ⇒ Object
TIPO DE COBRANÇA a) Carteiras 11 ou 17: - ‘04DSC’: Solicitação de registro na Modalidade Descontada - ‘08VDR’: Solicitação de registro na Modalidade BBVendor - ‘02VIN’: solicitação de registro na Modalidade Caucionada/Vinculada - BRANCOS: Registro na Modalidade Simples b) Demais Carteiras: - Brancos
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/br_boleto/remessa/cnab400/banco_brasil.rb', line 127 def tipo_cobranca if conta.carteira.to_i == 11 || conta.carteira.to_i == 17 case conta.get_tipo_cobranca(conta.codigo_carteira, 400).to_i when 3 '02VIN' when 4 '04DSC' when 7 '08VDR' else ''.adjust_size_to(5) end else ''.adjust_size_to(5) end end |