br_boleto 2.2.0 → 2.2.1
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 +1 -1
- data/README.markdown +23 -17
- data/lib/br_boleto.rb +2 -0
- data/lib/br_boleto/boleto/banco_brasil.rb +24 -15
- data/lib/br_boleto/boleto/santander.rb +8 -2
- data/lib/br_boleto/conta/banco_brasil.rb +254 -56
- data/lib/br_boleto/conta/bradesco.rb +229 -27
- data/lib/br_boleto/conta/caixa.rb +208 -4
- data/lib/br_boleto/conta/cecred.rb +29 -0
- data/lib/br_boleto/conta/itau.rb +482 -87
- data/lib/br_boleto/conta/santander.rb +224 -97
- data/lib/br_boleto/conta/sicoob.rb +39 -24
- data/lib/br_boleto/conta/sicredi.rb +169 -64
- data/lib/br_boleto/conta/unicred.rb +16 -13
- data/lib/br_boleto/helper/default_codes.rb +2123 -54
- data/lib/br_boleto/remessa/cnab240/banco_brasil.rb +12 -6
- data/lib/br_boleto/remessa/cnab240/bradesco.rb +1 -1
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +1 -1
- data/lib/br_boleto/remessa/cnab240/itau.rb +20 -3
- data/lib/br_boleto/remessa/cnab240/santander.rb +25 -24
- data/lib/br_boleto/remessa/cnab400/caixa.rb +197 -0
- data/lib/br_boleto/remessa/cnab400/santander.rb +32 -27
- data/lib/br_boleto/retorno/base.rb +24 -0
- data/lib/br_boleto/retorno/cnab240/base.rb +6 -2
- data/lib/br_boleto/retorno/cnab240/santander.rb +5 -1
- data/lib/br_boleto/retorno/cnab400/banco_brasil.rb +3 -1
- data/lib/br_boleto/retorno/cnab400/base.rb +2 -1
- data/lib/br_boleto/retorno/cnab400/bradesco.rb +6 -0
- data/lib/br_boleto/retorno/cnab400/caixa.rb +49 -0
- data/lib/br_boleto/retorno/cnab400/itau.rb +5 -1
- data/lib/br_boleto/retorno/cnab400/santander.rb +5 -1
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +1 -0
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +6 -0
- data/lib/br_boleto/retorno/pagamento.rb +50 -4
- data/lib/br_boleto/version.rb +1 -1
- data/test/br_boleto/boleto/santander_test.rb +1 -1
- data/test/br_boleto/boleto/sicredi_test.rb +1 -0
- data/test/br_boleto/conta/banco_brasil_test.rb +157 -0
- data/test/br_boleto/conta/base_test.rb +8 -8
- data/test/br_boleto/conta/bradesco_test.rb +165 -0
- data/test/br_boleto/conta/caixa_test.rb +159 -1
- data/test/br_boleto/conta/cecred_test.rb +22 -0
- data/test/br_boleto/conta/itau_test.rb +346 -3
- data/test/br_boleto/conta/santantader_test.rb +123 -10
- data/test/br_boleto/conta/sicoob_test.rb +8 -0
- data/test/br_boleto/conta/sicredi_test.rb +79 -0
- data/test/br_boleto/conta/unicred_test.rb +7 -7
- data/test/br_boleto/remessa/cnab240/itau_test.rb +1 -1
- data/test/br_boleto/remessa/cnab400/caixa_test.rb +184 -0
- data/test/br_boleto/remessa/cnab400/santander_test.rb +30 -17
- data/test/br_boleto/retorno/cnab240/banco_brasil_test.rb +30 -6
- data/test/br_boleto/retorno/cnab240/base_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/bradesco_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/cecred_test.rb +15 -3
- data/test/br_boleto/retorno/cnab240/itau_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/santander_test.rb +30 -6
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/sicredi_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/unicred_test.rb +25 -5
- data/test/br_boleto/retorno/cnab400/bradesco_test.rb +30 -6
- data/test/br_boleto/retorno/cnab400/caixa_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/itau_test.rb +14 -4
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +25 -5
- data/test/br_boleto/retorno/cnab400/sicredi_test.rb +10 -2
- data/test/br_boleto/retorno/cnab400/unicred.rb +30 -6
- data/test/br_boleto/retorno/pagamento_test.rb +49 -1
- data/test/factories/remessa/cnab400/caixa.rb +8 -0
- data/test/fixtures/retorno/cnab240/santander.ret +1 -1
- metadata +10 -2
@@ -79,18 +79,19 @@ module BrBoleto
|
|
79
79
|
######################### SEGMENTO P #############################
|
80
80
|
#
|
81
81
|
# segmento_p_posicao_024_a_057
|
82
|
-
#
|
82
|
+
# TAMANHO POSIÇÃO DESCRIÇÃO
|
83
83
|
# ---------------------------------------------------------
|
84
|
-
# Número da Conta Corrente
|
85
|
-
#
|
86
|
-
# DV da Ag/Conta
|
87
|
-
#
|
84
|
+
# 12 24 - 35 Número da Conta Corrente
|
85
|
+
# 01 36 - 36 DV da Conta
|
86
|
+
# 01 37 - 37 DV da Ag/Conta (Campo não tratado pelo Banco do Brasil. Informar 'branco')
|
87
|
+
# 20 38 - 57 Nosso Número
|
88
88
|
#
|
89
89
|
# TOTAL = 34 posições
|
90
90
|
def complemento_p(pagamento)
|
91
91
|
complemento = ''
|
92
92
|
complemento << "#{conta.conta_corrente}".adjust_size_to(12, '0', :right)
|
93
|
-
complemento << "#{conta.conta_corrente_dv}"
|
93
|
+
complemento << "#{conta.conta_corrente_dv}"
|
94
|
+
complemento << ' '
|
94
95
|
complemento << "#{pagamento.nosso_numero}".adjust_size_to(20)
|
95
96
|
complemento
|
96
97
|
end
|
@@ -126,6 +127,11 @@ module BrBoleto
|
|
126
127
|
complemento = ''.rjust(217, ' ') # USO EXCLUSIVO FEBRABAN
|
127
128
|
end
|
128
129
|
|
130
|
+
|
131
|
+
# Por padrão para o Banco do Brasil o Segmento S é opcional
|
132
|
+
def usa_segmento_S?
|
133
|
+
false
|
134
|
+
end
|
129
135
|
end
|
130
136
|
end
|
131
137
|
end
|
@@ -104,7 +104,7 @@ module BrBoleto
|
|
104
104
|
# Zeros 05 73 - 77
|
105
105
|
# TOTAL = 15 posições
|
106
106
|
def segmento_p_numero_do_documento(pagamento)
|
107
|
-
|
107
|
+
"#{pagamento.numero_documento}".adjust_size_to(15, '0', :right)
|
108
108
|
end
|
109
109
|
|
110
110
|
######################### TRAILER LOTE #############################
|
@@ -300,7 +300,7 @@ module BrBoleto
|
|
300
300
|
# 1 posição
|
301
301
|
#
|
302
302
|
def segmento_p_posicao_221_a_221(pagamento)
|
303
|
-
"#{conta.get_codigo_protesto(pagamento.codigo_protesto)}".adjust_size_to(1, '1')
|
303
|
+
"#{conta.get_codigo_protesto(pagamento.codigo_protesto, 240)}".adjust_size_to(1, '1')
|
304
304
|
end
|
305
305
|
|
306
306
|
# Número de Dias para Protesto
|
@@ -77,6 +77,12 @@ module BrBoleto
|
|
77
77
|
|
78
78
|
######################### SEGMENTO P #############################
|
79
79
|
#
|
80
|
+
# Complemento de Registro - Conteúdo deve estar em 'Branco'
|
81
|
+
# 1 posição
|
82
|
+
def segmento_p_posicao_023_a_023
|
83
|
+
" "
|
84
|
+
end
|
85
|
+
|
80
86
|
# segmento_p_posicao_024_a_057
|
81
87
|
# DESCRIÇÃO TAMANHO POSIÇÃO
|
82
88
|
# -----------------------------------------------------------
|
@@ -136,6 +142,12 @@ module BrBoleto
|
|
136
142
|
segmento
|
137
143
|
end
|
138
144
|
|
145
|
+
# Dígito Verificador da Agência cobradora - Conteúdo deve ser 'Zero'
|
146
|
+
# 1 posição
|
147
|
+
def segmento_p_posicao_106_a_106
|
148
|
+
"0"
|
149
|
+
end
|
150
|
+
|
139
151
|
# Código do Juros de Mora
|
140
152
|
# Para o Itau esse espaço deve ter 'Zero'
|
141
153
|
# 1 posição
|
@@ -143,7 +155,6 @@ module BrBoleto
|
|
143
155
|
'0'
|
144
156
|
end
|
145
157
|
|
146
|
-
|
147
158
|
# Código da Moeda
|
148
159
|
# Para o Itau esse espaço deve ter 'Zeros'
|
149
160
|
# 2 posições
|
@@ -161,7 +172,7 @@ module BrBoleto
|
|
161
172
|
# Qtd. Títulos em Cobrança 006 047 - 052
|
162
173
|
# Val. Tot. Títulos em Carteiras 017 053 - 069
|
163
174
|
# Complemento De Registro (Zeros) 046 070 - 115
|
164
|
-
#
|
175
|
+
# Aviso Bancário (Brancos) 008 116 - 123
|
165
176
|
# Uso FEBRABAN 117 124 - 240
|
166
177
|
#
|
167
178
|
# TOTAL = 217 posições
|
@@ -169,11 +180,17 @@ module BrBoleto
|
|
169
180
|
def complemento_trailer_lote(lote, nr_lote)
|
170
181
|
complemento = ''
|
171
182
|
complemento << ''.rjust(92, '0') # VALORES UTILIZADOS APENAS PARA ARQUIVO DE RETORNO
|
172
|
-
complemento << ''.rjust(8, '
|
183
|
+
complemento << ''.rjust(8, ' ') # REFERÊNCIA DO AVISO BANCÁRIO
|
173
184
|
complemento << ''.rjust(117, ' ') # USO EXCLUSIVO FEBRABAN
|
174
185
|
complemento
|
175
186
|
end
|
176
187
|
|
188
|
+
|
189
|
+
# Por padrão o ITAU não utiliza o Segmento S
|
190
|
+
def usa_segmento_S?
|
191
|
+
false
|
192
|
+
end
|
193
|
+
|
177
194
|
end
|
178
195
|
end
|
179
196
|
end
|
@@ -15,7 +15,7 @@ module BrBoleto
|
|
15
15
|
#
|
16
16
|
# TOTAL = 15 posições
|
17
17
|
def header_arquivo_posicao_033_a_47
|
18
|
-
"#{conta.
|
18
|
+
"#{conta.codigo_transmissao}".adjust_size_to(15, '0', :right)
|
19
19
|
end
|
20
20
|
def header_arquivo_posicao_033_a_052
|
21
21
|
header_arquivo_posicao_033_a_47
|
@@ -70,14 +70,18 @@ module BrBoleto
|
|
70
70
|
''.adjust_size_to(20)
|
71
71
|
end
|
72
72
|
|
73
|
-
|
74
|
-
#
|
75
|
-
#
|
76
|
-
|
77
|
-
|
78
|
-
|
73
|
+
# header_lote_posicao_054_a_073
|
74
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
75
|
+
# -------------------------------------------------
|
76
|
+
# Cód. de Transmissão 15 54-68
|
77
|
+
# Reservado uso Banco (Brancos) 05 69-73
|
78
|
+
#
|
79
|
+
# TOTAL = 20 posições
|
79
80
|
def header_lote_posicao_054_a_073
|
80
|
-
|
81
|
+
info = ''
|
82
|
+
info << "#{conta.codigo_transmissao}".adjust_size_to(15, '0', :right)
|
83
|
+
info << ''.adjust_size_to(5)
|
84
|
+
info
|
81
85
|
end
|
82
86
|
|
83
87
|
# Reservado (uso Banco)
|
@@ -94,23 +98,20 @@ module BrBoleto
|
|
94
98
|
|
95
99
|
######################### SEGMENTO P ################################
|
96
100
|
#
|
97
|
-
#
|
98
|
-
#
|
99
|
-
|
100
|
-
|
101
|
-
|
101
|
+
# O padrão da FEBRABAN é
|
102
|
+
# Posição 18-22 = Número da Agência
|
103
|
+
# Posição 23-23 = DV Agência
|
104
|
+
#
|
105
|
+
# Porém para o Santander a posição 23 já começa o complemento do segmento P com o número da conta.
|
106
|
+
# Padrão do Santander é:
|
107
|
+
# Posição 18-21 = Agência (4 dígitos)
|
108
|
+
# Posição 22-22 = DV Agência (1 dígito)
|
109
|
+
#
|
102
110
|
def segmento_p_posicao_018_a_022
|
103
|
-
|
111
|
+
"#{conta.agencia}#{conta.agencia_dv}".adjust_size_to(5, '0', :right)
|
104
112
|
end
|
113
|
+
def segmento_p_posicao_023_a_023; '' end
|
105
114
|
|
106
|
-
# Dígito Verificador da Agência
|
107
|
-
# TOTAL = 1 posição
|
108
|
-
def segmento_p_posicao_022_a_022
|
109
|
-
"#{conta.agencia_dv}".adjust_size_to(1, '0')
|
110
|
-
end
|
111
|
-
def segmento_p_posicao_023_a_023
|
112
|
-
segmento_p_posicao_022_a_022
|
113
|
-
end
|
114
115
|
|
115
116
|
# segmento_p_posicao_023_a_057
|
116
117
|
# DESCRIÇÃO TAMANHO POSIÇÃO
|
@@ -139,13 +140,13 @@ module BrBoleto
|
|
139
140
|
# Reservado (uso Banco)
|
140
141
|
# TOTAL = 1 posição
|
141
142
|
def segmento_p_posicao_061_a_061(pagamento)
|
142
|
-
|
143
|
+
" "
|
143
144
|
end
|
144
145
|
|
145
146
|
# Reservado (uso Banco)
|
146
147
|
# TOTAL = 1 posição
|
147
148
|
def segmento_p_posicao_062_a_062(pagamento)
|
148
|
-
|
149
|
+
" "
|
149
150
|
end
|
150
151
|
|
151
152
|
# segmento_p_posicao_063_a_077
|
@@ -0,0 +1,197 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Remessa
|
4
|
+
module Cnab400
|
5
|
+
class Caixa < BrBoleto::Remessa::Cnab400::Base
|
6
|
+
def conta_class
|
7
|
+
BrBoleto::Conta::Caixa
|
8
|
+
end
|
9
|
+
|
10
|
+
############################## HEADER ######################################
|
11
|
+
|
12
|
+
# Código da remessa
|
13
|
+
# Tipo: Numérico
|
14
|
+
# Tamanho: 001
|
15
|
+
def header_posicao_002_a_002
|
16
|
+
'1'
|
17
|
+
end
|
18
|
+
|
19
|
+
# Complemento do registro
|
20
|
+
# Posição: 101 até 394
|
21
|
+
# POSIÇÂO TAM. Descrição
|
22
|
+
# 101 a 389 289 Uso Exclusivo CAIXA (Brancos)
|
23
|
+
# 390 a 394 005 No Seqüencial de Remessa (iniciar com '00001' e evoluir de 1 em 1 para cada Header de Arquivo)
|
24
|
+
# Tamanho total: 294
|
25
|
+
def complemento_registro
|
26
|
+
complemento = ''
|
27
|
+
complemento << ''.adjust_size_to(289)
|
28
|
+
complemento << "#{sequencial_remessa}".adjust_size_to(5, '0', :right)
|
29
|
+
complemento
|
30
|
+
end
|
31
|
+
|
32
|
+
############################# DETALHE #################################
|
33
|
+
#
|
34
|
+
# Informações da conta <- Específico para cada banco
|
35
|
+
# Posição: 018 até 037 (Detalhe)
|
36
|
+
# Posição: 027 até 046 (Header)
|
37
|
+
# Tamanho: 020
|
38
|
+
def informacoes_da_conta(local)
|
39
|
+
|
40
|
+
# POSIÇÂO:
|
41
|
+
# Detalhe | Header TAM. Descrição
|
42
|
+
# 18 a 21 27 a 30 004 Agência
|
43
|
+
# 22 a 27 31 a 36 006 Convênio
|
44
|
+
|
45
|
+
info = ''
|
46
|
+
info << "#{conta.agencia}".adjust_size_to(4, '0', :right)
|
47
|
+
info << "#{conta.convenio}".adjust_size_to(6, '0', :right)
|
48
|
+
|
49
|
+
if local == :header
|
50
|
+
# POSIÇÂO TAM. Descrição
|
51
|
+
# ---------------------------------------------------
|
52
|
+
# 037 a 046 010 Uso Exclusivo CAIXA (Brancos)
|
53
|
+
info << ''.adjust_size_to(10)
|
54
|
+
end
|
55
|
+
|
56
|
+
info
|
57
|
+
end
|
58
|
+
|
59
|
+
# detalhe_posicao_028_058
|
60
|
+
# POSIÇÂO TAM. Descrição
|
61
|
+
# -----------------------------------------------------
|
62
|
+
# 028 a 028 001 Identificação da Emissão do Boleto
|
63
|
+
# 029 a 029 001 ID Entrega/Distribuição do Boleto
|
64
|
+
# 030 a 031 002 Comissão de Permanência (Informar '00')
|
65
|
+
# 032 a 056 025 Número do Documento
|
66
|
+
# 057 a 058 002 Carteira
|
67
|
+
#
|
68
|
+
# Tamanho: 31
|
69
|
+
def detalhe_posicao_028_058(pagamento)
|
70
|
+
detalhe = ''
|
71
|
+
detalhe << "#{conta.get_identificacao_emissao(pagamento.emissao_boleto, 400)}".adjust_size_to(1, '0', :right)
|
72
|
+
detalhe << "#{conta.get_distribuicao_boleto(pagamento.distribuicao_boleto)}".adjust_size_to(1, '0', :right)
|
73
|
+
detalhe << "00"
|
74
|
+
detalhe << "#{pagamento.numero_documento}".adjust_size_to(25, '0', :right)
|
75
|
+
detalhe << "#{conta.carteira}".adjust_size_to(2, '0', :right)
|
76
|
+
detalhe
|
77
|
+
|
78
|
+
end
|
79
|
+
def detalhe_posicao_038_062(pagamento)
|
80
|
+
detalhe_posicao_028_058(pagamento)
|
81
|
+
end
|
82
|
+
|
83
|
+
# POSIÇÂO TAM. Descrição
|
84
|
+
# -----------------------------------------------------
|
85
|
+
# 059 a 073 015 Número do Documento
|
86
|
+
# 074 a 076 003 Campos em branco
|
87
|
+
#
|
88
|
+
# Tamanho: 18
|
89
|
+
def dados_do_pagamento(pagamento)
|
90
|
+
detalhe = ''
|
91
|
+
detalhe << "#{pagamento.numero_documento}".adjust_size_to(15, '0', :right)
|
92
|
+
detalhe << "".adjust_size_to(3)
|
93
|
+
detalhe
|
94
|
+
end
|
95
|
+
|
96
|
+
# POSIÇÂO TAM. Descrição
|
97
|
+
# -----------------------------------------------------
|
98
|
+
# 077 a 106 030 Mensagem a ser impressa no boleto
|
99
|
+
# 107 a 108 002 Código da Carteira
|
100
|
+
#
|
101
|
+
# Tamanho: 32
|
102
|
+
def detalhe_posicao_077_108(pagamento, sequencial)
|
103
|
+
detalhe = ''
|
104
|
+
detalhe << "".adjust_size_to(30)
|
105
|
+
detalhe << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(2, '0', :right)
|
106
|
+
detalhe
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
# Informações referente ao pagamento
|
111
|
+
# Posição 121 até 160
|
112
|
+
# POSIÇÂO TAM. Descrição
|
113
|
+
# 121 a 126 006 Data do Vencimento do Título
|
114
|
+
# 127 a 139 013 Valor do Título
|
115
|
+
# 140 a 142 003 Banco Encarregado da Cobrança (Preencher '104')
|
116
|
+
# 143 a 147 005 Agência Depositária (Preencher com zeros)
|
117
|
+
# 148 a 149 002 Espécie de Título
|
118
|
+
# 150 a 150 001 Identificação (Sempre 'N')
|
119
|
+
# 151 a 156 006 Data da emissão do Título
|
120
|
+
# 157 a 158 002 1a instrução (Código para Protesto / Devolução)
|
121
|
+
# 159 a 160 002 2a instrução (Preencher com zeros)
|
122
|
+
# Tamanho: 40
|
123
|
+
def informacoes_do_pagamento(pagamento, sequencial)
|
124
|
+
dados = ''
|
125
|
+
dados << pagamento.data_vencimento_formatado('%d%m%y')
|
126
|
+
dados << pagamento.valor_documento_formatado(13)
|
127
|
+
dados << '104'
|
128
|
+
dados << ''.adjust_size_to(5,'0', :right)
|
129
|
+
dados << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(2, '0', :right)
|
130
|
+
dados << 'N'
|
131
|
+
dados << pagamento.data_emissao_formatado('%d%m%y')
|
132
|
+
|
133
|
+
dados << "#{conta.get_codigo_protesto(pagamento.codigo_protesto, 400)}".adjust_size_to(2, '0', :right) # 1a Instrução
|
134
|
+
dados << ''.adjust_size_to(2,'0', :right) # 2a Instrução
|
135
|
+
dados
|
136
|
+
end
|
137
|
+
|
138
|
+
# Informações referente aos juros e multas do pagamento
|
139
|
+
# Posição: 161 a 218
|
140
|
+
# POSIÇÂO TAM. Descrição
|
141
|
+
# 161 a 173 013 Valor a ser cobrado por Dia de Atraso
|
142
|
+
# 174 a 179 006 Data Limite P/Concessão de Desconto
|
143
|
+
# 180 a 192 013 Valor do Desconto
|
144
|
+
# 193 a 205 013 Valor do IOF
|
145
|
+
# 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado
|
146
|
+
# Tamanho: 58
|
147
|
+
def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
|
148
|
+
detalhe = ''
|
149
|
+
detalhe << "#{pagamento.valor_mora_formatado}".adjust_size_to(13,'0', :right )
|
150
|
+
detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right )
|
151
|
+
detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right )
|
152
|
+
detalhe << "#{pagamento.valor_iof_formatado}".adjust_size_to(13,'0', :right )
|
153
|
+
detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right )
|
154
|
+
detalhe
|
155
|
+
end
|
156
|
+
|
157
|
+
# Informações referente aos dados do sacado/pagador
|
158
|
+
# Posição: 219 a 394
|
159
|
+
# POSIÇÂO TAM. Descrição
|
160
|
+
# 219 a 220 002 Identificação do Tipo de Inscrição do Pagador
|
161
|
+
# 221 a 234 014 No Inscrição do Pagador
|
162
|
+
# 235 a 274 040 Nome do Pagador
|
163
|
+
# 275 a 314 040 Endereço Paagador
|
164
|
+
# 315 a 326 012 Bairro do Pagador
|
165
|
+
# 327 a 334 008 CEP
|
166
|
+
# 335 a 349 015 Cidade do Pagador
|
167
|
+
# 350 a 351 002 UF do Pagador
|
168
|
+
# 352 a 357 006 Data da Multa
|
169
|
+
# 358 a 367 010 Valor da Multa
|
170
|
+
# 368 a 389 022 Nome Sacador/Avalista
|
171
|
+
# 390 a 391 002 3a instrução (Preencher com '00' = Não imprime mensagem no verso do boleto)
|
172
|
+
# 392 a 393 002 Número de dias para início do protesto/devolução
|
173
|
+
# 394 a 394 001 Código da Moeda
|
174
|
+
# Tamanho: 176
|
175
|
+
def informacoes_do_sacado(pagamento, sequencial)
|
176
|
+
info = ''
|
177
|
+
# Tipo de Inscrição do Pagador: "01" = CPF , "02" = CNPJ , "03" = PIS/PASEP , "98" = Não tem , "99" = Outros
|
178
|
+
info << "#{pagamento.pagador.tipo_cpf_cnpj}".adjust_size_to(2, '0', :right)
|
179
|
+
info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right)
|
180
|
+
info << "#{pagamento.pagador.nome}".adjust_size_to(40)
|
181
|
+
info << "#{pagamento.pagador.endereco}".adjust_size_to(40)
|
182
|
+
info << "#{pagamento.pagador.bairro}".adjust_size_to(12)
|
183
|
+
info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right)
|
184
|
+
info << "#{pagamento.pagador.cidade}".adjust_size_to(15)
|
185
|
+
info << "#{pagamento.pagador.uf}".adjust_size_to(2)
|
186
|
+
info << "#{pagamento.data_multa_formatado}".adjust_size_to(6, '0', :right) # Data da Multa
|
187
|
+
info << "#{pagamento.valor_multa_formatado(10)}".adjust_size_to(10, '0', :right) # Valor da Multa
|
188
|
+
info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(22) # Sacador/Avalista (Nome)
|
189
|
+
info << "00" # 3a instrução
|
190
|
+
info << "#{pagamento.dias_protesto}".adjust_size_to(2, '0', :right) # Número de dias protesto/devolução
|
191
|
+
info << "#{conta.get_codigo_moeda(pagamento.codigo_moeda, 400)}".adjust_size_to(1, '1', :right) # Código da Moeda
|
192
|
+
info
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
@@ -46,12 +46,29 @@ module BrBoleto
|
|
46
46
|
"#{conta.codigo_transmissao}".adjust_size_to(20, '0', :right)
|
47
47
|
end
|
48
48
|
|
49
|
-
#
|
50
|
-
# Posição: 063 até 108
|
49
|
+
# Detalhe posição: 063 até 76
|
51
50
|
# POSIÇÂO TAM. Descrição
|
52
51
|
# -----------------------------------------------------
|
53
52
|
# 063 a 070 008 Nosso Número
|
54
|
-
# 071 a 076 006 Data do segundo desconto
|
53
|
+
# 071 a 076 006 Data do segundo desconto (Zeros)
|
54
|
+
#
|
55
|
+
# Tamanho: 14
|
56
|
+
def detalhe_posicao_063_076(pagamento, sequencial)
|
57
|
+
detalhe = ''
|
58
|
+
detalhe << "#{nosso_numero_formatado(pagamento)}".adjust_size_to(8, '0', :right)
|
59
|
+
detalhe << ''.adjust_size_to(6, '0', :right)
|
60
|
+
detalhe
|
61
|
+
end
|
62
|
+
def nosso_numero_formatado(pagamento)
|
63
|
+
# Por padrão o nosso número possui 13 dígitos, mas nesse caso para a remessa
|
64
|
+
# serão utilizados apenas 8 dígitos.
|
65
|
+
nosso_numero = "#{pagamento.nosso_numero}".adjust_size_to(13, '0', :right)
|
66
|
+
nosso_numero[5..12]
|
67
|
+
end
|
68
|
+
|
69
|
+
# Detalhe posição: 77 até 108
|
70
|
+
# POSIÇÂO TAM. Descrição
|
71
|
+
# -----------------------------------------------------
|
55
72
|
# 077 a 077 001 Branco
|
56
73
|
# 078 a 078 001 Informação de multa
|
57
74
|
# 079 a 082 004 Percentual multa por atraso %
|
@@ -61,34 +78,22 @@ module BrBoleto
|
|
61
78
|
# 102 a 107 006 Data para cobrança de multa
|
62
79
|
# 108 a 108 001 Cod. Carteira
|
63
80
|
#
|
64
|
-
# Tamanho:
|
65
|
-
def detalhe_posicao_063_076(pagamento, sequencial)
|
66
|
-
detalhe_posicao_063_108(pagamento)
|
67
|
-
end
|
81
|
+
# Tamanho: 32
|
68
82
|
def detalhe_posicao_077_108(pagamento, sequencial)
|
69
|
-
''
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
info << ''.adjust_size_to(13, '0', :right)
|
80
|
-
info << ''.adjust_size_to(4)
|
81
|
-
info << "#{pagamento.data_multa_formatado}".adjust_size_to(6, '0', :right)
|
82
|
-
info << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(1, '1')
|
83
|
-
info
|
84
|
-
end
|
85
|
-
def nosso_numero_formatado(pagamento)
|
86
|
-
nosso_numero = "#{pagamento.nosso_numero}".adjust_size_to(13, '0', :right)
|
87
|
-
#nosso_numero.reverse.adjust_size_to(8, '0', :right).reverse
|
88
|
-
nosso_numero[5..12]
|
83
|
+
detalhe = ''
|
84
|
+
detalhe << ' '
|
85
|
+
detalhe << "#{conta.get_codigo_multa(pagamento.codigo_multa)}".adjust_size_to(1, '0', :right)
|
86
|
+
detalhe << "#{pagamento.valor_multa_formatado(4)}".adjust_size_to(4, '0', :right)
|
87
|
+
detalhe << '00'
|
88
|
+
detalhe << ''.adjust_size_to(13, '0', :right)
|
89
|
+
detalhe << ''.adjust_size_to(4)
|
90
|
+
detalhe << "#{pagamento.data_multa_formatado}".adjust_size_to(6, '0', :right)
|
91
|
+
detalhe << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(1, '1')
|
92
|
+
detalhe
|
89
93
|
end
|
90
94
|
|
91
95
|
|
96
|
+
|
92
97
|
# Informações referente ao pagamento
|
93
98
|
# Posição 121 até 160
|
94
99
|
# POSIÇÂO TAM. Descrição
|