lib/brcobranca/remessa/cnab400/bradesco.rb
def monta_detalhe(pagamento, sequencial)
          raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
          detalhe = '1'                                               # identificacao do registro                   9[01]       001 a 001
          detalhe << ''.rjust(5, '0')                                 # agencia de debito (op)                      9[05]       002 a 006
          detalhe << ''.rjust(1, '0')                                 # digito da agencia de debito (op)            X[01]       007 a 007
          detalhe << ''.rjust(5, '0')                                 # razao da conta corrente de debito (op)      9[05]       008 a 012
          detalhe << ''.rjust(7, '0')                                 # conta corrente (op)                         9[07]       013 a 019
          detalhe << ''.rjust(1, '0')                                 # digito da conta corrente (op)               X[01]       020 a 020
          detalhe << identificacao_empresa                            # identficacao da empresa                     X[17]       021 a 037
          detalhe << pagamento.uso_da_empresa.to_s.rjust(25, ' ')           # identificacao do tit. na empresa      X[25]       038 a 062
          detalhe << ''.rjust(3, '0')                                 # codigo do banco (debito automatico apenas)  9[03]       063 a 065
          detalhe << campo_multa.rjust(1, '0')                        # campo da multa                              9[01]       066 a 066 *
          detalhe << pagamento.percentual_multa.rjust(4, '0')         # percentual multa  00,00                     9[04]       067 a 070 *
          detalhe << pagamento.nosso_numero.to_s.rjust(11, '0')       # identificacao do titulo (nosso numero)      9[11]       071 a 081
          detalhe << digito_nosso_numero(pagamento.nosso_numero).to_s # digito de conferencia do nosso numero (dv)  X[01]       082 a 082
          detalhe << ''.rjust(10, '0')                                # desconto por dia                            9[10]       083 a 092
          detalhe << condicao_emissao                                 # condicao emissao boleto (1 Banco |2 cliente)9[01]       093 a 093
          detalhe << identificacao_registro                           # emite boleto para debito                    X[01]       094 a 094
          detalhe << ''.rjust(10, ' ')                                # operacao no banco (brancos)                 X[10]       095 a 104
          detalhe << ' '                                              # indicador rateio                            X[01]       105 a 105
          detalhe << aviso_debito                                     # endereco para aviso debito (op 2 = ignora)  9[01]       106 a 106
          detalhe << ''.rjust(2, ' ')                                 # brancos                                     X[02]       107 a 108
          detalhe << pagamento.identificacao_ocorrencia               # identificacao ocorrencia                    9[02]       109 a 110
          detalhe << pagamento.numero_documento.to_s.rjust(10, ' ')   # numero do documento alfanum.                X[10]       111 a 120
          detalhe << pagamento.data_vencimento.strftime('%d%m%y')     # data de vencimento                          9[06]       121 a 126
          detalhe << pagamento.formata_valor                          # valor do titulo                             9[13]       127 a 139
          detalhe << ''.rjust(3, '0')                                 # banco encarregado (zeros)                   9[03]       140 a 142
          detalhe << ''.rjust(5, '0')                                 # agencia depositaria (zeros)                 9[05]       143 a 147
          detalhe << pagamento.especie_titulo                         # especie do titulo                           9[02]       148 a 149
          detalhe << 'N'                                              # identificacao (sempre N)                    X[01]       150 a 150
          detalhe << pagamento.data_emissao.strftime('%d%m%y')        # data de emissao                             9[06]       151 a 156
          detalhe << primeira_instrucao.rjust(2, '0')                 # 1a instrucao                                9[02]       157 a 158
          detalhe << instrucao_cobranca.rjust(2, '0')                 # quantidade de dias do prazo                 9[02]       159 a 160
          detalhe << pagamento.formata_valor_mora                     # mora                                        9[13]       161 a 173
          detalhe << pagamento.formata_data_desconto                  # data desconto                               9[06]       174 a 179
          detalhe << pagamento.formata_valor_desconto                 # valor desconto                              9[13]       180 a 192
          detalhe << pagamento.formata_valor_iof                      # valor iof                                   9[13]       193 a 205
          detalhe << pagamento.formata_valor_abatimento               # valor abatimento                            9[13]       206 a 218
          detalhe << pagamento.identificacao_sacado                   # identificacao do pagador                    9[02]       219 a 220
          detalhe << pagamento.documento_sacado.to_s.rjust(14, '0')   # cpf/cnpj do pagador                         9[14]       221 a 234
          detalhe << pagamento.nome_sacado.format_size(40)            # nome do pagador                             9[40]       235 a 274
          detalhe << formata_endereco_sacado(pagamento)               # endereco do pagador                         X[40]       275 a 314
          detalhe << ''.rjust(12, ' ')                                # 1a mensagem                                 X[12]       315 a 326
          detalhe << pagamento.cep_sacado[0..4]                       # cep do pagador                              9[05]       327 a 331
          detalhe << pagamento.cep_sacado[5..7]                       # sufixo do cep do pagador                    9[03]       332 a 334
          if pagamento.nome_avalista.present? && pagamento.documento_avalista.present?
            detalhe << monta_documento_avalista(pagamento.documento_avalista)
            detalhe << ''.rjust(2, ' ')
            detalhe << pagamento.nome_avalista.format_size(43).ljust(43, '0')
          else
            detalhe << pagamento.mensagem.format_size(60)             # 2a mensagem - verificar                     X[60]       335 a 394
          end
          detalhe << sequencial.to_s.rjust(6, '0')                    # numero do registro do arquivo               9[06]       395 a 400
          detalhe
        end
