br_boleto 2.0.1 → 2.1.0
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/.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
|