lib/brcobranca/remessa/cnab400/safra.rb
def monta_detalhe(pagamento, sequencial)
          raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
          cod_banco_cobranca = banco_cobranca.presence || '422'

          detalhe = '1'                                               # identificacao do registro                   9[01]       001 a 001
          detalhe << '02'                                             # Tipo De Inscrição Da Empresa CNPJ 02        9[02]       002 a 003
          detalhe << documento_cedente                                # CNPJ 02                                     9[14]       004 a 017
          detalhe << info_conta                                       # Identificação Da Empresa No Banco           9[14]       018 a 031
          detalhe << ''.rjust(6, ' ')                                 # Brancos                                     X[06]       032 a 037
          detalhe << ''.rjust(25, ' ')                                # Uso Exclusivo Da Empresa                    X[25]       038 a 062
          detalhe << pagamento.nosso_numero[0...-1].to_s.rjust(9, '0')# identificacao do titulo (nosso numero)      9[09]       063 a 071
          detalhe << ''.rjust(30, ' ')                                # Brancos                                     X[30]       072 a 101
          detalhe << '0'                                              # Código Iof Operações De Seguro              9[01]       102 a 102
          detalhe << '00'                                             # Identificação Do Tipo De Moeda              9[02]       103 a 104
          detalhe << ''.rjust(1, ' ')                                 # Brancos                                     X[01]       105 a 105
          detalhe << pagamento.dias_protesto.to_s.ljust(2, '0')       # Terceira Instrução De Cobrança              9[02]       106 a 107
          detalhe << carteira                                         # carteira                                    9[01]       108 a 108
          detalhe << pagamento.identificacao_ocorrencia               # identificacao ocorrencia                    9[02]       109 a 110
          detalhe << pagamento.documento_ou_numero.to_s.ljust(10, ' ').format_size(10)# num. controle                         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 << cod_banco_cobranca                               # Código Do Banco Encarregado Da Cobrança     9[03]       140 a 142
          detalhe << agencia_cobranca.to_s.ljust(5, '0')              # Agência Encarregada Da Cobrança             9[05]       143 a 147
          detalhe << pagamento.especie_titulo                         # especie do titulo                           9[02]       148 a 149
          detalhe << 'N'                                              # aceite (A=A/N=N)                            X[01]       150 a 150
          detalhe << pagamento.data_emissao.strftime('%d%m%y')        # data de emissao                             9[06]       151 a 156
          detalhe << pagamento.cod_primeira_instrucao                 # 1a instrucao                                9[02]       157 a 158
          detalhe << pagamento.cod_segunda_instrucao                  # 2a instrucao                                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 << pagamento.bairro_sacado.format_size(10)          # bairro do pagador                           X[10]       315 a 324
          detalhe << ''.rjust(2, ' ')                                 # brancos                                     X[02]       325 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
          detalhe << pagamento.cidade_sacado.format_size(15)          # cidade do pagador                           X[15]       335 a 349
          detalhe << pagamento.uf_sacado                              # UF do pagador                               X[02]       350 a 351
          detalhe << ''.rjust(30, ' ')                                # sacador/2a mensagem - verificar             X[30]       352 a 381
          detalhe << ''.rjust(7, ' ')                                 # brancos                                     X[07]       382 a 388
          detalhe << '422'                                            # Banco Emitente do Boleto                    9[03]       389 a 391
          detalhe << sequencial_remessa.to_s.rjust(3, '0')            # Numero Seqüencial Geração Arquivo Remessa   9[03]       392 a 394
          detalhe << sequencial.to_s.rjust(6, '0')                    # numero do registro do arquivo               9[06]       395 a 400

          detalhe
        end
# codigo da empresa (informado pelo Safra no cadastramento)
codigo da empresa (informado pelo Safra no cadastramento)
codigo da empresa ( informado pelo Safra no cadastramento )
def monta_detalhe(pagamento, sequencial)
          raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
          cod_banco_cobranca = banco_cobranca.presence || '422'
          detalhe = '1'                                               
          detalhe << '02'                                             
          detalhe << documento_cedente                                
          detalhe << info_conta                                       
          detalhe << ''.rjust(6, ' ')                                 
          detalhe << ''.rjust(25, ' ')                                
          detalhe << pagamento.nosso_numero[0...-1].to_s.rjust(9, '0')
          detalhe << ''.rjust(30, ' ')                                
          detalhe << '0'                                              
          detalhe << '00'                                             
          detalhe << ''.rjust(1, ' ')                                 
          detalhe << pagamento.dias_protesto.to_s.ljust(2, '0')       
          detalhe << carteira                                         
          detalhe << pagamento.identificacao_ocorrencia               
          detalhe << pagamento.documento_ou_numero.to_s.ljust(10, ' ').format_size(10)
          detalhe << pagamento.data_vencimento.strftime('%d%m%y')     
          detalhe << pagamento.formata_valor                          
          detalhe << cod_banco_cobranca                               
          detalhe << agencia_cobranca.to_s.ljust(5, '0')              
          detalhe << pagamento.especie_titulo                         
          detalhe << 'N'                                              
          detalhe << pagamento.data_emissao.strftime('%d%m%y')        
          detalhe << pagamento.cod_primeira_instrucao                 
          detalhe << pagamento.cod_segunda_instrucao                  
          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 << pagamento.bairro_sacado.format_size(10)          
          detalhe << ''.rjust(2, ' ')                                 
          detalhe << pagamento.cep_sacado[0..4]                       
          detalhe << pagamento.cep_sacado[5..7]                       
          detalhe << pagamento.cidade_sacado.format_size(15)          
          detalhe << pagamento.uf_sacado                              
          detalhe << ''.rjust(30, ' ')                                
          detalhe << ''.rjust(7, ' ')                                 
          detalhe << '422'                                            
          detalhe << sequencial_remessa.to_s.rjust(3, '0')            
          detalhe << sequencial.to_s.rjust(6, '0')                    
          detalhe
        end
