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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e63b6bade6f42bb9fa2642ddd95632c7d9d0b57
4
- data.tar.gz: 8624d1e332aad837ebb4d099fcc9e72211375f56
3
+ metadata.gz: 498d01952f480ee5b1fac73ff516a920567a119f
4
+ data.tar.gz: 2332c8e617744dbbf730ab83cac4e050cb149c64
5
5
  SHA512:
6
- metadata.gz: 670443799e6482b64e9bd57426d0446f0efe503c3676714f43f1701742b68f963f4d039749cd2374a413ee073566d031a61648540a25febfb2d280cc03111aa0
7
- data.tar.gz: 3ee9191d6629c296623abc1506e365122ca7052f07e58d60e09dc123285cd4bf6fbd604c2fa359b42c58fdd14190957aef7b8c5117dcc70e83f8326210018c53
6
+ metadata.gz: df38d3138642a8762055e9fb37cfe7e1bd2f619f735cfc8ae017914342fcc5326ff5a1b889c30c27220299bf9d826752d7d273e9a115f9f6859b12e28f258cec
7
+ data.tar.gz: 9e0af803bad811ac6193c831b87680f5f9aaa7abd3465ac331a9445b28dea7ebd2ae0a34537cf9e5e33d49dfbc47762c275b317d7edf21d3fef450b2616676b0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- br_boleto (2.2.0)
4
+ br_boleto (2.2.1)
5
5
  activemodel (~> 4.2)
6
6
  activesupport (~> 4.2)
7
7
  rake (>= 0.8.7)
@@ -9,11 +9,11 @@ Emissão de Boletos Bancários em Ruby.
9
9
  **O que essa gem faz?**
10
10
 
11
11
  1. Boleto bancário (apenas os cálculos para o boleto, sem a interface) para os bancos:
12
- - Banco do Brasil (em andamento)
12
+ - Banco do Brasil
13
13
  - Bradesco (em andamento)
14
14
  - Caixa
15
15
  - Cecred
16
- - Itaú (em andamento)
16
+ - Itaú
17
17
  - Santander (em andamento)
18
18
  - Sicoob
19
19
  - Sicredi
@@ -21,7 +21,7 @@ Emissão de Boletos Bancários em Ruby.
21
21
  2. Arquivo de remessa para os Bancos:
22
22
  - Banco do Brasil (CNAB240 e CNAB400)
23
23
  - Bradesco (CNAB240 e CNAB400)
24
- - Caixa (CNAB240)
24
+ - Caixa (CNAB240 e CNAB400)
25
25
  - Cecred (CNAB240)
26
26
  - Itaú (CNAB240 e CNAB400)
27
27
  - Santander (CNAB240 e CNAB400)
@@ -31,7 +31,7 @@ Emissão de Boletos Bancários em Ruby.
31
31
  3. Arquivo de retorno para os Bancos:
32
32
  - Banco do Brasil (CNAB240 e CNAB400)
33
33
  - Bradesco (CNAB240 e CNAB400)
34
- - Caixa (CNAB240)
34
+ - Caixa (CNAB240 e CNAB400)
35
35
  - Cecred (CNAB240)
36
36
  - Itaú (CNAB240 e CNAB400)
37
37
  - Santander (CNAB240 e CNAB400)
@@ -110,18 +110,18 @@ Para todos os bancos e carteiras implementadas, **seguimos as documentações**
110
110
  <tr>
111
111
  <td>Banco do Brasil</td>
112
112
  <td>11, 12, 15, 16, 17, 18, 31, 51.</td>
113
- <td>Pendente</td>
113
+ <td>Homologado dia 15/12/2016</td>
114
114
  <td>Ricardo Zanuzzo</td>
115
115
  </tr>
116
116
  <tr>
117
- <td>Bradesco</td>
118
- <td>06, 09, 19, 21, 22.</td>
119
- <td>Pendente</td>
117
+ <td>Itaú</td>
118
+ <td>104, 105, 107, 108, 109, 112, 113, 116, 117, 119, 121, 122, 126, 131, 134, 135, 136, 142, 143, 146, 147, 150, 168, 169, 174, 175, 180, 191, 196, 198.</td>
119
+ <td>Homologado dia 16/12/2016</td>
120
120
  <td>Ricardo Zanuzzo</td>
121
121
  </tr>
122
122
  <tr>
