Class: Febraban150A
- Inherits:
-
FormatSection
- Object
- FormatSection
- Febraban150A
- Defined in:
- lib/formatos/febraban150/febraban_150_a.rb
Overview
Header - Empresa e Banco
Constant Summary collapse
- ID_SERVICO =
"DÉBITO AUTOMÁTICO"
Instance Method Summary collapse
- #get_codigo_banco ⇒ Object
- #get_codigo_convenio ⇒ Object
- #get_codigo_remessa ⇒ Object
- #get_data_geracao ⇒ Object
- #get_identificacao_servico ⇒ Object
- #get_nome_banco ⇒ Object
- #get_nome_empresa ⇒ Object
- #get_numero_sequencial ⇒ Object
- #get_versao_layout ⇒ Object
-
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150A
constructor
A new instance of Febraban150A.
- #is_valid? ⇒ Boolean
- #process_section(file) ⇒ Object
- #set_codigo_banco(codigo) ⇒ Object
- #set_codigo_convenio(code) ⇒ Object
- #set_codigo_remessa(code) ⇒ Object
- #set_data_geracao(data) ⇒ Object
- #set_identificacao_servico(identificacao) ⇒ Object
- #set_nome_banco(nome) ⇒ Object
- #set_nome_empresa(nome) ⇒ Object
- #set_numero_sequencial(numero) ⇒ Object
- #set_reservado(reservado) ⇒ Object
- #set_versao_layout(versao) ⇒ Object
Constructor Details
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150A
Returns a new instance of Febraban150A.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 10 def initialize(master, versao = Febraban150::VERSAO) super(master, true, true, false) @versao = versao case @versao when '04' self.monta_versao_04 when '05' self.monta_versao_05 else raise "Seção A: Versão não suportada: #{@versao}" end end |
Instance Method Details
#get_codigo_banco ⇒ Object
153 154 155 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 153 def get_codigo_banco self.get_section_value(4).to_i end |
#get_codigo_convenio ⇒ Object
145 146 147 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 145 def get_codigo_convenio self.get_section_value(2) end |
#get_codigo_remessa ⇒ Object
141 142 143 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 141 def get_codigo_remessa self.get_section_value(1).to_i end |
#get_data_geracao ⇒ Object
161 162 163 164 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 161 def get_data_geracao data = self.get_section_value(6) Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i) end |
#get_identificacao_servico ⇒ Object
174 175 176 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 174 def get_identificacao_servico data = self.get_section_value(9) end |
#get_nome_banco ⇒ Object
157 158 159 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 157 def get_nome_banco self.get_section_value(5) end |
#get_nome_empresa ⇒ Object
149 150 151 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 149 def get_nome_empresa self.get_section_value(3) end |
#get_numero_sequencial ⇒ Object
166 167 168 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 166 def get_numero_sequencial data = self.get_section_value(7).to_i end |
#get_versao_layout ⇒ Object
170 171 172 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 170 def get_versao_layout data = self.get_section_value(8).to_i end |
#is_valid? ⇒ Boolean
102 103 104 105 106 107 108 109 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 102 def is_valid? case @versao when '04' self.is_valid_04? when '05' self.is_valid_05? end end |
#process_section(file) ⇒ Object
62 63 64 65 66 67 68 69 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 62 def process_section(file) case @versao when '04' self.processa_arquivo_04(file) when '05' self.processa_arquivo_05(file) end end |
#set_codigo_banco(codigo) ⇒ Object
219 220 221 222 223 224 225 226 227 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 219 def set_codigo_banco codigo codigo = codigo.to_i if codigo > 0 self.set_section_value(4, codigo) else raise "#{get_id}: Código do Banco não pode estar vazio" end end |
#set_codigo_convenio(code) ⇒ Object
194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 194 def set_codigo_convenio code code = code.to_s if !code.nil? and (code.length > 0 and code.length <= 20) self.set_section_value(2, code) else raise "#{get_id}: Código atribuído pelo Banco, para seu controle interno. Este código será informado à Empresa, pelo Banco, antes da implantação do serviço de débito automático. Valor: #{code}" end end |
#set_codigo_remessa(code) ⇒ Object
182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 182 def set_codigo_remessa code code = code.to_i if code == 1 or code == 2 self.set_section_value(1, code) else raise "#{get_id}: 1 = Remessa - Enviado pela Empresa para o Banco 2 = Retorno - Enviado pelo Banco para a Empresa Valor: #{code}" end end |
#set_data_geracao(data) ⇒ Object
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 239 def set_data_geracao data begin data = Date.strptime(data, "%Y%m%d") if data.is_a?(String) real_data = data.strftime("%Y%m%d") if real_data.length == 8 self.set_section_value(6, real_data) else raise end rescue raise "#{get_id}: Data de Geração Inválida Valor: #{data}" end end |
#set_identificacao_servico(identificacao) ⇒ Object
278 279 280 281 282 283 284 285 286 287 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 278 def set_identificacao_servico identificacao identificacao = identificacao.to_s if identificacao.length > 0 self.set_section_value(9, identificacao) else raise "#{get_id}: Deve ser Débito Automático Valor: #{identificacao}" end end |
#set_nome_banco(nome) ⇒ Object
229 230 231 232 233 234 235 236 237 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 229 def set_nome_banco nome nome = nome.to_s if nome.to_s.length > 0 self.set_section_value(5, nome) else raise "#{get_id}: Nome do Banco não pode estar vazio" end end |
#set_nome_empresa(nome) ⇒ Object
209 210 211 212 213 214 215 216 217 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 209 def set_nome_empresa nome nome = nome.to_s if nome.to_s.length > 0 self.set_section_value(3, nome) else raise "#{get_id}: Nome da Empresa não pode estar vazio" end end |
#set_numero_sequencial(numero) ⇒ Object
256 257 258 259 260 261 262 263 264 265 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 256 def set_numero_sequencial numero numero = numero.to_i if numero > 0 self.set_section_value(7, numero) else raise "#{get_id}: Número Sequencial deve ser positivo e maior que 0 Valor: #{numero}" end end |
#set_reservado(reservado) ⇒ Object
289 290 291 292 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 289 def set_reservado reservado reservado = reservado.to_s self.set_section_value(10, reservado) end |
#set_versao_layout(versao) ⇒ Object
267 268 269 270 271 272 273 274 275 276 |
# File 'lib/formatos/febraban150/febraban_150_a.rb', line 267 def set_versao_layout versao versao = versao.to_i if versao > 0 self.set_section_value(8, versao) else raise "#{get_id}: Versão deve ser 05 (a partir de 05.05.2008) Valor: #{versao}" end end |