br_boleto 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.markdown +23 -17
- data/lib/br_boleto.rb +2 -0
- data/lib/br_boleto/boleto/banco_brasil.rb +24 -15
- data/lib/br_boleto/boleto/santander.rb +8 -2
- data/lib/br_boleto/conta/banco_brasil.rb +254 -56
- data/lib/br_boleto/conta/bradesco.rb +229 -27
- data/lib/br_boleto/conta/caixa.rb +208 -4
- data/lib/br_boleto/conta/cecred.rb +29 -0
- data/lib/br_boleto/conta/itau.rb +482 -87
- data/lib/br_boleto/conta/santander.rb +224 -97
- data/lib/br_boleto/conta/sicoob.rb +39 -24
- data/lib/br_boleto/conta/sicredi.rb +169 -64
- data/lib/br_boleto/conta/unicred.rb +16 -13
- data/lib/br_boleto/helper/default_codes.rb +2123 -54
- data/lib/br_boleto/remessa/cnab240/banco_brasil.rb +12 -6
- data/lib/br_boleto/remessa/cnab240/bradesco.rb +1 -1
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +1 -1
- data/lib/br_boleto/remessa/cnab240/itau.rb +20 -3
- data/lib/br_boleto/remessa/cnab240/santander.rb +25 -24
- data/lib/br_boleto/remessa/cnab400/caixa.rb +197 -0
- data/lib/br_boleto/remessa/cnab400/santander.rb +32 -27
- data/lib/br_boleto/retorno/base.rb +24 -0
- data/lib/br_boleto/retorno/cnab240/base.rb +6 -2
- data/lib/br_boleto/retorno/cnab240/santander.rb +5 -1
- data/lib/br_boleto/retorno/cnab400/banco_brasil.rb +3 -1
- data/lib/br_boleto/retorno/cnab400/base.rb +2 -1
- data/lib/br_boleto/retorno/cnab400/bradesco.rb +6 -0
- data/lib/br_boleto/retorno/cnab400/caixa.rb +49 -0
- data/lib/br_boleto/retorno/cnab400/itau.rb +5 -1
- data/lib/br_boleto/retorno/cnab400/santander.rb +5 -1
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +1 -0
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +6 -0
- data/lib/br_boleto/retorno/pagamento.rb +50 -4
- data/lib/br_boleto/version.rb +1 -1
- data/test/br_boleto/boleto/santander_test.rb +1 -1
- data/test/br_boleto/boleto/sicredi_test.rb +1 -0
- data/test/br_boleto/conta/banco_brasil_test.rb +157 -0
- data/test/br_boleto/conta/base_test.rb +8 -8
- data/test/br_boleto/conta/bradesco_test.rb +165 -0
- data/test/br_boleto/conta/caixa_test.rb +159 -1
- data/test/br_boleto/conta/cecred_test.rb +22 -0
- data/test/br_boleto/conta/itau_test.rb +346 -3
- data/test/br_boleto/conta/santantader_test.rb +123 -10
- data/test/br_boleto/conta/sicoob_test.rb +8 -0
- data/test/br_boleto/conta/sicredi_test.rb +79 -0
- data/test/br_boleto/conta/unicred_test.rb +7 -7
- data/test/br_boleto/remessa/cnab240/itau_test.rb +1 -1
- data/test/br_boleto/remessa/cnab400/caixa_test.rb +184 -0
- data/test/br_boleto/remessa/cnab400/santander_test.rb +30 -17
- data/test/br_boleto/retorno/cnab240/banco_brasil_test.rb +30 -6
- data/test/br_boleto/retorno/cnab240/base_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/bradesco_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/cecred_test.rb +15 -3
- data/test/br_boleto/retorno/cnab240/itau_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/santander_test.rb +30 -6
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/sicredi_test.rb +25 -5
- data/test/br_boleto/retorno/cnab240/unicred_test.rb +25 -5
- data/test/br_boleto/retorno/cnab400/bradesco_test.rb +30 -6
- data/test/br_boleto/retorno/cnab400/caixa_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/itau_test.rb +14 -4
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +25 -5
- data/test/br_boleto/retorno/cnab400/sicredi_test.rb +10 -2
- data/test/br_boleto/retorno/cnab400/unicred.rb +30 -6
- data/test/br_boleto/retorno/pagamento_test.rb +49 -1
- data/test/factories/remessa/cnab400/caixa.rb +8 -0
- data/test/fixtures/retorno/cnab240/santander.ret +1 -1
- metadata +10 -2
@@ -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
|