123
- <td>Itaú</td>
124
- <td>104, 105, 107, 108, 109, 112, 113, 116, 117, 119, 121, 122, 126, 131, 134, 135, 136, 142, 143, 146, 147, 150, 168, 169, 174, 175, 180, 191, 196, 198.</td>
123
+ <td>Bradesco</td>
124
+ <td>06, 09, 19, 21, 22.</td>
125
125
  <td>Pendente</td>
126
126
  <td>Ricardo Zanuzzo</td>
127
127
  </tr>
@@ -163,6 +163,12 @@ Para todos os bancos e carteiras implementadas, **seguimos as documentações**
163
163
  <td>Homologado dia 11/11/2016</td>
164
164
  <td>Bruno M. Merge</td>
165
165
  </tr>
166
+ <tr>
167
+ <td>Caixa</td>
168
+ <td>400</td>
169
+ <td>Homologado dia 29/12/2016</td>
170
+ <td>Ricardo Zanuzzo</td>
171
+ </tr>
166
172
  <tr>
167
173
  <td>Cecred</td>
168
174
  <td>240</td>
@@ -196,35 +202,35 @@ Para todos os bancos e carteiras implementadas, **seguimos as documentações**
196
202
  <tr>
197
203
  <td>Banco do Brasil</td>
198
204
  <td>240</td>
199
- <td>Pendente</td>
205
+ <td>Homologado dia 30/12/2016</td>
200
206
  <td>Ricardo Zanuzzo</td>
201
207
  </tr>
202
208
  <tr>
203
209
  <td>Banco do Brasil</td>
204
210
  <td>400</td>
205
- <td>Pendente</td>
211
+ <td>Homologado dia 15/12/2016</td>
206
212
  <td>Ricardo Zanuzzo</td>
207
213
  </tr>
208
214
  <tr>
209
- <td>Bradesco</td>
215
+ <td>Itaú</td>
210
216
  <td>240</td>
211
217
  <td>Pendente</td>
212
218
  <td>Ricardo Zanuzzo</td>
213
219
  </tr>
214
220
  <tr>
215
- <td>Bradesco</td>
221
+ <td>Itaú</td>
216
222
  <td>400</td>
217
- <td>Pendente</td>
223
+ <td>Homologado dia 16/12/2016</td>
218
224
  <td>Ricardo Zanuzzo</td>
219
225
  </tr>
220
226
  <tr>
221
- <td>Itaú</td>
227
+ <td>Bradesco</td>
222
228
  <td>240</td>
223
229
  <td>Pendente</td>
224
230
  <td>Ricardo Zanuzzo</td>
225
231
  </tr>
226
232
  <tr>
227
- <td>Itaú</td>
233
+ <td>Bradesco</td>
228
234
  <td>400</td>
229
235
  <td>Pendente</td>
230
236
  <td>Ricardo Zanuzzo</td>
@@ -126,6 +126,7 @@ module BrBoleto
126
126
  autoload :Itau
127
127
  autoload :BancoBrasil
128
128
  autoload :Santander
129
+ autoload :Caixa
129
130
  end
130
131
  end
131
132
 
@@ -156,6 +157,7 @@ module BrBoleto
156
157
  autoload :Itau
157
158
  autoload :BancoBrasil
158
159
  autoload :Santander
160
+ autoload :Caixa
159
161
  end
160
162
  end
161
163
 
@@ -14,7 +14,7 @@ module BrBoleto
14
14
 
15
15
  ################# VALIDAÇÕES DINÂMICAS #################
16
16
  def valid_numero_documento_maximum
17
- numero_documento_esperado[conta.convenio.to_s.size]
17
+ numero_documento_esperado["#{conta.convenio}".strip.size]
18
18
  end
19
19
 
20
20
  def valid_carteira_inclusion
@@ -98,31 +98,40 @@ module BrBoleto
98
98
  # ___________________________________________________________________________
99
99
  # | Posição | Tamanho | Descrição |
100
100
  # |-----------------|---------------|-----------------------------------------|
