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 +4 -4
- data/Gemfile.lock +2 -2
- data/lib/br_boleto/conta/sicredi.rb +68 -24
- data/lib/br_boleto/remessa/cnab240/caixa.rb +24 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +11 -3
- data/lib/br_boleto/remessa/cnab400/bradesco.rb +11 -11
- data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +4 -4
- data/lib/br_boleto/remessa/cnab400/sicredi.rb +35 -20
- data/lib/br_boleto/remessa/pagamento.rb +34 -29
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +3 -2
- data/lib/br_boleto/version.rb +1 -1
- data/test/br_boleto/conta/sicredi_test.rb +7 -7
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +26 -21
- data/test/br_boleto/remessa/cnab400/base_test.rb +9 -9
- data/test/br_boleto/remessa/cnab400/bradesco_test.rb +11 -11
- data/test/br_boleto/remessa/cnab400/sicredi_test.rb +31 -18
- data/test/br_boleto/remessa/pagamento_test.rb +9 -9
- data/test/fixtures/remessa/cnab240/caixa.rem +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0904f10c453bf7eaaacc489bb3a13f71ea0b44d
|
4
|
+
data.tar.gz: db572ccda7e9673317d09d2420d2589c582047e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9863c315c266ca55f0e55542dcd669d6331478cc9fd6d861a9f275171dd64a91e116aaa48de584feb58433d03b6380a85d07853e497d8abd8637a3a22e420ae7
|
7
|
+
data.tar.gz: 1093c2642ae363b400c3dfa056bbddd1d169b101251a91fcaa4f51f926a4c4d28f9186a46404924f1abe1b7a58d2d55ae6ba27133827c10e2824213460e2ccfc
|
data/Gemfile.lock
CHANGED
@@ -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'
|
109
|
-
'02'
|
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
|
25
|
-
detalhe << detalhe_posicao_018_037
|
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
|
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:
|
94
|
-
def
|
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:
|
112
|
-
def
|
113
|
-
detalhe =
|
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
|
-
|
116
|
-
|
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
|
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 <<
|
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
|
-
|
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 #######################################
|