# codigo da empresa (informado pelo Bradesco no cadastramento)
codigo da empresa (informado pelo Bradesco no cadastramento)
codigo da empresa ( informado pelo Bradesco no cadastramento )
def monta_detalhe(pagamento, sequencial)
          raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
          detalhe = '1'                                               
          detalhe << ''.rjust(5, '0')                                 
          detalhe << ''.rjust(1, '0')                                 
          detalhe << ''.rjust(5, '0')                                 
          detalhe << ''.rjust(7, '0')                                 
          detalhe << ''.rjust(1, '0')                                 
          detalhe << identificacao_empresa                            
          detalhe << pagamento.uso_da_empresa.to_s.rjust(25, ' ')           
          detalhe << ''.rjust(3, '0')                                 
          detalhe << campo_multa.rjust(1, '0')                        
          detalhe << pagamento.percentual_multa.rjust(4, '0')         
          detalhe << pagamento.nosso_numero.to_s.rjust(11, '0')       
          detalhe << digito_nosso_numero(pagamento.nosso_numero).to_s 
          detalhe << ''.rjust(10, '0')                                
          detalhe << condicao_emissao                                 
          detalhe << identificacao_registro                           
          detalhe << ''.rjust(10, ' ')                                
          detalhe << ' '                                              
          detalhe << aviso_debito                                     
          detalhe << ''.rjust(2, ' ')                                 
          detalhe << pagamento.identificacao_ocorrencia               
          detalhe << pagamento.numero_documento.to_s.rjust(10, ' ')   
          detalhe << pagamento.data_vencimento.strftime('%d%m%y')     
          detalhe << pagamento.formata_valor                          
          detalhe << ''.rjust(3, '0')                                 
          detalhe << ''.rjust(5, '0')                                 
          detalhe << pagamento.especie_titulo                         
          detalhe << 'N'                                              
          detalhe << pagamento.data_emissao.strftime('%d%m%y')        
          detalhe << primeira_instrucao.rjust(2, '0')                 
          detalhe << instrucao_cobranca.rjust(2, '0')                 
          detalhe << pagamento.formata_valor_mora                     
          detalhe << pagamento.formata_data_desconto                  
          detalhe << pagamento.formata_valor_desconto                 
          detalhe << pagamento.formata_valor_iof                      
          detalhe << pagamento.formata_valor_abatimento               
          detalhe << pagamento.identificacao_sacado                   
          detalhe << pagamento.documento_sacado.to_s.rjust(14, '0')   
          detalhe << pagamento.nome_sacado.format_size(40)            
          detalhe << formata_endereco_sacado(pagamento)               
          detalhe << ''.rjust(12, ' ')                                
          detalhe << pagamento.cep_sacado[0..4]                       
          detalhe << pagamento.cep_sacado[5..7]                       
          if pagamento.nome_avalista.present? && pagamento.documento_avalista.present?
            detalhe << monta_documento_avalista(pagamento.documento_avalista)
            detalhe << ''.rjust(2, ' ')
            detalhe << pagamento.nome_avalista.format_size(43).ljust(43, '0')
          else
            detalhe << pagamento.mensagem.format_size(60)             
          end
          detalhe << sequencial.to_s.rjust(6, '0')                    
          detalhe
        end
