lib/brcobranca/remessa/cnab240/banco_ribeirao_preto.rb
# Monta o registro segmento P do arquivo
#
# @param pagamento [Brcobranca::Remessa::Pagamento]
#   objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)
# @param nro_lote [Integer]
#   numero do lote que o segmento esta inserido
# @param sequencial [Integer]
#   numero sequencial do registro no lote
#
# @return [String]
#
Monta o registro segmento P do arquivo
Monta o registro segmento P do arquivo
def monta_segmento_p(pagamento, nro_lote, sequencial)
          segmento_p = ''                                                                  
          segmento_p << cod_banco                                                          
          segmento_p << counter_lotes(nro_lote)                                            
          segmento_p << '3'                                                                
          segmento_p << sequencial.to_s.rjust(5, '0')                                      
          segmento_p << 'P'                                                                
          segmento_p << ' '                                                                
          segmento_p << '01'                                                               
          segmento_p << agencia.to_s.rjust(5, '0')                                         
          segmento_p << digito_agencia                                                     
          segmento_p << conta_corrente.ljust(12, ' ')                                      
          segmento_p << digito_conta                                                       
          segmento_p << ' '                                                                
          segmento_p << direcionamento_cobranca                                            
          segmento_p << modalidade_cobranca                                                
          segmento_p << ''.rjust(2, '0')                                                   
          segmento_p << modalidade_cobranca_nossa_carteira                                 
          segmento_p << ''.rjust(11, '0')                                                  
          segmento_p << codigo_carteira                                                    
          segmento_p << '1'                                                                
          segmento_p << '2'                                                                
          segmento_p << emissao_boleto                                                     
          segmento_p << distribuicao_boleto                                                
          segmento_p << pagamento.uso_da_empresa.to_s.ljust(15, ' ')                       
          segmento_p << pagamento.data_vencimento.strftime('%d%m%Y')                       
          segmento_p << pagamento.formata_valor(15)                                        
          segmento_p << ''.rjust(5, '0')                                                   
          segmento_p << ''.rjust(1, '0')                                                   
          segmento_p << especie_titulo                                                     
          segmento_p << aceite                                                             
          segmento_p << pagamento.data_emissao.strftime('%d%m%Y')                          
          segmento_p << pagamento.codigo_multa                                             
          segmento_p << pagamento.formata_data_multa('%d%m%Y')                             
          segmento_p << pagamento.formata_valor_mora(15)                                   
          segmento_p << ''.rjust(1, '0')                                                   
          segmento_p << ''.rjust(8, '0')                                                   
          segmento_p << ''.rjust(15, '0')                                                  
          segmento_p << ''.rjust(15, '0')                                                  
          segmento_p << pagamento.formata_valor_abatimento(15)                             
          segmento_p << pagamento.numero_documento.to_s.ljust(25, ' ')                     
          segmento_p << '3'                                                                
          segmento_p << '00'                                                               
          segmento_p << '2'                                                                
          segmento_p << '000'                                                              
          segmento_p << '09'                                                               
          segmento_p << ''.rjust(10, '0')                                                  
          segmento_p << ''.rjust(1, '0')                                                   
          segmento_p
        end
