br_boleto 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.markdown +157 -8
  5. data/br_boleto.gemspec +1 -1
  6. data/lib/br_boleto.rb +12 -1
  7. data/lib/br_boleto/association/have_conta.rb +31 -27
  8. data/lib/br_boleto/boleto/banco_brasil.rb +130 -0
  9. data/lib/br_boleto/boleto/santander.rb +77 -0
  10. data/lib/br_boleto/conta/banco_brasil.rb +156 -0
  11. data/lib/br_boleto/conta/itau.rb +8 -3
  12. data/lib/br_boleto/conta/santander.rb +208 -0
  13. data/lib/br_boleto/remessa/cnab240/banco_brasil.rb +132 -0
  14. data/lib/br_boleto/remessa/cnab240/bradesco.rb +1 -3
  15. data/lib/br_boleto/remessa/cnab240/itau.rb +0 -6
  16. data/lib/br_boleto/remessa/cnab240/santander.rb +266 -0
  17. data/lib/br_boleto/remessa/cnab400/banco_brasil.rb +264 -0
  18. data/lib/br_boleto/remessa/cnab400/bradesco.rb +1 -1
  19. data/lib/br_boleto/remessa/cnab400/santander.rb +215 -0
  20. data/lib/br_boleto/retorno/cnab240/banco_brasil.rb +10 -0
  21. data/lib/br_boleto/retorno/cnab240/base.rb +3 -2
  22. data/lib/br_boleto/retorno/cnab240/caixa.rb +3 -2
  23. data/lib/br_boleto/retorno/cnab240/itau.rb +1 -2
  24. data/lib/br_boleto/retorno/cnab240/santander.rb +38 -0
  25. data/lib/br_boleto/retorno/cnab240/sicoob.rb +3 -2
  26. data/lib/br_boleto/retorno/cnab400/banco_brasil.rb +46 -0
  27. data/lib/br_boleto/retorno/cnab400/bradesco.rb +4 -3
  28. data/lib/br_boleto/retorno/cnab400/itau.rb +2 -2
  29. data/lib/br_boleto/retorno/cnab400/santander.rb +44 -0
  30. data/lib/br_boleto/retorno/cnab400/sicoob.rb +3 -2
  31. data/lib/br_boleto/retorno/cnab400/sicredi.rb +20 -6
  32. data/lib/br_boleto/retorno/pagamento.rb +28 -7
  33. data/lib/br_boleto/version.rb +1 -1
  34. data/test/br_boleto/boleto/banco_brasil_test.rb +183 -0
  35. data/test/br_boleto/boleto/santander_test.rb +122 -0
  36. data/test/br_boleto/conta/banco_brasil_test.rb +209 -0
  37. data/test/br_boleto/conta/santantader_test.rb +222 -0
  38. data/test/br_boleto/remessa/cnab240/banco_brasil_test.rb +187 -0
  39. data/test/br_boleto/remessa/cnab240/itau_test.rb +4 -0
  40. data/test/br_boleto/remessa/cnab240/santander_test.rb +144 -0
  41. data/test/br_boleto/remessa/cnab400/banco_brasil_test.rb +285 -0
  42. data/test/br_boleto/remessa/cnab400/bradesco_test.rb +7 -0
  43. data/test/br_boleto/remessa/cnab400/santander_test.rb +174 -0
  44. data/test/br_boleto/retorno/cnab240/banco_brasil_test.rb +271 -0
  45. data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
  46. data/test/br_boleto/retorno/cnab240/bradesco_test.rb +15 -15
  47. data/test/br_boleto/retorno/cnab240/caixa_test.rb +10 -10
  48. data/test/br_boleto/retorno/cnab240/cecred_test.rb +55 -138
  49. data/test/br_boleto/retorno/cnab240/itau_test.rb +15 -15
  50. data/test/br_boleto/retorno/cnab240/santander_test.rb +282 -0
  51. data/test/br_boleto/retorno/cnab240/sicoob_test.rb +25 -15
  52. data/test/br_boleto/retorno/cnab240/sicredi_test.rb +15 -15
  53. data/test/br_boleto/retorno/cnab240/unicred_test.rb +15 -15
  54. data/test/br_boleto/retorno/cnab400/banco_brasil_test.rb +7 -0
  55. data/test/br_boleto/retorno/cnab400/bradesco_test.rb +24 -12
  56. data/test/br_boleto/retorno/cnab400/itau_test.rb +6 -4
  57. data/test/br_boleto/retorno/cnab400/santander_test.rb +7 -0
  58. data/test/br_boleto/retorno/cnab400/sicoob_test.rb +20 -10
  59. data/test/br_boleto/retorno/cnab400/sicredi_test.rb +97 -1
  60. data/test/br_boleto/retorno/cnab400/unicred.rb +18 -18
  61. data/test/br_boleto/retorno/pagamento_test.rb +2 -2
  62. data/test/factories/boleto/boleto_banco_brasil.rb +18 -0
  63. data/test/factories/boleto/boleto_santander.rb +18 -0
  64. data/test/factories/conta/banco_brasil.rb +16 -0
  65. data/test/factories/conta/santander.rb +15 -0
  66. data/test/factories/remessa/cnab240/banco_brasil.rb +9 -0
  67. data/test/factories/remessa/cnab240/santander.rb +9 -0
  68. data/test/factories/remessa/cnab400/banco_brasil.rb +8 -0
  69. data/test/factories/remessa/cnab400/santander.rb +8 -0
  70. data/test/fixtures/retorno/cnab240/banco_brasil.ret +74 -0
  71. data/test/fixtures/retorno/cnab240/cecred.ret +10 -0
  72. data/test/fixtures/retorno/cnab240/santander.ret +16 -0
  73. data/test/fixtures/retorno/cnab400/sicredi.ret +4 -0
  74. metadata +64 -7
