br_boleto 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +1 -1
- data/Gemfile.lock +2 -2
- data/br_boleto.gemspec +2 -3
- data/lib/br_boleto/association/have_conta.rb +27 -25
- data/lib/br_boleto/association/have_pagador.rb +2 -0
- data/lib/br_boleto/boleto/base.rb +0 -4
- data/lib/br_boleto/boleto/bradesco.rb +80 -0
- data/lib/br_boleto/boleto/caixa.rb +10 -12
- data/lib/br_boleto/boleto/cecred.rb +76 -0
- data/lib/br_boleto/boleto/itau.rb +114 -0
- data/lib/br_boleto/boleto/sicredi.rb +101 -0
- data/lib/br_boleto/boleto/unicred.rb +21 -0
- data/lib/br_boleto/conta/base.rb +28 -3
- data/lib/br_boleto/conta/bradesco.rb +120 -0
- data/lib/br_boleto/conta/caixa.rb +22 -12
- data/lib/br_boleto/conta/cecred.rb +67 -0
- data/lib/br_boleto/conta/itau.rb +199 -0
- data/lib/br_boleto/conta/sicoob.rb +40 -11
- data/lib/br_boleto/conta/sicredi.rb +171 -0
- data/lib/br_boleto/conta/unicred.rb +38 -0
- data/lib/br_boleto/helper/default_codes.rb +535 -26
- data/lib/br_boleto/pagador.rb +4 -0
- data/lib/br_boleto/remessa/base.rb +2 -0
- data/lib/br_boleto/remessa/cnab240/base.rb +21 -6
- data/lib/br_boleto/remessa/cnab240/bradesco.rb +141 -0
- data/lib/br_boleto/remessa/cnab240/caixa.rb +8 -1
- data/lib/br_boleto/remessa/cnab240/cecred.rb +169 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +29 -21
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +4 -3
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +5 -5
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +4 -3
- data/lib/br_boleto/remessa/cnab240/itau.rb +186 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +4 -16
- data/lib/br_boleto/remessa/cnab240/sicredi.rb +205 -0
- data/lib/br_boleto/remessa/cnab240/unicred.rb +40 -0
- data/lib/br_boleto/remessa/cnab400/bradesco.rb +235 -0
- data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +6 -5
- data/lib/br_boleto/remessa/cnab400/itau.rb +190 -0
- data/lib/br_boleto/remessa/cnab400/sicoob.rb +3 -3
- data/lib/br_boleto/remessa/cnab400/sicredi.rb +276 -0
- data/lib/br_boleto/remessa/cnab400/unicred.rb +62 -0
- data/lib/br_boleto/remessa/pagamento.rb +93 -43
- data/lib/br_boleto/retorno/cnab240/base.rb +13 -12
- data/lib/br_boleto/retorno/cnab240/bradesco.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/caixa.rb +2 -3
- data/lib/br_boleto/retorno/cnab240/cecred.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/itau.rb +24 -0
- data/lib/br_boleto/retorno/cnab240/sicredi.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/unicred.rb +10 -0
- data/lib/br_boleto/retorno/cnab400/bradesco.rb +42 -0
- data/lib/br_boleto/retorno/cnab400/itau.rb +43 -0
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +2 -2
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +43 -0
- data/lib/br_boleto/retorno/cnab400/unicred.rb +10 -0
- data/lib/br_boleto/retorno/pagamento.rb +18 -4
- data/lib/br_boleto/version.rb +2 -2
- data/lib/br_boleto.rb +28 -0
- data/lib/config/locales/br-boleto-en.yml +1 -0
- data/lib/config/locales/br-boleto-pt-BR.yml +1 -0
- data/test/br_boleto/association/have_pagador_test.rb +24 -0
- data/test/br_boleto/boleto/bradesco_test.rb +125 -0
- data/test/br_boleto/boleto/caixa_test.rb +18 -18
- data/test/br_boleto/boleto/cecred_test.rb +115 -0
- data/test/br_boleto/boleto/itau_test.rb +160 -0
- data/test/br_boleto/boleto/sicredi_test.rb +136 -0
- data/test/br_boleto/boleto/unicred_test.rb +128 -0
- data/test/br_boleto/conta/base_test.rb +298 -3
- data/test/br_boleto/conta/bradesco_test.rb +142 -0
- data/test/br_boleto/conta/caixa_test.rb +7 -6
- data/test/br_boleto/conta/cecred_test.rb +119 -0
- data/test/br_boleto/conta/itau_test.rb +189 -0
- data/test/br_boleto/conta/sicoob_test.rb +32 -2
- data/test/br_boleto/conta/sicredi_test.rb +180 -0
- data/test/br_boleto/conta/unicred_test.rb +154 -0
- data/test/br_boleto/pagador_test.rb +22 -2
- data/test/br_boleto/remessa/cnab240/base_test.rb +24 -12
- data/test/br_boleto/remessa/cnab240/bradesco_test.rb +196 -0
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +51 -0
- data/test/br_boleto/remessa/cnab240/cecred_test.rb +242 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +78 -71
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +4 -3
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +10 -18
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +6 -5
- data/test/br_boleto/remessa/cnab240/itau_test.rb +201 -0
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +1 -58
- data/test/br_boleto/remessa/cnab240/sicredi_test.rb +207 -0
- data/test/br_boleto/remessa/cnab240/unicred_test.rb +250 -0
- data/test/br_boleto/remessa/cnab400/base_test.rb +4 -4
- data/test/br_boleto/remessa/cnab400/bradesco_test.rb +164 -0
- data/test/br_boleto/remessa/cnab400/itau_test.rb +173 -0
- data/test/br_boleto/remessa/cnab400/sicoob_test.rb +2 -2
- data/test/br_boleto/remessa/cnab400/sicredi_test.rb +241 -0
- data/test/br_boleto/remessa/cnab400/unicred_test.rb +169 -0
- data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/bradesco_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/cecred_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/itau_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/sicredi_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/unicred_test.rb +228 -0
- data/test/br_boleto/retorno/cnab400/bradesco_test.rb +255 -0
- data/test/br_boleto/retorno/cnab400/itau_test.rb +96 -0
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +10 -5
- data/test/br_boleto/retorno/cnab400/sicredi_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/unicred.rb +255 -0
- data/test/br_boleto/retorno/pagamento_test.rb +7 -0
- data/test/factories/boleto/boleto_bradesco.rb +18 -0
- data/test/factories/boleto/boleto_cecred.rb +18 -0
- data/test/factories/boleto/boleto_itau.rb +18 -0
- data/test/factories/boleto/boleto_sicredi.rb +18 -0
- data/test/factories/boleto/boleto_unicred.rb +18 -0
- data/test/factories/conta/bradesco.rb +16 -0
- data/test/factories/conta/caixa.rb +2 -1
- data/test/factories/conta/cecred.rb +15 -0
- data/test/factories/conta/itau.rb +15 -0
- data/test/factories/conta/sicoob.rb +2 -1
- data/test/factories/conta/sicredi.rb +15 -0
- data/test/factories/conta/unicred.rb +15 -0
- data/test/factories/remessa/cnab240/bradesco.rb +9 -0
- data/test/factories/remessa/cnab240/cecred.rb +9 -0
- data/test/factories/remessa/cnab240/itau.rb +9 -0
- data/test/factories/remessa/cnab240/sicredi.rb +9 -0
- data/test/factories/remessa/cnab240/unicred.rb +9 -0
- data/test/factories/remessa/cnab400/bradesco.rb +8 -0
- data/test/factories/remessa/cnab400/itau.rb +8 -0
- data/test/factories/remessa/cnab400/sicredi.rb +8 -0
- data/test/factories/remessa/cnab400/unicred.rb +8 -0
- data/test/fixtures/remessa/cnab240/caixa.rem +8 -0
- data/test/fixtures/remessa/cnab240/cecred.rem +8 -0
- data/test/fixtures/remessa/cnab240/sicoob.rem +8 -8
- data/test/fixtures/remessa/cnab240/unicred.rem +7 -0
- data/test/fixtures/retorno/cnab400/bradesco.ret +8 -0
- data/test/fixtures/retorno/cnab400/itau.ret +54 -0
- metadata +138 -3
@@ -0,0 +1,186 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Remessa
|
4
|
+
module Cnab240
|
5
|
+
class Itau < BrBoleto::Remessa::Cnab240::Base
|
6
|
+
def conta_class
|
7
|
+
BrBoleto::Conta::Itau
|
8
|
+
end
|
9
|
+
|
10
|
+
########################### HEADER ARQUIVO #############################
|
11
|
+
#
|
12
|
+
# Informação da conta
|
13
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
14
|
+
# ---------------------------------------------------------
|
15
|
+
# Complemento Registro (Zero) 01 53 - 53
|
16
|
+
# Agencia 04 54 - 57
|
17
|
+
# Complemento Registro (Branco) 01 58 - 58
|
18
|
+
# Complemento Registro (Zeros) 07 59 - 65
|
19
|
+
# Conta Corrente 05 66 - 70
|
20
|
+
# Complemento Registro (Branco) 01 71 - 71
|
21
|
+
# DV da Conta 01 72 - 72
|
22
|
+
#
|
23
|
+
# TOTAL = 20 posições
|
24
|
+
def informacoes_da_conta
|
25
|
+
informacoes = ''.rjust(1, '0')
|
26
|
+
informacoes << "#{conta.agencia}".adjust_size_to(4, '0', :right)
|
27
|
+
informacoes << ''.rjust(1)
|
28
|
+
informacoes << ''.rjust(7, '0')
|
29
|
+
informacoes << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right)
|
30
|
+
informacoes << ''.rjust(1)
|
31
|
+
informacoes << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0')
|
32
|
+
informacoes
|
33
|
+
end
|
34
|
+
|
35
|
+
# Espaço reservado para o Banco
|
36
|
+
# Para o Itau esse espaço deve ter 'Brancos'
|
37
|
+
# 54 posições
|
38
|
+
def header_arquivo_posicao_172_a_225
|
39
|
+
''.rjust(54)
|
40
|
+
end
|
41
|
+
def header_arquivo_posicao_172_a_191
|
42
|
+
header_arquivo_posicao_172_a_225
|
43
|
+
end
|
44
|
+
def header_arquivo_posicao_192_a_211
|
45
|
+
''
|
46
|
+
end
|
47
|
+
|
48
|
+
# Posição 226 a 228 do Header do Arquivo
|
49
|
+
# Para o Itau esse espaço deve ter 'Zeros'
|
50
|
+
# 3 posições
|
51
|
+
def header_posicao_226_a_228
|
52
|
+
''.rjust(3, '0')
|
53
|
+
end
|
54
|
+
|
55
|
+
# Posição 229 a 240 do Header do Arquivo
|
56
|
+
# Para o Itau esse espaço deve ter 'Brancos'
|
57
|
+
# 12 posições
|
58
|
+
def header_posicao_229_a_240
|
59
|
+
''.rjust(12)
|
60
|
+
end
|
61
|
+
|
62
|
+
def complemento_header_arquivo
|
63
|
+
"#{header_posicao_226_a_228}#{header_posicao_229_a_240}"
|
64
|
+
end
|
65
|
+
|
66
|
+
########################### HEADER LOTE #############################
|
67
|
+
#
|
68
|
+
# COMPLEMENTO DE REGISTRO
|
69
|
+
# Para o Itau esse espaço deve ter 'Brancos'
|
70
|
+
# 20 posições
|
71
|
+
def codigo_convenio
|
72
|
+
''.adjust_size_to(20)
|
73
|
+
end
|
74
|
+
def convenio_lote(lote)
|
75
|
+
codigo_convenio
|
76
|
+
end
|
77
|
+
|
78
|
+
######################### SEGMENTO P #############################
|
79
|
+
#
|
80
|
+
# segmento_p_posicao_024_a_057
|
81
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
82
|
+
# -----------------------------------------------------------
|
83
|
+
# COMPLEMENTO DE REGISTRO (ZEROS) 07 24 - 30
|
84
|
+
# NÚMERO DA CONTA CORRENTE 05 31 - 35
|
85
|
+
# COMPLEMENTO DE REGISTRO (BRANCO) 01 36 - 36
|
86
|
+
# DV AG./CONTA EMPRESA 01 37 - 37
|
87
|
+
# NÚMERO DA CARTEIRA 03 38 - 40
|
88
|
+
# NÚMERO DOCUMENTO 08 41 - 48
|
89
|
+
# NOSSO NÚMERO DV 01 49 - 49
|
90
|
+
# COMPLEMENTO DE REGISTRO (BRANCOS) 08 50 - 57
|
91
|
+
#
|
92
|
+
# TOTAL = 34 posições
|
93
|
+
def complemento_p(pagamento)
|
94
|
+
complemento = ''.adjust_size_to(7, '0', :right)
|
95
|
+
complemento << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right)
|
96
|
+
complemento << ''.rjust(1)
|
97
|
+
complemento << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right)
|
98
|
+
complemento << "#{conta.carteira}".adjust_size_to(3, '0', :right)
|
99
|
+
complemento << "#{pagamento.numero_documento}".adjust_size_to(8, '0', :right)
|
100
|
+
complemento << "#{pagamento.nosso_numero}".split('').last
|
101
|
+
complemento << ''.rjust(8)
|
102
|
+
complemento
|
103
|
+
end
|
104
|
+
|
105
|
+
# Segmento P posição 059 a 062
|
106
|
+
# Para o Itau esse espaço deve ter 'Zeros'
|
107
|
+
# 5 posições
|
108
|
+
def segmento_p_posicao_058_a_062
|
109
|
+
''.rjust(5, '0')
|
110
|
+
end
|
111
|
+
def segmento_p_posicao_058_a_058
|
112
|
+
segmento_p_posicao_058_a_062
|
113
|
+
end
|
114
|
+
def segmento_p_posicao_059_a_059(pagamento)
|
115
|
+
''
|
116
|
+
end
|
117
|
+
def segmento_p_posicao_060_a_060
|
118
|
+
''
|
119
|
+
end
|
120
|
+
def segmento_p_posicao_061_a_061(pagamento)
|
121
|
+
''
|
122
|
+
end
|
123
|
+
def segmento_p_posicao_062_a_062(pagamento)
|
124
|
+
''
|
125
|
+
end
|
126
|
+
|
127
|
+
# segmento_p_posicao_063_a_077
|
128
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
129
|
+
# ---------------------------------------------------------
|
130
|
+
# Número Doc. 10 63 - 72
|
131
|
+
# Brancos 05 73 - 77
|
132
|
+
# TOTAL = 15 posições
|
133
|
+
def segmento_p_numero_do_documento(pagamento)
|
134
|
+
segmento = "#{pagamento.numero_documento}".adjust_size_to(10, '0', :right)
|
135
|
+
segmento << ''.rjust(5)
|
136
|
+
segmento
|
137
|
+
end
|
138
|
+
|
139
|
+
# Código do Juros de Mora
|
140
|
+
# Para o Itau esse espaço deve ter 'Zero'
|
141
|
+
# 1 posição
|
142
|
+
def segmento_p_posicao_118_a_118(pagamento)
|
143
|
+
'0'
|
144
|
+
end
|
145
|
+
|
146
|
+
|
147
|
+
# Código da Moeda
|
148
|
+
# Para o Itau esse espaço deve ter 'Zeros'
|
149
|
+
# 2 posições
|
150
|
+
def segmento_p_posicao_228_a_229(pagamento)
|
151
|
+
'00'
|
152
|
+
end
|
153
|
+
|
154
|
+
######################### SEGMENTO R #############################
|
155
|
+
# Codigo da multa
|
156
|
+
def segmento_r_posicao_066_a_066(pagamento)
|
157
|
+
"#{conta.get_codigo_multa('0')}".adjust_size_to(1, '0')
|
158
|
+
end
|
159
|
+
|
160
|
+
######################### TRAILER LOTE #############################
|
161
|
+
#
|
162
|
+
# trailer_lote_posicao_024_a_240(lote, nr_lote)
|
163
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
164
|
+
# ----------------------------------------------------------------
|
165
|
+
# Qtd. Títulos em Cobrança 006 024 - 029
|
166
|
+
# Val. Tot. Títulos em Carteiras 017 030 - 046
|
167
|
+
# Qtd. Títulos em Cobrança 006 047 - 052
|
168
|
+
# Val. Tot. Títulos em Carteiras 017 053 - 069
|
169
|
+
# Complemento De Registro (Zeros) 046 070 - 115
|
170
|
+
# N. Aviso de Lançamento 008 116 - 123
|
171
|
+
# Uso FEBRABAN 117 124 - 240
|
172
|
+
#
|
173
|
+
# TOTAL = 217 posições
|
174
|
+
#
|
175
|
+
def complemento_trailer_lote(lote, nr_lote)
|
176
|
+
complemento = ''
|
177
|
+
complemento << ''.rjust(92, '0') # VALORES UTILIZADOS APENAS PARA ARQUIVO DE RETORNO
|
178
|
+
complemento << ''.rjust(8, '0') # Número do aviso de lançamento do crédito referente a(os) título(s) de cobrança, que poderá ser utilizado no extrato de conta corrente.
|
179
|
+
complemento << ''.rjust(117, ' ') # USO EXCLUSIVO FEBRABAN
|
180
|
+
complemento
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
@@ -239,24 +239,12 @@ module BrBoleto
|
|
239
239
|
''.rjust(117, ' ')
|
240
240
|
end
|
241
241
|
|
242
|
-
#
|
243
|
-
# Padrão
|
244
|
-
# Padrão do SICOOB = (1 = Valor fixo e 2 = Percentual, 0 = isento)
|
242
|
+
# Código para Protesto
|
243
|
+
# Padrão do SICOOB '1' = Protestar Dias Corridos
|
245
244
|
# 1 posição
|
246
245
|
#
|
247
|
-
def
|
248
|
-
|
249
|
-
cod.in?(['1','2']) ? cod : '0'
|
250
|
-
end
|
251
|
-
|
252
|
-
# Codigo do Juros
|
253
|
-
# Padrão pela FEBRABAN = (1 = Valor fixo e 2 = Percentual, 3 = isento)
|
254
|
-
# Padrão do SICOOB = (1 = Valor fixo e 2 = Percentual, 0 = isento)
|
255
|
-
# 1 posição
|
256
|
-
#
|
257
|
-
def segmento_p_posicao_118_a_118(pagamento)
|
258
|
-
cod = "#{pagamento.codigo_juros}".adjust_size_to(1, '0')
|
259
|
-
cod.in?(['1','2']) ? cod : '0'
|
246
|
+
def segmento_p_posicao_221_a_221(pagamento)
|
247
|
+
'1'
|
260
248
|
end
|
261
249
|
|
262
250
|
end
|
@@ -0,0 +1,205 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Remessa
|
4
|
+
module Cnab240
|
5
|
+
class Sicredi < BrBoleto::Remessa::Cnab240::Base
|
6
|
+
def conta_class
|
7
|
+
BrBoleto::Conta::Sicredi
|
8
|
+
end
|
9
|
+
|
10
|
+
########################### HEADER ARQUIVO #############################
|
11
|
+
|
12
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
13
|
+
# ---------------------------------------------------------
|
14
|
+
# Cód. Cedente (convênio) 20 33-52
|
15
|
+
# TOTAL = 20 posições
|
16
|
+
def codigo_convenio
|
17
|
+
''.adjust_size_to(20)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Informação da conta
|
21
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
22
|
+
# ---------------------------------------------------------
|
23
|
+
# agencia 05 53 - 57
|
24
|
+
# digito Verif. agencia 01 58 - 58
|
25
|
+
# Número da Conta Corrente 12 59 - 70
|
26
|
+
# DV da Conta 01 71 - 71
|
27
|
+
# Branco 01 72 - 72
|
28
|
+
#
|
29
|
+
# TOTAL = 20 posições
|
30
|
+
def informacoes_da_conta
|
31
|
+
informacoes = "#{conta.agencia}".adjust_size_to(5, '0', :right)
|
32
|
+
informacoes << ''.adjust_size_to(1)
|
33
|
+
informacoes << "#{conta.conta_corrente}".adjust_size_to(12, '0', :right)
|
34
|
+
informacoes << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right)
|
35
|
+
informacoes << ''.adjust_size_to(1)
|
36
|
+
informacoes.adjust_size_to(20, '0')
|
37
|
+
end
|
38
|
+
|
39
|
+
# Densidade de gravação (BPI), do arquivo encaminhado.
|
40
|
+
def header_arquivo_posicao_167_a_171
|
41
|
+
'01600'
|
42
|
+
end
|
43
|
+
|
44
|
+
# Para uso reservado do Banco
|
45
|
+
# Para o Sicredi esse espaço deve ter 'Brancos'
|
46
|
+
# 20 posições
|
47
|
+
def header_arquivo_posicao_172_a_191
|
48
|
+
''.rjust(20, ' ')
|
49
|
+
end
|
50
|
+
|
51
|
+
# Para uso reservado da Empresa
|
52
|
+
# Para o Sicredi esse espaço deve ter 'Brancos'
|
53
|
+
# 20 posições
|
54
|
+
def header_arquivo_posicao_192_a_211
|
55
|
+
''.rjust(20, ' ')
|
56
|
+
end
|
57
|
+
|
58
|
+
# Uso exclusivo FEBRABAN/CNAB
|
59
|
+
# Para o Sicredi esse espaço deve ter 'Brancos'
|
60
|
+
# TOTAL = 29 posições
|
61
|
+
def complemento_header_arquivo
|
62
|
+
''.rjust(29, ' ')
|
63
|
+
end
|
64
|
+
|
65
|
+
############################ HEADER LOTE ###############################
|
66
|
+
|
67
|
+
# Uso exclusivo FEBRABAN/CNAB
|
68
|
+
# Para o Sicredi esse espaço deve ter 'Brancos'
|
69
|
+
# 2 posições
|
70
|
+
def header_lote_posicao_012_a_013
|
71
|
+
''.rjust(2, ' ')
|
72
|
+
end
|
73
|
+
|
74
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
75
|
+
# ---------------------------------------------------------
|
76
|
+
# Cód. Cedente (convênio) 20 34-53
|
77
|
+
# TOTAL = 20 posições
|
78
|
+
def convenio_lote(lote)
|
79
|
+
''.rjust(20, ' ')
|
80
|
+
end
|
81
|
+
|
82
|
+
############################ SEGMENTO P ################################
|
83
|
+
|
84
|
+
# Dígito Verificador da Agência
|
85
|
+
def segmento_p_posicao_023_a_023
|
86
|
+
''.adjust_size_to(1)
|
87
|
+
end
|
88
|
+
|
89
|
+
# Forma de Cadastr. do Título no Banco
|
90
|
+
def segmento_p_posicao_059_a_059(pagamento)
|
91
|
+
'1'
|
92
|
+
end
|
93
|
+
|
94
|
+
# segmento_p_posicao_024_a_057
|
95
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
96
|
+
# ---------------------------------------------------------
|
97
|
+
# Número da Conta Corrente 12 24 - 35
|
98
|
+
# DV da Conta 01 36 - 36
|
99
|
+
# Branco 01 37 - 37
|
100
|
+
# Nosso número 20 38 - 57
|
101
|
+
#
|
102
|
+
# TOTAL = 34 posições
|
103
|
+
def complemento_p(pagamento)
|
104
|
+
complemento = ''
|
105
|
+
complemento << "#{conta.conta_corrente}".adjust_size_to(12, '0', :right)
|
106
|
+
complemento << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right)
|
107
|
+
complemento << ''.adjust_size_to(1)
|
108
|
+
complemento << "#{pagamento.nosso_numero}".adjust_size_to(20)
|
109
|
+
complemento.adjust_size_to(34, '0')
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
# segmento_p_posicao_063_a_077
|
114
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
115
|
+
# ---------------------------------------------------------
|
116
|
+
# Número Doc. 10 63 - 72
|
117
|
+
# Brancos 05 73 - 77
|
118
|
+
# TOTAL = 15 posições
|
119
|
+
def segmento_p_numero_do_documento(pagamento)
|
120
|
+
segmento = ''
|
121
|
+
segmento << "#{pagamento.numero_documento}".adjust_size_to(10, '0', :right)
|
122
|
+
segmento << ''.rjust(5, ' ')
|
123
|
+
segmento
|
124
|
+
end
|
125
|
+
|
126
|
+
# Data do Juros de Mora
|
127
|
+
# Para o SICREDI é um Registro do tipo filler com 'Zeros' obrigatório
|
128
|
+
# 8 posições
|
129
|
+
def segmento_p_posicao_119_a_126(pagamento)
|
130
|
+
''.adjust_size_to(8, '0')
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
# Código para Baixa/Devolução
|
135
|
+
# Sicredi utiliza sempre domínio ‘1’ para esse campo ( '1' => Baixar / devolver ).
|
136
|
+
# 1 posição
|
137
|
+
def segmento_p_posicao_224_a_224
|
138
|
+
'1'
|
139
|
+
end
|
140
|
+
|
141
|
+
# Número de Dias para Baixa/Devolução
|
142
|
+
# Sicredi utiliza sempre, nesse campo, 60 dias para baixa/devolução.
|
143
|
+
# 3 posoções
|
144
|
+
#
|
145
|
+
def segmento_p_posicao_225_a_227
|
146
|
+
'060'
|
147
|
+
end
|
148
|
+
|
149
|
+
############################ SEGMENTO R ################################
|
150
|
+
|
151
|
+
# Código do desconto 2
|
152
|
+
# 1 posição
|
153
|
+
def segmento_r_posicao_018_a_018(pagamento)
|
154
|
+
'2'
|
155
|
+
end
|
156
|
+
|
157
|
+
# Código do desconto 3
|
158
|
+
# 1 posição
|
159
|
+
def segmento_r_posicao_042_a_042(pagamento)
|
160
|
+
'2'
|
161
|
+
end
|
162
|
+
|
163
|
+
# Codigo da multa
|
164
|
+
# O Sicredi apenas aceita o campo multa preenchido com '2' - Percentual.
|
165
|
+
# 1 posição
|
166
|
+
def segmento_r_posicao_066_a_066(pagamento)
|
167
|
+
'2'
|
168
|
+
end
|
169
|
+
|
170
|
+
# Data da multa
|
171
|
+
# Para o SICREDI é um Registro do tipo filler com 'Zeros' obrigatório
|
172
|
+
# 8 posição
|
173
|
+
def segmento_r_posicao_067_a_074(pagamento)
|
174
|
+
"".adjust_size_to(8, '0')
|
175
|
+
end
|
176
|
+
|
177
|
+
########################### TRAILER LOTE ################################
|
178
|
+
|
179
|
+
# trailer_lote_posicao_024_a_240(lote, nr_lote)
|
180
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
181
|
+
# ----------------------------------------------------------------
|
182
|
+
# Qtd. Títulos em Cobrança 006 024 - 029
|
183
|
+
# Val. Tot. Títulos em Carteiras 017 030 - 046
|
184
|
+
# Qtd. Títulos em Cobrança 006 047 - 052
|
185
|
+
# Val. Tot. Títulos em Carteiras 017 053 - 069
|
186
|
+
# Qtd. Títulos em Cobrança 006 070 - 075
|
187
|
+
# Qtd. Títulos em Carteiras 017 076 - 092
|
188
|
+
# Qtd. de Títulos em Cobrança 006 093 - 098
|
189
|
+
# Val. Tot. dos Títulos em Carteiras 017 099 - 115
|
190
|
+
# N. Aviso de Lançamento 008 116 - 123
|
191
|
+
# Uso FEBRABAN 117 124 - 240
|
192
|
+
#
|
193
|
+
# TOTAL = 217 posições
|
194
|
+
#
|
195
|
+
def complemento_trailer_lote(lote, nr_lote)
|
196
|
+
complemento = ''
|
197
|
+
complemento << ''.rjust(92, '0') # Valores só serão utilizados para informação do arquivo retorno
|
198
|
+
complemento << ''.rjust(8, ' ') # O Sicredi atualmente não utiliza este campo
|
199
|
+
complemento << ''.rjust(117, ' ') # USO EXCLUSIVO FEBRABAN
|
200
|
+
complemento
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Remessa
|
4
|
+
module Cnab240
|
5
|
+
# A Unicred (através do CobExpress) utiliza e o layout de boleto os arquivos de remessa/retorno disponibilizados pelo Banco Bradesco.
|
6
|
+
class Unicred < BrBoleto::Remessa::Cnab240::Bradesco
|
7
|
+
def conta_class
|
8
|
+
BrBoleto::Conta::Unicred
|
9
|
+
end
|
10
|
+
|
11
|
+
# segmento_p_posicao_024_a_057
|
12
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
13
|
+
# ---------------------------------------------------------
|
14
|
+
# Número da Conta Corrente 12 24 - 35
|
15
|
+
# DV da Conta 01 36 - 36
|
16
|
+
# DV da Ag/Conta (Branco) 01 37 - 37
|
17
|
+
# Número Doc. 11 38 - 48
|
18
|
+
# Nosso Número 01 49 - 49
|
19
|
+
# Brancos 08 50 - 57
|
20
|
+
#
|
21
|
+
# TOTAL = 34 posições
|
22
|
+
def complemento_p(pagamento)
|
23
|
+
complemento = ''
|
24
|
+
complemento << "#{conta.conta_corrente}".adjust_size_to(12, '0', :right)
|
25
|
+
complemento << "#{conta.conta_corrente_dv}".adjust_size_to(1)
|
26
|
+
complemento << ''.adjust_size_to(1)
|
27
|
+
complemento << "#{pagamento.numero_documento}".adjust_size_to(11, '0', :right)
|
28
|
+
complemento << "#{pagamento.nosso_numero}".split('').last
|
29
|
+
complemento << ''.adjust_size_to(8)
|
30
|
+
complemento.adjust_size_to(34)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Por padrão o UNICRED não utiliza o Segmento S
|
34
|
+
def usa_segmento_S?
|
35
|
+
false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|