class Boletorb::Boleto
Attributes
aceite[RW]
cedente[RW]
data_processamento[RW]
especie[RW]
instrucao_1[RW]
instrucao_2[RW]
instrucao_3[RW]
instrucao_4[RW]
instrucao_5[RW]
instrucao_6[RW]
instrucao_7[RW]
ios[RW]
linha_digitavel[R]
local_pagamento[RW]
nosso_numero[RW]
numero_documento[RW]
sacado[RW]
valor[RW]
vencimento[RW]
Public Class Methods
new()
click to toggle source
# File lib/boletorb.rb, line 31 def initialize @linha_digitavel = "" @ios = "0" @aceite = "S" @especie = "DM" end
Public Instance Methods
fator_vencimento()
click to toggle source
# File lib/boletorb.rb, line 42 def fator_vencimento data_fator = DateTime.parse("07/10/1997", "DD/MM/YYYY") data_vencimento = DateTime.parse(vencimento, "DD/MM/YYYY") data_vencimento.mjd - data_fator.mjd end
formata_valor_para_inteiro()
click to toggle source
# File lib/boletorb.rb, line 57 def formata_valor_para_inteiro valor_formatado = (valor.round(2) * 100).to_i.to_s end
gera()
click to toggle source
# File lib/boletorb.rb, line 38 def gera raise NotImplementedHere end
nosso_numero_formatado()
click to toggle source
# File lib/boletorb.rb, line 61 def nosso_numero_formatado numero = nosso_numero.rjust(12, "0") digito_verificador = modulo_11(numero) "#{numero}#{digito_verificador}" end
valor_nominal()
click to toggle source
# File lib/boletorb.rb, line 48 def valor_nominal valor_formatado = formata_valor_para_inteiro tamanho_valor = valor_formatado.size for i in 1..(10 - tamanho_valor) valor_formatado = "0#{valor_formatado}" end valor_formatado end
Private Instance Methods
modulo_10(numero)
click to toggle source
# File lib/boletorb.rb, line 81 def modulo_10(numero) resultado = multiplicacoes_modulo_10(numero) soma = resultado.inject(:+) modulo = 10 - (soma % 10) return 0 if modulo == 10 modulo end
modulo_11(numero)
click to toggle source
# File lib/boletorb.rb, line 68 def modulo_11(numero) numero.gsub!(".", "") numero.gsub!(" ", "") resultados = multiplicacoes_modulo_11(numero) soma = resultados.inject(:+) resto = (soma % 11) dv = 11 - resto dv = 1 if (resto == 0 || resto == 1 || resto == 10) dv end
multiplicacoes_modulo_10(numero)
click to toggle source
# File lib/boletorb.rb, line 106 def multiplicacoes_modulo_10(numero) numero.gsub!(".", "") numero.gsub!(" ", "") resultado = [] multi = 2 for i in 0..numero.size - 1 valor = numero[numero.size - 1 - i].to_i * multi #quebrando valor em todos os casos while (((valor % 10) > - 1) && valor > 0) resultado << valor % 10 valor = valor / 10 end if (multi == 2) multi = 1 else multi = 2 end end resultado end
multiplicacoes_modulo_11(num)
click to toggle source
# File lib/boletorb.rb, line 89 def multiplicacoes_modulo_11(num) multi = 2 multiplicadores = [] resultados = [] for i in 0..(num.size - 1) multiplicadores << multi multi = multi + 1 multi = 2 if (multi > 9) end for i in 0..num.size - 1 indice = num.size - 1 - i valor = num[indice].to_i resultados << valor * multiplicadores[i] end resultados end