def monta_segmento_p ( pagamento , nro_lote , sequencial ) segmento_p = '' segmento_p << cod_banco segmento_p << counter_lotes ( nro_lote ) segmento_p << '3' segmento_p << sequencial . to_s . rjust ( 5 , '0' ) segmento_p << 'P' segmento_p << ' ' segmento_p << '01' segmento_p << agencia . to_s . rjust ( 5 , '0' ) segmento_p << digito_agencia segmento_p << conta_corrente . ljust ( 12 , ' ' ) segmento_p << digito_conta segmento_p << ' ' segmento_p << direcionamento_cobranca segmento_p << modalidade_cobranca segmento_p << '' . rjust ( 2 , '0' ) segmento_p << modalidade_cobranca_nossa_carteira segmento_p << '' . rjust ( 11 , '0' ) segmento_p << codigo_carteira segmento_p << '1' segmento_p << '2' segmento_p << emissao_boleto segmento_p << distribuicao_boleto segmento_p << pagamento . uso_da_empresa . to_s . ljust ( 15 , ' ' ) segmento_p << pagamento . data_vencimento . strftime ( '%d%m%Y' ) segmento_p << pagamento . formata_valor ( 15 ) segmento_p << '' . rjust ( 5 , '0' ) segmento_p << '' . rjust ( 1 , '0' ) segmento_p << especie_titulo segmento_p << aceite segmento_p << pagamento . data_emissao . strftime ( '%d%m%Y' ) segmento_p << pagamento . codigo_multa segmento_p << pagamento . formata_data_multa ( '%d%m%Y' ) segmento_p << pagamento . formata_valor_mora ( 15 ) segmento_p << '' . rjust ( 1 , '0' ) segmento_p << '' . rjust ( 8 , '0' ) segmento_p << '' . rjust ( 15 , '0' ) segmento_p << '' . rjust ( 15 , '0' ) segmento_p << pagamento . formata_valor_abatimento ( 15 ) segmento_p << pagamento . numero_documento . to_s . ljust ( 25 , ' ' ) segmento_p << '3' segmento_p << '00' segmento_p << '2' segmento_p << '000' segmento_p << '09' segmento_p << '' . rjust ( 10 , '0' ) segmento_p << '' . rjust ( 1 , '0' ) segmento_p end
Monta o registro segmento P do arquivo
Monta o registro segmento P do arquivo
# campos com * na frente nao foram implementados # Descrição                                  Posição    Tamanho # Código do Banco na Compensação             [1......3] 03 # Lote de Serviço                            [4......7] 04 # Tipo de Registro                           [8......8] 01 # Nº Sequencial do Registro no Lote          [9.....13] 05 # Cód. Segmento do Registro Detalhe          [14....14] 01 # Uso Exclusivo FEBRABAN/CNAB                [15....15] 01 # Código de Movimento Remessa                [16....17] 02 # Agência Mantenedora da Conta               [18....22] 05 # Dígito Verificador da Agência              [23....23] 01 # Número da Conta Corrente                   [24....35] 12 # Dígito Verificador da Conta                [36....36] 01 # Dígito Verificador da Ag/Conta             [37....37] 01 # Direcionamento da Cobrança                 [38....38] 01 # Mod. de Cobrança em Bancos Correspondentes [39....41] 03 # Uso exclusivo AUTBANK                      [42....43] 02 # Mod. de Cobrança com o Banco Cedente       [44....46] 03 # Identificação do Título no Banco           [47....57] 11 # Código da Carteira                         [58....58] 01 # Forma de Cadastr. do Título no Banco       [59....59] 01 # Tipo de Documento                          [60....60] 01 # Identificação da Emissão do Bloqueto       [61....61] 01 # Identificação da Distribuição              [62....62] 01 # Número do Documento de Cobrança            [63....77] 15 # Data de Vencimento do Título               [78....85] 08 # Valor Nominal do Título                    [86...100] 13 | 2 # Agência Encarregada da Cobrança            [101..105] 05 # Dígito Verificador da Agência              [106..106] 01 # Espécie do Título                          [107..108] 02 # Identific. de Título Aceito/Não Aceito     [109..109] 01 # Data da Emissão do Título                  [110..117] 08 # Código do Juros de Mora                    [118..118] 01 # Data do Juros de Mora                      [119..126] 08 # Juros de Mora por Dia/Taxa                 [127..141] 13 | 2 # Código do Desconto 1                       [142..142] 01 # Data do Desconto 1                         [143..150] 08 # Valor/Percentual a ser Concedido           [151..165] 13 # Valor do IOF a ser Recolhido               [166..180] 13 # Valor do Abatimento                        [181..195] 13 | 2 # Identificação do Título na Empresa         [196..220] 25 # Código para Protesto                       [221..221] 01 | '1' = Protestar Dias Corridos | '2' = Protestar Dias Úteis | '3' = Não Protestar # Número de Dias para Protesto               [222..223] 02 # Código para Baixa/Devolução                [224..224] 01 | '1' = Baixar/Devolver | '2' =  Não Baixar/Não Devolver # Número de Dias para Baixa/Devolução        [225..227] 03 # Código da Moeda 09 REAL                    [228..229] 02 # Nº do Contrato da Operação de Créd.        [230..239] 10 # Uso Exclusivo FEBRABAN/CNAB                [240..240] 01
None
String
pagamento
objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)
objeto contendo os detalhes do boleto ( valor vencimento sacado etc )
nro_lote
numero do lote que o segmento esta inserido
numero do lote que o segmento esta inserido
sequencial
numero sequencial do registro no lote
numero sequencial do registro no lote