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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.markdown +23 -17
  4. data/lib/br_boleto.rb +2 -0
  5. data/lib/br_boleto/boleto/banco_brasil.rb +24 -15
  6. data/lib/br_boleto/boleto/santander.rb +8 -2
  7. data/lib/br_boleto/conta/banco_brasil.rb +254 -56
  8. data/lib/br_boleto/conta/bradesco.rb +229 -27
  9. data/lib/br_boleto/conta/caixa.rb +208 -4
  10. data/lib/br_boleto/conta/cecred.rb +29 -0
  11. data/lib/br_boleto/conta/itau.rb +482 -87
  12. data/lib/br_boleto/conta/santander.rb +224 -97
  13. data/lib/br_boleto/conta/sicoob.rb +39 -24
  14. data/lib/br_boleto/conta/sicredi.rb +169 -64
  15. data/lib/br_boleto/conta/unicred.rb +16 -13
  16. data/lib/br_boleto/helper/default_codes.rb +2123 -54
  17. data/lib/br_boleto/remessa/cnab240/banco_brasil.rb +12 -6
  18. data/lib/br_boleto/remessa/cnab240/bradesco.rb +1 -1
  19. data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +1 -1
  20. data/lib/br_boleto/remessa/cnab240/itau.rb +20 -3
  21. data/lib/br_boleto/remessa/cnab240/santander.rb +25 -24
  22. data/lib/br_boleto/remessa/cnab400/caixa.rb +197 -0
  23. data/lib/br_boleto/remessa/cnab400/santander.rb +32 -27
  24. data/lib/br_boleto/retorno/base.rb +24 -0
  25. data/lib/br_boleto/retorno/cnab240/base.rb +6 -2
  26. data/lib/br_boleto/retorno/cnab240/santander.rb +5 -1
  27. data/lib/br_boleto/retorno/cnab400/banco_brasil.rb +3 -1
  28. data/lib/br_boleto/retorno/cnab400/base.rb +2 -1
  29. data/lib/br_boleto/retorno/cnab400/bradesco.rb +6 -0
  30. data/lib/br_boleto/retorno/cnab400/caixa.rb +49 -0
  31. data/lib/br_boleto/retorno/cnab400/itau.rb +5 -1
  32. data/lib/br_boleto/retorno/cnab400/santander.rb +5 -1
  33. data/lib/br_boleto/retorno/cnab400/sicoob.rb +1 -0
  34. data/lib/br_boleto/retorno/cnab400/sicredi.rb +6 -0
  35. data/lib/br_boleto/retorno/pagamento.rb +50 -4
  36. data/lib/br_boleto/version.rb +1 -1
  37. data/test/br_boleto/boleto/santander_test.rb +1 -1
  38. data/test/br_boleto/boleto/sicredi_test.rb +1 -0
  39. data/test/br_boleto/conta/banco_brasil_test.rb +157 -0
  40. data/test/br_boleto/conta/base_test.rb +8 -8
  41. data/test/br_boleto/conta/bradesco_test.rb +165 -0
  42. data/test/br_boleto/conta/caixa_test.rb +159 -1
  43. data/test/br_boleto/conta/cecred_test.rb +22 -0
  44. data/test/br_boleto/conta/itau_test.rb +346 -3
  45. data/test/br_boleto/conta/santantader_test.rb +123 -10
  46. data/test/br_boleto/conta/sicoob_test.rb +8 -0
  47. data/test/br_boleto/conta/sicredi_test.rb +79 -0
  48. data/test/br_boleto/conta/unicred_test.rb +7 -7
  49. data/test/br_boleto/remessa/cnab240/itau_test.rb +1 -1
  50. data/test/br_boleto/remessa/cnab400/caixa_test.rb +184 -0
  51. data/test/br_boleto/remessa/cnab400/santander_test.rb +30 -17
  52. data/test/br_boleto/retorno/cnab240/banco_brasil_test.rb +30 -6
  53. data/test/br_boleto/retorno/cnab240/base_test.rb +25 -5
  54. data/test/br_boleto/retorno/cnab240/bradesco_test.rb +25 -5
  55. data/test/br_boleto/retorno/cnab240/caixa_test.rb +25 -5
  56. data/test/br_boleto/retorno/cnab240/cecred_test.rb +15 -3
  57. data/test/br_boleto/retorno/cnab240/itau_test.rb +25 -5
  58. data/test/br_boleto/retorno/cnab240/santander_test.rb +30 -6
  59. data/test/br_boleto/retorno/cnab240/sicoob_test.rb +25 -5
  60. data/test/br_boleto/retorno/cnab240/sicredi_test.rb +25 -5
  61. data/test/br_boleto/retorno/cnab240/unicred_test.rb +25 -5
  62. data/test/br_boleto/retorno/cnab400/bradesco_test.rb +30 -6
  63. data/test/br_boleto/retorno/cnab400/caixa_test.rb +7 -0
  64. data/test/br_boleto/retorno/cnab400/itau_test.rb +14 -4
  65. data/test/br_boleto/retorno/cnab400/sicoob_test.rb +25 -5
  66. data/test/br_boleto/retorno/cnab400/sicredi_test.rb +10 -2
  67. data/test/br_boleto/retorno/cnab400/unicred.rb +30 -6
  68. data/test/br_boleto/retorno/pagamento_test.rb +49 -1
  69. data/test/factories/remessa/cnab400/caixa.rb +8 -0
  70. data/test/fixtures/retorno/cnab240/santander.ret +1 -1
  71. metadata +10 -2
@@ -98,111 +98,238 @@ module BrBoleto
98
98
  %w(101 121)
99
99
  end
100
100
 
