boleto_bancario 0.0.1.beta → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +3 -2
- data/.travis.yml +10 -0
- data/Changelog.markdown +4 -0
- data/Gemfile +1 -1
- data/Planning.markdown +18 -86
- data/README.markdown +107 -55
- data/Rakefile +7 -1
- data/TODO.markdown +15 -1
- data/boleto_bancario.gemspec +7 -3
- data/lib/boleto_bancario.rb +27 -15
- data/lib/boleto_bancario/calculos/modulo11_fator_de9a2.rb +65 -0
- data/lib/boleto_bancario/calculos/modulo11_fator_de9a2_resto_x.rb +5 -51
- data/lib/boleto_bancario/calculos/modulo_numero_de_controle.rb +117 -0
- data/lib/boleto_bancario/core/banco_brasil.rb +30 -5
- data/lib/boleto_bancario/core/banrisul.rb +182 -0
- data/lib/boleto_bancario/core/boleto.rb +67 -34
- data/lib/boleto_bancario/core/bradesco.rb +28 -16
- data/lib/boleto_bancario/core/caixa.rb +233 -0
- data/lib/boleto_bancario/core/hsbc.rb +170 -0
- data/lib/boleto_bancario/core/itau.rb +20 -10
- data/lib/boleto_bancario/core/real.rb +177 -0
- data/lib/boleto_bancario/core/santander.rb +19 -22
- data/lib/boleto_bancario/core/sicoob.rb +172 -0
- data/lib/boleto_bancario/core/sicredi.rb +290 -0
- data/lib/boleto_bancario/version.rb +1 -2
- data/spec/boleto_bancario/calculos/modulo10_spec.rb +4 -0
- data/spec/boleto_bancario/calculos/modulo11_fator_de2a9_spec.rb +6 -0
- data/spec/boleto_bancario/calculos/modulo11_fator_de9a2_spec.rb +31 -0
- data/spec/boleto_bancario/calculos/modulo_numero_de_controle_spec.rb +37 -0
- data/spec/boleto_bancario/core/banco_brasil_spec.rb +59 -65
- data/spec/boleto_bancario/core/banrisul_spec.rb +129 -0
- data/spec/boleto_bancario/core/boleto_spec.rb +148 -32
- data/spec/boleto_bancario/core/bradesco_spec.rb +29 -36
- data/spec/boleto_bancario/core/caixa_spec.rb +111 -0
- data/spec/boleto_bancario/core/hsbc_spec.rb +72 -0
- data/spec/boleto_bancario/core/itau_spec.rb +33 -36
- data/spec/boleto_bancario/core/real_spec.rb +104 -0
- data/spec/boleto_bancario/core/santander_spec.rb +26 -24
- data/spec/boleto_bancario/core/sicoob_spec.rb +111 -0
- data/spec/boleto_bancario/core/sicredi_spec.rb +149 -0
- data/spec/inheritance/banco_brasil_spec.rb +22 -0
- data/spec/inheritance/banrisul_spec.rb +22 -0
- data/spec/inheritance/boleto_spec.rb +15 -0
- data/spec/inheritance/bradesco_spec.rb +22 -0
- data/spec/inheritance/caixa_spec.rb +22 -0
- data/spec/inheritance/hsbc_spec.rb +22 -0
- data/spec/inheritance/itau_spec.rb +22 -0
- data/spec/inheritance/real_spec.rb +22 -0
- data/spec/inheritance/santander_spec.rb +22 -0
- data/spec/inheritance/sicoob_spec.rb +22 -0
- data/spec/inheritance/sicredi_spec.rb +22 -0
- data/spec/shared_examples/boleto_bancario_shared_example.rb +21 -34
- data/spec/spec_helper.rb +2 -2
- metadata +119 -47
- data/.rvmrc +0 -1
@@ -0,0 +1,172 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module BoletoBancario
|
3
|
+
module Core
|
4
|
+
# Implementação de emissão de boleto bancário pelo Banco Sicoob.
|
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/sicoob' dentro dessa biblioteca.
|
10
|
+
#
|
11
|
+
# === Código da Carteira
|
12
|
+
#
|
13
|
+
# '1' - Cobrança SEM registro
|
14
|
+
# '9' - Cobrança COM registro
|
15
|
+
#
|
16
|
+
class Sicoob < Boleto
|
17
|
+
# Tamanho máximo de uma agência no Banco Sicoob.
|
18
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
19
|
+
#
|
20
|
+
# @return [Fixnum] 4
|
21
|
+
#
|
22
|
+
def self.tamanho_maximo_agencia
|
23
|
+
4
|
24
|
+
end
|
25
|
+
|
26
|
+
# Tamanho máximo do codigo cedente no Banco Sicoob.
|
27
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
28
|
+
#
|
29
|
+
# @return [Fixnum] 7
|
30
|
+
#
|
31
|
+
def self.tamanho_maximo_codigo_cedente
|
32
|
+
7
|
33
|
+
end
|
34
|
+
|
35
|
+
# Tamanho máximo do numero do documento no Boleto.
|
36
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
37
|
+
#
|
38
|
+
# @return [Fixnum] 6
|
39
|
+
#
|
40
|
+
def self.tamanho_maximo_numero_documento
|
41
|
+
6
|
42
|
+
end
|
43
|
+
|
44
|
+
# <b>Carteiras suportadas.</b>
|
45
|
+
#
|
46
|
+
# <b>Método criado para validar se a carteira informada é suportada.</b>
|
47
|
+
#
|
48
|
+
# @return [Array]
|
49
|
+
#
|
50
|
+
def self.carteiras_suportadas
|
51
|
+
%w[1 9]
|
52
|
+
end
|
53
|
+
|
54
|
+
# Validações para os campos abaixo:
|
55
|
+
#
|
56
|
+
# * Agencia
|
57
|
+
# * Codigo Cedente
|
58
|
+
# * Número do documento
|
59
|
+
#
|
60
|
+
# Se você quiser sobrescrever os metodos, <b>ficará a sua responsabilidade.</b>
|
61
|
+
# Basta você sobrescrever os métodos de validação:
|
62
|
+
#
|
63
|
+
# class Sicoob < BoletoBancario::Core::Sicoob
|
64
|
+
# def self.tamanho_maximo_agencia
|
65
|
+
# 6
|
66
|
+
# end
|
67
|
+
#
|
68
|
+
# def self.tamanho_maximo_codigo_cedente
|
69
|
+
# 9
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
# def self.tamanho_maximo_numero_documento
|
73
|
+
# 10
|
74
|
+
# end
|
75
|
+
# end
|
76
|
+
#
|
77
|
+
# Obs.: Mudar as regras de validação podem influenciar na emissão do boleto em si.
|
78
|
+
# Talvez você precise analisar o efeito no #codigo_de_barras e na #linha_digitável (ambos podem ser
|
79
|
+
# sobreescritos também).
|
80
|
+
#
|
81
|
+
validates :agencia, :codigo_cedente, presence: true
|
82
|
+
|
83
|
+
validates :agencia, length: { maximum: tamanho_maximo_agencia }, if: :deve_validar_agencia?
|
84
|
+
validates :codigo_cedente, length: { maximum: tamanho_maximo_codigo_cedente }, if: :deve_validar_codigo_cedente?
|
85
|
+
validates :numero_documento, length: { maximum: tamanho_maximo_numero_documento }, if: :deve_validar_numero_documento?
|
86
|
+
|
87
|
+
validates :carteira, inclusion: { in: ->(object) { object.class.carteiras_suportadas } }, if: :deve_validar_carteira?
|
88
|
+
|
89
|
+
# @return [String] 4 caracteres
|
90
|
+
#
|
91
|
+
def agencia
|
92
|
+
@agencia.to_s.rjust(4, '0') if @agencia.present?
|
93
|
+
end
|
94
|
+
|
95
|
+
# @return [String] 7 caracteres
|
96
|
+
#
|
97
|
+
def codigo_cedente
|
98
|
+
@codigo_cedente.to_s.rjust(7, '0') if @codigo_cedente.present?
|
99
|
+
end
|
100
|
+
|
101
|
+
# @return [String] 6 caracteres
|
102
|
+
#
|
103
|
+
def numero_documento
|
104
|
+
@numero_documento.to_s.rjust(6, '0') if @numero_documento.present?
|
105
|
+
end
|
106
|
+
|
107
|
+
# @return [String] Código do Banco descrito na documentação.
|
108
|
+
#
|
109
|
+
def codigo_banco
|
110
|
+
'756'
|
111
|
+
end
|
112
|
+
|
113
|
+
# @return [String] Dígito do código do banco descrito na documentação.
|
114
|
+
#
|
115
|
+
def digito_codigo_banco
|
116
|
+
'0'
|
117
|
+
end
|
118
|
+
|
119
|
+
# Campo Agência / Código do Cedente
|
120
|
+
#
|
121
|
+
# @return [String]
|
122
|
+
#
|
123
|
+
def agencia_codigo_cedente
|
124
|
+
"#{agencia} / #{codigo_cedente}"
|
125
|
+
end
|
126
|
+
|
127
|
+
# O nosso número descrino na documentação é formado pelo dois ultimos digitos do ano autal e
|
128
|
+
# por outros 6 digitos que o clinte usara para numerar os documentos, assim sendo composto por 8 dígitos.
|
129
|
+
#
|
130
|
+
# @return [String]
|
131
|
+
#
|
132
|
+
def nosso_numero
|
133
|
+
"#{ano}#{numero_documento}"
|
134
|
+
end
|
135
|
+
|
136
|
+
# Ano atual usado para os calculos
|
137
|
+
#
|
138
|
+
# @return [String]
|
139
|
+
#
|
140
|
+
def ano
|
141
|
+
Date.today.strftime('%y')
|
142
|
+
end
|
143
|
+
|
144
|
+
# === Código de barras do banco
|
145
|
+
#
|
146
|
+
# ___________________________________________________________
|
147
|
+
# | Posição | Tamanho | Descrição |
|
148
|
+
# |---------|---------|---------------------------------------|
|
149
|
+
# | 20 - 20 | 01 | Código da carteira |
|
150
|
+
# | 21 - 24 | 04 | Código da agência |
|
151
|
+
# | 25 - 26 | 02 | Código da modalidade de cobrança (01) |
|
152
|
+
# | 27 - 33 | 07 | Código do Cedente |
|
153
|
+
# | 34 - 41 | 08 | Nosso Número do título |
|
154
|
+
# | 42 - 44 | 03 | Número da Parcela do Título (001) |
|
155
|
+
# |___________________________________________________________|
|
156
|
+
#
|
157
|
+
# @return [String]
|
158
|
+
#
|
159
|
+
def codigo_de_barras_do_banco
|
160
|
+
"#{carteira}#{agencia}#{modalidade_cobranca}#{codigo_cedente}#{nosso_numero}#{parcelas}"
|
161
|
+
end
|
162
|
+
|
163
|
+
def modalidade_cobranca
|
164
|
+
'01'
|
165
|
+
end
|
166
|
+
|
167
|
+
def parcelas
|
168
|
+
'001'
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
@@ -0,0 +1,290 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module BoletoBancario
|
3
|
+
module Core
|
4
|
+
# Implementação de emissão de boleto bancário pela Cooperativa de Credito Sicredi.
|
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/sicredi' dentro dessa biblioteca.
|
10
|
+
# === Carteiras suportadas
|
11
|
+
#
|
12
|
+
# Segue abaixo as carteiras suportadas pelo Sicredi <b>seguindo a documentação</b>:
|
13
|
+
#
|
14
|
+
# __________________________________________
|
15
|
+
# | Carteira | Descrição |
|
16
|
+
# | 03 | Cobrança Simples sem registro |
|
17
|
+
# | C | Cobrança Simples sem registro |
|
18
|
+
# |__________________________________________|
|
19
|
+
#
|
20
|
+
class Sicredi < Boleto
|
21
|
+
# Código do posto da cooperativa de crédito
|
22
|
+
attr_accessor :posto
|
23
|
+
|
24
|
+
# Byte de identificação do cedente do bloqueto utilizado para compor o nosso número.
|
25
|
+
attr_accessor :byte_id
|
26
|
+
|
27
|
+
# Tamanho máximo de uma agência no Sicredi.
|
28
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
29
|
+
#
|
30
|
+
# @return [Fixnum] 4
|
31
|
+
#
|
32
|
+
def self.tamanho_maximo_agencia
|
33
|
+
4
|
34
|
+
end
|
35
|
+
|
36
|
+
# Tamanho máximo da conta corrente no Boleto.
|
37
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
38
|
+
#
|
39
|
+
# @return [Fixnum] 5
|
40
|
+
#
|
41
|
+
def self.tamanho_maximo_conta_corrente
|
42
|
+
5
|
43
|
+
end
|
44
|
+
|
45
|
+
# Tamanho máximo do posto no Boleto.
|
46
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
47
|
+
#
|
48
|
+
# @return [Fixnum] 2
|
49
|
+
#
|
50
|
+
def self.tamanho_maximo_posto
|
51
|
+
2
|
52
|
+
end
|
53
|
+
|
54
|
+
# <b>Byte Identificadores suportados.</b>
|
55
|
+
# <b>Método criado para validar se o byte identificador informado é suportado.</b>
|
56
|
+
#
|
57
|
+
# @return [Array]
|
58
|
+
#
|
59
|
+
def self.byte_id_suportados
|
60
|
+
%w[2 3 4 5 6 7 8 9]
|
61
|
+
end
|
62
|
+
|
63
|
+
# <b>Carteiras suportadas.</b>
|
64
|
+
# <b>Método criado para validar se a carteira informada é suportada.</b>
|
65
|
+
#
|
66
|
+
# @return [Array]
|
67
|
+
#
|
68
|
+
def self.carteiras_suportadas
|
69
|
+
%w[03 C]
|
70
|
+
end
|
71
|
+
|
72
|
+
# Tamanho máximo do número do documento emitido no Boleto.
|
73
|
+
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
74
|
+
#
|
75
|
+
# @return [Fixnum] 5
|
76
|
+
#
|
77
|
+
def self.tamanho_maximo_numero_documento
|
78
|
+
5
|
79
|
+
end
|
80
|
+
|
81
|
+
# Validações para os campos abaixo:
|
82
|
+
#
|
83
|
+
# * Agencia
|
84
|
+
# * Conta Corrente
|
85
|
+
# * Posto
|
86
|
+
# * Byte Identificador
|
87
|
+
# * Carteira
|
88
|
+
# * Número do documento
|
89
|
+
#
|
90
|
+
# Se você quiser sobrescrever os metodos, <b>ficará a sua responsabilidade.</b>
|
91
|
+
# Basta você sobrescrever os métodos de validação:
|
92
|
+
#
|
93
|
+
# class Sicredi < BoletoBancario::Core::Sicredi
|
94
|
+
# def self.tamanho_maximo_agencia
|
95
|
+
# 5
|
96
|
+
# end
|
97
|
+
#
|
98
|
+
# def self.tamanho_maximo_conta_corrente
|
99
|
+
# 7
|
100
|
+
# end
|
101
|
+
#
|
102
|
+
# def self.tamanho_maximo_posto
|
103
|
+
# 2
|
104
|
+
# end
|
105
|
+
#
|
106
|
+
# def self.byte_id_suportados
|
107
|
+
# %w[1 12 123]
|
108
|
+
# end
|
109
|
+
#
|
110
|
+
# def self.carteiras_suportadas
|
111
|
+
# %w[45 89]
|
112
|
+
# end
|
113
|
+
#
|
114
|
+
# def self.tamanho_maximo_numero_documento
|
115
|
+
# 10
|
116
|
+
# end
|
117
|
+
# end
|
118
|
+
#
|
119
|
+
# Obs.: Mudar as regras de validação podem influenciar na emissão do boleto em si.
|
120
|
+
# Talvez você precise analisar o efeito no #codigo_de_barras e na #linha_digitável (ambos podem ser
|
121
|
+
# sobreescritos também).
|
122
|
+
#
|
123
|
+
validates :agencia, :conta_corrente, :posto, :byte_id, presence: true
|
124
|
+
|
125
|
+
validates :agencia, length: { maximum: tamanho_maximo_agencia }, if: :deve_validar_agencia?
|
126
|
+
validates :conta_corrente, length: { maximum: tamanho_maximo_conta_corrente }, if: :deve_validar_conta_corrente?
|
127
|
+
validates :posto, length: { maximum: tamanho_maximo_posto }, if: :deve_validar_posto?
|
128
|
+
validates :numero_documento, length: { maximum: tamanho_maximo_numero_documento }, if: :deve_validar_numero_documento?
|
129
|
+
|
130
|
+
validates :carteira, inclusion: { in: ->(object) { object.class.carteiras_suportadas } }, if: :deve_validar_carteira?
|
131
|
+
validates :byte_id, inclusion: { in: ->(object) { object.class.byte_id_suportados } }, if: :deve_validar_byte_id?
|
132
|
+
|
133
|
+
# @return [String] 4 caracteres
|
134
|
+
#
|
135
|
+
def agencia
|
136
|
+
@agencia.to_s.rjust(4, '0') if @agencia.present?
|
137
|
+
end
|
138
|
+
|
139
|
+
# @return [String] 5 caracteres
|
140
|
+
#
|
141
|
+
def conta_corrente
|
142
|
+
@conta_corrente.to_s.rjust(5, '0') if @conta_corrente.present?
|
143
|
+
end
|
144
|
+
|
145
|
+
# @return [String] 2 caracteres
|
146
|
+
#
|
147
|
+
def posto
|
148
|
+
@posto.to_s.rjust(2, '0') if @posto.present?
|
149
|
+
end
|
150
|
+
|
151
|
+
# @return [String] 1 caracteres
|
152
|
+
#
|
153
|
+
def byte_id
|
154
|
+
@byte_id.to_s.rjust(1, '0') if @byte_id.present?
|
155
|
+
end
|
156
|
+
|
157
|
+
# @return [String] 5 caracteres
|
158
|
+
#
|
159
|
+
def numero_documento
|
160
|
+
@numero_documento.to_s.rjust(5, '0') if @numero_documento.present?
|
161
|
+
end
|
162
|
+
|
163
|
+
# A formatação da Carteira Simples é 1
|
164
|
+
#
|
165
|
+
# @return [String]
|
166
|
+
#
|
167
|
+
def carteira_formatada
|
168
|
+
tipo_carteira
|
169
|
+
end
|
170
|
+
|
171
|
+
# @return [String] Código do Banco descrito na documentação.
|
172
|
+
#
|
173
|
+
def codigo_banco
|
174
|
+
'748'
|
175
|
+
end
|
176
|
+
|
177
|
+
# @return [String] Dígito do código do banco descrito na documentação.
|
178
|
+
#
|
179
|
+
def digito_codigo_banco
|
180
|
+
'X'
|
181
|
+
end
|
182
|
+
|
183
|
+
# Campo Agência/Código Beneficiário (:conta_corrente) formatado
|
184
|
+
#
|
185
|
+
# @return [String] Campo descrito na documentação.
|
186
|
+
#
|
187
|
+
def agencia_codigo_cedente
|
188
|
+
"#{agencia}.#{posto}.#{conta_corrente}"
|
189
|
+
end
|
190
|
+
|
191
|
+
# @return [String] Código referente ao tipo de cobrança
|
192
|
+
#
|
193
|
+
def tipo_cobranca
|
194
|
+
"3" # Somente sem registro
|
195
|
+
end
|
196
|
+
|
197
|
+
# @return [String] Código referente ao tipo de carteira
|
198
|
+
#
|
199
|
+
def tipo_carteira
|
200
|
+
"1"
|
201
|
+
end
|
202
|
+
|
203
|
+
# Mostra o campo nosso número calculando o dígito verificador do nosso número. AA/BXXXXX-D onde:
|
204
|
+
# AA = Ano atual, apenas os dois ultimos digitos.
|
205
|
+
# B = Byte Identificador (2 a 9). 1 só poderá ser utilizado pela cooperativa.
|
206
|
+
# XXXXX – Número do Documento.
|
207
|
+
# D = Digito Verificador pelo módulo 11.
|
208
|
+
#
|
209
|
+
# EX: 13/200004-1
|
210
|
+
#
|
211
|
+
# @return [String]
|
212
|
+
#
|
213
|
+
def nosso_numero
|
214
|
+
"#{ano}/#{byte_id}#{numero_documento}-#{nosso_numero_dv}"
|
215
|
+
end
|
216
|
+
|
217
|
+
# Ano atual usado para os calculos
|
218
|
+
#
|
219
|
+
# @return [String]
|
220
|
+
#
|
221
|
+
def ano
|
222
|
+
Date.today.strftime('%y')
|
223
|
+
end
|
224
|
+
|
225
|
+
# Digito verificador do nosso número
|
226
|
+
# Calculado atravez do modulo 11 com peso de 2 a 9 da direta para a esquerda.
|
227
|
+
# ____________________________________________________________________________
|
228
|
+
# | | Agencia | Posto | Conta Corrente | Ano | Byte | Numero Documento |
|
229
|
+
# |---------|---------|-------|----------------|-----|------|------------------|
|
230
|
+
# | Tamanho | 04 | 02 | 05 | 02 | 01 | 05 |
|
231
|
+
# |_________|__________________________________________________________________|
|
232
|
+
#
|
233
|
+
# @return [String]
|
234
|
+
#
|
235
|
+
def nosso_numero_dv
|
236
|
+
Modulo11FatorDe2a9RestoZero.new("#{agencia}#{posto}#{conta_corrente}#{ano}#{byte_id}#{numero_documento}")
|
237
|
+
end
|
238
|
+
|
239
|
+
# === Código de barras do banco
|
240
|
+
# __________________________________________________________________________
|
241
|
+
# | Posição | Tamanho | Descrição |
|
242
|
+
# |---------|---------|------------------------------------------------------|
|
243
|
+
# | 20 – 21 | 02 | Carteira |
|
244
|
+
# | 22 – 30 | 09 | Nosso número com o digito identificador |
|
245
|
+
# | 31 – 34 | 04 | Cooperativa de crédito/agência beneficiária |
|
246
|
+
# | 35 – 36 | 02 | Posto da cooperativa de crédito/agência beneficiária |
|
247
|
+
# | 37 – 41 | 05 | Código do beneficiário |
|
248
|
+
# | 42 – 42 | 01 | Será 1 quando houver o valor do documento |
|
249
|
+
# | 43 – 43 | 01 | Fixo 0 |
|
250
|
+
# | 44 – 44 | 01 | DV do campo livre |
|
251
|
+
# |__________________________________________________________________________|
|
252
|
+
#
|
253
|
+
# @return [String]
|
254
|
+
#
|
255
|
+
def codigo_de_barras_do_banco
|
256
|
+
codigo = "#{tipo_cobranca}#{tipo_carteira}#{nosso_numero_codigo_de_barras}#{agencia}#{posto}#{conta_corrente}#{valor_expresso}0"
|
257
|
+
|
258
|
+
codigo_dv = Modulo11FatorDe2a9RestoZero.new(codigo)
|
259
|
+
|
260
|
+
"#{codigo}#{codigo_dv}"
|
261
|
+
end
|
262
|
+
|
263
|
+
def nosso_numero_codigo_de_barras
|
264
|
+
"#{ano}#{byte_id}#{numero_documento}#{nosso_numero_dv}"
|
265
|
+
end
|
266
|
+
|
267
|
+
def valor_expresso
|
268
|
+
@valor_documento.present? ? '1' : '0'
|
269
|
+
end
|
270
|
+
|
271
|
+
# Método usado para verificar se deve realizar a validação de tamanho do campo 'posto'.
|
272
|
+
# <b>Sobrescreva esse método na subclasse, caso você mesmo queira fazer as validações</b>.
|
273
|
+
#
|
274
|
+
# @return [True]
|
275
|
+
#
|
276
|
+
def deve_validar_posto?
|
277
|
+
true
|
278
|
+
end
|
279
|
+
|
280
|
+
# Método usado para verificar se deve realizar a validação de tamanho do campo 'byte_id'.
|
281
|
+
# <b>Sobrescreva esse método na subclasse, caso você mesmo queira fazer as validações</b>.
|
282
|
+
#
|
283
|
+
# @return [True]
|
284
|
+
#
|
285
|
+
def deve_validar_byte_id?
|
286
|
+
true
|
287
|
+
end
|
288
|
+
end
|
289
|
+
end
|
290
|
+
end
|