br_boleto 2.1.0 → 2.2.0

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