br_boleto 2.2.7 → 2.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97056635dc15ec4dde8c1e9f0f5c116d203aadac
4
- data.tar.gz: c1a7c5bd2d102fffd9f39fc68cff2567af049f49
3
+ metadata.gz: d0904f10c453bf7eaaacc489bb3a13f71ea0b44d
4
+ data.tar.gz: db572ccda7e9673317d09d2420d2589c582047e0
5
5
  SHA512:
6
- metadata.gz: 8ef21118966545500461bc133c629cabccdd7a0744c8e2dbd45b3ffca5b1dd2d4739d45086973f8274da5e45318ef68fdb018ab55d66ece901ee3f5eca977a83
7
- data.tar.gz: 3a4339be039db281e3a8f5b32f65b28cf27cf35582c3ae7d7b58f6d70544c45bac8b9be3f305e97ab1b93349e35b216ddeb19cf6d0a542ea33fc9dd39e178000
6
+ metadata.gz: 9863c315c266ca55f0e55542dcd669d6331478cc9fd6d861a9f275171dd64a91e116aaa48de584feb58433d03b6380a85d07853e497d8abd8637a3a22e420ae7
7
+ data.tar.gz: 1093c2642ae363b400c3dfa056bbddd1d169b101251a91fcaa4f51f926a4c4d28f9186a46404924f1abe1b7a58d2d55ae6ba27133827c10e2824213460e2ccfc
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- br_boleto (2.2.6)
4
+ br_boleto (2.2.8)
5
5
  activemodel (~> 4.2)
6
6
  activesupport (~> 4.2)
7
7
  rake (>= 0.8.7)
@@ -155,4 +155,4 @@ DEPENDENCIES
155
155
  simplecov
156
156
 
157
157
  BUNDLED WITH
158
- 1.15.1
158
+ 1.16.1
@@ -2,7 +2,7 @@
2
2
  module BrBoleto
3
3
  module Conta
4
4
  class Sicredi < BrBoleto::Conta::Base
5
-
5
+
6
6
  # MODALIDADE CARTEIRA:
7
7
  # _______________________________________________
8
8
  # | Carteira | Descrição |
@@ -37,7 +37,7 @@ module BrBoleto
37
37
 
38
38
  def default_values
