Class: BrBoleto::Remessa::Cnab400::Bradesco
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- Base
- BrBoleto::Remessa::Cnab400::Bradesco
- Defined in:
- lib/br_boleto/remessa/cnab400/bradesco.rb
Direct Known Subclasses
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_002_003(pagamento) ⇒ Object
Informações Opcionais no Bradesco.
- #detalhe_posicao_004_017 ⇒ Object
-
#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object
Nosso numero do pagamento e outras informações Posição: 063 até 108 POSIÇÂO TAM.
- #detalhe_posicao_063_108(pagamento) ⇒ 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 Tipo: Numérico 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.
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_001_001, #detalhe_posicao_018_037, #detalhe_posicao_038_062, #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 108 008 Branco 109 a 110 002 Identificação do sistema (MX) 111 a 117 007 No Seqüencial de Remessa (deve iniciar de 0000001 e incrementado de + 1 a cada NOVO Arquivo Remessa) 118 a 394 277 Branco Tamanho total: 294
29 30 31 32 33 34 35 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 29 def complemento_registro info = ''.adjust_size_to(8) info << 'MX' info << "#{sequencial_remessa}".adjust_size_to(7, '0', :right) info << ''.adjust_size_to(277) info end |
#conta_class ⇒ Object
6 7 8 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 6 def conta_class BrBoleto::Conta::Bradesco 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/bradesco.rb', line 185 def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) detalhe = '' detalhe << "#{pagamento.valor_mora_formatado}".adjust_size_to(13,'0', :right ) 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_002_003(pagamento) ⇒ Object
Informações Opcionais no Bradesco. Somente deverão ser preenchidos, caso o cliente Beneficiário esteja previamente cadastrado para operar com a modalidade de cobrança com débito automático
43 44 45 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 43 def detalhe_posicao_002_003(pagamento) ''.adjust_size_to(2) end |
#detalhe_posicao_004_017 ⇒ Object
46 47 48 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 46 def detalhe_posicao_004_017 ''.adjust_size_to(14) end |
#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object
Nosso numero do pagamento e outras informações Posição: 063 até 108 POSIÇÂO TAM. Descrição 063 a 065 003 Códigos do Banco para Débito - preencher com Zeros (Se for débito automatico adicionar 237) 066 a 066 001 Identificativos de Multa 067 a 070 004 Percentual de Multa por Atraso 071 a 081 011 Identificação do Título no Banco 082 a 082 001 Digito de Auto Conferencia do Número Bancário 083 a 092 010 Desconto Bonificação por dia 093 a 093 001 Condição para Emissão da Papeleta de Cobrança 094 a 094 001 Ident. se emite Boleto Automático 095 a 104 010 Identificação da Operação do Banco (Preencher com Branco) 105 a 105 001 Indicador Rateio Crédito (Opcional) 106 a 106 001 Endereçamento para Aviso do Débito Automático em C.C. (opcional) 107 a 108 002 Branco Tamanho: 46
95 96 97 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 95 def detalhe_posicao_063_076(pagamento, sequencial) detalhe_posicao_063_108(pagamento) end |
#detalhe_posicao_063_108(pagamento) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 101 def detalhe_posicao_063_108(pagamento) info = ''.adjust_size_to(3, '0') if (pagamento.codigo_multa == 1 or pagamento.codigo_multa == 2) info << '2' info << (pagamento.percentual_multa_formatado(2)).adjust_size_to(4, '0') # tem multa: preencher com percentual da multa com 2 decimais else info << '0' info << ''.adjust_size_to(4, '0', :right) # sem multa: preencher com zeros. end info << "#{pagamento.numero_documento}".adjust_size_to(11, '0', :right) info << "#{pagamento.nosso_numero}".split('').last info << "#{pagamento.valor_desconto_formatado}".adjust_size_to(10,'0', :right) # Valor do desconto bonif./dia info << "#{conta.get_identificacao_emissao(pagamento.tipo_emissao, 400)}".adjust_size_to(1, '2') # '2' : o Cliente emitiu o Boleto e o Banco somente processa o registro info << ' ' # Espaço em branco ou 'N' caso o boleto possui Condições de Registro para Débito Automático info << ''.adjust_size_to(10) info << ' ' # Somente deverá ser preenchido com a Letra “R”, se a Empresa contratou o serviço de rateio de crédito, caso não, informar Branco info << ' ' # Espaço em branco ou '1' se possui Débito Automático (emite aviso e assume o endereço do Pagador constante do Arquivo-Remessa) info << ''.adjust_size_to(2) info end |
#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object
98 99 100 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 98 def detalhe_posicao_077_108(pagamento, sequencial) '' end |
#header_posicao_002_a_002 ⇒ Object
Código da remessa Tipo: Numérico Tamanho: 001
17 18 19 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 17 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 Tipo: Numérico Tamanho: 020
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 54 def informacoes_da_conta(local) # POSIÇÂO TAM. Descrição # 018 a 020 003 Branco # 021 a 021 001 Zero # 022 a 024 003 Códigos da carteira # 025 a 029 005 Códigos da Agência Beneficiários (sem o dígito) # 030 a 036 007 Contas Corrente # 037 a 037 001 Dígito da Conta if local == :detalhe info = ''.adjust_size_to(3) info << '0' info << "#{conta.carteira}".adjust_size_to(3, '0', :right) info << "#{conta.agencia}".adjust_size_to(5, '0', :right) info << "#{conta.conta_corrente}".adjust_size_to(7, '0', :right) info << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right) info # POSIÇÂO TAM. Descrição # 027 a 046 020 Codigo da Empresa elsif local == :header info = "#{conta.codigo_empresa}".adjust_size_to(20, '0', :right) # Será informado pelo Bradesco, quando do cadastramento da Conta beneficiário na sua Agência. end 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 (Preencher com zeros) 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
136 137 138 139 140 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 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 136 def informacoes_do_pagamento(pagamento, sequencial) dados = '' dados << pagamento.data_vencimento_formatado('%d%m%y') dados << pagamento.valor_documento_formatado(13) dados << ''.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: # Campo destinado para pré-determinar o protesto do Título ou a baixa por decurso de prazo, quandodo registro. # Não havendo interesse, preencher com Zeros. # Porém, caso a Empresa deseje se utilizar da instrução automática de protesto ou da baixa pordecurso de prazo, abaixo os procedimentos: # Protesto/Negativação: # - posição 157 a 158 = Indicar o código “06” - (Protestar). # - posição 157 a 158 = Indicar o código “07” - (Negativar) (NOVO) # - posição 159 a 160 = Indicar o número de dias a protestar (mínimo 5 dias). # Protesto Falimentar: # - posição 157 a 158 = Indicar o código “05” – (Protesto Falimentar) # - posição 159 a 160 = Indicar o número de dias a protestar (mínimo 5 dias). # Decurso de Prazo: # - posição 157 a 158 = Indicar o código “18” – (Decurso de prazo). # - posição 159 a 160 = Indicar o número de dias para baixa por decurso de prazo. # Nota: A posição 157 a 158, também poderá ser utilizada para definir as seguintes mensagens, a serem impressas nos Boletos de cobrança, emitidas pelo Banco: # 08 Não cobrar juros de mora # 09 Não receber após o vencimento # 20/5710 Multas de 10% após o 4o dia do Vencimento. # 11 Não receber após o 8o dia do vencimento. # 12 Cobrar encargos após o 5o dia do vencimento. # 13 Cobrar encargos após o 10o dia do vencimento. # 14 Cobrar encargos após o 15o dia do vencimento # 15 Conceder desconto mesmo se pago após o vencimento. 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 274 040 Nome do Pagador 275 a 314 040 Endereço Completo 315 a 326 012 1a Mensagem 327 a 331 005 CEP 332 a 334 003 Sufixo do CEP 335 a 394 060 Sacador/Avalista ou 2a Mensagem Tamanho: 176
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/br_boleto/remessa/cnab400/bradesco.rb', line 207 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(40) info << "#{pagamento.pagador.endereco}".adjust_size_to(18) # Endereço Completo info << "#{pagamento.pagador.bairro}".adjust_size_to(10) # Endereço Completo info << "#{pagamento.pagador.cidade}".adjust_size_to(10) # Endereço Completo info << "#{pagamento.pagador.uf}".adjust_size_to(2) # Endereço Completo info << ''.adjust_size_to(12) # 1a Mensagem info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(14) # Sacador/Avalista (CPF/CNPJ) info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(46) # Sacador/Avalista (Nome) info end |