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 +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 #######################################
|