101
- # | 20-30 | 11 | Nosso-Número, sem dígito verificador |
102
- # | 20-23 ou 20-25 | 4 ou 6 | Código do cedente fornecido pelo Banco |
103
- # | 24-30 ou 26-30 | 7 ou 5 | Nosso-Número, sem dígito verificador |
104
- # | 31-34 | 04 | Agência (sem o dígito) |
105
- # | 35-42 | 08 | Conta corrente (sem o dígito) |
106
- # | 43-44 | 02 | Carteira |
101
+ # | 20-23 ou 20-25 | 4 ou 6 | Código do cedente (4 ou 6 dígitos) |
102
+ # | 24-30 ou 26-30 | 7 ou 5 | Número do documento (7 ou 5 dígitos) |
103
+ # | 31-34 | 04 | Agência (sem o dígito) |
104
+ # | 35-42 | 08 | Conta corrente (sem o dígito) |
105
+ # | 43-44 | 02 | Carteira |
107
106
  # -----------------------------------------------------------------------------
108
107
  #
109
108
  # === Código de barras do banco com Convênio de 7 e 8 dígitos
110
109
  # ___________________________________________________________________________
111
110
  # | Posição | Tamanho | Descrição |
112
111
  # |-----------------|---------------|-----------------------------------------|
113
- # | 20-30 | 17 | Nosso-Número, sem dígito verificador |
114
- # | 20-32 ou 20-33 | 7 ou 8 | Código do cedente fornecido pelo Banco |
115
- # | 33-42 ou 34-42 | 9 ou 10 | Nosso-Número, sem dígito verificador |
112
+ # | 20-25 | 06 | Zeros |
113
+ # | 26-32 ou 26-33 | 7 ou 8 | Código do cedente (7 ou 8 dígitos) |
114
+ # | 33-42 ou 34-42 | 10 ou 9 | Número do documento (10 ou 9 dígitos) |
116
115
  # | 43-44 | 02 | Carteira |
117
116
  # ----------------------------------------------------------------------------
118
117
  #
119
118
  def codigo_de_barras_do_banco
120
- tamanho = conta.convenio.to_s.size
121
- if tamanho == 7 or tamanho == 8
122
- "000000#{conta.convenio}#{numero_documento}#{conta.carteira}"
123
- else
124
- "#{conta.convenio}#{numero_documento}#{conta.agencia}#{conta.conta_corrente}#{conta.carteira}"
119
+ tamanho = "#{conta.convenio}".strip.size
120
+ cod_barras = ''
121
+ if tamanho == 4 or tamanho == 6
122
+ cod_barras << "#{conta.convenio}"
123
+ cod_barras << "#{numero_documento}"
124
+ cod_barras << "#{conta.agencia}"
125
+ cod_barras << "#{conta.conta_corrente}"
126
+ cod_barras << "#{conta.carteira}"
127
+
128
+ elsif tamanho == 7 or tamanho == 8
129
+ cod_barras << "000000"
130
+ cod_barras << "#{conta.convenio}"
131
+ cod_barras << "#{numero_documento}"
132
+ cod_barras << "#{conta.carteira}"
125
133
  end
134
+ cod_barras
126
135
  end
127
136
 
128
137
  end
@@ -65,12 +65,18 @@ module BrBoleto
65
65
  # | 20 | 01 | Fixo 9 |
66
66
  # | 21-27 | 07 | Código do cedente padrão Santander |
67
67
  # | 28-40 | 13 | Nosso Número (Num. Documeto + DV) |
68
- # | 41 | 01 | IOF (somente para seguradoras) |
68
+ # | 41 | 01 | Zero (IOF somente para seguradoras) |
69
69
  # | 42-44 | 03 | Carteira de cobrança |
70
70
  # -------------------------------------------------------------------
71
71
  #
72
72
  def codigo_de_barras_do_banco
73
- "9#{conta.convenio}#{numero_documento}#{digito_verificador_nosso_numero}0#{conta.carteira}"
73
+ cod_barras = ''
74
+ cod_barras << "9"
75
+ cod_barras << "#{conta.convenio}"
76
+ cod_barras << "#{nosso_numero.gsub('-','')}"
77
+ cod_barras << "0"
78
+ cod_barras << "#{conta.carteira}"
79
+ cod_barras
74
80
  end
75
81
  end
76
82
  end
@@ -92,65 +92,263 @@ module BrBoleto
92
92
  def agencia_codigo_cedente
93
93
  "#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
94
94
  end
95
+
95
96
 
