Cristian... ;) Al menos la rutina en JavaScript no te da error!!
Solo por diversion... Hay vá otra variante (usando la posiblidad de extender las clases... ) http://pastie.caboo.se/66865 ¿ Alguna otra variante? On 6/1/07, Cristian Ventura <[EMAIL PROTECTED]> wrote:
Yo puedo comentar que mi CUIT no valida en esa pagina! jejeje.... yo pido mi cuit, en la afip (por mi dni o nombre y apellido....) y me da: 24-29332311-5 y no valida... no dejando de ser mi CUIT que pasa ante las excepciones esas? :O slds, Cristian. On 6/1/07, Alejandro Di Battista < [EMAIL PROTECTED]> wrote: > Estimados colegas... vamos a las fuentes... > > http://seti.afip.gov.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do > > tiene archivo ... ValidaCuit.js que > > function esCUITValida(inputValor) { > inputString = inputValor.toString(); > if (inputString.length == 11) { > var Caracters_1_2 = inputString.charAt (0) + inputString.charAt > (1); > if (Caracters_1_2 == "20" || > Caracters_1_2 == "23" || > Caracters_1_2 == "24" || > Caracters_1_2 == "27" || > Caracters_1_2 == "30" || > Caracters_1_2 == "33" || Caracters_1_2 == "34") { > var Count = inputString.charAt(0) * 5 + inputString.charAt(1) > * 4 + inputString.charAt (2) * 3 + inputString.charAt(3) * 2 + > inputString.charAt(4) * 7 + inputString.charAt(5) * 6 + > inputString.charAt(6) * 5 + inputString.charAt(7) * 4 + > inputString.charAt(8) * 3 + inputString.charAt(9) * 2 + > inputString.charAt (10) * 1; > Division = Count / 11; > if (Division == Math.floor(Division)) { > return true; > } > } > } > return false; > } > > Les paso mi implementacion en ruby > # Algoritmo --------------------- > def suma_producto(d, m) > d.inject(0){|s, x| s + x.to_i * m.shift} > end > > def valido?(cuit) > cuit = cuit.clone.gsub(/\D/, "") > return false unless cuit.size == 11 && %w{20 23 24 27 30 > 33}.include?(cuit[0,2]) > suma_producto(cuit.split(//), [5,4,3,2,7,6,5,4,3,2,1]) % 11 == 0 > end > > # Pruebas -------------------- > correctos = %w{27-28693823-5 27-16210173-6 20-23234048-8 27-12228410-2 > 20186275854} > con_error = %w{27-28693823-4 37-16210173-6 20-2323404-8 27-1222841a-2} > > puts correctos.all?{|cuit| valido?(cuit)} > puts !con_error.any?{|cuit| valido?(cuit)} > > -- > Agilsoft > (381) 431-4290 | Maipú 140 Of. 30 > (4000) Tucumán | Argentina > www.agil-soft.com > > _______________________________________________ > ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > > _______________________________________________ ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
-- Agilsoft (381) 431-4290 | Maipú 140 Of. 30 (4000) Tucumán | Argentina
_______________________________________________ ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
