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.
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
@@ -86,35 +86,237 @@ module BrBoleto
86
86
  cobranca_interna[carteira.to_s]
87
87
  end
88
88
 
89
- # Espécie do Título
90
- def equivalent_especie_titulo_400
91
- super.merge(
92
- # Padrão Código para
93
- {# da GEM o Banco
94
- '07' => '10' , # Letra de Câmbio
95
- '17' => '05' , # Recibo
96
- '19' => '11' , # Nota de Débito
97
- '32' => '30' , # Boleto de Proposta
98
- })
99
- end
100
89
 
101
- # Códigos de Movimento Remessa / Identificacao Ocorrência específicos do Banco
102
- def equivalent_codigo_movimento_remessa_400
103
- super.merge(
104
- # Padrão Código para
105
- {# da GEM o Banco
106
- '10' => '18' , # Sustar protesto e baixar Título
107
- '11' => '19' , # Sustar protesto e manter em carteira
108
- '31' => '22' , # Transferência Cessão Crédito
109
- '33' => '68' , # Acerto nos dados do rateio de Crédito
110
- '43' => '23' , # Transferência entre Carteiras
111
- '45' => '45' , # Pedido de Negativação
112
- '46' => '46' , # Excluir Negativação com baixa
113
- '47' => '47' , # Excluir negativação e manter pendente
114
- '34' => '69' , # Cancelamento do rateio de crédito.
115
- })
116
- end
90
+ ##################################### DEFAULT CODES ###############################################
91
+
92
+ # Espécie do Título
93
+ def equivalent_especie_titulo_400
94
+ super.merge(
95
+ # Padrão Código para
96
+ {# da GEM o Banco
97
+ '07' => '10' , # Letra de Câmbio
98
+ '17' => '05' , # Recibo
99
+ '19' => '11' , # Nota de Débito
100
+ '32' => '30' , # Boleto de Proposta
101
+ })
102
+ end
103
+
104
+ # Códigos de Movimento Remessa / Identificacao Ocorrência específicos do Banco
105
+ def equivalent_codigo_movimento_remessa_400
106
+ super.merge(
107
+ # Padrão Código para
108
+ {# da GEM o Banco
109
+ '10' => '18' , # Sustar protesto e baixar Título
110
+ '11' => '19' , # Sustar protesto e manter em carteira
111
+ '31' => '22' , # Transferência Cessão Crédito
112
+ '33' => '68' , # Acerto nos dados do rateio de Crédito
113
+ '43' => '23' , # Transferência entre Carteiras
114
+ '45' => '45' , # Pedido de Negativação
115
+ '46' => '46' , # Excluir Negativação com baixa
116
+ '47' => '47' , # Excluir negativação e manter pendente
117
+ '34' => '69' , # Cancelamento do rateio de crédito.
118
+ })
119
+ end
120
+
121
+ # Código de Movimento Retorno
122
+ def equivalent_codigo_movimento_retorno_240
123
+ super.merge({'73' => '73'}) # Confirmação recebimento pedido de negativação
124
+ end
125
+
126
+ # Identificações de Ocorrência / Código de ocorrência:
127
+ def equivalent_codigo_movimento_retorno_400
128
+ super.merge(
129
+ # Padrão Código para
130
+ {# do Banco a GEM
131
+ '15' => '101', # Liquidação em Cartório (sem motivo)
132
+ '24' => '106', # Entrada rejeitada por CEP Irregular
133
+ '25' => '170', # Confirmação Receb.Inst.de Protesto Falimentar
134
+ '27' => '100', # Baixa Rejeitada
135
+ '32' => '26', # Instrução Rejeitada
136
+ '33' => '27', # Confirmação Pedido Alteração Outros Dados (sem motivo)
137
+ '40' => '171', # Estorno de pagamento
138
+ '55' => '63', # Sustado judicial
139
+ '68' => '33', # Acerto dos dados do rateio de Crédito
140
+ '69' => '34', # Cancelamento dos dados do rateio
141
+ })
142
+ end
117
143
 