@@ -0,0 +1,77 @@
1
+ # encoding: utf-8
2
+ module BrBoleto
3
+ module Boleto
4
+ # Implementação de emissão de boleto bancário pelo Banco Santander.
5
+ #
6
+ # === Documentação Implementada
7
+ #
8
+ # A documentação na qual essa implementação foi baseada está localizada na pasta
9
+ # 'documentacoes_dos_boletos/bradesco' dentro dessa biblioteca.
10
+ class Santander < Base
11
+ def conta_class
12
+ BrBoleto::Conta::Santander
13
+ end
14
+
15
+ ################# VALIDAÇÕES DINÂMICAS #################
16
+ def valid_numero_documento_maximum
17
+ 12
18
+ end
19
+
20
+ def valid_carteira_inclusion
21
+ %w[101 102 121]
22
+ end
23
+
24
+ # Tamanho máximo para o codigo_cedente/Convênio
25
+ def valid_convenio_maximum
26
+ 7
27
+ end
28
+
29
+ # Tamanho máximo de uma conta corrente no Banco Santander
30
+ def valid_conta_corrente_maximum
31
+ 9
32
+ end
33
+
34
+ # codigo_cedente/Convênio deve ser obrigatório
35
+ def valid_convenio_required
36
+ true
37
+ end
38
+ ##########################################################
39
+
40
+ # Conforme descrito na documentação, o valor que deve constar em local do pagamento é
41
+ # "PAGÁVEL PREFERENCIALMENTE NAS AGÊNCIAS DO BANCO SANTANDER"
42
+ def default_values
43
+ super.merge({
44
+ :local_pagamento => 'PAGÁVEL PREFERENCIALMENTE NAS AGÊNCIAS DO BANCO SANTANDER'
45
+ })
46
+ end
47
+
48
+ # Nosso Número descrito na documentação (Pag. 36).
49
+ # Número do Documento com 12 (onze) caracteres + digito.
50
+ # Exemplo: 999999999999-D
51
+ def nosso_numero
52
+ "#{numero_documento}-#{digito_verificador_nosso_numero}"
53
+ end
54
+
55
+ # Para o cálculo do dígito, será necessário acrescentar o Nosso Número (número do documento),
56
+ # e aplicar o módulo 11, com fatores de 2 a 9 com resto 0.
57
+ def digito_verificador_nosso_numero
58
+ BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new("#{numero_documento}")
59
+ end
60
+
61
+ # === Código de barras do banco
62
+ # __________________________________________________________________
63
+ # | Posição | Tamanho | Descrição |
64
+ # |----------|---------|---------------------------------------------|
65
+ # | 20 | 01 | Fixo 9 |
66
+ # | 21-27 | 07 | Código do cedente padrão Santander |
67
+ # | 28-40 | 13 | Nosso Número (Num. Documeto + DV) |
68
+ # | 41 | 01 | IOF (somente para seguradoras) |
69
+ # | 42-44 | 03 | Carteira de cobrança |
70
+ # -------------------------------------------------------------------
71
+ #
72
+ def codigo_de_barras_do_banco
73
+ "9#{conta.convenio}#{numero_documento}#{digito_verificador_nosso_numero}0#{conta.carteira}"
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,156 @@
1
+ # encoding: utf-8
2
+ module BrBoleto
3
+ module Conta
4
+ class BancoBrasil < BrBoleto::Conta::Base
5
+
6
+ # MODALIDADE CARTEIRA:
7
+ # _________________________________________________________________
8
+ # | Carteira | Descrição |
9
+ # | 11 | Cobrança Simples - Com Registro |
10
+ # | 12 | Cobrança Indexada - Com Registro |
11
+ # | 15 | Cobrança de Prêmios de Seguro - Com Registro |
12
+ # | 16 | Cobranca Simples |
13
+ # | 17 | Cobranca Direta Especial - Com Registro |
14
+ # | 18 | Cobranca Simples (Nosso Número 11 Dígitos) |
15
+ # | 31 | Cobrança Caucionada/Vinculada - Com Registro |
16
+ # | 51 | Cobrança Descontada - Com Registro |
17
+ # -----------------------------------------------------------------
18
+
19
+ # VARIAÇÃO DA CARTEIRA
20
+ # O Banco do Brasil utiliza carteiras de cobrança com variações iniciando em 01 até 99 + dígito verificador, exceto aquelas em que o DV seja igual a X.
21
+ # Normalmente as empresas utilizam uma única variação (019), porém podem ter outras variações, dependendo da necessidade.
22
+ # Consultar a agência quando necessitar dessa informação para fins de configuração do sistema, pois o cadastramento é a a cargo da agência.
23
+ attr_accessor :variacao_carteira
24
+
25
+ ############################### VALIDAÇÕES DINÂMICAS ###############################
26
+ # Variação da Carteira
27
+ attr_accessor :valid_variacao_carteira_required
28
+
29
+ validates :variacao_carteira, custom_length: { maximum: 3 }
30
+ validates :variacao_carteira, presence: true, if: :valid_variacao_carteira_required
31
+ #####################################################################################
32
+
33
+ def default_values
34
+ super.merge({
35
+ carteira: '18',
36
+ variacao_carteira: '019',
37
+ valid_carteira_required: true, # <- Validação dinâmica que a modalidade é obrigatória
38
+ valid_carteira_length: 2, # <- Validação dinâmica que a modalidade deve ter 2 digitos
39
+ valid_carteira_inclusion: carteiras_suportadas, # <- Validação dinâmica de valores aceitos para a modalidade
40
+ codigo_carteira: '1', # Cobrança Simples
41
+ valid_codigo_carteira_length: 1, # <- Validação dinâmica que a modalidade deve ter 1 digito
42
+ valid_conta_corrente_required: true, # <- Validação dinâmica que a conta_corrente é obrigatória
43
+ valid_conta_corrente_maximum: 8, # <- Validação que a conta_corrente deve ter no máximo 8 digitos
44
+ valid_convenio_required: true, # <- Validação que a convenio deve ter obrigatório
45
+ # valid_convenio_maximum: 8, # <- Validação que a convenio deve ter no máximo 8 digitos
46
+ })
47
+ end
48
+
49
+ def codigo_banco
50
+ '001'
51
+ end
52
+
53
+ # Dígito do código do banco descrito na documentação
54
+ def codigo_banco_dv
55
+ '9'
56
+ end
57
+
58
+ def nome_banco
59
+ @nome_banco ||= 'BANCO DO BRASIL S.A.'
60
+ end
61
+
62
+ def versao_layout_arquivo_cnab_240
63
+ '083'
64
+ end
65
+
66
+ def versao_layout_lote_cnab_240
67
+ '042'
68
+ end
69
+
70
+ # Carteiras suportadas
71
+ def carteiras_suportadas
72
+ %w[11 12 15 16 17 18 31 51]
73
+ end
74
+
75
+ def variacao_carteira
76
+ "#{@variacao_carteira}".rjust(3, '0') if @variacao_carteira.present?
77
+ end
78
+
79
+ def agencia_dv
80
+ # utilizando a agencia com 4 digitos
81
+ # para calcular o digito
82
+ @agencia_dv ||= BrBoleto::Calculos::Modulo11FatorDe9a2RestoX.new(agencia).to_s
83
+ end
84
+
85
+ def conta_corrente_dv
86
+ @conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe9a2RestoX.new(conta_corrente).to_s
87
+ end
88
+
89
+ # Campo Agência / Código do Cedente
90
+ # @return [String] Agência com 4 caracteres - digito da agência / Conta de Cobrança com 8 caracteres - Digito da Conta
91
+ # Exemplo: 9999-D / 99999999-D
92
+ def agencia_codigo_cedente
93
+ "#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
94
+ end
95
+
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
103
+
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
133
+
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
154
+ end
155
+ end
156
+ end
@@ -87,7 +87,7 @@ module BrBoleto
87
87
  # @return [String] Agência com 4 caracteres / Conta de Cobrança com 5 caracteres - Digito da Conta
