br_boleto 2.2.7 → 2.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 #######################################