144
+ # Código Motivo Ocorrência Retorno CNAB 400
145
+ def codigos_movimento_retorno_para_ocorrencia_A_400
146
+ %w[02 03 26 30 35 100 106]
147
+ end
148
+ def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
149
+ super.merge(
150
+ # Padrão Código para
151
+ {# do Banco a GEM
152
+ '00' => 'A00', # Ocorrência aceita
153
+ '03' => 'A05', # Código da ocorrência inválida
154
+ '05' => 'A208', # Código de ocorrência não numérico
155
+ '44' => 'A209', # Agência Beneficiário não prevista
156
+ '65' => 'A83', # Limite excedido
157
+ '66' => 'A84', # Número autorização inexistente
158
+ '67' => 'A68', # Débito automático agendado
159
+ '68' => 'A69', # Débito não agendado - erro nos dados de remessa
160
+ '69' => 'A70', # Débito não agendado - Pagador não consta no cadastro de autorizante
161
+ '70' => 'A71', # Débito não agendado - Beneficiário não autorizado pelo Pagador
162
+ '71' => 'A72', # Débito não agendado - Beneficiário não participa da modalidade de déb.automático
163
+ '72' => 'A73', # Débito não agendado - Código de moeda diferente de R$
164
+ '73' => 'A74', # Débito não agendado - Data de vencimento inválida/vencida
165
+ '74' => 'A75', # Débito não agendado - Conforme seu pedido, Título não registrado
166
+ '75' => 'A76', # Débito não agendado - Tipo do número de inscrição do pagador debitado inválido
167
+ '76' => 'A103', # Pagador Eletrônico DDA
168
+ '83' => 'A218', # Cancelado pelo Pagador e Mantido Pendente, conforme negociação
169
+ '84' => 'A219', # Cancelado pelo pagador e baixado, conforme negociação
170
+ '88' => 'A210', # E-mail Pagador não lido no prazo 5 dias
171
+ '89' => 'A211', # Email Pagador não enviado – título com débito automático
172
+ '90' => 'A212', # Email pagador não enviado – título de cobrança sem registro
173
+ '91' => 'A213', # E-mail pagador não recebido
174
+ '94' => 'A214', # Título Penhorado – Instrução Não Liberada pela Agência
175
+ '97' => 'A215', # Instrução não permitida título negativado
176
+ '98' => 'A216', # Inclusão Bloqueada face a determinação Judicial
177
+ '99' => 'A217', # Telefone beneficiário não informado / inconsistente
178
+ })
179
+ end
180
+
181
+ def equivalent_codigo_motivo_ocorrencia_B_400 codigo_movimento_gem
182
+ super.merge(
183
+ # Padrão Código para
184
+ {# do Banco a GEM
185
+ '68' => 'B16', # Fornecimento de máquina FAX
186
+ '81' => 'B14', # Tarifa reapresentação automática título
187
+ '83' => 'B15', # Tarifa Rateio de Crédito
188
+
189
+ '02' => 'B31', # Tarifa de permanência título cadastrado
190
+ '12' => 'B32', # Tarifa de registro
191
+ '13' => 'B33', # Tarifa título pago no Bradesco
192
+ '14' => 'B34', # Tarifa título pago compensação
193
+ '15' => 'B35', # Tarifa título baixado não pago
194
+ '16' => 'B36', # Tarifa alteração de vencimento
195
+ '17' => 'B37', # Tarifa concessão abatimento
196
+ '18' => 'B38', # Tarifa cancelamento de abatimento
197
+ '19' => 'B39', # Tarifa concessão desconto
198
+ '20' => 'B40', # Tarifa cancelamento desconto
199
+ '21' => 'B41', # Tarifa título pago cics
200
+ '22' => 'B42', # Tarifa título pago Internet
201
+ '23' => 'B43', # Tarifa título pago term. gerencial serviços
202
+ '24' => 'B44', # Tarifa título pago Pág-Contas
203
+ '25' => 'B45', # Tarifa título pago Fone Fácil
204
+ '26' => 'B46', # Tarifa título Déb. Postagem
205
+ '27' => 'B47', # Tarifa impressão de títulos pendentes
206
+ '28' => 'B48', # Tarifa título pago BDN
207
+ '29' => 'B49', # Tarifa título pago Term. Multi Função
208
+ '30' => 'B50', # Impressão de títulos baixados
209
+ '31' => 'B51', # Impressão de títulos pagos
210
+ '32' => 'B52', # Tarifa título pago Pagfor
211
+ '33' => 'B53', # Tarifa reg/pgto – guichê caixa
212
+ '34' => 'B54', # Tarifa título pago retaguarda
213
+ '35' => 'B55', # Tarifa título pago Subcentro
214
+ '36' => 'B56', # Tarifa título pago Cartão de Crédito
215
+ '37' => 'B57', # Tarifa título pago Comp Eletrônica
216
+ '38' => 'B58', # Tarifa título Baix. Pg. Cartório
217
+ '39' => 'B59', # Tarifa título baixado acerto BCO
218
+ '40' => 'B60', # Baixa registro em duplicidade
219
+ '41' => 'B61', # Tarifa título baixado decurso prazo
220
+ '42' => 'B62', # Tarifa título baixado Judicialmente
221
+ '43' => 'B63', # Tarifa título baixado via remessa
222
+ '44' => 'B64', # Tarifa título baixado rastreamento
223
+ '45' => 'B65', # Tarifa título baixado conf. Pedido
224
+ '46' => 'B66', # Tarifa título baixado protestado
225
+ '47' => 'B67', # Tarifa título baixado p/ devolução
226
+ '48' => 'B68', # Tarifa título baixado franco pagto
227
+ '49' => 'B69', # Tarifa título baixado SUST/RET/CARTÓRIO
228
+ '50' => 'B70', # Tarifa título baixado SUS/SEM/REM/CARTÓRIO
229
+ '51' => 'B71', # Tarifa título transferido desconto
230
+ '52' => 'B72', # Cobrado baixa manual
231
+ '53' => 'B73', # Baixa por acerto cliente
232
+ '54' => 'B74', # Tarifa baixa por contabilidade
233
+ '55' => 'B75', # Tr. tentativa cons deb aut
234
+ '56' => 'B76', # Tr. credito online
235
+ '57' => 'B77', # Tarifa reg/pagto Bradesco Expresso
236
+ '58' => 'B78', # Tarifa emissão Papeleta
237
+ '59' => 'B79', # Tarifa fornec papeleta semi preenchida
238
+ '60' => 'B80', # Acondicionador de papeletas (RPB)S
239
+ '61' => 'B81', # Acond. De papelatas (RPB)s PERSONAL
240
+ '62' => 'B82', # Papeleta formulário branco
241
+ '63' => 'B83', # Formulário A4 serrilhado
242
+ '64' => 'B84', # Fornecimento de softwares transmiss
243
+ '65' => 'B85', # Fornecimento de softwares consulta
244
+ '66' => 'B86', # Fornecimento Micro Completo
245
+ '67' => 'B87', # Fornecimento MODEN
246
+ '69' => 'B88', # Fornecimento de máquinas óticas
247
+ '70' => 'B89', # Fornecimento de Impressoras
248
+ '71' => 'B90', # Reativação de título
249
+ '72' => 'B91', # Alteração de produto negociado
250
+ '73' => 'B92', # Tarifa emissão de contra recibo
251
+ '74' => 'B93', # Tarifa emissão 2a via papeleta
252
+ '75' => 'B94', # Tarifa regravação arquivo retorno
253
+ '76' => 'B95', # Arq. Títulos a vencer mensal
254
+ '77' => 'B96', # Listagem auxiliar de crédito
255
+ '78' => 'B97', # Tarifa cadastro cartela instrução permanente
256
+ '79' => 'B98', # Canalização de Crédito
257
+ '80' => 'B99', # Cadastro de Mensagem Fixa
258
+ '82' => 'B100', # Tarifa registro título déb. Automático
259
+ '84' => 'B101', # Emissão papeleta sem valor
260
+ '85' => 'B102', # Sem uso
261
+ '86' => 'B103', # Cadastro de reembolso de diferença
262
+ '87' => 'B104', # Relatório fluxo de pagto
263
+ '88' => 'B105', # Emissão Extrato mov. Carteira
264
+ '89' => 'B106', # Mensagem campo local de pagto
265
+ '90' => 'B107', # Cadastro Concessionária serv. Publ.
266
+ '91' => 'B108', # Classif. Extrato Conta Corrente
267
+ '92' => 'B109', # Contabilidade especial
268
+ '93' => 'B110', # Realimentação pagto
269
+ '94' => 'B111', # Repasse de Créditos
270
+ '96' => 'B112', # Tarifa reg. Pagto outras mídias
271
+ '97' => 'B113', # Tarifa Reg/Pagto – Net Empresa
272
+ '98' => 'B114', # Tarifa título pago vencido
273
+ '99' => 'B115', # TR Tít. Baixado por decurso prazo
274
+ '100' => 'B116', # Arquivo Retorno Antecipado
275
+ '101' => 'B117', # Arq retorno Hora/Hora
276
+ '102' => 'B118', # TR. Agendamento Déb Aut
277
+ '105' => 'B119', # TR. Agendamento rat. Crédito
278
+ '106' => 'B120', # TR Emissão aviso rateio
279
+ '107' => 'B121', # Extrato de protesto
280
+ })
281
+ end
282
+
283
+ def codigos_movimento_retorno_para_ocorrencia_C_400
284
+ %w[06 09 10 17]
285
+ end
286
+ def equivalent_codigo_motivo_ocorrencia_C_400 codigo_movimento_gem
287
+ if codigo_movimento_gem == '10'
288
+ super.merge(
289
+ # Padrão Código para
290
+ {# do Banco a GEM
291
+ '00' => 'C00', # Baixado Conforme Instruções da Agência
292
+ '16' => 'C16', # Título Baixado pelo Banco por decurso Prazo
293
+ '17' => 'C17', # Titulo Baixado Transferido Carteira
294
+ '20' => 'C20', # Titulo Baixado e Transferido para Desconto
295
+
296
+ })
297
+ else
298
+ super.merge(
299
+ # Padrão Código para
300
+ {# do Banco a GEM
301
+ '00' => 'C35', # Título pago com dinheiro
302
+ '15' => 'C36', # Título pago com cheque
303
+ '10' => 'C10', # Baixa Comandada pelo cliente
304
+ '42' => 'C42', # Rateio não efetuado, cód. Calculo 2 (VLR. Registro) e v (NOVO)
305
+ })
306
+ end
307
+ end
308
+
309
+ def codigos_movimento_retorno_para_ocorrencia_D_400
310
+ %w[29]
311
+ end
312
+ def equivalent_codigo_motivo_ocorrencia_D_400 codigo_movimento_gem
313
+ # Padrão Código para
314
+ {# do Banco a GEM
315
+ '78' => 'D78', # Pagador alega que faturamento e indevido
316
+ '95' => 'D95', # Pagador aceita/reconhece o faturamento
317
+ }
318
+ end
319
+
118
320
  end