96
- # Código da Carteira
97
- def equivalent_tipo_cobranca_400
98
- {
99
- '5' => '8', # Cobrança BBVendor
100
- '7' => '7', # Cobrança Direta Especial
101
- }
102
- end
97
+ ##################################### DEFAULT CODES ###############################################
103
98
 
104
- # Código Movimento da Remessa CNAB400
105
- def equivalent_codigo_movimento_remessa_400
106
- # Padrão Código para Descrição
107
- {# da GEM o Banco
108
- '01' => '01' , # Registro de títulos
109
- '02' => '02' , # Solicitação de baixa
110
- '03' => '03' , # Pedido de débito em conta
111
- '04' => '04' , # Concessão de abatimento
112
- '05' => '05' , # Cancelamento de abatimento
113
- '06' => '06' , # Alteração de vencimento de título
114
- '22' => '07' , # Alteração do número de controle do participante
115
- '21' => '08' , # Alteração do número do titulo dado pelo cedente
116
- '09' => '09' , # Instrução para protestar
117
- '10' => '10' , # Instrução para sustar protesto
118
- '11' => '11' , # Instrução para dispensar juros
119
- '24' => '12' , # Alteração de nome e endereço do Sacado
120
- '12' => '16' , # Alterar Juros de Mora
121
- '31' => '31' , # Conceder desconto
122
- '32' => '32' , # Não conceder desconto
123
- '33' => '33' , # Retificar dados da concessão de desconto
124
- '34' => '34' , # Alterar data para concessão de desconto
125
- '35' => '35' , # Cobrar multa
126
- '36' => '36' , # Dispensar multa
127
- '37' => '37' , # Dispensar indexador
128
- '38' => '38' , # Dispensar prazo limite de recebimento
129
- '39' => '39' , # Alterar prazo limite de recebimento
130
- '40' => '40' , # Alterar carteira/modalidade
131
- }
132
- end
99
+ # Código da Carteira
100
+ def equivalent_tipo_cobranca_400
101
+ {
102
+ '5' => '8', # Cobrança BBVendor
103
+ '7' => '7', # Cobrança Direta Especial
104
+ }
105
+ end
133
106
 