39
39
  super.merge({
40
- carteira: '1',
40
+ carteira: '1',
41
41
  valid_carteira_required: true, # <- Validação dinâmica que a modalidade é obrigatória
42
42
  valid_carteira_length: 1, # <- Validação dinâmica que a modalidade deve ter 1 digito
43
43
  valid_carteira_inclusion: %w[1 3], # <- Validação dinâmica de valores aceitos para a modalidade
@@ -47,7 +47,7 @@ module BrBoleto
47
47
  valid_convenio_maximum: 5, # <- Validação que a convenio deve ter no máximo 5 digitos
48
48
  codigo_carteira: '1', # Cobrança Simples
49
49
  valid_codigo_carteira_length: 1, # <- Validação dinâmica que a modalidade deve ter 1 digito
50
- posto: '0',
50
+ posto: '0',
51
51
  valid_posto_maximum: 2, # <- Validação que a posto deve ter no máximo 2 digitos
52
52
  valid_posto_required: true, # <- Validação que a posto deve ter obrigatório
53
53
  byte_id: '2',
@@ -91,7 +91,7 @@ module BrBoleto
91
91
  end
92
92
 
93
93
  # Campo Agência / Código do Cedente
94
- # @return [String] Agência com 4 caracteres . Posto do beneficiário com 2 caracteres . Código do beneficiário com 5 caracteres
94
+ # @return [String] Agência com 4 caracteres . Posto do beneficiário com 2 caracteres . Código do beneficiário com 5 caracteres
95
95
  # Exemplo: AAAA.PP.CCCCC
96
96
  def agencia_codigo_cedente
97
97
  "#{agencia}.#{posto}.#{codigo_cedente}"
@@ -100,20 +100,64 @@ module BrBoleto
100
100
 
101
101
  ##################################### DEFAULT CODES ###############################################
102
102
 
103
- # Espécie do Título CNAB 240
103
+ # Espécie do Título CNAB 240
104
+ # '03' = DMI duplicata mercantil por indicação
105
+ # '05' = DSI duplicata de serviço por indicação
106
+ # '06' = DR duplicata rural
107
+ # '07' = LC letra de câmbio
108
+ # '12' = NP nota promissória
109
+ # '13' = NPR nota promissória rural
110
+ # '16' = NS nota de seguro
111
+ # '17' = RC recibo
112
+ # '19' = ND nota de débito
113
+ # '32' = Boleto Proposta
114
+ # '99' = Outros
104
115
  def equivalent_especie_titulo_240
105
116
  super.merge(
106
- # Padrão Código para
117
+ # Padrão Código para
107
118
  {# da GEM o Banco
108
- '01' => '03', # Duplicata Mercantil por Indicação (DMI)
109
- '02' => '03' # Duplicata Mercantil por Indicação (DMI)
110
- })
119
+ '01' => '99', # CH – Cheque
120
+ '02' => '03', # DM – Duplicata Mercantil
121
+ '03' => '03', # DMI – Duplicata Mercantil p/ Indicação
122
+ '04' => '05', # DS – Duplicata de Serviço
123
+ '05' => '05', # DSI – Duplicata de Serviço p/ Indicação
124
+ '06' => '06', # DR – Duplicata Rural
125
+ '07' => '07', # LC – Letra de Câmbio
126
+ '08' => '99', # NCC – Nota de Crédito Comercial
127
+ '09' => '99', # NCE – Nota de Crédito a Exportação
128
+ '10' => '99', # NCI – Nota de Crédito Industrial
129
+ '11' => '99', # NCR – Nota de Crédito Rural
130
+ '12' => '12', # NP – Nota Promissória
131
+ '13' => '13', # NPR – Nota Promissória Rural
132
+ '14' => '99', # TM – Triplicata Mercantil
133
+ '15' => '99', # TS – Triplicata de Serviço
134
+ '16' => '16', # NS – Nota de Seguro
135
+ '17' => '17', # RC – Recibo
136
+ '18' => '99', # FAT – Fatura
137
+ '19' => '19', # ND – Nota de Débito
138
+ '20' => '99', # AP – Apólice de Seguro
139
+ '21' => '99', # ME – Mensalidade Escolar
140
+ '22' => '99', # PC – Parcela de Consórcio
141
+ '23' => '99', # NF – Nota Fiscal
142
+ '24' => '99', # DD – Documento de Dívida
143
+ '25' => '99', # Cédula de Produto Rural
144
+ '26' => '99', # Warrant
145
+ '27' => '99', # Dívida Ativa de Estado
146
+ '28' => '99', # Dívida Ativa de Município
147
+ '29' => '99', # Dívida Ativa da União
148
+ '30' => '99', # Encargos condominiais
149
+ '31' => '99', # CC – Cartão de Crédito
150
+ '32' => '32', # BDP – Boleto de Proposta
151
+ '99' => '99', # Outros
152
+ }
153
+ )
111
154
  end
112
155
 
156
+
113
157
  # Espécie do Título CNAB 400
114
158
  def equivalent_especie_titulo_400
115
159
  super.merge(
116
- # Padrão Código para
160
+ # Padrão Código para
117
161
  {# da GEM o Banco
118
162
  '01' => 'A',
119
163
  '02' => 'A',
@@ -131,25 +175,25 @@ module BrBoleto
131
175
  })
132
176
  end
133
177
 
134
- # Código da Carteira
178
+ # Código da Carteira
135
179
  def equivalent_tipo_cobranca_400
136
180
  super.merge({ '1' => 'A' }) # Cobrança Simples
137
- end
181
+ end
138
182
 
139
- # Identificação do Tipo de Impressão :
183
+ # Identificação do Tipo de Impressão :
140
184
  def equivalent_tipo_impressao_400
141
185
  super.merge({ '1' => 'A' }) # Frente do Bloqueto
142
- end
186
+ end
143
187
 
144
- # Código da Moeda :
188
+ # Código da Moeda :
145
189
  def equivalent_codigo_moeda_400
146
190
  super.merge({ '09' => 'A' }) # Real
147
- end
191
+ end
148
192
 
149
193
  # Identificação da Emissão do Boleto de Pagamento
150
194
  def equivalent_identificacao_emissao_400