101
- # Espécie do Título :
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
- # Código Movimento da Remessa CNAB240
129
- def equivalent_codigo_movimento_remessa_240
130
- # Padrão Código para Descrição
131
- {# da GEM o Banco
132
- '01' => '01' , # Entrada de título
133
- '02' => '02' , # Pedido de baixa
134
- '04' => '04' , # Concessão de abatimento
135
- '05' => '05' , # Cancelamento de abatimento
136
- '06' => '06' , # Alteração de vencimento
137
- '07' => '10' , # Concessão de Desconto
138
- '08' => '11' , # Cancelamento de desconto
139
- '09' => '09' , # Pedido de Protesto
140
- '10' => '18' , # Pedido de Sustação de Protesto
141
- '21' => '07' , # Alteração da identificação do título na empresa
142
- '22' => '08' , # Alteração seu número
143
- '31' => '31' , # Alteração de outros dados
144
- '41' => '98' , # Não Protestar
145
- }
146
- end
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
- # Código Movimento da Remessa CNAB400
149
- def equivalent_codigo_movimento_remessa_400
150
- # Padrão Código para Descrição
151
- {# da GEM o Banco
152
- '01' => '01' , # Entrada de título
153
- '02' => '02' , # Pedido de baixa
154
- '04' => '04' , # Concessão de abatimento
155
- '05' => '05' , # Cancelamento de abatimento
156
- '06' => '06' , # Alteração de vencimento
157
- '21' => '07' , # Alteração da identificação do título na empresa
158
- '22' => '08' , # Alteração seu número
159
- '09' => '09' , # Pedido de Protesto
160
- '10' => '18' , # Sustar Protesto e Baixar Título
161
- '11' => '18' , # Sustar Protesto e Manter em Carteira
162
- }
163
- end
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
- # Código de Multa
166
- def equivalent_codigo_multa
167
- # Padrão Código para Descrição
168
- {# da GEM o Banco
169
- '1' => '4', # Com Multa
170
- '2' => '4', # Com Multa
171
- '3' => '0', # Sem Multa (Isento)
172
- }
173
- end
174
- def default_codigo_multa
175
- '0'
176
- end
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
- # Código da Carteira CNAB400
179
- def equivalent_tipo_cobranca_400
180
- # Padrão Código para Descrição
181
- {# da GEM o Banco
182
- '1' => '5', # RÁPIDA COM REGISTRO
183
- '2' => '2', # ELETRÔNICA COM REGISTRO
184
- '3' => '3', # CAUCIONADA ELETRÔNICA
185
- '4' => '7', # DESCONTADA ELETRÔNICA
186
- '5' => '4', # COBRANÇA SEM REGISTRO
187
- '6' => '6', # CAUCIONADA RAPIDA
188
- }
189
- end
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
- # Código da Carteira CNAB240
192
- def equivalent_tipo_cobranca_240
193
- super.merge({'6' => '6' }) # 6 = Cobrança Caucionada (Rápida com Registro)
194
- end
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
- # Código para Protesto
197
- def equivalent_codigo_protesto
198
- super.merge({'0' => '0' }) # 0 = Não Protestar
199
- end
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
- # Código da Moeda CNAB240
202
- def equivalent_codigo_moeda_240
203
- super.merge({'09' => '00' }) # 00 = Real
204
- end
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
- # Código que representa a isenção de juros e multa deve ser '0'
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
- def default_codigo_juros
86
- '0'
87
- end
88
- def default_codigo_multa
89
- '0'
90
- end
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
- # Espécie do Título CNAB 400
111
- def equivalent_especie_titulo_400
112
- super.merge(
113
- # Padrão Código para
114
- {# da GEM o Banco
115
- '01' => 'A',
116
- '02' => 'A',
117
- '03' => 'A', # Duplicata Mercantil por Indicação (DMI)
118
- '06' => 'B', # Duplicata Rural (DR)
119
- '12' => 'C', # Nota Promissória (NP)
120
- '13' => 'D', # Nota Promissória Rural (NR)
121
- '16' => 'E', # Nota de Seguros (NS)
122
- '17' => 'G', # Recibo (RC)
123
- '07' => 'H', # Letra de Câmbio (LC)
124
- '19' => 'I', # Nota de Débito (ND)
125
- '05' => 'J', # Duplicata de Serviço por Indicação (DSI)
126
- '99' => 'K', # Outros (OS)
127
- '32' => 'O' # Boleto de Proposta (BDP)
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
- end
243
+ end
130
244
 
131
- # Código da Carteira
132
- def equivalent_tipo_cobranca_400
133
- super.merge({ '1' => 'A' }) # Cobrança Simples
134
- end
135
-
136
- # Identificação do Tipo de Impressão :
137
- def equivalent_tipo_impressao_400
138
- super.merge({ '1' => 'A' }) # Frente do Bloqueto
139
- end
140
-
141
- # Código da Moeda :
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
- end
257
+ end
155
258
 
156
- # Código adotado pelo SICREDI para identificação do tipo de desconto que deverá ser concedido.
157
- def equivalent_codigo_desconto
158
- {
159
- '0' => '1', # Valor Fixo Até a Data Informada
160
- '1' => '1', # Valor Fixo Até a Data Informada
161
- '2' => '2', # Percentual Até a Data Informada
162
- '3' => '3', # Valor por Antecipação Dia Corrido
163
- '4' => '3', # Valor por Antecipação Dia Úti
164
- '5' => '2', # Percentual Sobre o Valor Nominal Dia Corrido
165
- '6' => '2', # Percentual Sobre o Valor Nominal Dia Útil
166
- '7' => '7', # Cancelamento de Desconto
167
- }
168
- end
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