def monta_detalhe ( pagamento , sequencial ) raise Brcobranca :: RemessaInvalida , pagamento if pagamento . invalid? cod_banco_cobranca = banco_cobranca . presence || '422' detalhe = '1' detalhe << '02' detalhe << documento_cedente detalhe << info_conta detalhe << '' . rjust ( 6 , ' ' ) detalhe << '' . rjust ( 25 , ' ' ) detalhe << pagamento . nosso_numero [ 0 ... - 1 ] . to_s . rjust ( 9 , '0' ) detalhe << '' . rjust ( 30 , ' ' ) detalhe << '0' detalhe << '00' detalhe << '' . rjust ( 1 , ' ' ) detalhe << pagamento . dias_protesto . to_s . ljust ( 2 , '0' ) detalhe << carteira detalhe << pagamento . identificacao_ocorrencia detalhe << pagamento . documento_ou_numero . to_s . ljust ( 10 , ' ' ) . format_size ( 10 ) detalhe << pagamento . data_vencimento . strftime ( '%d%m%y' ) detalhe << pagamento . formata_valor detalhe << cod_banco_cobranca detalhe << agencia_cobranca . to_s . ljust ( 5 , '0' ) detalhe << pagamento . especie_titulo detalhe << 'N' detalhe << pagamento . data_emissao . strftime ( '%d%m%y' ) detalhe << pagamento . cod_primeira_instrucao detalhe << pagamento . cod_segunda_instrucao 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 << pagamento . bairro_sacado . format_size ( 10 ) detalhe << '' . rjust ( 2 , ' ' ) detalhe << pagamento . cep_sacado [ 0 .. 4 ] detalhe << pagamento . cep_sacado [ 5 .. 7 ] detalhe << pagamento . cidade_sacado . format_size ( 15 ) detalhe << pagamento . uf_sacado detalhe << '' . rjust ( 30 , ' ' ) detalhe << '' . rjust ( 7 , ' ' ) detalhe << '422' detalhe << sequencial_remessa . to_s . rjust ( 3 , '0' ) detalhe << sequencial . to_s . rjust ( 6 , '0' ) detalhe end
codigo da empresa (informado pelo Safra no cadastramento)
codigo da empresa ( informado pelo Safra no cadastramento )
# identificacao do registro                   9[01]       001 a 001 # Tipo De Inscrição Da Empresa CNPJ 02        9[02]       002 a 003 # CNPJ 02                                     9[14]       004 a 017 # Identificação Da Empresa No Banco           9[14]       018 a 031 # Brancos                                     X[06]       032 a 037 # Uso Exclusivo Da Empresa                    X[25]       038 a 062 # identificacao do titulo (nosso numero)      9[09]       063 a 071 # Brancos                                     X[30]       072 a 101 # Código Iof Operações De Seguro              9[01]       102 a 102 # Identificação Do Tipo De Moeda              9[02]       103 a 104 # Brancos                                     X[01]       105 a 105 # Terceira Instrução De Cobrança              9[02]       106 a 107 # carteira                                    9[01]       108 a 108 # identificacao ocorrencia                    9[02]       109 a 110 # num. controle                         X[10]       111 a 120 # data de vencimento                          9[06]       121 a 126 # valor do titulo                             9[13]       127 a 139 # Código Do Banco Encarregado Da Cobrança     9[03]       140 a 142 # Agência Encarregada Da Cobrança             9[05]       143 a 147 # especie do titulo                           9[02]       148 a 149 # aceite (A=A/N=N)                            X[01]       150 a 150 # data de emissao                             9[06]       151 a 156 # 1a instrucao                                9[02]       157 a 158 # 2a instrucao                                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 # bairro do pagador                           X[10]       315 a 324 # brancos                                     X[02]       325 a 326 # cep do pagador                              9[05]       327 a 331 # sufixo do cep do pagador                    9[03]       332 a 334 # cidade do pagador                           X[15]       335 a 349 # UF do pagador                               X[02]       350 a 351 # sacador/2a mensagem - verificar             X[30]       352 a 381 # brancos                                     X[07]       382 a 388 # Banco Emitente do Boleto                    9[03]       389 a 391 # Numero Seqüencial Geração Arquivo Remessa   9[03]       392 a 394 # numero do registro do arquivo               9[06]       395 a 400
pagamento
sequencial