151
195
  super.merge(
152
- # Padrão Código para
196
+ # Padrão Código para
153
197
  {# da GEM o Banco
154
198
  '1' => 'A', # Impressão é feita pelo Sicredi
155
199
  '2' => 'B', # Impressão é feita pelo Beneficiário
@@ -170,10 +214,10 @@ module BrBoleto
170
214
  }
171
215
  end
172
216
 
173
- # Código de Movimento Retorno
217
+ # Código de Movimento Retorno
174
218
  def equivalent_codigo_movimento_retorno_240
175
219
  super.merge(
176
- # Padrão Código para
220
+ # Padrão Código para
177
221
  {# do Banco a GEM
178
222
  '36' => '100', # Baixa rejeitada
179
223
  })
@@ -184,7 +228,7 @@ module BrBoleto
184
228
  %w[27]
185
229
  end
186
230
  def equivalent_codigo_motivo_ocorrencia_D_240 codigo_movimento_gem
187
- # Código Padrão para
231
+ # Código Padrão para
188
232
  {# do Banco a Gem
189
233
  '01' => 'D01', # Alteração de carteira
190
234
  }
@@ -192,7 +236,7 @@ module BrBoleto
192
236
 
193
237
  def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
194
238
  super.merge(
195
- # Padrão Código para
239
+ # Padrão Código para
196
240
  {# do Banco a GEM
197
241
  '01' => 'A01', # Código do banco inválido
198
242
  '02' => 'A02', # Código do registro detalhe inválido
@@ -244,7 +288,7 @@ module BrBoleto
244
288
 
245
289
  def equivalent_codigo_motivo_ocorrencia_B_400 codigo_movimento_gem
246
290
  super.merge(
247
- # Padrão Código para
291
+ # Padrão Código para
248
292
  {# do Banco a GEM
249
293
  '03' => 'B03', # Tarifa de sustação
250
294
  '04' => 'B04', # Tarifa de protesto
@@ -259,7 +303,7 @@ module BrBoleto
259
303
  # Identificações de Ocorrência / Código de ocorrência:
260
304
  def equivalent_codigo_movimento_retorno_400
261
305
  super.merge(
262
- # Padrão Código para
306
+ # Padrão Código para
263
307
  {# do Banco a GEM
264
308
  '15' => '101', # Liquidação em cartório
265
309
  '24' => '106', # Entrada rejeitada por CEP irregular
@@ -270,7 +314,7 @@ module BrBoleto
270
314
  '35' => '105', # Aceite do pagador
271
315
  })
272
316
  end
273
-
317
+
274
318
  end
275
319
  end
276
320
  end
@@ -89,6 +89,14 @@ module BrBoleto
89
89
  complemento
90
90
  end
91
91
 
92
+ # Forma de Cadastr. do Título no Banco
93
+ # Preencher com "1" - Cobrança Registrada (C007)
94
+ # 1 posição
95
+ #
96
+ def segmento_p_posicao_059_a_059(pagamento)
97
+ pagamento.forma_cadastramento
98
+ end
99
+
92
100
  # Segmento P para numero do documento
93
101
  # DESCRIÇÃO TAMANHO POSIÇÃO
94
102
  # ---------------------------------------------------------
@@ -129,6 +137,22 @@ module BrBoleto
129
137
  '1'
130
138
  end
131
139
 
140
+ # Número de Dias para Baixa/Devolução
141
+ # Como ainda não tem essa configuração no pagamento
142
+ # Será setado 60 dias por padrão.
143
+ # Número de dias corridos após a data de vencimento de um Título não pago,
144
+ # que deverá ser baixado e devolvido para o Beneficiário. Pode ser:
145
+ # - De 01 a 999 dias corridos.
146
+ # Caso informado ‘00’, será considerado para baixa/devolução em D+1 após a Data de Vencimento do Título.
147
+ # Caso informado brancos, será considerado para baixa/devolução em D+5 após a Data de Vencimento do
148
+ # Título.
149
+ #
150
+ # 3 posoções
151
+ #
152
+ def segmento_p_posicao_225_a_227
153
+ '060'
154
+ end
155
+
132
156
  # Segmento Q Cód. Bco. Corresp. na Compensação
133
157
  # Deve ser 3 espaços em branco
134
158
  # 3 posições
@@ -6,7 +6,7 @@ module BrBoleto
6
6
  def conta_class
7
7
  BrBoleto::Conta::Sicoob
8
8
  end
9
-
9
+
10
10
  # Tipo Formulário - 01 posição (15 a 15):
11
11
  # "1" -auto-copiativo
12
12
  # "3" -auto-envelopável
@@ -23,7 +23,7 @@ module BrBoleto
23
23
  ##############################################################
24
24
 
25
25
  validates :tipo_formulario, presence: true
26
-
26
+
27
27
  def default_values
28
28
  super.merge({
29
29
  tipo_formulario: '4'
@@ -91,6 +91,14 @@ module BrBoleto
91
91
  result
92
92
  end
93
93
 
94
+ # Forma de Cadastr. do Título no Banco
95
+ # Preencher com "0"
96
+ # 1 posição
97
+ #
98
+ def segmento_p_posicao_059_a_059(pagamento)
99
+ '0'
100
+ end
101
+
94
102
  # Tipo de Documento
95
103
  # 1 posição
96
104
  # Branco
@@ -134,7 +142,7 @@ module BrBoleto
134
142
  result << "#{pagamento.parcela}".adjust_size_to(2, '0', :right)
135
143
  result << "#{conta.modalidade}".adjust_size_to(2, '0', :right)
136
144
  result << "#{tipo_formulario}".adjust_size_to(1, '1')
137
- result.adjust_size_to(20)
145
+ result.adjust_size_to(20)
138
146
  end
139
147
 
140
148
  def complemento_trailer_lote(lote, nr_lote)
@@ -37,20 +37,20 @@ module BrBoleto
37
37
 
38
38
  ############################## DETALHE #########################################################
39
39
 
40
- # Informações Opcionais no Bradesco.
41
- # Somente deverão ser preenchidos, caso o cliente Beneficiário esteja previamente
40
+ # Informações Opcionais no Bradesco.
41
+ # Somente deverão ser preenchidos, caso o cliente Beneficiário esteja previamente
42
42
  # cadastrado para operar com a modalidade de cobrança com débito automático
43
43
  def detalhe_posicao_002_003(pagamento)
44
44
  ''.adjust_size_to(2)
45
45
  end
46
- def detalhe_posicao_004_017
46
+ def detalhe_posicao_004_017(pagamento, sequencial)
47
47
  ''.adjust_size_to(14)
48
48
  end
49
49
 
50
50
  # Informações da conta <- Específico para cada banco
51
51
  # Posição: 018 até 037
52
52
  # Tipo: Numérico
53
- # Tamanho: 020
53
+ # Tamanho: 020
54
54
  def informacoes_da_conta(local)
55
55
 
56
56
  # POSIÇÂO TAM. Descrição
@@ -60,7 +60,7 @@ module BrBoleto
60
60
  # 025 a 029 005 Códigos da Agência Beneficiários (sem o dígito)
61
61
  # 030 a 036 007 Contas Corrente
62
62
  # 037 a 037 001 Dígito da Conta
63
- if local == :detalhe
63
+ if local == :detalhe
64
64
  info = ''.adjust_size_to(3)
65
65
  info << '0'
66
66
  info << "#{conta.carteira}".adjust_size_to(3, '0', :right)
@@ -118,8 +118,8 @@ module BrBoleto
118
118
  info << ''.adjust_size_to(2)
119
119
  info
120
120
  end
121
-
122
-
121
+
122
+
123
123
  # Informações referente ao pagamento
124
124
  # Posição 121 até 160
125
125
  # POSIÇÂO TAM. Descrição
@@ -127,11 +127,11 @@ module BrBoleto
127
127
  # 127 a 139 013 Valor do Título
128
128
  # 140 a 142 003 Banco Encarregado da Cobrança (Preencher com zeros)
129
129
  # 143 a 147 005 Agência Depositária (Preencher com zeros)
130
- # 148 a 149 002 Espécie de Título
130
+ # 148 a 149 002 Espécie de Título
131
131
  # 150 a 150 001 Identificação (Sempre 'N')
132
132
  # 151 a 156 006 Data da emissão do Título
133
133
  # 157 a 158 002 1a instrução
134
- # 159 a 160 002 2a instrução
134
+ # 159 a 160 002 2a instrução
135
135
  # Tamanho: 40
136
136
  def informacoes_do_pagamento(pagamento, sequencial)
137
137
  dados = ''
@@ -170,7 +170,7 @@ module BrBoleto
170
170
  dados << ''.adjust_size_to(2,'0', :right) # 1a Instrução
171
171
  dados << ''.adjust_size_to(2,'0', :right) # 2a Instrução
172
172
  dados
173
-
173
+
174
174
  end
175
175
 
176
176
  # Informações referente aos juros e multas do pagamento
@@ -219,7 +219,7 @@ module BrBoleto
219
219
  info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP
220
220
  info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(14) # Sacador/Avalista (CPF/CNPJ)
221
221
  info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(46) # Sacador/Avalista (Nome)
222
- info
222
+ info
223
223
  end
224
224
  ################################################################################################
225
225
 
@@ -21,8 +21,8 @@ module BrBoleto
21
21
 
22
22
  detalhe << detalhe_posicao_001_001 # Identificação do Registro Detalhe
23
23
  detalhe << detalhe_posicao_002_003(pagamento) # Tipo de inscrição do beneficiario
24
- detalhe << detalhe_posicao_004_017 # CNPJ do beneficiario
25
- detalhe << detalhe_posicao_018_037 # Informações da conta
24
+ detalhe << detalhe_posicao_004_017(pagamento, sequencial) # CNPJ do beneficiario
25
+ detalhe << detalhe_posicao_018_037(pagamento, sequencial) # Informações da conta (porém depende de cada banco)
26
26
  detalhe << detalhe_posicao_038_062(pagamento) # Numero de controle do participante
27
27
  detalhe << detalhe_posicao_063_076(pagamento, sequencial) # Nosso número com DV
28
28
  detalhe << detalhe_posicao_077_108(pagamento, sequencial) # Diferente para cada banco
@@ -55,14 +55,14 @@ module BrBoleto
55
55
  # CNPJ/CPF do beneficiário
56
56
  # Tipo: Numero
57
57
  # Tamanho: 014
58
- def detalhe_posicao_004_017
58
+ def detalhe_posicao_004_017(pagamento, sequencial)
59
59
  "#{conta.cpf_cnpj}".adjust_size_to(14, '0', :right)
60
60
  end
61
61
 
62
62
  # Informações da conta
63
63
  # Tipo: Numero
64
64
  # Tamanho: 20
65
- def detalhe_posicao_018_037
65
+ def detalhe_posicao_018_037(pagamento, sequencial)
66
66
  informacoes_da_conta(:detalhe)
67
67
  end
68
68
 
@@ -20,7 +20,7 @@ module BrBoleto
20
20
  def informacoes_da_conta(local)
21
21
 
22
22
  # Detalhe Posição: 017 até 037
23
- if local == :detalhe
23
+ if local == :detalhe
24
24
  # POSIÇÂO TAM. Descrição
25
25
  # 017 a 017 001 Tipo de moeda ( “A” – Real )
26
26
  # 018 a 018 001 Tipo de desconto ( “B” – Percentual )
@@ -83,37 +83,48 @@ module BrBoleto
83
83
 
84
84
  ############################ DETALHE ########################################
85
85
 
86
- # Detalhe Posição 002 a 004
86
+ # Detalhe Posição 002 a 003
87
87
  # POSIÇÂO TAM. Descrição
88
88
  #-----------------------------------------------
89
89
  # 002 a 002 001 Tipo de cobrança (“A” - Sicredi Com Registro)
90
90
  # 003 a 003 001 Tipo de carteira (“A” – Simples)
91
- # 004 a 004 001 Tipo de Impressão ("A” – Normal)
92
91
  #
93
- # Tamanho: 003
94
- def detalhe_posicao_002_004(pagamento)
92
+ # Tamanho: 002
93
+ def detalhe_posicao_002_003(pagamento)
95
94
  detalhe = ''
96
95
  detalhe << "#{conta.get_tipo_cobranca(conta.carteira, 400)}".adjust_size_to(1, 'A')
97
96
  detalhe << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(1, 'A')
98
- detalhe << "#{conta.get_tipo_impressao(pagamento.tipo_impressao, 400)}".adjust_size_to(1, 'A')
99
97
  detalhe
100
98
  end
101
- def detalhe_posicao_002_003(pagamento)
102
- detalhe_posicao_002_004(pagamento)
103
- end
104
99
 
105
100
 
106
101
  # Detalhe Posição 005 a 016
107
102
  # POSIÇÂO TAM. Descrição
108
103
  #-----------------------------------------------
104
+ # 004 a 004 001 Tipo de Impressão ("A” – Normal)
109
105
  # 005 a 016 012 Deixar em Branco
106
+ # 017 a 017 001 "A" - Real
110
107
  #
111
- # Tamanho: 012
112
- def detalhe_posicao_005_016
113
- detalhe = ''.adjust_size_to(12)
108
+ # Tamanho: 014
109
+ def detalhe_posicao_004_017(pagamento, sequencial)
110
+ detalhe = "#{conta.get_tipo_impressao(pagamento.tipo_impressao, 400)}".adjust_size_to(1, 'A')
111
+ detalhe << ''.adjust_size_to(12)
112
+ detalhe << 'A'
113
+ detalhe
114
114
  end
115
- def detalhe_posicao_004_017
116
- detalhe_posicao_005_016
115
+
116
+ # POSIÇÂO TAM. Descrição
117
+ #-----------------------------------------------
118
+ # 018 a 018 001 Tipo de desconto ("A" = Valor / "B" = Percentual)
119
+ # 019 a 019 001 Tipo de juros ("A" = Valor / "B" = Percentual)
120
+ # 020 a 037 018 Brancos
121
+ # Tipo: Numero
122
+ # Tamanho: 20
123
+ def detalhe_posicao_018_037(pagamento, sequencial)
124
+ detalhe = pagamento.cod_desconto.to_i == 1 ? 'A' : 'B'
125
+ detalhe << (pagamento.codigo_juros.to_i == 1 ? 'A' : 'B')
126
+ detalhe << "".adjust_size_to(18)
127
+ detalhe
117
128
  end
118
129
 
119
130
  # Detalhe Posição 038 a 062
@@ -143,7 +154,7 @@ module BrBoleto
143
154
  # 077 a 078 002 Número Total de parcelas do carnê
144
155
  # 079 a 082 004 Brancos
145
156
  # 083 a 092 010 Valor Desconto por dia de antecipação (Preencher com Zeros)
146
- # 093 a 096 004 % multa por pagamento em atraso (Preencher com Zeros)
157
+ # 093 a 096 004 Alinhado à direita com zeros à esquerda, sem separador decimal ou preencher com zeros.
147
158
  # 097 a 108 012 Brancos
148
159
  #
149
160
  # Tamanho: 46
@@ -164,7 +175,7 @@ module BrBoleto
164
175
  dados << ''.adjust_size_to(2)
165
176
  dados << ''.adjust_size_to(4)
166
177
  dados << ''.adjust_size_to(10, '0')
167
- dados << ''.adjust_size_to(4, '0')
178
+ dados << pagamento.percentual_multa_formatado( 4 )
168
179
  dados << ''.adjust_size_to(12)
169
180
  dados
170
181
  end
@@ -175,11 +186,11 @@ module BrBoleto
175
186
  # 121 a 126 006 Data do Vencimento do Título
176
187
  # 127 a 139 013 Valor do Título
177
188
  # 140 a 148 009 Brancos
178
- # 149 a 149 001 Espécie de Título
189
+ # 149 a 149 001 Espécie de Título
179
190
  # 150 a 150 001 Identificação (Sempre 'N')
180
191
  # 151 a 156 006 Data da emissão do Título
181
192
  # 157 a 158 002 1a instrução
182
- # 159 a 160 002 2a instrução
193
+ # 159 a 160 002 2a instrução
183
194
  #
184
195
  # Tamanho: 40
185
196
  def informacoes_do_pagamento(pagamento, sequencial)
@@ -206,7 +217,11 @@ module BrBoleto
206
217
  # Tamanho: 58
207
218
  def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
208
219
  detalhe = ''
209
- detalhe << pagamento.valor_juros_monetario_formatado(13)
220
+ if pagamento.codigo_juros.to_i == 1
221
+ detalhe << pagamento.valor_juros_monetario_formatado(13)
222
+ else
223
+ detalhe << BrBoleto::Helper::Number.new( pagamento.percentual_juros ).formata_valor_monetario(13)
224
+ end
210
225
  detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right )
211
226
  detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right )
212
227
  detalhe << ''.adjust_size_to(13,'0')
@@ -247,7 +262,7 @@ module BrBoleto
247
262
  info << ''.adjust_size_to(5, '0') # Código do Pagador
248
263
  info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(14, '0', :right) # Sacador/Avalista (CPF/CNPJ)
249
264
  info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(41) # Sacador/Avalista (Nome)
250
- info
265
+ info
251
266
  end
252
267
 
253
268
  ############################ TRAILER #######################################