Class: Brcobranca::Remessa::Cnab400::Banrisul

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/remessa/cnab400/banrisul.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#aceite, #agencia, #carteira, #conta_corrente, #digito_conta, #documento_cedente, #empresa_mae, #pagamentos, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from Base

#data_geracao, #gera_arquivo

Methods inherited from Base

#initialize, #quantidade_titulos_cobranca, #totaliza_valor_titulos, #valor_titulos_carteira

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

This class inherits a constructor from Brcobranca::Remessa::Base

Instance Attribute Details

#convenioObject

Returns the value of attribute convenio


6
7
8
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 6

def convenio
  @convenio
end

Instance Method Details

#agencia=(valor) ⇒ Object


14
15
16
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 14

def agencia=(valor)
  @agencia = valor.to_s.rjust(4, '0') if valor
end

#cod_bancoObject


30
31
32
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 30

def cod_banco
  '041'
end

#codigo_cedenteObject


42
43
44
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 42

def codigo_cedente
  convenio
end

#complementoObject


38
39
40
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 38

def complemento
  ''.rjust(294, ' ')
end

#digito_nosso_numero(nosso_numero) ⇒ Object


46
47
48
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 46

def digito_nosso_numero(nosso_numero)
  nosso_numero.duplo_digito
end

#info_contaObject


26
27
28
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 26

def info_conta
  codigo_cedente.ljust(20, ' ')
end

#monta_detalhe(pagamento, sequencial) ⇒ Object


70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 70

def monta_detalhe(pagamento, sequencial)
  raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?

  detalhe = '1'                                               # identificação do registro                   9[01]       001 a 001
  detalhe << ''.rjust(16, ' ')                                # brancos                                     9[16]       002 a 017
  detalhe << codigo_cedente.rjust(13, ' ')                    # código do cedente                           X[13]       018 a 030
  detalhe << ''.rjust(7, ' ')                                 # brancos                                     X[07]       031 a 037
  detalhe << pagamento.documento_ou_numero.to_s.ljust(25, ' ')# num. controle                               X[25]       038 a 062
  detalhe << pagamento.nosso_numero.to_s.rjust(8, '0')        # identificação do título (nosso número)      9[08]       063 a 070
  detalhe << digito_nosso_numero(pagamento.nosso_numero)      # dígitos de conferência do nosso número (dv) 9[02]       071 a 072
  detalhe << ''.rjust(32, ' ')                                # mensagem no bloqueto                        X[32]       073 a 104
  detalhe << ''.rjust(3, ' ')                                 # brancos                                     X[03]       105 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, ' ')# 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 << cod_banco                                        # banco encarregado                           9[03]       140 a 142
  detalhe << ''.rjust(5, ' ')                                 # agencia depositaria (brancos)               9[05]       143 a 147
  detalhe << '08'                                             # 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 << codigo_primeira_instrucao(pagamento)             # 1a instrucao                                9[02]       157 a 158
  detalhe << pagamento.cod_segunda_instrucao                  # 2a instrucao                                9[02]       159 a 160
  detalhe << tipo_mora(pagamento)                             # tipo de mora (diária ou mensal)             9[13]       161 a 161
  detalhe << formata_valor_mora(12, pagamento)                # mora                                        9[13]       162 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(35)            # nome do pagador                             9[35]       235 a 269
  detalhe << ''.rjust(5, ' ')                                 # brancos                                     9[05]       270 a 274
  detalhe << pagamento.endereco_sacado.format_size(40)        # endereco do pagador                         X[40]       275 a 314
  detalhe << ''.rjust(7, ' ')                                 # brancos                                     X[07]       315 a 321
  detalhe << formata_percentual_multa(pagamento)              # percentual multa                            X[02]       322 a 324
  detalhe << '00'                                             # num.dias para a multa após o vencimento     9[02]       325 a 326
  detalhe << pagamento.cep_sacado                             # cep do pagador                              9[08]       327 a 334
  detalhe << pagamento.cidade_sacado.format_size(15)          # cidade do pagador                           9[15]       335 a 349
  detalhe << pagamento.uf_sacado                              # uf do pagador                               9[02]       350 a 351
  detalhe << '0000'                                           # taxa ao dia para pag. antecipado            9[04]       352 a 355
  detalhe << ' '                                              # branco                                      9[01]       356 a 356
  detalhe << ''.rjust(13, '0')                                # valor para cálc. do desconto                9[13]       357 a 369
  detalhe << pagamento.dias_protesto.to_s.rjust(2, '0')       # dias para protesto                          9[02]       370 a 371
  detalhe << ''.rjust(23, ' ')                                # brancos                                     X[23]       370 a 394
  detalhe << sequencial.to_s.rjust(6, '0')                    # numero do registro do arquivo               9[06]       395 a 400
  detalhe
end

#monta_headerString

Header do arquivo remessa

Returns:

  • (String)

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 54

def monta_header
  # CAMPO                 TAMANHO    VALOR
  # tipo do registro      [1]        0
  # operacao              [1]        1
  # literal remessa       [7]        REMESSA
  # brancos               [16]
  # info. conta           [20]
  # empresa mae           [30]
  # cod. banco            [3]
  # nome banco            [15]
  # data geracao          [6]        formato DDMMAA
  # complemento registro  [294]
  # num. sequencial       [6]        000001
  "01REMESSA                 #{info_conta}#{empresa_mae.format_size(30)}#{cod_banco}#{nome_banco}#{data_geracao}#{complemento}000001"
end

#monta_trailer(sequencial) ⇒ Object


120
121
122
123
124
125
126
127
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 120

def monta_trailer(sequencial)
  trailer = "9"
  trailer << ''.rjust(26, ' ')                                # brancos                                     X[26]       002 a 027
  trailer << valor_titulos_carteira(13)                       # total geral/valores dos títulos             9[13]       028 a 040
  trailer << ''.rjust(354, ' ')                               # brancos                                     X[354]      041 a 394
  trailer << sequencial.to_s.rjust(6, '0')                    # sequencial                                  9[06]       395 a 400
  trailer
end

#nome_bancoObject


34
35
36
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 34

def nome_banco
  'BANRISUL'.ljust(15, ' ')
end

#sequencial_remessa=(valor) ⇒ Object


22
23
24
# File 'lib/brcobranca/remessa/cnab400/banrisul.rb', line 22

def sequencial_remessa=(valor)
  @sequencial_remessa = valor.to_s.rjust(7, '0') if valor
end