class Padron::IdPersona

Attributes

id[R]

Public Class Methods

new(id) click to toggle source
# File lib/padron/id_persona.rb, line 5
def initialize(id)
        @id = id
end

Public Instance Methods

calculate_cuits() click to toggle source
# File lib/padron/id_persona.rb, line 14
 def calculate_cuits
        ids = []
        %w(F M).each do |tipo|
                ids << calculate_z(tipo)
        end
        return ids
end
calculate_z(tipo) click to toggle source
# File lib/padron/id_persona.rb, line 22
def calculate_z tipo
        multiplicador = "2345672345"
        case tipo
        when "F"
                xy = 27
                xy_dni = "27#{id}"
        when "M"
                xy = 20
                xy_dni = "20#{id}"
        end
        verificador = 0
        (0..9).each do |i|
                verificador += (xy_dni.reverse[i].to_i * multiplicador[i].to_i)
        end
        verificador
        z = verificador - (verificador / 11 * 11)

        case z
        when 0
                z = 0
        when 1
                if tipo == "M"
                        z = 9
                        xy = 23
                elsif tipo == "F"
                        z = 4
                        xy = 23
                else
                        z = 11 - z
                end
        else
                z = 11 - z
        end
        return "#{xy}#{id}#{z}"
end
return_cuits() click to toggle source
# File lib/padron/id_persona.rb, line 9
def return_cuits
        return [id] if id.length == 11
        return calculate_cuits
end