119
321
  end
120
322
  end
@@ -109,11 +109,215 @@ module BrBoleto
109
109
  "#{agencia} / #{codigo_cedente}-#{codigo_cedente_dv}"
110
110
  end
111
111
 
112
- # Identificação da Distribuição exclusiva da CAIXA
113
- def equivalent_distribuicao_boleto
114
- super.merge({'0' => '0' }) # 0 = Postagem pelo Beneficiário
115
- end
116
112
 
113
+ ##################################### DEFAULT CODES ###############################################
114
+
115
+ # Identificação da Distribuição exclusiva da CAIXA
116
+ def equivalent_distribuicao_boleto
117
+ super.merge({'0' => '0' }) # 0 = Postagem pelo Beneficiário
118
+ end
119
+
120
+ # Código de Movimento Retorno
121
+ def equivalent_codigo_movimento_retorno_240
122
+ super.merge(
123
+ # Padrão Código para
124
+ {# do Banco a GEM
125
+ '35' => '135', # Confirmação de Inclusão Banco de Sacado
126
+ '36' => '136', # Confirmação de Alteração Banco de Sacado
127
+ '37' => '137', # Confirmação de Exclusão Banco de Sacado
128
+ '38' => '138', # Emissão de Bloquetos de Banco de Sacado
129
+ '39' => '139', # Manutenção de Sacado Rejeitada
130
+ '40' => '140', # Entrada de Título via Banco de Sacado Rejeitada
131
+ '41' => '141', # Manutenção de Banco de Sacado Rejeitada
132
+ '44' => '144', # Estorno de Baixa / Liquidação
133
+ '45' => '145', # Alteração de Dados
134
+ })
135
+ end
136
+
137
+ # Código do Motivo da Ocorrência Retorno
138
+ def equivalent_codigo_motivo_ocorrencia_A_240 codigo_movimento_gem
139
+ super.merge(
140
+ # Padrão Código para
141
+ {# do Banco a GEM
142
+ '11' => 'A115', # Data de Geração Inválida
143
+ '64' => 'A116', # Entrada Inválida para Cobrança Caucionada
144
+ '65' => 'A117', # CEP do Pagador não encontrado
145
+ '66' => 'A118', # Agencia Cobradora não encontrada
146
+ '67' => 'A119', # Agencia Beneficiário não encontrada
147
+ '68' => 'A120', # Movimentação inválida para título
148
+ '69' => 'A121', # Alteração de dados inválida
149
+ '70' => 'A122', # Apelido do cliente não cadastrado
150
+ '71' => 'A123', # Erro na composição do arquivo
151
+ '73' => 'A105', # Código do Beneficiário inválido
152
+ '72' => 'A124', # Lote de serviço inválido
153
+ '74' => 'A125', # Beneficiário não pertencente a Cobrança Eletrônica
154
+ '75' => 'A126', # Nome da Empresa inválido
155
+ '76' => 'A127', # Nome do Banco inválido
156
+ '77' => 'A128', # Código da Remessa inválido
157
+ '78' => 'A129', # Data/Hora Geração do arquivo inválida
158
+ '79' => 'A130', # Número Sequencial do arquivo inválido
159
+ '80' => 'A131', # Versão do Lay out do arquivo inválido
160
+ '81' => 'A132', # Literal REMESSA-TESTE - Válido só p/ fase testes
161
+ '82' => 'A133', # Literal REMESSA-TESTE - Obrigatório p/ fase testes
162
+ '83' => 'A134', # Tp Número Inscrição Empresa inválido
163
+ '84' => 'A135', # Tipo de Operação inválido
164
+ '85' => 'A136', # Tipo de serviço inválido
165
+ '86' => 'A137', # Forma de lançamento inválido
166
+ '87' => 'A138', # Número da remessa inválido
167
+ '88' => 'A139', # Número da remessa menor/igual remessa anterior
168
+ '89' => 'A140', # Lote de serviço divergente
169
+ '90' => 'A141', # Número sequencial do registro inválido
170
+ '91' => 'A142', # Erro seq de segmento do registro detalhe
171
+ '92' => 'A143', # Cod movto divergente entre grupo de segm
172
+ '93' => 'A144', # Qtde registros no lote inválido
173
+ '94' => 'A145', # Qtde registros no lote divergente
174
+ '95' => 'A146', # Qtde lotes no arquivo inválido
175
+ '96' => 'A147', # Qtde lotes no arquivo divergente
176
+ '97' => 'A148', # Qtde registros no arquivo inválido
177
+ '98' => 'A149', # Qtde registros no arquivo divergente
178
+ '99' => 'A150', # Código de DDD inválido
179
+ })
180
+ end
181
+ def equivalent_codigo_motivo_ocorrencia_B_240 codigo_movimento_gem
182
+ super.merge(
183
+ # Padrão Código para
184
+ {# do Banco a GEM
185
+ '12' => 'B21', # Redisponibilização de Arquivo Retorno Eletrônico
186
+ '15' => 'B22', # Banco de Pagadores
187
+ '17' => 'B23', # Entrega Aviso Disp Boleto via e-amail ao pagador (s/ emissão Boleto)
188
+ '18' => 'B24', # Emissão de Boleto Pré-impresso CAIXA matricial
189
+ '19' => 'B25', # Emissão de Boleto Pré-impresso CAIXA A4
190
+ '20' => 'B26', # Emissão de Boleto Padrão CAIXA
191
+ '21' => 'B27', # Emissão de Boleto/Carnê
192
+ '31' => 'B28', # Emissão de Aviso de Vencido
193
+ '42' => 'B29', # Alteração cadastral de dados do título - sem emissão de aviso
194
+ '45' => 'B30', # Emissão de 2a via de Boleto Cobrança Registrada
195
+ })
196
+ end
197
+ def codigos_movimento_retorno_para_ocorrencia_C_240
198
+ %w[06 08 09 17]
199
+ end
200
+ def equivalent_codigo_motivo_ocorrencia_C_240 codigo_movimento_gem
201
+ if codigo_movimento_gem == '08'
202
+ super.merge(
203
+ # Padrão Código para
204
+ {# do Banco a GEM
205
+ '01' => 'C35', # Liquidação em Dinheiro
206
+ '02' => 'C36', # Liquidação em Cheque
207
+ })
208
+ else
209
+ super.merge(
210
+ # Padrão Código para
211
+ {# do Banco a GEM
212
+ '02' => 'C100', # Casa Lotérica
213
+ '03' => 'C101', # Agências CAIXA
214
+ '07' => 'C102', # Correspondente Bancário
215
+ })
216
+ end
217
+ end
218
+
219
+ def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
220
+ super.merge(
221
+ # Padrão Código para
222
+ {# do Banco a GEM
223
+ '01' => 'A220', # Movimento sem Beneficiário Correspondente
224
+ '02' => 'A221', # Movimento sem Título Correspondente
225
+ '08' => 'A222', # Movimento para título já com movimentação no dia
226
+ '09' => 'A223', # Nosso Número não pertence ao Beneficiário
227
+ '10' => 'A224', # Inclusão de título já existente na base
228
+ '12' => 'A225', # Movimento duplicado
229
+ '13' => 'A116', # Entrada Inválida para Cobrança Caucionada (Beneficiário não possui conta Caução)
230
+ '20' => 'A117', # CEP do Pagador não encontrado (não foi possível a determinação da Agência Cobradora para o título)
231
+ '21' => 'A118', # Agência cobradora não encontrada (agência designada para cobradora não cadastrada no sistema)
232
+ '22' => 'A119', # Agência Beneficiário não encontrada (Agência do Beneficiário não cadastrada no sistema)
233
+ '45' => 'A226', # Data de Vencimento com prazo superior ao limite
234
+ '49' => 'A227', # Movimento inválido para título Baixado/Liquidado
235
+ '50' => 'A228', # Movimento inválido para título enviado a Cartório
236
+ '54' => 'A229', # Faixa de CEP da Agência Cobradora não abrange CEP do Pagador
237
+ '55' => 'A230', # Título já com opção de Devolução
238
+ '56' => 'A231', # Processo de Protesto em andamento
239
+ '57' => 'A232', # Título já com opção de Protesto
240
+ '58' => 'A233', # Processo de devolução em andamento
241
+ '59' => 'A234', # Novo prazo p/ Protesto/Devolução inválido
242
+ '76' => 'A235', # Alteração do prazo de protesto inválida
243
+ '77' => 'A236', # Alteração do prazo de devolução inválida
244
+ '81' => 'A237', # CEP do Pagador inválido
245
+ '82' => 'A238', # CNPJ/CPF do Pagador inválido (dígito não confere)
246
+ '83' => 'A86' , # Número do Documento (seu número) inválido
247
+ '84' => 'A239', # Protesto inválido para título sem Número do documento (seu número)
248
+ })
249
+ end
250
+
251
+ def codigos_movimento_retorno_para_ocorrencia_C_400
252
+ %w[06 09 101 151 152]
253
+ end
254
+ def equivalent_codigo_motivo_ocorrencia_C_400 codigo_movimento_gem
255
+ super.merge(
256
+ # Padrão Código para
257
+ {# do Banco a GEM
258
+ '002' => 'C100', # Unidade Lotérica
259
+ '003' => 'C101', # Agências CAIXA
260
+ '004' => 'C04', # Compensação Eletrônica
261
+ '006' => 'C06', # Internet Banking
262
+ '007' => 'C102', # Correspondente CAIXA aqui
263
+ '008' => 'C08', # Em Cartório
264
+ '009' => 'C09', # Comandada Banco
265
+ '010' => 'C10', # Comandada Cliente via Arquivo
266
+ '011' => 'C11', # Comandada Cliente On-line
267
+ })
268
+ end
269
+
270
+ # Identificações de Ocorrência / Código de ocorrência:
271
+ def equivalent_codigo_movimento_retorno_400
272
+ super.merge(
273
+ # Padrão Código para
274
+ {# do Banco a GEM
275
+ '01' => '02', # Entrada Confirmada
276
+ '02' => '09', # Baixa Manual Confirmada
277
+ '03' => '12', # Abatimento Concedido
278
+ '04' => '13', # Abatimento Cancelado
279
+ '05' => '14', # Vencimento Alterado
280
+ '06' => '146', # Uso da Empresa Alterado
281
+ '08' => '147', # Prazo de Devolução Alterado
282
+ '09' => '27', # Alteração Confirmada
283
+ '10' => '148', # Alteração com reemissão de Boleto Confirmada
284
+ '11' => '149', # Alteração da opção de Protesto para Devolução Confirmada
285
+ '12' => '150', # Alteração da opção de Devolução para Protesto Confirmada
286
+ '20' => '11', # Em Ser
287
+ '21' => '06', # Liquidação
288
+ '22' => '101', # Liquidação em Cartório
289
+ '23' => '151', # Baixa por Devolução
290
+ '25' => '152', # Baixa por Protesto
291
+ '26' => '23', # Título enviado para Cartório
292
+ '27' => '20', # Sustação de Protesto
293
+ '28' => '153', # Estorno de Protesto
294
+ '29' => '154', # Estorno de Sustação de Protesto
295
+ '30' => '61', # Alteração de Título
296
+ '31' => '108', # Tarifa sobre Título Vencido
297
+ '32' => '155', # Outras Tarifas de Alteração
298
+ '33' => '144', # Estorno de Baixa / Liquidação
299
+ '34' => '156', # Tarifas Diversas
300
+ })
301
+ end
302
+
303
+ # Código para Protesto
304
+ def equivalent_codigo_protesto_400
305
+ super.merge(
306
+ # Padrão Código para
307
+ {# da GEM o Banco
308
+ '3' => '2', # Devolver (Não Protestar)
309
+ })
310
+ end
311
+
312
+ # Código da Moeda
313
+ def equivalent_codigo_moeda_400
314
+ super.merge(
315
+ # Padrão Código para
316
+ {# da GEM o Banco
317
+ '09' => '1', # Real
318
+ })
319
+ end
320
+
117
321
  end
118
322
  end
119
323
  end