88
88
  # Exemplo: 9999 / 99999-D
89
89
  def agencia_codigo_cedente
90
- "#{agencia} / #{conta_corrente}-#{conta_corrente_dv}"
90
+ "#{agencia}/#{conta_corrente}-#{conta_corrente_dv}"
91
91
  end
92
92
 
93
93
  # Carteiras suportadas
@@ -175,9 +175,14 @@ module BrBoleto
175
175
  })
176
176
  end
177
177
 
178
- # Código para Multa
178
+ # Código para Multa, que representa a isenção de juros e multa deve ser '0'
179
+ # Diferentemente do padrão da FEBRABAN que é '3'
180
+ # Ou seja, se passar o código 3 deve considerar '0'
179
181
  def equivalent_codigo_multa
180
- super.merge({ '0' => '0' }) # NÃO REGISTRA A MULTA
182
+ super.merge({ '3' => '0','0' => '0' }) # NÃO REGISTRA A MULTA
183
+ end
184
+ def default_codigo_multa
185
+ '0'
181
186
  end
182
187
 
183
188
  # Codigo da carteira de acordo com a documentacao o Itau (Pag. 18, Nota 5)
@@ -0,0 +1,208 @@
1
+ # encoding: utf-8
2
+ module BrBoleto
3
+ module Conta
4
+ class Santander < BrBoleto::Conta::Base
5
+
6
+ # MODALIDADE CARTEIRA:
7
+ # ___________________________________________
8
+ # | Carteira | Descrição |
9
+ # | 101 | Cobrança Simples com registro |
10
+ # | 102 | Cobrança Simples sem registro |
11
+ # | 121 | Penhor Rápida com registro |
12
+ # --------------------------------------------
13
+
14
+ # Código de Transmissão
15
+ # Consultar seu gerente para pegar esse código. Geralmente está no e-mail enviado pelo banco.
16
+ attr_accessor :codigo_transmissao
17
+
18
+ ############################### VALIDAÇÕES DINÂMICAS ###############################
19
+ # Código de Transmissão
20
+ attr_accessor :valid_codigo_transmissao_required
21
+
22
+ validates :codigo_transmissao, custom_length: { maximum: 20 }
23
+ # validates :codigo_transmissao, presence: true, if: :valid_codigo_transmissao_required
24
+ #####################################################################################
25
+
26
+ def default_values
27
+ super.merge({
28
+ carteira: '101',
29
+ valid_carteira_required: true, # <- Validação dinâmica que a modalidade é obrigatória
30
+ valid_carteira_length: 3, # <- Validação dinâmica que a modalidade deve ter 3 digitos
31
+ valid_carteira_inclusion: %w[101 102 121], # <- Validação dinâmica de valores aceitos para a modalidade
32
+ codigo_carteira: '1', # Cobrança Simples
33
+ valid_codigo_carteira_length: 1, # <- Validação dinâmica que a modalidade deve ter 1 digito
34
+ valid_conta_corrente_required: true, # <- Validação dinâmica que a conta_corrente é obrigatória
35
+ valid_conta_corrente_maximum: 9, # <- Validação que a conta_corrente deve ter no máximo 9 digitos
36
+ valid_convenio_required: true, # <- Validação que a convenio deve ter obrigatório
37
+ valid_convenio_maximum: 7, # <- Validação que a convenio deve ter no máximo 7 digitos
38
+ })
39
+ end
40
+
41
+ def codigo_banco
42
+ '033'
43
+ end
44
+
45
+ # Dígito do código do banco descrito na documentação
46
+ def codigo_banco_dv
47
+ '7'
48
+ end
49
+
50
+ def nome_banco
51
+ @nome_banco ||= 'SANTANDER'
52
+ end
53
+
54
+ def versao_layout_arquivo_cnab_240
55
+ '040'
56
+ end
57
+
58
+ def versao_layout_lote_cnab_240
59
+ '030'
60
+ end
61
+
62
+ def agencia_dv
63
+ # utilizando a agencia com 4 digitos
64
+ # para calcular o digito
65
+ @agencia_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(agencia).to_s
66
+ end
67
+
68
+ def conta_corrente_dv
69
+ @conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(conta_corrente).to_s
70
+ end
71
+
72
+ def codigo_transmissao
73
+ "#{@codigo_transmissao}".rjust(20, '0') if @codigo_transmissao.present?
74
+ end
75
+
76
+ # Campo Agência / Código do Cedente
77
+ # @return [String] Agência com 4 caracteres / Convênio com 7 caracteres
78
+ # Exemplo: 9999 / 9999999
79
+ def agencia_codigo_cedente
80
+ "#{agencia} / #{convenio}"
81
+ end
82
+
83
+ # Formata a carteira dependendo se ela é registrada ou não.
84
+ # Para cobrança COM registro usar: COBRANCA SIMPLES ECR
85
+ # Para Cobrança SEM registro usar: COBRANCA SIMPLES CSR
86
+ def carteira_formatada
87
+ if @carteira.to_s.in?(carteiras_com_registro)
88
+ "COBRANÇA SIMPLES ECR"
89
+ else
90
+ 'COBRANÇA SIMPLES CSR'
91
+ end
92
+ end
93
+
94
+ # Retorna as carteiras com registro do banco Santander.
95
+ # Você pode sobrescrever esse método na subclasse caso exista mais
96
+ # carteiras com registro no Santander.
97
+ def carteiras_com_registro
98
+ %w(101 121)
99
+ end
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
127
+
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
147
+
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
164
+
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
177
+
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
190
+
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
195
+
196
+ # Código para Protesto
197
+ def equivalent_codigo_protesto
198
+ super.merge({'0' => '0' }) # 0 = Não Protestar
199
+ end
200
+
201
+ # Código da Moeda CNAB240
202
+ def equivalent_codigo_moeda_240
203
+ super.merge({'09' => '00' }) # 00 = Real
204
+ end
205
+
206
+ end
207
+ end
208
+ end