Hola a todos.
Convertí una función de VBScript que encontré y andaba necesitando, a Ruby.
Se las comparto a ustedes por si alguien en algún momento necesita de lo
mismo.
Básicamente es una función que calcula el CUIT/CUIL de una persona, en base
al nro de DNI y al sexo de ella.
Seguramente se le puede mejorar algo el código... pero está funcionando
bien. La misma función en VBS ocupaba más del doble de lineas de código.
class Impositivo
def generar_cuit(sexo, nro_dni)
dniStc = nro_dni.to_s.rjust 8, "0"
xyStc = 30
xyStc = 27 if sexo == "f"
xyStc = 20 if sexo == "m"
cDocum = xyStc.to_s + dniStc
matriz = [5,4,3,2,7,6,5,4,3,2]
xx = 0
10.times do |t|
xx += cDocum[t].chr.to_i * matriz[t]
end
n = 11 - xx % 11
if n == 10
if (xyStc == 20 or xyStc == 27 or xyStc == 24)
xyStc, digitoStc = 23, 9
else
xyStc, digitoStc = 33, 9
end
digitoStc = 4 if xyStc == 27
else
digitoStc = (n == 11) ? 0 : n
end
return xyStc.to_s + dniStc + digitoStc.to_s
end
end
imp = Impositivo.new
puts imp.generar_cuit("m", 12123123)
--
Saludos, Lautaro Bonetto.
http://lautaro-bonetto.neurona.com
_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar