Class: Febraban150E
- Inherits:
-
FormatSection
- Object
- FormatSection
- Febraban150E
- Defined in:
- lib/formatos/febraban150/febraban_150_e.rb
Overview
Débito em Conta - Empresa
Instance Method Summary collapse
- #get_agencia_debito ⇒ Object
- #get_cod_movimento ⇒ Object
- #get_codigo_moeda ⇒ Object
- #get_data_vencimento ⇒ Object
- #get_id_cliente ⇒ Object
- #get_id_cliente_banco ⇒ Object
- #get_id_cliente_empresa ⇒ Object
- #get_obs_empresa ⇒ Object
- #get_tipo_id_cliente ⇒ Object
- #get_valor_debito ⇒ Object
-
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150E
constructor
A new instance of Febraban150E.
- #is_valid? ⇒ Boolean
- #process_section(file) ⇒ Object
- #set_agencia_debito(agencia_debito) ⇒ Object
- #set_cod_movimento(cod_movimento) ⇒ Object
- #set_codigo_moeda(codigo_moeda) ⇒ Object
- #set_data_vencimento(data_vencimento) ⇒ Object
- #set_id_cliente(id_cliente) ⇒ Object
- #set_id_cliente_banco(id_cliente_banco) ⇒ Object
- #set_id_cliente_empresa(id_cliente_empresa) ⇒ Object
- #set_obs_empresa(obs_empresa) ⇒ Object
- #set_reservado(reservado) ⇒ Object
- #set_tipo_id_cliente(tipo_id_cliente) ⇒ Object
- #set_valor_debito(valor_debito) ⇒ Object
Constructor Details
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150E
Returns a new instance of Febraban150E.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 6 def initialize(master, versao = Febraban150::VERSAO) super(master, false, true) @versao = versao case @versao when '04' self.monta_versao_04 when '05' self.monta_versao_05 else raise "Seção E: Versão não suportada: #{@versao}" end end |
Instance Method Details
#get_agencia_debito ⇒ Object
139 140 141 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 139 def get_agencia_debito self.get_section_value(2) end |
#get_cod_movimento ⇒ Object
172 173 174 175 176 177 178 179 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 172 def get_cod_movimento case @versao when '04' self.get_section_value(9).to_i when '05' self.get_section_value(11).to_i end end |
#get_codigo_moeda ⇒ Object
156 157 158 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 156 def get_codigo_moeda self.get_section_value(6) end |
#get_data_vencimento ⇒ Object
147 148 149 150 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 147 def get_data_vencimento data = self.get_section_value(4) Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i) end |
#get_id_cliente ⇒ Object
168 169 170 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 168 def get_id_cliente self.get_section_value(9) end |
#get_id_cliente_banco ⇒ Object
143 144 145 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 143 def get_id_cliente_banco self.get_section_value(3) end |
#get_id_cliente_empresa ⇒ Object
135 136 137 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 135 def get_id_cliente_empresa self.get_section_value(1) end |
#get_obs_empresa ⇒ Object
160 161 162 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 160 def get_obs_empresa self.get_section_value(7) end |
#get_tipo_id_cliente ⇒ Object
164 165 166 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 164 def get_tipo_id_cliente self.get_section_value(8).to_i end |
#get_valor_debito ⇒ Object
152 153 154 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 152 def get_valor_debito self.get_section_value(5).to_i end |
#is_valid? ⇒ Boolean
98 99 100 101 102 103 104 105 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 98 def is_valid? case @versao when '04' self.is_valid_04? when '05' self.is_valid_05? end end |
#process_section(file) ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 58 def process_section(file) case @versao when '04' self.processa_arquivo_04(file) when '05' self.processa_arquivo_05(file) end end |
#set_agencia_debito(agencia_debito) ⇒ Object
196 197 198 199 200 201 202 203 204 205 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 196 def set_agencia_debito agencia_debito agencia_debito = agencia_debito.to_s if agencia_debito.length > 0 self.set_section_value(2, agencia_debito) else raise "#{self.get_id}: Agência do Débito não pode estar vazia Valor: #{agencia_debito}" end end |
#set_cod_movimento(cod_movimento) ⇒ Object
299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 299 def set_cod_movimento cod_movimento cod_movimento = cod_movimento.to_i if cod_movimento == 0 or cod_movimento == 1 case @versao when '04' self.set_section_value(9, cod_movimento) when '05' self.set_section_value(11, cod_movimento) end else raise "#{self.get_id}: Código de Movimentação deve ser de Débito Nacional ou Cnacelamento: 0 = Débito Normal 1 = Cancelamento (exclusão) de lançamento enviado anteriormente para o Banco Valor: #{cod_movimento}" end end |
#set_codigo_moeda(codigo_moeda) ⇒ Object
241 242 243 244 245 246 247 248 249 250 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 241 def set_codigo_moeda codigo_moeda codigo_moeda = codigo_moeda.to_s if codigo_moeda.length > 0 self.set_section_value(6, codigo_moeda) else raise "#{self.get_id}: Código da Moeda não pode estar vazio Valor: #{codigo_moeda}" end end |
#set_data_vencimento(data_vencimento) ⇒ Object
218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 218 def set_data_vencimento data_vencimento data_vencimento = Date.strptime(data_vencimento, "%Y%m%d") if data_vencimento.is_a?(String) real_data = data_vencimento.strftime("%Y%m%d") if real_data.length == 8 self.set_section_value(4, real_data) else raise "#{self.get_id}: Data de Vencimento não pode estar vazia Valor: #{data_vencimento}" end end |
#set_id_cliente(id_cliente) ⇒ Object
275 276 277 278 279 280 281 282 283 284 285 286 287 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 275 def set_id_cliente id_cliente id_cliente = id_cliente.to_s id_cliente.to_i if id_cliente.length >= 13 or id_cliente.length == 0 self.set_section_value(9, id_cliente) else raise "#{self.get_id}: Identificação do Cliente deve ser CPF ou CNPJ: CNPJ: 999999999 = Número, 9999 = Filial, e 99 = DV CPF: 0000999999999 = Número, 99 = DV Valor: #{id_cliente}" end end |
#set_id_cliente_banco(id_cliente_banco) ⇒ Object
207 208 209 210 211 212 213 214 215 216 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 207 def set_id_cliente_banco id_cliente_banco id_cliente_banco = id_cliente_banco.to_s if id_cliente_banco.length > 0 self.set_section_value(3, id_cliente_banco) else raise "#{self.get_id}: Identificação do Cliente do Banco não pode estar vazio Valor: #{id_cliente_banco}" end end |
#set_id_cliente_empresa(id_cliente_empresa) ⇒ Object
185 186 187 188 189 190 191 192 193 194 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 185 def set_id_cliente_empresa id_cliente_empresa id_cliente_empresa = id_cliente_empresa.to_s if id_cliente_empresa.length > 0 self.set_section_value(1, id_cliente_empresa) else raise "#{self.get_id}: Identificação do Cliente da Empresa não pode estar vazio Valor: #{id_cliente_empresa}" end end |
#set_obs_empresa(obs_empresa) ⇒ Object
252 253 254 255 256 257 258 259 260 261 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 252 def set_obs_empresa obs_empresa obs_empresa = obs_empresa.to_s if obs_empresa.length > 0 self.set_section_value(7, obs_empresa) else raise "#{self.get_id}: Observação da Empresa não pode estar vazia Valor: #{obs_empresa}" end end |
#set_reservado(reservado) ⇒ Object
289 290 291 292 293 294 295 296 297 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 289 def set_reservado reservado reservado = reservado.to_s case @versao when '04' self.set_section_value(8, reservado) when '05' self.set_section_value(10, reservado) end end |
#set_tipo_id_cliente(tipo_id_cliente) ⇒ Object
263 264 265 266 267 268 269 270 271 272 273 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 263 def set_tipo_id_cliente tipo_id_cliente tipo_id_cliente = tipo_id_cliente.to_i if tipo_id_cliente == 1 or tipo_id_cliente == 2 or tipo_id_cliente.to_s.length == 0 self.set_section_value(8, tipo_id_cliente) else raise "#{self.get_id}: Tipo de Identificação do Cliente deve ser: 1 - CNPJ; 2 - CPF Valor: #{tipo_id_cliente}" end end |
#set_valor_debito(valor_debito) ⇒ Object
230 231 232 233 234 235 236 237 238 239 |
# File 'lib/formatos/febraban150/febraban_150_e.rb', line 230 def set_valor_debito valor_debito valor_debito = valor_debito.to_i if valor_debito > 0 self.set_section_value(5, valor_debito) else raise "#{self.get_id}: Valor do Débito deve ser positivo e maior que 0 Valor: #{valor_debito}" end end |