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

Responder a