class Nfe::Helpers::NfeKey
Attributes
cnpj[R]
code[R]
number[R]
series[R]
uf[R]
Public Class Methods
new(uf, date, cnpj, series, number, code)
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 16 def initialize(uf, date, cnpj, series, number, code) @uf = uf @date = date @cnpj = cnpj @series = series @number = number @code = code end
parse(nfe_key)
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 25 def self.parse(nfe_key) uf = Helpers::UfHelper.acronym(nfe_key[0..1].to_i) year = nfe_key[2..3].to_i month = nfe_key[4..5].to_i cnpj = nfe_key[6..19] series = nfe_key[22..24].to_i number = nfe_key[25..33].to_i code = nfe_key[35..42].to_i date = Date.new(year, month, 1) new(uf, date, cnpj, series, number, code) rescue raise NfeKeyError.new(nfe_key) end
Public Instance Methods
check_digit()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 59 def check_digit generate_check_digit(key_without_check_digit, weights) end
emission_kind()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 55 def emission_kind 1 end
key()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 39 def key "#{key_without_check_digit}#{check_digit}" end
model()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 51 def model 55 end
month()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 47 def month @date.strftime("%m") end
year()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 43 def year @date.strftime("%y") end
Private Instance Methods
code_f()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 80 def code_f "%08d" % code end
generate_check_digit(values, weights)
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 88 def generate_check_digit(values, weights) sum = reduce_weights(values, weights) mod = sum % 11 mod < 2 ? 0 : (11 - mod) end
key_without_check_digit()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 64 def key_without_check_digit "#{uf_code}#{year}#{month}#{cnpj}#{model}#{series_f}#{number_f}#{emission_kind}#{code_f}" end
number_f()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 76 def number_f "%09d" % number end
reduce_weights(values, weights)
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 94 def reduce_weights(values, weights) sum = 0 weights.each_index do |i| sum += weights[i] * values[i].to_i end sum end
series_f()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 72 def series_f "%03d" % series end
uf_code()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 68 def uf_code Helpers::UfHelper.code(uf) end
weights()
click to toggle source
# File lib/nfe/helpers/nfe_key.rb, line 84 def weights "4329876543298765432987654329876543298765432".split("").map(&:to_i) end