br_boleto 2.2.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -98,111 +98,238 @@ module BrBoleto
|
|
98
98
|
%w(101 121)
|
99
99
|
end
|
100
100
|
|
101
|
-
|
102
|
-
def equivalent_especie_titulo_240
|
103
|
-
# Padrão Código para Descrição
|
104
|
-
{# da GEM o Banco
|
105
|
-
'02' => '02' , # DM - DUPLICATA MERCANTIL
|
106
|
-
'04' => '04' , # DS - DUPLICATA DE SERVICO
|
107
|
-
'07' => '07' , # LC - LETRA DE CÂMBIO
|
108
|
-
'12' => '12' , # NP - NOTA PROMISSORIA
|
109
|
-
'13' => '13' , # NR - NOTA PROMISSORIA RURAL
|
110
|
-
'17' => '17' , # RC - RECIBO
|
111
|
-
'20' => '20' , # AP - APOLICE DE SEGURO
|
112
|
-
'01' => '97' , # CH - CHEQUE
|
113
|
-
'98' => '98' , # NPD - NOTA PROMISSORIA DIRETA
|
114
|
-
}
|
115
|
-
end
|
116
|
-
def equivalent_especie_titulo_400
|
117
|
-
# Padrão Código para Descrição
|
118
|
-
{# da GEM o Banco
|
119
|
-
'02' => '01' , # DM - DUPLICATA MERCANTIL
|
120
|
-
'04' => '06' , # DS - DUPLICATA DE SERVICO
|
121
|
-
'07' => '07' , # LC - LETRA DE CÂMBIO
|
122
|
-
'12' => '02' , # NP - NOTA PROMISSORIA
|
123
|
-
'17' => '05' , # RC - RECIBO
|
124
|
-
'20' => '03' , # AP - APOLICE DE SEGURO
|
125
|
-
}
|
126
|
-
end
|
101
|
+
################################# DEFAULT CODES ###############################################
|
127
102
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
103
|
+
# Espécie do Título :
|
104
|
+
def equivalent_especie_titulo_240
|
105
|
+
# Padrão Código para Descrição
|
106
|
+
{# da GEM o Banco
|
107
|
+
'02' => '02' , # DM - DUPLICATA MERCANTIL
|
108
|
+
'04' => '04' , # DS - DUPLICATA DE SERVICO
|
109
|
+
'07' => '07' , # LC - LETRA DE CÂMBIO
|
110
|
+
'12' => '12' , # NP - NOTA PROMISSORIA
|
111
|
+
'13' => '13' , # NR - NOTA PROMISSORIA RURAL
|
112
|
+
'17' => '17' , # RC - RECIBO
|
113
|
+
'20' => '20' , # AP - APOLICE DE SEGURO
|
114
|
+
'01' => '97' , # CH - CHEQUE
|
115
|
+
'98' => '98' , # NPD - NOTA PROMISSORIA DIRETA
|
116
|
+
}
|
117
|
+
end
|
118
|
+
def equivalent_especie_titulo_400
|
119
|
+
# Padrão Código para Descrição
|
120
|
+
{# da GEM o Banco
|
121
|
+
'02' => '01' , # DM - DUPLICATA MERCANTIL
|
122
|
+
'04' => '06' , # DS - DUPLICATA DE SERVICO
|
123
|
+
'07' => '07' , # LC - LETRA DE CÂMBIO
|
124
|
+
'12' => '02' , # NP - NOTA PROMISSORIA
|
125
|
+
'17' => '05' , # RC - RECIBO
|
126
|
+
'20' => '03' , # AP - APOLICE DE SEGURO
|
127
|
+
}
|
128
|
+
end
|
147
129
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
130
|
+
# Código Movimento da Remessa CNAB240
|
131
|
+
def equivalent_codigo_movimento_remessa_240
|
132
|
+
# Padrão Código para Descrição
|
133
|
+
{# da GEM o Banco
|
134
|
+
'01' => '01' , # Entrada de título
|
135
|
+
'02' => '02' , # Pedido de baixa
|
136
|
+
'04' => '04' , # Concessão de abatimento
|
137
|
+
'05' => '05' , # Cancelamento de abatimento
|
138
|
+
'06' => '06' , # Alteração de vencimento
|
139
|
+
'07' => '10' , # Concessão de Desconto
|
140
|
+
'08' => '11' , # Cancelamento de desconto
|
141
|
+
'09' => '09' , # Pedido de Protesto
|
142
|
+
'10' => '18' , # Pedido de Sustação de Protesto
|
143
|
+
'21' => '07' , # Alteração da identificação do título na empresa
|
144
|
+
'22' => '08' , # Alteração seu número
|
145
|
+
'31' => '31' , # Alteração de outros dados
|
146
|
+
'41' => '98' , # Não Protestar
|
147
|
+
}
|
148
|
+
end
|
164
149
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
150
|
+
# Código Movimento da Remessa CNAB400
|
151
|
+
def equivalent_codigo_movimento_remessa_400
|
152
|
+
# Padrão Código para Descrição
|
153
|
+
{# da GEM o Banco
|
154
|
+
'01' => '01' , # Entrada de título
|
155
|
+
'02' => '02' , # Pedido de baixa
|
156
|
+
'04' => '04' , # Concessão de abatimento
|
157
|
+
'05' => '05' , # Cancelamento de abatimento
|
158
|
+
'06' => '06' , # Alteração de vencimento
|
159
|
+
'21' => '07' , # Alteração da identificação do título na empresa
|
160
|
+
'22' => '08' , # Alteração seu número
|
161
|
+
'09' => '09' , # Pedido de Protesto
|
162
|
+
'10' => '18' , # Sustar Protesto e Baixar Título
|
163
|
+
'11' => '18' , # Sustar Protesto e Manter em Carteira
|
164
|
+
}
|
165
|
+
end
|
177
166
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
167
|
+
# Código de Multa
|
168
|
+
def equivalent_codigo_multa
|
169
|
+
# Padrão Código para Descrição
|
170
|
+
{# da GEM o Banco
|
171
|
+
'1' => '4', # Com Multa
|
172
|
+
'2' => '4', # Com Multa
|
173
|
+
'3' => '0', # Sem Multa (Isento)
|
174
|
+
}
|
175
|
+
end
|
176
|
+
def default_codigo_multa
|
177
|
+
'0'
|
178
|
+
end
|
190
179
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
180
|
+
# Código da Carteira
|
181
|
+
def equivalent_tipo_cobranca_240
|
182
|
+
super.merge({
|
183
|
+
# Padrão Código para
|
184
|
+
# da GEM o Banco
|
185
|
+
'1' => '5', # Cobrança Simples (Rápida com Registro)
|
186
|
+
'3' => '3', # Cobrança Caucionada (Eletrônica com Registro e Convencional com Registro)
|
187
|
+
'4' => '4', # Cobrança Descontada (Eletrônica com Registro)
|
188
|
+
'6' => '6', # Cobrança Caucionada (Rápida com Registro)
|
189
|
+
'7' => '1', # Cobrança Simples (Sem Registro / Eletrônica com Registro)
|
190
|
+
})
|
191
|
+
end
|
192
|
+
def equivalent_tipo_cobranca_400
|
193
|
+
super.merge({
|
194
|
+
# Padrão Código para
|
195
|
+
# da GEM o Banco
|
196
|
+
'7' => '4', # Cobrança Sem Registro
|
197
|
+
'4' => '7', # Cobrança Descontada
|
198
|
+
})
|
199
|
+
end
|
195
200
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
201
|
+
# Código para Protesto
|
202
|
+
def equivalent_codigo_protesto_240
|
203
|
+
super.merge({
|
204
|
+
# Padrão Código para
|
205
|
+
# da GEM o Banco
|
206
|
+
'3' => '0', # Não Protestar
|
207
|
+
'99' => '3', # Utilizar perfil cedente
|
208
|
+
})
|
209
|
+
end
|
200
210
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
211
|
+
# Código da Moeda CNAB240
|
212
|
+
def equivalent_codigo_moeda_240
|
213
|
+
super.merge({'09' => '00' }) # 00 = Real
|
214
|
+
end
|
205
215
|
|
216
|
+
# Identificações de Ocorrência / Código de ocorrência:
|
217
|
+
def equivalent_codigo_movimento_retorno_400
|
218
|
+
super.merge(
|
219
|
+
# Padrão Código para
|
220
|
+
{# do Banco a GEM
|
221
|
+
'01' => '104', # título não existe
|
222
|
+
'07' => '102', # liquidação por conta
|
223
|
+
'08' => '103', # liquidação por saldo
|
224
|
+
'15' => '23', # Enviado para Cartório
|
225
|
+
'16' => '25' , # tít. já baixado/liquidado
|
226
|
+
'17' => '101', # liquidado em cartório
|
227
|
+
'21' => '23' , # Entrada em Cartório
|
228
|
+
'22' => '24' , # Retirado de cartório
|
229
|
+
'24' => '235', # Custas de Cartório
|
230
|
+
'25' => '19' , # Protestar Título
|
231
|
+
'26' => '20' , # Sustar Protestonhado a Protesto: Identifica o recebimento da instrução de protesto
|
232
|
+
})
|
233
|
+
end
|
234
|
+
|
235
|
+
# Código do Motivo da ocorrência :
|
236
|
+
def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
|
237
|
+
super.merge(
|
238
|
+
# Padrão Código para
|
239
|
+
{# do Banco a GEM
|
240
|
+
'001' => 'A08', # NOSSO NUMERO NAO NUMERICO
|
241
|
+
'002' => 'A33', # VALOR DO ABATIMENTO NAO NUMERICO
|
242
|
+
'003' => 'A16', # DATA VENCIMENTO NAO NUMERICA
|
243
|
+
'005' => 'A10', # CODIGO DA CARTEIRA NAO NUMERICO
|
244
|
+
'006' => 'A10', # CODIGO DA CARTEIRA INVALIDO
|
245
|
+
'007' => 'A21', # ESPECIE DO DOCUMENTO INVALIDA
|
246
|
+
'010' => 'A278', # CODIGO PRIMEIRA INSTRUCAO NAO NUMERICA
|
247
|
+
'011' => 'A280', # CODIGO SEGUNDA INSTRUCAO NAO NUMERICA
|
248
|
+
'013' => 'A20', # VALOR DO TITULO NAO NUMERICO
|
249
|
+
'014' => 'A27', # VALOR DE MORA NAO NUMERICO
|
250
|
+
'015' => 'A24', # DATA EMISSAO NAO NUMERICA
|
251
|
+
'016' => 'A16', # DATA DE VENCIMENTO INVALIDA
|
252
|
+
'017' => 'A61', # CODIGO DA AGENCIA COBRADORA NAO NUMERICA
|
253
|
+
'019' => 'A48', # NUMERO DO CEP NAO NUMERICO
|
254
|
+
'020' => 'A46', # TIPO INSCRICAO NAO NUMERICO
|
255
|
+
'021' => 'A46', # NUMERO DO CGC OU CPF NAO NUMERICO
|
256
|
+
'022' => 'A244', # CODIGO OCORRENCIA INVALIDO
|
257
|
+
'023' => 'A08', # NOSSO NUMERO INV.P/MODALIDADE
|
258
|
+
'025' => 'A28', # VALOR DESCONTO NAO NUMERICO
|
259
|
+
'029' => 'A27', # VALOR DE MORA INVALIDO
|
260
|
+
'030' => 'A256', # DT VENC MENOR DE 15 DIAS DA DT PROCES
|
261
|
+
'039' => 'A254', # PERFIL NAO ACEITA TITULO EM BCO CORRESP
|
262
|
+
'040' => 'A255', # COBR RAPIDA NAO ACEITA-SE BCO CORRESP
|
263
|
+
'042' => 'A07', # CONTA COBRANCA INVALIDA
|
264
|
+
'049' => 'A86', # SEU NUMERO NAO CONFERE COM O CARNE
|
265
|
+
'052' => 'A227', # OCOR. NAO ACATADA,TITULO LIOUIDADO
|
266
|
+
'053' => 'A227', # OCOR. NAO ACATADA, TITULO BAIXADO
|
267
|
+
'057' => 'A322', # CEP DO SACADO INCORRETO
|
268
|
+
'058' => 'A06', # CGC/CPF INCORRETO
|
269
|
+
'063' => 'A49', # CEP NAO ENCONTRADO NA TABELA DE PRACAS
|
270
|
+
'073' => 'A34', # ABATIMENTO MAIOR/IGUAL AO VALOR TITULO
|
271
|
+
'074' => 'A29', # PRIM. DESCONTO MAIOR/IGUAL VALOR TITULO
|
272
|
+
'075' => 'A29', # SEG. DESCONTO MAIOR/IGUAL VALOR TITULO
|
273
|
+
'076' => 'A29', # TERC. DESCONTO MAIOR/IGUAL VALOR TITULO
|
274
|
+
'086' => 'A80', # DATA SEGUNDO DESCONTO INVALIDA
|
275
|
+
'087' => 'A80', # DATA TERCEIRO DESCONTO INVALIDA
|
276
|
+
'091' => 'A31', # JA EXISTE CONCESSAO DE DESCONTO
|
277
|
+
'092' => 'A09', # NOSSO NUMERO JA CADASTRADO
|
278
|
+
'093' => 'A20', # VALOR DO TITULO NAO INFORMADO
|
279
|
+
'098' => 'A24', # DATA EMISSAO INVALIDA
|
280
|
+
'100' => 'A17', # DATA EMISSAO MAIOR OUE A DATA VENCIMENTO
|
281
|
+
'104' => 'A52', # UNIDADE DA FEDERACAO NAO INFORMADA
|
282
|
+
'106' => 'A06', # CGCICPF NAO INFORMADO
|
283
|
+
'107' => 'A52', # UNIDADE DA FEDERACAO INCORRETA 00108 DIGITO CGC/CPF INCORRETO
|
284
|
+
'110' => 'A80', # DATA PRIMEIRO DESCONTO INVALIDA
|
285
|
+
'111' => 'A80', # DATA DESCONTO NAO NUMERICA
|
286
|
+
'112' => 'A28', # VALOR DESCONTO NAO INFORMADO
|
287
|
+
'113' => 'A28', # VALOR DESCONTO INVALIDO
|
288
|
+
'114' => 'A33', # VALOR ABATIMENTO NAO INFORMADO
|
289
|
+
'115' => 'A34', # VALOR ABATIMENTO MAIOR VALOR TITULO
|
290
|
+
'116' => 'A58', # DATA MULTA NAO NUMERICA
|
291
|
+
'117' => 'A29', # VALOR DESCONTO MAIOR VALOR TITULO
|
292
|
+
'118' => 'A58', # DATA MULTA NAO INFORMADA
|
293
|
+
'120' => 'A59', # PERCENTUAL MULTA NAO NUMERICO
|
294
|
+
'121' => 'A59', # PERCENTUAL MULTA NAO INFORMADO
|
295
|
+
'122' => 'A32', # VALOR IOF MAIOR OUE VALOR TITULO
|
296
|
+
'123' => 'A322', # CEP DO SACADO NAO NUMERICO
|
297
|
+
'124' => 'A48', # CEP SACADO NAO ENCONTRADO
|
298
|
+
'129' => 'A21', # ESPEC DE DOCUMENTO NAO NUMERICA
|
299
|
+
'130' => 'A11', # FORMA DE CADASTRAMENTO NAO NUMERICA
|
300
|
+
'131' => 'A11', # FORMA DE CADASTRAMENTO INVALIDA
|
301
|
+
'132' => 'A11', # FORMA CADAST. 2 INVALIDA PARA CARTEIRA 3
|
302
|
+
'133' => 'A11', # FORMA CADAST. 2 INVALIDA PARA CARTEIRA 4
|
303
|
+
'134' => 'A05', # CODIGO DO MOV. REMESSA NAO NUMERICO
|
304
|
+
'135' => 'A05', # CODIGO DO MOV. REMESSA INVALIDO
|
305
|
+
'139' => 'A02', # TIPO DE REGISTRO INVALIDO
|
306
|
+
'140' => 'A03', # COD. SEOUEC.DO REG. DETALHE INVALIDO
|
307
|
+
'142' => 'A07', # NUM.AG.CEDENTE/DIG.NAO NUMERICO
|
308
|
+
'143' => 'A07', # NUM. CONTA CEDENTE/DIG. NAO NUMERICO
|
309
|
+
'144' => 'A12', # TIPO DE DOCUMENTO NAO NUMERICO
|
310
|
+
'145' => 'A12', # TIPO DE DOCUMENTO INVALIDO
|
311
|
+
'149' => 'A26', # CODIGO DE MORA INVALIDO
|
312
|
+
'150' => 'A26', # CODIGO DE MORA NAO NUMERICO
|
313
|
+
'151' => 'A27', # VL.MORA IGUAL A ZEROS P. COD.MORA 1
|
314
|
+
'152' => 'A27', # VL. TAXA MORA IGUAL A ZEROS P.COD MORA 2
|
315
|
+
'153' => 'A27', # VL. MORA DIFERENTE DE ZEROS P.COD.MORA 3
|
316
|
+
'154' => 'A27', # VL. MORA NAO NUMERICO P. COD MORA 2
|
317
|
+
'155' => 'A27', # VL. MORA INVALIDO P. COD.MORA 4
|
318
|
+
'160' => 'A319', # BAIRRO DO SACADO NAO INFORMADO
|
319
|
+
'161' => 'A53', # TIPO INSC.CPF/CGC SACADOR/AVAL.NAO NUM.
|
320
|
+
'170' => 'A11', # FORMA DE CADASTRAMENTO 2 INV.P.CART.5
|
321
|
+
'199' => 'A53', # TIPO INSC.CGC/CPF SACADOR.AVAL.INVAL.
|
322
|
+
'200' => 'A53', # NUM.INSC.(CGC)SACADOR/AVAL.NAO NUMERICO
|
323
|
+
'212' => 'A79', # DATA DO JUROS DE MORA NAO NUMERICO (D3P)
|
324
|
+
'242' => 'A57', # COD. DA MULTA NAO NUMERICO (D3R)
|
325
|
+
'243' => 'A57', # COD. MULTA INVALIDO (D3R)
|
326
|
+
'244' => 'A59', # VALOR DA MULTA NAO NUMERICO (D3R)
|
327
|
+
'245' => 'A58', # DATA DA MULTA NAO NUMERICO (D3R)
|
328
|
+
'258' => 'A27', # VL.MORA NAO NUMERICO P.COD=4(D3P)
|
329
|
+
'263' => 'A278', # INSTRUCAO PARA TITULO NAO REGISTRADO
|
330
|
+
'264' => 'A23', # CODIGO DE ACEITE (A/N) INVALIDO.
|
331
|
+
})
|
332
|
+
end
|
206
333
|
end
|
207
334
|
end
|
208
335
|
end
|
@@ -62,32 +62,47 @@ module BrBoleto
|
|
62
62
|
@conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(conta_corrente).to_s
|
63
63
|
end
|
64
64
|
|
65
|
-
# Códigos de Movimento Remessa / Identificacao Ocorrência específicos do Banco
|
66
|
-
def equivalent_codigo_movimento_remessa_400
|
67
|
-
super.merge(
|
68
|
-
{
|
69
|
-
'23' => '12', # Alteração de Pagador
|
70
|
-
'46' => '34', # Baixa - Pagamento Direto ao Beneficiário
|
71
|
-
})
|
72
|
-
end
|
73
65
|
|
74
|
-
|
75
|
-
# Diferentemente do padrão da FEBRABAN que é '3'
|
76
|
-
# Ou seja, se passar o código 3 deve considerar '0'
|
77
|
-
#
|
78
|
-
def equivalent_codigo_juros
|
79
|
-
super.merge({'3' => '0', '0'=>'0'})
|
80
|
-
end
|
81
|
-
def equivalent_codigo_multa
|
82
|
-
super.merge({'3' => '0', '0'=>'0'})
|
83
|
-
end
|
66
|
+
##################################### DEFAULT CODES ###############################################
|
84
67
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
68
|
+
# Códigos de Movimento Remessa / Identificacao Ocorrência específicos do Banco
|
69
|
+
def equivalent_codigo_movimento_remessa_400
|
70
|
+
super.merge(
|
71
|
+
{
|
72
|
+
'23' => '12', # Alteração de Pagador
|
73
|
+
'46' => '34', # Baixa - Pagamento Direto ao Beneficiário
|
74
|
+
})
|
75
|
+
end
|
76
|
+
|
77
|
+
# Código que representa a isenção de juros e multa deve ser '0'
|
78
|
+
# Diferentemente do padrão da FEBRABAN que é '3'
|
79
|
+
# Ou seja, se passar o código 3 deve considerar '0'
|
80
|
+
#
|
81
|
+
def equivalent_codigo_juros
|
82
|
+
super.merge({'3' => '0', '0'=>'0'})
|
83
|
+
end
|
84
|
+
def equivalent_codigo_multa
|
85
|
+
super.merge({'3' => '0', '0'=>'0'})
|
86
|
+
end
|
87
|
+
|
88
|
+
def default_codigo_juros
|
89
|
+
'0'
|
90
|
+
end
|
91
|
+
def default_codigo_multa
|
92
|
+
'0'
|
93
|
+
end
|
94
|
+
|
95
|
+
# Identificações de Ocorrência / Código de ocorrência:
|
96
|
+
def equivalent_codigo_movimento_retorno_400
|
97
|
+
super.merge(
|
98
|
+
# Padrão Código para
|
99
|
+
{# do Banco a GEM
|
100
|
+
'05' => '17' , # Liquidação Sem Registro: Identifica a liquidação de título da modalidade "SEM REGISTRO";
|
101
|
+
'15' => '101', # Liquidação em Cartório: Identifica as liquidações dos títulos ocorridas em cartórios de protesto;
|
102
|
+
'23' => '19' , # Encaminhado a Protesto: Identifica o recebimento da instrução de protesto
|
103
|
+
})
|
104
|
+
end
|
105
|
+
|
91
106
|
end
|
92
107
|
end
|
93
108
|
end
|
@@ -97,75 +97,180 @@ module BrBoleto
|
|
97
97
|
"#{agencia}.#{posto}.#{codigo_cedente}"
|
98
98
|
end
|
99
99
|
|
100
|
-
# Espécie do Título CNAB 240
|
101
|
-
def equivalent_especie_titulo_240
|
102
|
-
super.merge(
|
103
|
-
# Padrão Código para
|
104
|
-
{# da GEM o Banco
|
105
|
-
'01' => '03', # Duplicata Mercantil por Indicação (DMI)
|
106
|
-
'02' => '03' # Duplicata Mercantil por Indicação (DMI)
|
107
|
-
})
|
108
|
-
end
|
109
100
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
101
|
+
##################################### DEFAULT CODES ###############################################
|
102
|
+
|
103
|
+
# Espécie do Título CNAB 240
|
104
|
+
def equivalent_especie_titulo_240
|
105
|
+
super.merge(
|
106
|
+
# Padrão Código para
|
107
|
+
{# da GEM o Banco
|
108
|
+
'01' => '03', # Duplicata Mercantil por Indicação (DMI)
|
109
|
+
'02' => '03' # Duplicata Mercantil por Indicação (DMI)
|
110
|
+
})
|
111
|
+
end
|
112
|
+
|
113
|
+
# Espécie do Título CNAB 400
|
114
|
+
def equivalent_especie_titulo_400
|
115
|
+
super.merge(
|
116
|
+
# Padrão Código para
|
117
|
+
{# da GEM o Banco
|
118
|
+
'01' => 'A',
|
119
|
+
'02' => 'A',
|
120
|
+
'03' => 'A', # Duplicata Mercantil por Indicação (DMI)
|
121
|
+
'06' => 'B', # Duplicata Rural (DR)
|
122
|
+
'12' => 'C', # Nota Promissória (NP)
|
123
|
+
'13' => 'D', # Nota Promissória Rural (NR)
|
124
|
+
'16' => 'E', # Nota de Seguros (NS)
|
125
|
+
'17' => 'G', # Recibo (RC)
|
126
|
+
'07' => 'H', # Letra de Câmbio (LC)
|
127
|
+
'19' => 'I', # Nota de Débito (ND)
|
128
|
+
'05' => 'J', # Duplicata de Serviço por Indicação (DSI)
|
129
|
+
'99' => 'K', # Outros (OS)
|
130
|
+
'32' => 'O' # Boleto de Proposta (BDP)
|
131
|
+
})
|
132
|
+
end
|
133
|
+
|
134
|
+
# Código da Carteira
|
135
|
+
def equivalent_tipo_cobranca_400
|
136
|
+
super.merge({ '1' => 'A' }) # Cobrança Simples
|
137
|
+
end
|
138
|
+
|
139
|
+
# Identificação do Tipo de Impressão :
|
140
|
+
def equivalent_tipo_impressao_400
|
141
|
+
super.merge({ '1' => 'A' }) # Frente do Bloqueto
|
142
|
+
end
|
143
|
+
|
144
|
+
# Código da Moeda :
|
145
|
+
def equivalent_codigo_moeda_400
|
146
|
+
super.merge({ '09' => 'A' }) # Real
|
147
|
+
end
|
148
|
+
|
149
|
+
# Identificação da Emissão do Boleto de Pagamento
|
150
|
+
def equivalent_identificacao_emissao_400
|
151
|
+
super.merge(
|
152
|
+
# Padrão Código para
|
153
|
+
{# da GEM o Banco
|
154
|
+
'1' => 'A', # Impressão é feita pelo Sicredi
|
155
|
+
'2' => 'B', # Impressão é feita pelo Beneficiário
|
156
|
+
})
|
157
|
+
end
|
158
|
+
|
159
|
+
# Código adotado pelo SICREDI para identificação do tipo de desconto que deverá ser concedido.
|
160
|
+
def equivalent_codigo_desconto
|
161
|
+
{
|
162
|
+
'0' => '1', # Valor Fixo Até a Data Informada
|
163
|
+
'1' => '1', # Valor Fixo Até a Data Informada
|
164
|
+
'2' => '2', # Percentual Até a Data Informada
|
165
|
+
'3' => '3', # Valor por Antecipação Dia Corrido
|
166
|
+
'4' => '3', # Valor por Antecipação Dia Úti
|
167
|
+
'5' => '2', # Percentual Sobre o Valor Nominal Dia Corrido
|
168
|
+
'6' => '2', # Percentual Sobre o Valor Nominal Dia Útil
|
169
|
+
'7' => '7', # Cancelamento de Desconto
|
170
|
+
}
|
171
|
+
end
|
172
|
+
|
173
|
+
# Código de Movimento Retorno
|
174
|
+
def equivalent_codigo_movimento_retorno_240
|
175
|
+
super.merge(
|
176
|
+
# Padrão Código para
|
177
|
+
{# do Banco a GEM
|
178
|
+
'36' => '100', # Baixa rejeitada
|
179
|
+
})
|
180
|
+
end
|
181
|
+
|
182
|
+
# Código do Motivo da ocorrência :
|
183
|
+
def codigos_movimento_retorno_para_ocorrencia_D_240
|
184
|
+
%w[27]
|
185
|
+
end
|
186
|
+
def equivalent_codigo_motivo_ocorrencia_D_240 codigo_movimento_gem
|
187
|
+
# Código Padrão para
|
188
|
+
{# do Banco a Gem
|
189
|
+
'01' => 'D01', # Alteração de carteira
|
190
|
+
}
|
191
|
+
end
|
192
|
+
|
193
|
+
def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
|
194
|
+
super.merge(
|
195
|
+
# Padrão Código para
|
196
|
+
{# do Banco a GEM
|
197
|
+
'01' => 'A01', # Código do banco inválido
|
198
|
+
'02' => 'A02', # Código do registro detalhe inválido
|
199
|
+
'03' => 'A05', # Código da ocorrência inválido
|
200
|
+
'04' => 'A04', # Código de ocorrência não permitida para a carteira
|
201
|
+
'05' => 'A05', # Código de ocorrência não numérico
|
202
|
+
'07' => 'A07', # Cooperativa/agência/conta/dígito inválidos
|
203
|
+
'08' => 'A08', # Nosso número inválido
|
204
|
+
'09' => 'A09', # Nosso número duplicado
|
205
|
+
'10' => 'A10', # Carteira inválida
|
206
|
+
'15' => 'A07', # Cooperativa/carteira/agência/conta/nosso número inválidos
|
207
|
+
'16' => 'A16', # Data de vencimento inválida
|
208
|
+
'17' => 'A17', # Data de vencimento anterior à data de emissão
|
209
|
+
'18' => 'A18', # Vencimento fora do prazo de operação
|
210
|
+
'20' => 'A20', # Valor do título inválido
|
211
|
+
'21' => 'A21', # Espécie do título inválida
|
212
|
+
'22' => 'A22', # Espécie não permitida para a carteira
|
213
|
+
'24' => 'A24', # Data de emissão inválida
|
214
|
+
'29' => 'A29', # Valor do desconto maior/igual ao valor do título
|
215
|
+
'31' => 'A31', # Concessão de desconto - existe desconto anterior
|
216
|
+
'33' => 'A33', # Valor do abatimento inválido
|
217
|
+
'34' => 'A34', # Valor do abatimento maior/igual ao valor do título
|
218
|
+
'36' => 'A36', # Concessão de abatimento - existe abatimento anterior
|
219
|
+
'38' => 'A38', # Prazo para protesto inválido
|
220
|
+
'39' => 'A39', # Pedido para protesto não permitido para o título
|
221
|
+
'40' => 'A40', # Título com ordem de protesto emitida
|
222
|
+
'41' => 'A41', # Pedido cancelamento/sustação sem instrução de protesto
|
223
|
+
'44' => 'A209', # Cooperativa de crédito/agência beneficiária não prevista
|
224
|
+
'45' => 'A45', # Nome do pagador inválido
|
225
|
+
'46' => 'A46', # Tipo/número de inscrição do pagador inválidos
|
226
|
+
'47' => 'A47', # Endereço do pagador não informado
|
227
|
+
'48' => 'A48', # CEP irregular
|
228
|
+
'49' => 'A46', # Número de Inscrição do pagador/avalista inválido
|
229
|
+
'50' => 'A54', # Pagador/avalista não informado
|
230
|
+
'60' => 'A60', # Movimento para título não cadastrado
|
231
|
+
'63' => 'A63', # Entrada para título já cadastrado
|
232
|
+
'A6' => 'A244', # Data da instrução/ocorrência inválida
|
233
|
+
'B4' => 'A44', # Tipo de moeda inválido
|
234
|
+
'B5' => 'A28', # Tipo de desconto/juros inválido
|
235
|
+
'B7' => 'A86', # Seu número inválido
|
236
|
+
'B8' => 'A59', # Percentual de multa inválido
|
237
|
+
'B9' => 'A27', # Valor ou percentual de juros inválido
|
238
|
+
'C2' => 'A23', # Aceite do título inválido
|
239
|
+
'C6' => 'A325', # Título já liquidado
|
240
|
+
'C7' => 'A325', # Título já baixado
|
241
|
+
'H4' => 'D01', # Alteração de carteira
|
128
242
|
})
|
129
|
-
|
243
|
+
end
|
130
244
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
def equivalent_codigo_moeda_400
|
143
|
-
super.merge({ '09' => 'A' }) # Real
|
144
|
-
end
|
145
|
-
|
146
|
-
# Identificação da Emissão do Boleto de Pagamento
|
147
|
-
def equivalent_identificacao_emissao_400
|
148
|
-
super.merge(
|
149
|
-
# Padrão Código para
|
150
|
-
{# da GEM o Banco
|
151
|
-
'1' => 'A', # Impressão é feita pelo Sicredi
|
152
|
-
'2' => 'B', # Impressão é feita pelo Beneficiário
|
245
|
+
def equivalent_codigo_motivo_ocorrencia_B_400 codigo_movimento_gem
|
246
|
+
super.merge(
|
247
|
+
# Padrão Código para
|
248
|
+
{# do Banco a GEM
|
249
|
+
'03' => 'B03', # Tarifa de sustação
|
250
|
+
'04' => 'B04', # Tarifa de protesto
|
251
|
+
'08' => 'B08', # Tarifa de custas de protesto
|
252
|
+
'A9' => 'B02', # Tarifa de manutenção de título vencido
|
253
|
+
'B1' => 'B122', # Tarifa de baixa da carteira
|
254
|
+
'B3' => 'B123', # Tarifa de registro de entrada do título
|
255
|
+
'F5' => 'B124', # Tarifa de entrada na rede Sicredi
|
153
256
|
})
|
154
|
-
|
257
|
+
end
|
155
258
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
259
|
+
# Identificações de Ocorrência / Código de ocorrência:
|
260
|
+
def equivalent_codigo_movimento_retorno_400
|
261
|
+
super.merge(
|
262
|
+
# Padrão Código para
|
263
|
+
{# do Banco a GEM
|
264
|
+
'15' => '101', # Liquidação em cartório
|
265
|
+
'24' => '106', # Entrada rejeitada por CEP irregular
|
266
|
+
'27' => '100', # Baixa rejeitada
|
267
|
+
'32' => '26', # Instrução rejeitada
|
268
|
+
'33' => '27', # Confirmação de pedido de alteração de outros dados
|
269
|
+
'34' => '24', # Retirado de cartório e manutenção em carteira
|
270
|
+
'35' => '105', # Aceite do pagador
|
271
|
+
})
|
272
|
+
end
|
273
|
+
|
169
274
|
end
|
170
275
|
end
|
171
276
|
end
|