y esta ??
No es propiedad mia, de algun lado la saqué (portalfox quizas...).
Saludos.
Carlos Morandin
FUNCTION GenCuit(cDni,cSexo)
LOCAL
cCuit,cIniciales,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,nSumatoria,nResto,nVerificador,lStop
FOR i=1 TO 3
IF cSexo='H'
DO CASE
CASE i=1
cIniciales="20"
CASE i=2
cIniciales="23"
CASE i=3
cIniciales="24"
ENDCASE
ELSE
DO CASE
CASE i=1
cIniciales="27"
CASE i=2
cIniciales="23"
CASE i=3
cIniciales="24"
ENDCASE
ENDIF
FOR j=0 TO 9
* crea un cuit y va probando digitos verificadores
cCuit=cIniciales+cDni+STR(j,1)
* busca el digito verificador
c1=SUBSTR(cCuit,1,1)
c2=SUBSTR(cCuit,2,1)
c3=SUBSTR(cCuit,3,1)
c4=SUBSTR(cCuit,4,1)
c5=SUBSTR(cCuit,5,1)
c6=SUBSTR(cCuit,6,1)
c7=SUBSTR(cCuit,7,1)
c8=SUBSTR(cCuit,8,1)
c9=SUBSTR(cCuit,9,1)
c10=SUBSTR(cCuit,10,1)
c11=SUBSTR(cCuit,11,1)
nSumatoria=(5*VAL(c1)+4*VAL(c2)+3*VAL(c3)+2*VAL(c4)+7*VAL(c5)+;
6*VAL(c6)+5*VAL(c7)+4*VAL(c8)+3*VAL(c9)+2*VAL(c10))
nResto=MOD(nSumatoria,11)
nVerificador=11-nResto
IF nVerificador=VAL(c11) OR (nResto=0 AND VAL(c11)=0)
lStop=.T.
EXIT
ENDIF
NEXT
IF lStop=.T.
EXIT
ENDIF
NEXT
RETURN(cCuit)
----- Original Message -----
From: Mario Andrés Ageno
To: GUFA List Member
Sent: Friday, October 19, 2012 4:55 PM
Subject: [GUFA] Generara CUIT automatico
Gracias Fabricio
pero por lo que veo es un verificador de CUIT lo que estoy buscando es como
generarlo, teniendo como dato el sexo y documento,
algo ya encontre pero no contempla o tiene errores con los 23
saludos
From: Fabricio Bridera (GUFA)
Sent: Friday, October 19, 2012 4:39 PM
To: GUFA List Member
Subject: [GUFA] Generara CUIT automatico
Hola Mario: Esta es una función para verificar si el CUIT/CUIL es válido.
Pero ¡OJO con el cálculo automático! Normalmente el CUIT/CUIL responde a
ciertas reglas, pero en algunos casos excepcionales cambian el prefijo sin que
ese cambio responda a datos verificables
Cuando el resultado del cálculo inicial da 10, el dígito verificador pasa a
ser 9 y el prefijo de las Sociedades pasa a ser 33, el de los hombres a 23.En
el caso de las mujeres el prefijo pasa a 23 y el digito verificador pasa a ser
4. Si el numero de documento estuviera duplicado (cosa que sucede) el prefijo
cambia a 34 en Sociedades y a 24 en las personas físicas
Los prefijos aceptados son
20: Masculino
27: Femenino
23: Masculino/Femenino
24: Masculino/Femenino (Cuando hay repetición de Nº de documento, increíble
pero real y no detectable)
30: Sociedades
33: Sociedades
34: Sociedades (Cuando hay repetición de Nº de la sociedad, increíble pero
real y no detectable)
Para obtener el CUIT/CUIL, lo más seguro es consultar la página del ANSES.
En el caso de CUIT, se puede descargar un archivo texto que luego se puede
pasar a dbf y consultar la existencia del CUIT.
En el caso de CUIL no sé si existe algún archivo a descargar con los CUILes
generados.
function VerifCuit
parameters FCuit
private Secuencia, I, ProDesc, DigVer
if lastkey() # 27
Secuencia= '54-32765432'
ProDesc= 0
for I= 1 to 11
if i # 3
ProDesc= ProDesc + (val
(substr (FCuit,i,1)) * val (substr (Secuencia,i,1)))
endif
endfor
DigVer= 11 - mod (ProDesc, 11)
if DigVer= 10
wait window nowait 'El Prefijo debe cambiarse'
return .F.
endif
if alltrim (str (DigVer))= right (FCuit, 1)
return .T.
else
wait window nowait 'El dígito verificador no
coincide'
return .F.
endif
else
return .T.
endif
Saludos
Fabricio A. Bridera
De: [email protected] [mailto:[email protected]] En nombre de Mario Andrés Ageno
Enviado el: Viernes, 19 de Octubre de 2012 12:00
Para: GUFA List Member
Asunto: [GUFA] Generara CUIT automatico
Buenos Días
Alguien tiene cual es la formula para generar los CUIT o CUIL de personas
físicas o jurídicas, en base a su sexo y numero de documento.
tengo que incorporar el cuit a una base de datos donde tengo estos datos,
sexo, documento, personaría jurídica
gracias
------
Mario Andrés Ageno
Analista de Sistemas
de Computación
Italia 2317 - 3040 San Justo (SF)
mail: [email protected]
web: www.maasoft.com.ar
msn: [email protected]