logo LWP
Comunidad de Programadores
Crear cuenta
Recordar contraseña
Recordar contraseña en este navegador
Cursos Biblioteca de Temas Preguntas y Respuestas Buscador para Programadores Drivers Solicitudes para Programadores Programas y Utilidades Ofertas de Trabajo

Verificar el CUIT/CUIL (Argentina)

Volver
Titulo:.zip Verificar el CUIT/CUIL (Argentina)
Autor:Jose Bascoy (gesem@yahoo.com)
Lenguaje:Visual Basic
Este es el codigo para el digito verificado, para chequear el CUIT/CUIL en Argentina. Tiene la rutina en el Módulo DigitoVerificador para poderlo agregar en cualquier programa. Permite ingresar los datos en formato "99-99999999-9" (13 digitos) o" 99999999999" (11 digitos). Devuelve el CUIT/CUIL con guioines.
Recomendar facebook  twitter 

Comentarios (15)Votos positivos 93% Votos negativos 7%

14/04/2002 Patricio ok
Puede servir para verificar el codigo del Rut de cada persona en un solo campo
15/04/2002 Nelson ok
Al algoritmo hay que corregirlo!!!
donde dice:
resultado = sumador Mod 11
resultado = 11 - resultado 'saco el digito verificador

DEBE DECIR:
resultado = sumador Mod 11
If resultado <> 0 Then
resultado = 11 - resultado 'saco el digito verificador
End If

16/04/2002 Jose Bascoy ok
Aclaración del algoritmo para Nelson npacheco@mail.com !!!!!!

No se puede obviar el modulo con un if cuando es cero, porque si da 11 entonces el CUIT/Cuil no res correcto.
La AFIP usa al comienzo de la clave:

20 unipersonal hombre
27 unipersonal mujer
30 empresas (de hecho,S.R.L.,S.A. etc.

Cuando se asigna el CUIL/CUIL y el digito verificador da 10 o mas se reemplaza el comienzo de la clave por:

23 unipersonal hombre
28 unipersonal mujer
33 empresas (de hecho,S.R.L.,S.A. etc.

Ejemplo:

Documento unipersonal hombre
21886766

CUIT: 20-21886766-X

Si uso 20 de identificacion me da a dar un digito verificador mayor o igual a 10 (en este caso el resultado del digito verificador seria 10 y NO SIRVE)

Se reemplaza el 20 por 23 y da

CUIT 23-21886766-9 (da digito verificador 9)

Espero que sirve de ejemplo y no estropees el codigo porque va a salir cuaquier verdura.

Jose Bascoy


04/07/2002 Pablo ok
Es la validacion clasica, pero hay excepciones como
27-22297864-0 de Patricia Cona que no supera la validacion
habra que conseguir mas datos de como calcular o salvar los CUIT o CUIL comenzados en 27 o 33
04/07/2002 Pablo ok
este si funciona !!

VERIFICACION DE CUIT/CUIL (genérico)
El CUIL consta de 11 números. Los 10 primeros (2 + 8)
constituyen el código de identificación y el último, el
dígito de verificación. Para obtener esta verificación se
procede de la siguiente forma: A cada dígito del código, se
lo multiplica por los siguientes números (respectivamente)
5, 4, 3, 2, 7, 6, 5, 4, 3, 2 y cada valor obtenido, se suma
para obtener una expresión (que llamaremos "valor 1". A
este "valor 1", se le saca el resto de la división
entera a 11. Se obtiene de esta forma un número (del 0 al
10) (que llamamos "valor 2"). Sacamos la diferencia entre
11 y el "valor 2", y obtenemos un valor comprendido entre 1
y 11 (llamémosle "valor 3"). Si "valor 3"=11, el código
verificador es cero. Si "valor 3"=10, el código verificador
es 9. En cualquier otro caso, el código verificador es
"valor 3".
Ejemplo numérico con un número de CUIT, que es 20-17254359-7.
2 0 1 7 2 5 4 3 5 9
x
5 4 3 2 7 6 5 4 3 2
------------------------------------------------
10 + 00 + 03 + 14 + 14 + 30 + 20 + 12 + 15 + 18 = 136
v1 = 136
136 mod 11 = 4
v2 = 4
11 - 4 = 7
v3 = 7 => Código de verificación es siete.
05/07/2002 Jose Bascoy ok
Aclaración:
El digito verificador debe ser exacto ( de 0 a 9) no se puede reemplazar cuando da 10 por 9 porque no es valido. En el caso del comentario de Pablo con el cuit o cuil comenzando en 27, hay que reemplazarlo por 28, porque asi lo determina la DGI. Para todo cuit o cuil que no de el digito verificador hay un reemplazo (comentario que lo explica mas abajo). El 33 es reemplazo del 30.
17/07/2002 German Gonzalez ok
Muy bueno. Hacia rato que buscaba el algoritmo que utilizaban para verificar un CUIT válido. Gracias.
06/09/2002 Lulu ok
Muy util
17/09/2002 Aldo Guzmán Sáenz ok
Aunque no entendí bien el algoritmo de decisión para el CUIT, aprendí un poco de sintaxis y de estructura de datos de VB.

PD. No sabía nada de VB, je je je .

Gracias.
24/09/2002 Jorge ok
Solucione el error de 11 y 10 con :"si resultado=11 resultado=0 si resultado=10 resultado=9
09/01/2004 Elisabeth Crayon`s ko
Malo
12/03/2004 juan carlos ok
es util, copie la funcion la adapte para que retorne un boolean y funciona bien
31/07/2004 Lucho ok
Funciona pero no valida los cuit que comienzan con 24. ¿Hay solución?
07/01/2005 Scorpiot ok
sadsad
15/07/2008 Matías Freire ok
Gente...

La rutina está bien, excepto por un pequeño error en el cálculo de digito verificador.

donde dice:

resultado = 11 - resultado 'saco el digito verificador

corrijanlo por:

resultado = (11 - resultado) Mod 11


y listo.... el muchacho se olvidó de hacer un último Mod.... a cualquiera le podría pasar che!!!!!

Comenta este código fuente

Nombre
Correo (no se visualiza en la web)
Valoración del curso ok ko
Comentarios