CUIT (para la Argentina)

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Avatar de Usuario
Yaguá
vRookie
vRookie
Mensajes: 20
Registrado: 23 May 2006, 18:29
Ubicación: Argentina (Concordia,Entre Ríos)

CUIT (para la Argentina)

Mensaje por Yaguá » 16 Jun 2006, 13:14

No encontré nada sobre la verificación de la CUIT (clave única de identificación tributaria) de la Argentina, así que aquí pongo una función que verifica su validez.
Recibe una cadena como argumento y devuelve 1 si es válido y 0 en caso contrario.
Si la CUIT es válida guarda la cadena formateada en una variable global, que debe llamarse, precisamente, CUIT.

Soy nuevo con Velneo, así que cualquier comentario se agradecerá.
Adjuntos
CUIT.map
(4.02 KiB) Descargado 173 veces

leo
vAdviser
vAdviser
Mensajes: 310
Registrado: 22 Mar 2006, 12:25
Ubicación: Argentina - Bs. As.

Mensaje por leo » 16 Jun 2006, 13:25

Hola Yaguá bienvenido, yo también soy de Argentina, creo que ya somo 3...
slds.

mffont
vCool
vCool
Mensajes: 104
Registrado: 21 Sep 2005, 00:31
Ubicación: Argentina - Chaco

Mensaje por mffont » 16 Jun 2006, 15:31

Grande, me viene de 10 esto. Lo de 3 argentinos es contandome a mi tambien? :)
Marcelo F. Font

Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45
Ubicación: Gijón - Asturias - España- Posición: 43.532928,-5.628616

Mensaje por Cuco » 16 Jun 2006, 17:24

¿Cuál es el algoritmo que verifica la CUIT?
En España el equivalente es el NIF y utiliza el módulo a 23 y la correspondencia de este módulo con una cadena de caracteres con 23 letras distintas del alfabeto ordenadas caprichosamente.
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616

manga
vMate
vMate
Mensajes: 68
Registrado: 05 Dic 2005, 13:52

Mensaje por manga » 16 Jun 2006, 19:16

Excelente Yaguá. Ya somos 4 los argentinos, tal vez los más inteligentes en haber descubierto esta magnifica herramienta. Saludos a todos y a festejar el 6 a 0 en el Mundial.

mffont
vCool
vCool
Mensajes: 104
Registrado: 21 Sep 2005, 00:31
Ubicación: Argentina - Chaco

Mensaje por mffont » 16 Jun 2006, 21:23

El CUIT (clave unica de identificacion tributaria) o CUIL (lo mismo pero laboral, para personas en relacion de dependencia) se construye de la siguiente forma: a los 8 digitos del documento nacional de identidad (si tiene menos se completa con ceros a la izquierda) se le anteponen dos digitos que identifican si es hombre (23), mujer (27), sociedad (33), etc y luego va un ultimo digito que es el verificador que se obtiene aplicando una formula matematica (que desconozco). Si es un empresa, por lo tanto no tiene documento, se le asigna una "especie" de documento de ocho digitos que empieza con 5.
Marcelo F. Font

leo
vAdviser
vAdviser
Mensajes: 310
Registrado: 22 Mar 2006, 12:25
Ubicación: Argentina - Bs. As.

Mensaje por leo » 17 Jun 2006, 02:03

Hola, por que en "ubicación" no colocan que son de Argentina?.
Argentina se vá para arriba con el 6 a 0 !!! :D

Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45
Ubicación: Gijón - Asturias - España- Posición: 43.532928,-5.628616

Mensaje por Cuco » 17 Jun 2006, 11:17

Precisamente lo que me intriga es esa fórmula matemática que lo verifica
Consultando en Google "cuit algoritmo verificacion" obtengo los siguientes métodos que ignoro si son equivalentes:

Método 1:
"el cuit se puede verificar a través del último digito el cual surge de una relación matemática realizada con los dies dígitos del número
se multiplica el primer dígito por 6, el segundo por 7, el tercero por 8, luego 9, 4,5,6,7,8,9, despues se suman todos los resultados y se divide por 11, el residuo es el último número de control, si no coincide no es un cuil válido"
Método 2:
04/07/2002 Pablo sistemas@forexar.com.ar
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.


16/04/2002 Jose Bascoy gesem@yahoo.com
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)

Ahora paso a analizar la función que propone Yaguá
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616

Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45
Ubicación: Gijón - Asturias - España- Posición: 43.532928,-5.628616

Mensaje por Cuco » 17 Jun 2006, 12:12

Si no conocias el algoritmo, ¿cómo programaste la función?
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616

Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45
Ubicación: Gijón - Asturias - España- Posición: 43.532928,-5.628616

Mensaje por Cuco » 17 Jun 2006, 13:05

Tu función tiene un error de sintaxis según el inspector de errores (lupa con ?):
:
Modificar variable global -> CUIT , fLeft( 'sAuxCuit', 2 )+"-"+fMid( 'sAuxCuit', 2, 8 )+"-"+'iVerificador' , sAuxCuit
- Identificador variable: Variable inexistente

Es tan secillo comprobarlo que no tiene escusa no hacerlo (bueno, a mí también se me olvida alguna vez, por precipiación)

Te propongo dos nuevas porque me parece que resultan más sencillas que la tuya.
Dos mejor que una, para que puedas usar la segunda en otros procesos aprovechando que puede devolver dos datos alternativos, el valor del dígito de control si la cadena solo tiene 10 dígitos o la verificación, si tiene 11.

NO ESTA COMPROBADO SU FUNCIONAMIENTO: Comprueba tú que te funcionan en tu proyecto y postea si acaso.


¡ POSTERIORMENTE LO HE AMPLIADO Y COMPROBADO!
Ver página siguiente
Utilizad el nuevo, por favor
Adjuntos
CUIT-JFD.map
(6.68 KiB) Descargado 140 veces
Última edición por Cuco el 17 Jun 2006, 19:19, editado 1 vez en total.
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616

Responder