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,276 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Remessa
|
4
|
+
module Cnab400
|
5
|
+
class Sicredi < BrBoleto::Remessa::Cnab400::Base
|
6
|
+
def conta_class
|
7
|
+
BrBoleto::Conta::Sicredi
|
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
|
+
# Informações da conta <- Específico para cada banco
|
20
|
+
def informacoes_da_conta(local)
|
21
|
+
|
22
|
+
# Detalhe Posição: 017 até 037
|
23
|
+
if local == :detalhe
|
24
|
+
# POSIÇÂO TAM. Descrição
|
25
|
+
# 017 a 017 001 Tipo de moeda ( “A” – Real )
|
26
|
+
# 018 a 018 001 Tipo de desconto ( “B” – Percentual )
|
27
|
+
# 019 a 019 001 Tipo de juros ( “B” – Percentual )
|
28
|
+
# 020 a 037 018 Branco
|
29
|
+
info = 'ABB'
|
30
|
+
info << ''.adjust_size_to(18)
|
31
|
+
|
32
|
+
# Header Posição: 027 até 046
|
33
|
+
elsif local == :header
|
34
|
+
# POSIÇÂO TAM. Descrição
|
35
|
+
# 027 a 031 005 Contas Corrente
|
36
|
+
# 032 a 045 014 CPF/CNPJ
|
37
|
+
# 046 a 046 001 Branco
|
38
|
+
info = ''
|
39
|
+
info << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right)
|
40
|
+
info << "#{conta.cpf_cnpj}".adjust_size_to(14, '0', :right)
|
41
|
+
info << ''.adjust_size_to(1)
|
42
|
+
info
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Nome do cedente
|
47
|
+
# Deixar em Brancos (sem preenchimento)
|
48
|
+
# Tamanho: 030
|
49
|
+
def header_posicao_047_a_076
|
50
|
+
''.adjust_size_to(30)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Data de Gravação
|
54
|
+
# Formato da data = AAAAMMDD
|
55
|
+
# Tamanho: 008
|
56
|
+
def header_posicao_095_a_102
|
57
|
+
data_geracao('%Y%m%d')
|
58
|
+
end
|
59
|
+
def header_posicao_095_a_100
|
60
|
+
header_posicao_095_a_102
|
61
|
+
end
|
62
|
+
|
63
|
+
# Complemento do registro
|
64
|
+
# Posição 103 até 394
|
65
|
+
# POSIÇÂO TAM. Descrição
|
66
|
+
#-----------------------------------------------
|
67
|
+
# 103 a 110 008 Brancos
|
68
|
+
# 111 a 117 007 Número da remessa
|
69
|
+
# 118 a 390 273 Brancos
|
70
|
+
# 391 a 394 004 Versão do sistema (2.00)
|
71
|
+
#
|
72
|
+
# Tamanho: 292
|
73
|
+
def header_posicao_101_a_394
|
74
|
+
header_posicao_103_a_394
|
75
|
+
end
|
76
|
+
def header_posicao_103_a_394
|
77
|
+
info = ''.adjust_size_to(8)
|
78
|
+
info << "#{sequencial_remessa}".adjust_size_to(7, '0', :right)
|
79
|
+
info << ''.adjust_size_to(273)
|
80
|
+
info << '2.00'
|
81
|
+
info
|
82
|
+
end
|
83
|
+
|
84
|
+
############################ DETALHE ########################################
|
85
|
+
|
86
|
+
# Detalhe Posição 002 a 004
|
87
|
+
# POSIÇÂO TAM. Descrição
|
88
|
+
#-----------------------------------------------
|
89
|
+
# 002 a 002 001 Tipo de cobrança (“A” - Sicredi Com Registro)
|
90
|
+
# 003 a 003 001 Tipo de carteira (“A” – Simples)
|
91
|
+
# 004 a 004 001 Tipo de Impressão ("A” – Normal)
|
92
|
+
#
|
93
|
+
# Tamanho: 003
|
94
|
+
def detalhe_posicao_002_004(pagamento)
|
95
|
+
detalhe = ''
|
96
|
+
detalhe << "#{conta.get_tipo_cobranca(conta.carteira, 400)}".adjust_size_to(1, 'A')
|
97
|
+
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
|
+
detalhe
|
100
|
+
end
|
101
|
+
def detalhe_posicao_002_003(pagamento)
|
102
|
+
detalhe_posicao_002_004(pagamento)
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
# Detalhe Posição 005 a 016
|
107
|
+
# POSIÇÂO TAM. Descrição
|
108
|
+
#-----------------------------------------------
|
109
|
+
# 005 a 016 012 Deixar em Branco
|
110
|
+
#
|
111
|
+
# Tamanho: 012
|
112
|
+
def detalhe_posicao_005_016
|
113
|
+
detalhe = ''.adjust_size_to(12)
|
114
|
+
end
|
115
|
+
def detalhe_posicao_004_017
|
116
|
+
detalhe_posicao_005_016
|
117
|
+
end
|
118
|
+
|
119
|
+
# Detalhe Posição 038 a 062
|
120
|
+
#-----------------------------------------------
|
121
|
+
# POSIÇÂO TAM. Descrição
|
122
|
+
# 038 a 047 010 Deixar em Branco
|
123
|
+
# 048 a 056 009 Nosso número Sicredi
|
124
|
+
# 057 a 062 006 Deixar em Branco
|
125
|
+
#
|
126
|
+
# Tamanho: 25
|
127
|
+
def detalhe_posicao_038_062(pagamento)
|
128
|
+
detalhe = "".adjust_size_to(10)
|
129
|
+
detalhe << "#{pagamento.nosso_numero}".adjust_size_to(9, '0', :right)
|
130
|
+
detalhe << "".adjust_size_to(6)
|
131
|
+
detalhe
|
132
|
+
end
|
133
|
+
|
134
|
+
# Detalhe Posição 063 a 108
|
135
|
+
# POSIÇÂO TAM. Descrição
|
136
|
+
#-----------------------------------------------
|
137
|
+
# 063 a 070 008 Data da Instrução
|
138
|
+
# 071 a 071 001 Campo alterado ( Branco )
|
139
|
+
# 072 a 072 001 Postagem do título ( “N” - Não postar e remeter o título para o beneficiário )
|
140
|
+
# 073 a 073 001 Branco
|
141
|
+
# 074 a 074 001 Emissão do boleto
|
142
|
+
# 075 a 076 002 Número da parcela do carnê
|
143
|
+
# 077 a 078 002 Número Total de parcelas do carnê
|
144
|
+
# 079 a 082 004 Brancos
|
145
|
+
# 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)
|
147
|
+
# 097 a 108 012 Brancos
|
148
|
+
#
|
149
|
+
# Tamanho: 46
|
150
|
+
def detalhe_posicao_063_076(pagamento, sequencial)
|
151
|
+
detalhe_posicao_063_108(pagamento)
|
152
|
+
end
|
153
|
+
def detalhe_posicao_077_108(pagamento, sequencial)
|
154
|
+
''
|
155
|
+
end
|
156
|
+
def detalhe_posicao_063_108(pagamento)
|
157
|
+
dados = ''
|
158
|
+
dados << "#{pagamento.data_emissao_formatado('%Y%m%d')}"
|
159
|
+
dados << ''.adjust_size_to(1)
|
160
|
+
dados << 'N'
|
161
|
+
dados << ''.adjust_size_to(1)
|
162
|
+
dados << "#{conta.get_identificacao_emissao(pagamento.emissao_boleto, 400)}".adjust_size_to(1, 'A')
|
163
|
+
dados << ''.adjust_size_to(2)
|
164
|
+
dados << ''.adjust_size_to(2)
|
165
|
+
dados << ''.adjust_size_to(4)
|
166
|
+
dados << ''.adjust_size_to(10, '0')
|
167
|
+
dados << ''.adjust_size_to(4, '0')
|
168
|
+
dados << ''.adjust_size_to(12)
|
169
|
+
dados
|
170
|
+
end
|
171
|
+
|
172
|
+
# Informações referente ao pagamento
|
173
|
+
# POSIÇÂO TAM. Descrição
|
174
|
+
#-----------------------------------------------
|
175
|
+
# 121 a 126 006 Data do Vencimento do Título
|
176
|
+
# 127 a 139 013 Valor do Título
|
177
|
+
# 140 a 148 009 Brancos
|
178
|
+
# 149 a 149 001 Espécie de Título
|
179
|
+
# 150 a 150 001 Identificação (Sempre 'N')
|
180
|
+
# 151 a 156 006 Data da emissão do Título
|
181
|
+
# 157 a 158 002 1a instrução
|
182
|
+
# 159 a 160 002 2a instrução
|
183
|
+
#
|
184
|
+
# Tamanho: 40
|
185
|
+
def informacoes_do_pagamento(pagamento, sequencial)
|
186
|
+
info = ''
|
187
|
+
info << pagamento.data_vencimento_formatado('%d%m%y')
|
188
|
+
info << pagamento.valor_documento_formatado(13)
|
189
|
+
info << ''.adjust_size_to(9)
|
190
|
+
info << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(1, '0', :right)
|
191
|
+
info << 'N'
|
192
|
+
info << pagamento.data_emissao_formatado('%d%m%y')
|
193
|
+
info << ''.adjust_size_to(2,'0', :right) # 1a Instrução
|
194
|
+
info << ''.adjust_size_to(2,'0', :right) # 2a Instrução
|
195
|
+
info
|
196
|
+
end
|
197
|
+
|
198
|
+
# Informações referente aos juros e multas do pagamento
|
199
|
+
# Posição: 161 a 218
|
200
|
+
# POSIÇÂO TAM. Descrição
|
201
|
+
# 161 a 173 013 Valor a ser cobrado por Dia de Atraso
|
202
|
+
# 174 a 179 006 Data Limite P/Concessão de Desconto
|
203
|
+
# 180 a 192 013 Valor do Desconto
|
204
|
+
# 193 a 205 013 Valor do IOF (Preencher com Zeros)
|
205
|
+
# 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado
|
206
|
+
# Tamanho: 58
|
207
|
+
def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
|
208
|
+
detalhe = ''
|
209
|
+
detalhe << "#{pagamento.valor_mora_formatado}".adjust_size_to(13,'0', :right )
|
210
|
+
detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right )
|
211
|
+
detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right )
|
212
|
+
detalhe << ''.adjust_size_to(13,'0')
|
213
|
+
detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right )
|
214
|
+
detalhe
|
215
|
+
end
|
216
|
+
|
217
|
+
# Informações referente aos dados do sacado/pagador
|
218
|
+
# Posição: 219 a 394
|
219
|
+
# POSIÇÂO TAM. Descrição
|
220
|
+
# 219 a 219 001 Identificação do Tipo de Inscrição do Pagador
|
221
|
+
# 220 a 220 001 Zero
|
222
|
+
# 221 a 234 014 No Inscrição do Pagador
|
223
|
+
# 235 a 274 040 Nome do Pagador
|
224
|
+
# 275 a 314 040 Endereço Completo
|
225
|
+
# 315 a 319 005 Código do Pagador na cooperativa beneficiária ( Preencher com zeros )
|
226
|
+
# 320 a 325 006 Preencher com zeros
|
227
|
+
# 326 a 326 001 Branco
|
228
|
+
# 332 a 334 003 Sufixo do CEP
|
229
|
+
# 335 a 339 005 Código do Pagador junto ao cliente (Preencher com Zeros)
|
230
|
+
# 340 a 353 014 CPF/CNPJ Sacador/Avalista ou 2a Mensagem
|
231
|
+
# 354 a 394 041 Nome Sacador/Avalista
|
232
|
+
# Tamanho: 176
|
233
|
+
def informacoes_do_sacado(pagamento, sequencial)
|
234
|
+
info = ''
|
235
|
+
info << "#{pagamento.pagador.tipo_cpf_cnpj}".last.adjust_size_to(1, '0', :right) # Tipo de Inscrição do Pagador
|
236
|
+
info << ''.adjust_size_to(1, '0')
|
237
|
+
info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right)
|
238
|
+
info << "#{pagamento.pagador.nome}".adjust_size_to(40)
|
239
|
+
info << "#{pagamento.pagador.endereco}".adjust_size_to(18) # Endereço Completo
|
240
|
+
info << "#{pagamento.pagador.bairro}".adjust_size_to(10) # Endereço Completo
|
241
|
+
info << "#{pagamento.pagador.cidade}".adjust_size_to(10) # Endereço Completo
|
242
|
+
info << "#{pagamento.pagador.uf}".adjust_size_to(2) # Endereço Completo
|
243
|
+
info << ''.adjust_size_to(5, '0') # Código do Pagador na cooperativa
|
244
|
+
info << ''.adjust_size_to(6, '0') # Preencher com zeros
|
245
|
+
info << ''.adjust_size_to(1) # Preencher com Espaço em Branco
|
246
|
+
info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP
|
247
|
+
info << ''.adjust_size_to(5, '0') # Código do Pagador
|
248
|
+
info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(14, '0', :right) # Sacador/Avalista (CPF/CNPJ)
|
249
|
+
info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(41) # Sacador/Avalista (Nome)
|
250
|
+
info
|
251
|
+
end
|
252
|
+
|
253
|
+
############################ TRAILER #######################################
|
254
|
+
|
255
|
+
# Detalhe Posição 002 a 0349
|
256
|
+
# POSIÇÂO TAM. Descrição
|
257
|
+
#-----------------------------------------------
|
258
|
+
# 002 a 002 001 Identificação do arquivo remessa
|
259
|
+
# 003 a 005 003 Número do Sicredi (748)
|
260
|
+
# 006 a 010 005 Código do beneficiário
|
261
|
+
# 011 a 394 384 Bracos
|
262
|
+
#
|
263
|
+
# Tamanho: 393
|
264
|
+
def trailer_arquivo_posicao_002_a_394(sequencial)
|
265
|
+
dados = ''
|
266
|
+
dados << '1' # Identificação do arquivo remessa
|
267
|
+
dados << "#{conta.codigo_banco}".adjust_size_to(3, '0', :right) # Número do Sicredi
|
268
|
+
dados << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right) # Código do beneficiário
|
269
|
+
dados << ''.adjust_size_to(384)
|
270
|
+
dados
|
271
|
+
end
|
272
|
+
|
273
|
+
end
|
274
|
+
end
|
275
|
+
end
|
276
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Remessa
|
4
|
+
module Cnab400
|
5
|
+
# A Unicred (CobExpress) utiliza o layout de boleto e os arquivos de remessa/retorno disponibilizados pelo Banco Bradesco.
|
6
|
+
class Unicred < BrBoleto::Remessa::Cnab400::Bradesco
|
7
|
+
def conta_class
|
8
|
+
BrBoleto::Conta::Unicred
|
9
|
+
end
|
10
|
+
|
11
|
+
# detalhe_posicao_038_062
|
12
|
+
# Numero de controle do participante
|
13
|
+
# DESCRIÇÃO TAMANHO POSIÇÃO
|
14
|
+
# ---------------------------------------------------------
|
15
|
+
# Brancos 14 38 - 51
|
16
|
+
# Numero Doc. 11 52 - 62
|
17
|
+
#
|
18
|
+
# TOTAL = 25 posições
|
19
|
+
def detalhe_posicao_038_062(pagamento)
|
20
|
+
detalhe = ''.adjust_size_to(14)
|
21
|
+
detalhe << "#{pagamento.numero_documento}".adjust_size_to(11, '0', :right)
|
22
|
+
detalhe
|
23
|
+
end
|
24
|
+
|
25
|
+
# Informações referente aos dados do sacado/pagador
|
26
|
+
# Posição: 219 a 394
|
27
|
+
# POSIÇÂO TAM. Descrição
|
28
|
+
# 219 a 220 002 Identificação do Tipo de Inscrição do Pagador
|
29
|
+
# 221 a 234 014 No Inscrição do Pagador
|
30
|
+
# 235 a 274 040 Nome do Pagador
|
31
|
+
# 275 a 314 040 Endereço
|
32
|
+
# 315 a 326 012 1a Mensagem
|
33
|
+
# 327 a 331 005 CEP
|
34
|
+
# 332 a 334 003 Sufixo do CEP
|
35
|
+
# 335 a 394 060 Sacador/Avalista ou 2a Mensagem
|
36
|
+
#------------------------------------------------------------------------------
|
37
|
+
# OBS: Como a impressão é realizada no CobExpress,
|
38
|
+
# então as posições 335 a 394 seguem o seguinte formato:
|
39
|
+
# 335 a 349 015 Inscrição do Sacador/Avalista (CPF/CNPJ)
|
40
|
+
# 350 a 351 002 Brancos
|
41
|
+
# 352 a 394 043 Nome Sacador/Avalista
|
42
|
+
#
|
43
|
+
# Tamanho: 176
|
44
|
+
def informacoes_do_sacado(pagamento, sequencial)
|
45
|
+
info = ''
|
46
|
+
# Tipo de Inscrição do Pagador: "01" = CPF , "02" = CNPJ , "03" = PIS/PASEP , "98" = Não tem , "99" = Outros
|
47
|
+
info << "#{pagamento.pagador.tipo_cpf_cnpj}".adjust_size_to(2, '0', :right)
|
48
|
+
info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right)
|
49
|
+
info << "#{pagamento.pagador.nome}".adjust_size_to(40)
|
50
|
+
info << "#{pagamento.pagador.endereco}".adjust_size_to(40) # Endereço
|
51
|
+
info << ''.adjust_size_to(12) # 1a Mensagem
|
52
|
+
info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP
|
53
|
+
info << "#{pagamento.pagador.documento_avalista}".rjust(15) # Sacador/Avalista (CPF/CNPJ)
|
54
|
+
info << ''.adjust_size_to(2) # Brancos
|
55
|
+
info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(43) # Sacador/Avalista (Nome)
|
56
|
+
info
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -7,6 +7,8 @@ module BrBoleto
|
|
7
7
|
# CNAB: 240 e 400
|
8
8
|
include BrBoleto::HavePagador
|
9
9
|
|
10
|
+
include BrBoleto::Helper::DefaultCodes
|
11
|
+
|
10
12
|
# <b>REQUERIDO</b>: nosso numero
|
11
13
|
# CNAB: 240 e 400
|
12
14
|
attr_accessor :nosso_numero
|
@@ -111,51 +113,83 @@ module BrBoleto
|
|
111
113
|
# Comando/Identificação da cobrança/Movimento
|
112
114
|
# Default: '01'
|
113
115
|
# Exemplos de valores
|
114
|
-
#
|
115
|
-
#
|
116
|
-
#
|
117
|
-
#
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
121
|
-
#
|
122
|
-
#
|
123
|
-
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
#
|
127
|
-
#
|
128
|
-
#
|
129
|
-
#
|
130
|
-
#
|
131
|
-
#
|
132
|
-
#
|
133
|
-
#
|
134
|
-
#
|
135
|
-
#
|
136
|
-
#
|
137
|
-
#
|
116
|
+
# 01 = Entrada de Títulos
|
117
|
+
# 02 = Pedido de Baixa
|
118
|
+
# 03 = Protesto para Fins Falimentares
|
119
|
+
# 04 = Concessão de Abatimento
|
120
|
+
# 05 = Cancelamento de Abatimento
|
121
|
+
# 06 = Alteração de Vencimento
|
122
|
+
# 07 = Concessão de Desconto
|
123
|
+
# 08 = Cancelamento de Desconto
|
124
|
+
# 09 = Pedido de protesto (Protestar)
|
125
|
+
# 10 = Sustar Protesto e Baixar Título
|
126
|
+
# 11 = Sustar Protesto e Manter em Carteira
|
127
|
+
# 12 = Alteração de Juros de Mora
|
128
|
+
# 13 = Dispensar Cobrança de Juros de Mora
|
129
|
+
# 14 = Alteração de Valor/Percentual de Multa
|
130
|
+
# 15 = Dispensar Cobrança de Multa
|
131
|
+
# 16 = Alteração do Valor de Desconto
|
132
|
+
# 17 = Não conceder Desconto
|
133
|
+
# 18 = Alteração do Valor de Abatimento
|
134
|
+
# 19 = Prazo Limite de Recebimento – Alterar
|
135
|
+
# 20 = Prazo Limite de Recebimento – Dispensar
|
136
|
+
# 21 = Alterar número do título dado pelo beneficiario (nosso número)
|
137
|
+
# 22 = Alterar número controle do Participante (seu número / número documento)
|
138
|
+
# 23 = Alterar dados do Pagador
|
139
|
+
# 24 = Alterar dados do Sacador/Avalista
|
140
|
+
# 30 = Recusa da Alegação do Pagador
|
141
|
+
# 31 = Alteração de Outros Dados
|
142
|
+
# 33 = Alteração dos Dados do Rateio de Crédito
|
143
|
+
# 34 = Pedido de Cancelamento dos Dados do Rateio de Crédito
|
144
|
+
# 35 = Pedido de Desagendamento do Débito Automático
|
145
|
+
# 40 = Alteração de Carteira
|
146
|
+
# 41 = Cancelar protesto
|
147
|
+
# 42 = Alteração de Espécie de Título
|
148
|
+
# 43 = Transferência de carteira/modalidade de cobrança
|
149
|
+
# 44 = Alteração de contrato de cobrança
|
150
|
+
# 45 = Negativação Sem Protesto
|
151
|
+
# 46 = Solicitação de Baixa de Título Negativado Sem Protesto
|
152
|
+
# 47 = Alteração do Valor Nominal do Título
|
153
|
+
# 48 = Alteração do Valor Mínimo/ Percentual
|
154
|
+
# 49 = Alteração do Valor Máximo/Percentua
|
155
|
+
# CNAB: 240 e 400
|
138
156
|
attr_accessor :identificacao_ocorrencia
|
139
157
|
|
140
158
|
# Espécie do Título:
|
141
159
|
# Default: 01
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
160
|
+
# 01 = Cheque
|
161
|
+
# 02 = Duplicata Mercantil
|
162
|
+
# 03 = Duplicata Mercantil p/ Indicação
|
163
|
+
# 04 = Duplicata de Serviço
|
164
|
+
# 05 = Duplicata de Serviço p/ Indicação
|
165
|
+
# 06 = Duplicata Rural
|
166
|
+
# 07 = Letra de Câmbio
|
167
|
+
# 08 = Nota de Crédito Comercial
|
168
|
+
# 09 = Nota de Crédito a Exportação
|
169
|
+
# 10 = Nota de Crédito Industrial
|
170
|
+
# 11 = Nota de Crédito Rural
|
171
|
+
# 12 = Nota Promissória
|
172
|
+
# 13 = Nota Promissória Rural
|
173
|
+
# 14 = Triplicata Mercantil
|
174
|
+
# 15 = Triplicata de Serviço
|
175
|
+
# 16 = Nota de Seguro
|
176
|
+
# 17 = Recibo
|
177
|
+
# 18 = Fatura
|
178
|
+
# 19 = Nota de Débito
|
179
|
+
# 20 = Apólice de Seguro
|
180
|
+
# 21 = Mensalidade Escolar
|
181
|
+
# 22 = Parcela de Consórcio
|
182
|
+
# 23 = Nota Fiscal
|
183
|
+
# 24 = Documento de Dívida
|
184
|
+
# 25 = Cédula de Produto Rural
|
185
|
+
# 26 = Warrant
|
186
|
+
# 27 = Dívida Ativa de Estado
|
187
|
+
# 28 = Dívida Ativa de Município
|
188
|
+
# 29 = Dívida Ativa da União
|
189
|
+
# 30 = Encargos condominiais
|
190
|
+
# 31 = Cartão de Crédito
|
191
|
+
# 32 = Boleto de Proposta
|
192
|
+
# 99 = Outros
|
159
193
|
# CNAB: 240 e 400
|
160
194
|
attr_accessor :especie_titulo
|
161
195
|
|
@@ -202,6 +236,20 @@ module BrBoleto
|
|
202
236
|
# ‘4’ = Banco envia SMS
|
203
237
|
attr_accessor :distribuicao_boleto
|
204
238
|
|
239
|
+
# Código para Protesto
|
240
|
+
# Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.
|
241
|
+
# '1' = Protestar Dias Corridos
|
242
|
+
# '2' = Protestar Dias Úteis
|
243
|
+
# '3' = Não Protestar
|
244
|
+
# '4' = Protestar Fim Falimentar - Dias Úteis
|
245
|
+
# '5' = Protestar Fim Falimentar - Dias Corridos
|
246
|
+
# '8' = Negativação sem Protesto
|
247
|
+
# '9' = Cancelamento Protesto Automático (somente válido p/ Código Movimento Remessa = '31')
|
248
|
+
attr_accessor :codigo_protesto
|
249
|
+
|
250
|
+
# Dias para protestar
|
251
|
+
attr_accessor :dias_protesto
|
252
|
+
|
205
253
|
######################## VALIDAÇÕES PERSONALIZADAS ########################
|
206
254
|
attr_accessor :valid_tipo_impressao_required
|
207
255
|
validates :tipo_impressao, presence: true, if: :valid_tipo_impressao_required
|
@@ -258,8 +306,10 @@ module BrBoleto
|
|
258
306
|
especie_titulo: '01',
|
259
307
|
codigo_moeda: '9',
|
260
308
|
forma_cadastramento: '0',
|
261
|
-
emissao_boleto: '2',
|
262
|
-
distribuicao_boleto: '2',
|
309
|
+
emissao_boleto: '2', # Cliente Emite
|
310
|
+
distribuicao_boleto: '2', # Cliente Distribui
|
311
|
+
codigo_protesto: '3', # Não protestar
|
312
|
+
dias_protesto: '03', # Dias para Protesto
|
263
313
|
}
|
264
314
|
end
|
265
315
|
|
@@ -51,10 +51,11 @@ module BrBoleto
|
|
51
51
|
|
52
52
|
def segmento_t_fields #:doc:
|
53
53
|
{ # ATRIBUTO POSIÇÃO DA LINHA
|
54
|
+
codigo_movimento_retorno: 16..17,
|
54
55
|
agencia_com_dv: 18..23,
|
55
56
|
agencia_sem_dv: 18..22,
|
56
|
-
|
57
|
-
|
57
|
+
numero_conta: 24..35,
|
58
|
+
numero_conta_dv: 36,
|
58
59
|
dv_conta_e_agencia: 37..37,
|
59
60
|
nosso_numero: 38..57,
|
60
61
|
carteira: 58..58,
|
@@ -82,16 +83,16 @@ module BrBoleto
|
|
82
83
|
valor_iof: 63..77,
|
83
84
|
valor_pago: 78..92,
|
84
85
|
valor_liquido: 93..107,
|
85
|
-
valor_outras_despesas:
|
86
|
-
valor_outros_creditos:
|
87
|
-
data_ocorrencia:
|
88
|
-
data_credito:
|
89
|
-
codigo_ocorrencia_sacado:
|
90
|
-
data_ocorrencia_sacado:
|
91
|
-
valor_ocorrencia_sacado:
|
92
|
-
complemento_ocorrencia_sacado:
|
93
|
-
codigo_ocorrencia_banco_correspondente:
|
94
|
-
nosso_numero_banco_correspondente:
|
86
|
+
valor_outras_despesas: 108..122,
|
87
|
+
valor_outros_creditos: 123..137,
|
88
|
+
data_ocorrencia: 138..145,
|
89
|
+
data_credito: 146..153,
|
90
|
+
codigo_ocorrencia_sacado: 154..157,
|
91
|
+
data_ocorrencia_sacado: 158..165,
|
92
|
+
valor_ocorrencia_sacado: 166..180,
|
93
|
+
complemento_ocorrencia_sacado: 181..210,
|
94
|
+
codigo_ocorrencia_banco_correspondente: 211..213,
|
95
|
+
nosso_numero_banco_correspondente: 214..233,
|
95
96
|
}
|
96
97
|
end
|
97
98
|
|
@@ -15,12 +15,11 @@ module BrBoleto
|
|
15
15
|
def segmento_t_fields #:doc:
|
16
16
|
super.merge({
|
17
17
|
# ATRIBUTO POSIÇÃO DA LINHA
|
18
|
-
|
19
|
-
|
18
|
+
numero_conta_dv: '',
|
19
|
+
numero_conta: 24..29, # Código do cedente
|
20
20
|
dv_conta_e_agencia: 250, # Defino como 250 para setar nil ao atributo
|
21
21
|
modalidade: 40..41,
|
22
22
|
nosso_numero: 42..56,
|
23
|
-
# carteira: 58..58, # Cartéira segue o padrão da FEBRABAN
|
24
23
|
numero_documento: 59..69,
|
25
24
|
})
|
26
25
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Retorno
|
4
|
+
module Cnab240
|
5
|
+
class Itau < BrBoleto::Retorno::Cnab240::Base
|
6
|
+
|
7
|
+
|
8
|
+
def segmento_t_fields #:doc:
|
9
|
+
super.merge({
|
10
|
+
# ATRIBUTO POSIÇÃO DA LINHA
|
11
|
+
#agencia_com_dv: 19..23, # ITAU não utiliza o DV da agencia
|
12
|
+
agencia_sem_dv: 19..22,
|
13
|
+
numero_conta_dv: 37,
|
14
|
+
numero_conta: 31..35,
|
15
|
+
dv_conta_e_agencia: 36,
|
16
|
+
carteira: 38..40,
|
17
|
+
numero_documento: 41..48,
|
18
|
+
})
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module BrBoleto
|
3
|
+
module Retorno
|
4
|
+
module Cnab240
|
5
|
+
class Unicred < BrBoleto::Retorno::Cnab240::Bradesco
|
6
|
+
# A Unicred (através do CobExpress) utiliza e o layout de boleto os arquivos de remessa/retorno disponibilizados pelo Banco Bradesco.
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|