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
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