134
- # Espécie do Título
135
- def equivalent_especie_titulo_400
136
- # Padrão Código para
137
- {# da GEM o Banco
138
- '01' => '10' , # Cheque
139
- '02' => '01' , # Duplicata Mercantil
140
- '04' => '12' , # Duplicata de Serviço
141
- '07' => '08' , # Letra de Câmbio
142
- '12' => '02' , # Nota Promissória
143
- '16' => '03' , # Nota de Seguro
144
- '17' => '05' , # Recibo
145
- '19' => '13' , # Nota de Débito
146
- '20' => '15' , # Apólice de Seguro
147
- '26' => '09' , # Warrant
148
- '27' => '26' , # Dívida Ativa de Estado
149
- '28' => '27' , # Dívida Ativa de Município
150
- '29' => '25' , # Dívida Ativa da União
151
- '99' => '99' , # Outros
152
- }
153
- end
107
+ # Código Movimento da Remessa CNAB400
108
+ def equivalent_codigo_movimento_remessa_400
109
+ # Padrão Código para Descrição
110
+ {# da GEM o Banco
111
+ '01' => '01' , # Registro de títulos
112
+ '02' => '02' , # Solicitação de baixa
113
+ '03' => '03' , # Pedido de débito em conta
114
+ '04' => '04' , # Concessão de abatimento
115
+ '05' => '05' , # Cancelamento de abatimento
116
+ '06' => '06' , # Alteração de vencimento de título
117
+ '22' => '07' , # Alteração do número de controle do participante
118
+ '21' => '08' , # Alteração do número do Título dado pelo cedente
119
+ '09' => '09' , # Instrução para protestar
120
+ '10' => '10' , # Instrução para sustar protesto
121
+ '11' => '11' , # Instrução para dispensar juros
122
+ '24' => '12' , # Alteração de nome e endereço do Sacado
123
+ '12' => '16' , # Alterar Juros de Mora
124
+ '31' => '31' , # Conceder desconto
125
+ '32' => '32' , # Não conceder desconto
126
+ '33' => '33' , # Retificar dados da concessão de desconto
127
+ '34' => '34' , # Alterar data para concessão de desconto
128
+ '35' => '35' , # Cobrar multa
129
+ '36' => '36' , # Dispensar multa
130
+ '37' => '37' , # Dispensar indexador
131
+ '38' => '38' , # Dispensar prazo limite de recebimento
132
+ '39' => '39' , # Alterar prazo limite de recebimento
133
+ '40' => '40' , # Alterar carteira/modalidade
134
+ }
135
+ end
136
+
137
+ # Espécie do Título
138
+ def equivalent_especie_titulo_400
139
+ # Padrão Código para
140
+ {# da GEM o Banco
141
+ '01' => '10' , # Cheque
142
+ '02' => '01' , # Duplicata Mercantil
143
+ '04' => '12' , # Duplicata de Serviço
144
+ '07' => '08' , # Letra de Câmbio
145
+ '12' => '02' , # Nota Promissória
146
+ '16' => '03' , # Nota de Seguro
147
+ '17' => '05' , # Recibo
148
+ '19' => '13' , # Nota de Débito
149
+ '20' => '15' , # Apólice de Seguro
150
+ '26' => '09' , # Warrant
151
+ '27' => '26' , # Dívida Ativa de Estado
152
+ '28' => '27' , # Dívida Ativa de Município
153
+ '29' => '25' , # Dívida Ativa da União
154
+ '99' => '99' , # Outros
155
+ }
156
+ end
157
+
158
+ # Código Motivo Ocorrência Retorno
159
+ def equivalent_codigo_motivo_ocorrencia_A_240 codigo_movimento_gem
160
+ super.merge(
161
+ # Padrão Código para
162
+ {# do Banco a GEM
163
+ '52' => 'A104' , # Registro Rejeitado – Título já Liquidado
164
+ })
165
+ end
166
+
167
+ # Código Motivo Ocorrência Retorno CNAB 400
168
+ def codigos_movimento_retorno_para_ocorrencia_A_400
169
+ %w[02 03]
170
+ end
171
+ def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
172
+ case codigo_movimento_gem
173
+ when '02'
174
+ super.merge(
175
+ # Padrão Código para
176
+ {# do Banco a GEM
177
+ '00' => 'A207', # Entrada Por meio magnético
178
+ '11' => 'A151', # Entrada Por via convencional
179
+ '16' => 'A152', # Entrada Por alteração do código do cedente
180
+ '17' => 'A153', # Entrada Por alteração da variação
181
+ '18' => 'A154', # Entrada Por alteração da carteira
182
+ })
183
+ when '03'
184
+ super.merge(
185
+ # Padrão Código para
186
+ {# do Banco a GEM
187
+ '03' => 'A27', # valor dos juros por um dia inválido
188
+ '04' => 'A29', # valor do desconto inválido
189
+ '05' => 'A22', # espécie de título inválida para carteira/variação
190
+ '07' => 'A07', # Prefixo da agência usuária inválido
191
+ '08' => 'A20', # valor do título/apólice inválido
192
+ '09' => 'A16', # data de vencimento inválida
193
+ '16' => 'A11', # Título preenchido de forma irregular
194
+ '19' => 'A105', # Código do cedente inválido
195
+ '20' => 'A45', # Nome/endereço do cliente não informado (ECT)
196
+ '21' => 'A10', # Carteira inválida
197
+ '24' => 'A33', # Valor do abatimento inválido
198
+ '25' => 'A86', # Novo número do título dado pelo cedente inválido (Seu número)
199
+ '26' => 'A32', # Valor do IOF de seguro inválido
200
+ '29' => 'A47', # Endereço não informado
201
+ '30' => 'A104', # Registro de título já liquidado (carteira 17-tipo 4)
202
+ '33' => 'A09', # Nosso número já existente
203
+ '37' => 'A24', # Data de emissão do título inválida
204
+ '38' => 'A25', # Data do vencimento anterior à data da emissão do título
205
+ '39' => 'A04', # Comando de alteração indevido para a carteira
206
+ '41' => 'A36', # Abatimento não permitido
207
+ '42' => 'A51', # CEP/UF inválido/não compatíveis (ECT)
208
+ '46' => 'A105', # Convenio encerrado
209
+ '49' => 'A107', # Abatimento a cancelar não consta do título
210
+ '52' => 'A34', # Abatimento igual ou maior que o valor do Título
211
+ '66' => 'A53', # Número do documento do sacado (CNPJ/CPF) inválido
212
+ '69' => 'A59', # Valor/Percentual de Juros Inválido
213
+ '75' => 'A97', # Qtde. de dias do prazo limite p/ recebimento de título vencido inválido
214
+ '80' => 'A08', # Nosso numero inválido
215
+ '81' => 'A80', # Data para concessão do desconto inválida.
216
+ '82' => 'A48', # CEP do sacado inválido
217
+
218
+ '01' => 'A155', # identificação inválida
219
+ '02' => 'A156', # variação da carteira inválida
220
+ '06' => 'A157', # espécie de valor invariável inválido
221
+ '10' => 'A158', # fora do prazo/só admissível na carteira
222
+ '11' => 'A159', # inexistência de margem para desconto
223
+ '12' => 'A160', # o banco não tem agência na praça do sacado
224
+ '13' => 'A161', # razões cadastrais
225
+ '14' => 'A162', # sacado interligado com o sacador (só admissível em cobrança simples- cart. 11 e 17)
226
+ '15' => 'A163', # Título sacado contra órgão do Poder Público (só admissível na carteira 11 e sem ordem de protesto)
227
+ '17' => 'A164', # Título rasurado
228
+ '18' => 'A165', # Endereço do sacado não localizado ou incompleto
229
+ '22' => 'A166', # Quantidade de valor variável inválida
230
+ '23' => 'A167', # Faixa nosso-numero excedida
231
+ '27' => 'A168', # Nome do sacado/cedente inválido
232
+ '28' => 'A169', # Data do novo vencimento inválida
233
+ '31' => 'A170', # Numero do borderô inválido
234
+ '32' => 'A171', # Nome da pessoa autorizada inválido
235
+ '34' => 'A172', # Numero da prestação do contrato inválido
236
+ '35' => 'A173', # percentual de desconto inválido
237
+ '36' => 'A174', # Dias para fichamento de protesto inválido
238
+ '40' => 'A175', # Tipo de moeda inválido
239
+ '43' => 'A176', # Código de unidade variável incompatível com a data de emissão do título
240
+ '44' => 'A177', # Dados para débito ao sacado inválidos
241
+ '45' => 'A178', # Carteira/variação encerrada
242
+ '47' => 'A179', # Título tem valor diverso do informado
243
+ '48' => 'A180', # Motivo de baixa invalido para a carteira
244
+ '50' => 'A181', # Comando incompatível com a carteira
245
+ '51' => 'A182', # Código do convenente invalido
246
+ '53' => 'A183', # Título já se encontra na situação pretendida
247
+ '54' => 'A184', # Título fora do prazo admitido para a conta 1
248
+ '55' => 'A185', # Novo vencimento fora dos limites da carteira
249
+ '56' => 'A186', # Título não pertence ao convenente
250
+ '57' => 'A187', # Variação incompatível com a carteira
251
+ '58' => 'A188', # Impossível a variação única para a carteira indicada
252
+ '59' => 'A189', # Título vencido em transferência para a carteira 51
253
+ '60' => 'A190', # Título com prazo superior a 179 dias em variação única para carteira 51
254
+ '61' => 'A191', # Título já foi fichado para protesto
255
+ '62' => 'A192', # Alteração da situação de débito inválida para o código de responsabilidade
256
+ '63' => 'A193', # DV do nosso número inválido
257
+ '64' => 'A194', # Título não passível de débito/baixa – situação anormal
258
+ '65' => 'A195', # Título com ordem de não protestar – não pode ser encaminhado a cartório
259
+ '67' => 'A196', # Título/carne rejeitado
260
+ '70' => 'A197', # Título já se encontra isento de juros
261
+ '71' => 'A198', # Código de Juros Inválido
262
+ '72' => 'A199', # Prefixo da Ag. cobradora inválido
263
+ '73' => 'A200', # Numero do controle do participante inválido
264
+ '74' => 'A201', # Cliente não cadastrado no CIOPE (Desconto/Vendor)
265
+ '76' => 'A202', # Título excluído automaticamente por decurso de prazo CIOPE (Desconto/Vendor)
266
+ '77' => 'A203', # Título vencido transferido para a conta 1 – Carteira vinculada
267
+ '83' => 'A204', # Carteira/variação não localizada no cedente
268
+ '84' => 'A205', # Título não localizado na existência/Baixado por protesto
269
+ '85' => 'A206', # Recusa do Comando “41” – Parâmetro de Liquidação Parcial.
270
+ '99' => 'A999', # Outros motivos
271
+ })
272
+ else
273
+ super
274
+ end
275
+ end
276
+
277
+ def codigos_movimento_retorno_para_ocorrencia_C_400
278
+ %w[06 09 10 17 45 101 102 103 120]
279
+ end
280
+ def equivalent_codigo_motivo_ocorrencia_C_400 codigo_movimento_gem
281
+ super.merge(
282
+ # Padrão Código para
283
+ {# do Banco a GEM
284
+ '01' => 'C103', # Liquidação normal
285
+ '02' => 'C104', # Liquidação parcial
286
+ '03' => 'C01', # Liquidação por saldo
287
+ '04' => 'C105', # Liquidação com cheque a compensar
288
+ '05' => 'C106', # Liquidação de título sem registro (carteira 7 tipo 4)
289
+ '07' => 'C107', # Liquidação na apresentação
290
+ '09' => 'C08', # Liquidação em cartório
291
+ '10' => 'C110', # Liquidação Parcial com Cheque a Compensar
292
+ '11' => 'C111', # Liquidação por Saldo com Cheque a Compensar
293
+
294
+ '00' => 'C10', # Solicitada pelo cliente
295
+ '15' => 'C14', # Protestado
296
+ '18' => 'C118', # Por alteração da carteira
297
+ '19' => 'C119', # Débito automático
298
+ '31' => 'C131', # Liquidado anteriormente
299
+ '32' => 'C132', # Habilitado em processo
300
+ '33' => 'C133', # Incobrável por nosso intermédio
301
+ '34' => 'C134', # Transferido para créditos em liquidação
302
+ '46' => 'C46', # Por alteração da variação
303
+ '47' => 'C47', # Por alteração da variação
304
+ '51' => 'C51', # Acerto
305
+ '90' => 'C90', # Baixa automática
306
+ })
307
+ end
308
+
309
+ def codigos_movimento_retorno_para_ocorrencia_D_400
310
+ %w[72]
311
+ end
312
+ def equivalent_codigo_motivo_ocorrencia_D_400 codigo_movimento_gem
313
+ # Código Padrão para
314
+ {# do Banco a Gem
315
+ '00' => 'D00', # Transferência de título de cobrança simples para descontada ou vice-versa
316
+ '52' => 'D52', # Reembolso de título vendor ou descontado, quando ocorrerem reembolsos de títulos
317
+ # por falta de liquidação. Não há migração de carteira descontada para simples.
318
+ }
319
+ end
320
+
321
+ # Identificações de Ocorrência / Código de ocorrência:
322
+ def equivalent_codigo_movimento_retorno_400
323
+ super.merge(
324
+ # Padrão Código para
325
+ {# do Banco a GEM
326
+ '05' => '17', # Liquidado sem registro (carteira 17=tipo4)
327
+ '07' => '102', # Liquidação por Conta/Parcial
328
+ '08' => '103', # Liquidação por Saldo
329
+ '15' => '101', # Liquidação em Cartório
330
+ '16' => '57', # Confirmação de alteração de juros de mora
331
+ '20' => '120', # Débito em Conta
332
+ '21' => '43', # Alteração do Nome do Sacado
333
+ '22' => '43', # Alteração do Endereço do Sacado
334
+ '24' => '20', # Sustar Protesto
335
+ '25' => '60', # Dispensar Juros de mora
336
+ '26' => '40', # Alteração do número do título dado pelo Cedente (Seu número) – 10 e 15posições
337
+ '28' => '108', # Manutenção de Título vencido
338
+ '31' => '07', # Conceder desconto
339
+ '32' => '08', # Não conceder desconto
340
+ '33' => '58', # Retificar desconto
341
+ '34' => '58', # Alterar data para desconto
342
+ '35' => '56', # Cobrar Multa
343
+ '36' => '55', # Dispensar Multa
344
+ '37' => '121', # Dispensar Indexador
345
+ '38' => '39', # Dispensar prazo limite para recebimento
346
+ '39' => '38', # Alterar prazo limite para recebimento
347
+ '46' => '45', # Título pago com cheque, aguardando compensação
348
+ '73' => '123', # Confirmação de Instrução de Parâmetro de Pagamento Parcial
349
+ })
350
+ end
351
+
154
352
  end
155
353
  end
156
354
  end