def monta_detalhe ( pagamento , sequencial ) raise Brcobranca :: RemessaInvalida , pagamento if pagamento . invalid? detalhe = '1' detalhe << '' . rjust ( 5 , '0' ) detalhe << '' . rjust ( 1 , '0' ) detalhe << '' . rjust ( 5 , '0' ) detalhe << '' . rjust ( 7 , '0' ) detalhe << '' . rjust ( 1 , '0' ) detalhe << identificacao_empresa detalhe << pagamento . uso_da_empresa . to_s . rjust ( 25 , ' ' ) detalhe << '' . rjust ( 3 , '0' ) detalhe << campo_multa . rjust ( 1 , '0' ) detalhe << pagamento . percentual_multa . rjust ( 4 , '0' ) detalhe << pagamento . nosso_numero . to_s . rjust ( 11 , '0' ) detalhe << digito_nosso_numero ( pagamento . nosso_numero ) . to_s detalhe << '' . rjust ( 10 , '0' ) detalhe << condicao_emissao detalhe << identificacao_registro detalhe << '' . rjust ( 10 , ' ' ) detalhe << ' ' detalhe << aviso_debito detalhe << '' . rjust ( 2 , ' ' ) detalhe << pagamento . identificacao_ocorrencia detalhe << pagamento . numero_documento . to_s . rjust ( 10 , ' ' ) detalhe << pagamento . data_vencimento . strftime ( '%d%m%y' ) detalhe << pagamento . formata_valor detalhe << '' . rjust ( 3 , '0' ) detalhe << '' . rjust ( 5 , '0' ) detalhe << pagamento . especie_titulo detalhe << 'N' detalhe << pagamento . data_emissao . strftime ( '%d%m%y' ) detalhe << primeira_instrucao . rjust ( 2 , '0' ) detalhe << instrucao_cobranca . rjust ( 2 , '0' ) detalhe << pagamento . formata_valor_mora detalhe << pagamento . formata_data_desconto detalhe << pagamento . formata_valor_desconto detalhe << pagamento . formata_valor_iof detalhe << pagamento . formata_valor_abatimento detalhe << pagamento . identificacao_sacado detalhe << pagamento . documento_sacado . to_s . rjust ( 14 , '0' ) detalhe << pagamento . nome_sacado . format_size ( 40 ) detalhe << formata_endereco_sacado ( pagamento ) detalhe << '' . rjust ( 12 , ' ' ) detalhe << pagamento . cep_sacado [ 0 .. 4 ] detalhe << pagamento . cep_sacado [ 5 .. 7 ] if pagamento . nome_avalista . present? && pagamento . documento_avalista . present? detalhe << monta_documento_avalista ( pagamento . documento_avalista ) detalhe << '' . rjust ( 2 , ' ' ) detalhe << pagamento . nome_avalista . format_size ( 43 ) . ljust ( 43 , '0' ) else detalhe << pagamento . mensagem . format_size ( 60 ) end detalhe << sequencial . to_s . rjust ( 6 , '0' ) detalhe end
codigo da empresa (informado pelo Bradesco no cadastramento)
codigo da empresa ( informado pelo Bradesco no cadastramento )
# identificacao do registro                   9[01]       001 a 001 # agencia de debito (op)                      9[05]       002 a 006 # digito da agencia de debito (op)            X[01]       007 a 007 # razao da conta corrente de debito (op)      9[05]       008 a 012 # conta corrente (op)                         9[07]       013 a 019 # digito da conta corrente (op)               X[01]       020 a 020 # identficacao da empresa                     X[17]       021 a 037 # identificacao do tit. na empresa      X[25]       038 a 062 # codigo do banco (debito automatico apenas)  9[03]       063 a 065 # campo da multa                              9[01]       066 a 066 * # percentual multa  00,00                     9[04]       067 a 070 * # identificacao do titulo (nosso numero)      9[11]       071 a 081 # digito de conferencia do nosso numero (dv)  X[01]       082 a 082 # desconto por dia                            9[10]       083 a 092 # condicao emissao boleto (1 Banco |2 cliente)9[01]       093 a 093 # emite boleto para debito                    X[01]       094 a 094 # operacao no banco (brancos)                 X[10]       095 a 104 # indicador rateio                            X[01]       105 a 105 # endereco para aviso debito (op 2 = ignora)  9[01]       106 a 106 # brancos                                     X[02]       107 a 108 # identificacao ocorrencia                    9[02]       109 a 110 # numero do documento alfanum.                X[10]       111 a 120 # data de vencimento                          9[06]       121 a 126 # valor do titulo                             9[13]       127 a 139 # banco encarregado (zeros)                   9[03]       140 a 142 # agencia depositaria (zeros)                 9[05]       143 a 147 # especie do titulo                           9[02]       148 a 149 # identificacao (sempre N)                    X[01]       150 a 150 # data de emissao                             9[06]       151 a 156 # 1a instrucao                                9[02]       157 a 158 # quantidade de dias do prazo                 9[02]       159 a 160 # mora                                        9[13]       161 a 173 # data desconto                               9[06]       174 a 179 # valor desconto                              9[13]       180 a 192 # valor iof                                   9[13]       193 a 205 # valor abatimento                            9[13]       206 a 218 # identificacao do pagador                    9[02]       219 a 220 # cpf/cnpj do pagador                         9[14]       221 a 234 # nome do pagador                             9[40]       235 a 274 # endereco do pagador                         X[40]       275 a 314 # 1a mensagem                                 X[12]       315 a 326 # cep do pagador                              9[05]       327 a 331 # sufixo do cep do pagador                    9[03]       332 a 334 # 2a mensagem - verificar                     X[60]       335 a 394 # numero do registro do arquivo               9[06]       395 a 400
pagamento
sequencial