Validar CUIL/CUIT

Código útil, tips de programación, etc.
Responder
Avatar de Usuario
aspabper
Novato
Mensajes: 32
Registrado: Mar Nov 09, 2021 1:31 pm
Ubicación: Argentina
Contactar:

Validar CUIL/CUIT

Mensaje por aspabper » Mar May 03, 2022 12:52 pm

Buen día foro.
Una consulta.
Alguien tendrá o hizo validaciones de claves tributarias!!?
Si alguien tiene algún ejemplo y me lo puede pasar estaría muy agradecido.
Saludos
Pablo Dante


anibalponce
Novato
Mensajes: 25
Registrado: Mar May 10, 2011 5:20 pm
Contactar:

Re: Validar CUIL/CUIT

Mensaje por anibalponce » Mié May 04, 2022 11:13 pm

Hola, te paso el que uso para el cuit. Ya no recuerdo de donde lo saqué :(
Saludos
Anibal

ValidaCUIT PROCEDURE (Cuit1) ! Declare Procedure
cuit2 STRING(255)
digver LONG
lon LONG
fac LONG
car STRING(1)

CODE
cuit2=cuit1
digver=0
fac=2
lon=LEN(CLIP(cuit2))
LOOP i#=lon-1 TO 1 BY -1
car=SUB(cuit2,i#,1)
IF car<'0' OR car>'9' THEN
CYCLE
.
digver=digver+(car*fac)
fac+=1
IF fac>7 THEN
fac=2
.
.
digver=11-(digver%11)
IF digver>9 THEN
digver=0
.
cuit2=SUB(cuit2,1,lon-1) & FORMAT(digver,@n01)
RETURN(cuit2)

Avatar de Usuario
aspabper
Novato
Mensajes: 32
Registrado: Mar Nov 09, 2021 1:31 pm
Ubicación: Argentina
Contactar:

Re: Validar CUIL/CUIT

Mensaje por aspabper » Jue May 05, 2022 2:58 pm

Buen día foro.
Respecto a la rutina o procedimiento para validar una CUIL/CUIT, devo aclarar; (después de tanto renegar); que el código que se expone más abajo no funciona en "Clarion 8 EE".
Trae un error; el cual no encontré referencia alguna para solucionarlo; cuando se hacen asignaciones en las variables locales al Souces, por ejemplo: "cuit2=cuit1", "fac=2" o "DV#=0".
El error que reporta (al Generar la App): Error : Expected: <statement> <INT> <REAL> <DECIMAL> <STRING> <LINEBREAK> ( ; ACCEPT ASSERT CHOOSE RAISE TRY BEGIN

Para solucionarlo tuve que utilizar el siguiente código de validación:

Código: Seleccionar todo

 
 ! DV#=0;N#=2 ---> Estas variables locales generan error antes mensionado (las tuve que comentar).
 Loop I# = LEN(CLIP(pinCUILoT)) To 1 By -1
        C" = pinCUILoT ! al asignarle a la variable local C el parámetro de ingreso "pinCUILoT", dentro del Loop [b]no[/b] genera el error antes decripto.
        N# += 1
        If N# > 7 
            N# = 2
        End
        DV# += C"[I#] * N#
End   
	D# = DV#%11
	If D# = 10
   	    D# = 0
	End
Return (D#)


- En el Prototype del Source: "(STRING pinCUILoT),BYTE"
- En el Actions --> Parameters: "(STRING pinCUILoT)"

Esa fue la solución, el código lo saque de la Wiki de Clarion.
Es como que la declaración de las variables en Clarion 8 EE hay que definirlas si o si en "Local Data ..." del procedimiento y asignales los valores de inicialización en "Initial Value" en los "Atributes".

Se, que en otras versiones de la herramienta la rutina funciona perfecto o sea no reporta los problemas que tuve, por ahí es algo de Clarion 8 EE, desconozco o sea no encontré referencia parecida en los foros.

Esto lo posteo para quien le pase algo parecido.

Saludos
anibalponce escribió:
Mié May 04, 2022 11:13 pm
Hola, te paso el que uso para el cuit. Ya no recuerdo de donde lo saqué :(
Saludos
Anibal

ValidaCUIT PROCEDURE (Cuit1) ! Declare Procedure
cuit2 STRING(255)
digver LONG
lon LONG
fac LONG
car STRING(1)

CODE
cuit2=cuit1
digver=0
fac=2
lon=LEN(CLIP(cuit2))
LOOP i#=lon-1 TO 1 BY -1
car=SUB(cuit2,i#,1)
IF car<'0' OR car>'9' THEN
CYCLE
.
digver=digver+(car*fac)
fac+=1
IF fac>7 THEN
fac=2
.
.
digver=11-(digver%11)
IF digver>9 THEN
digver=0
.
cuit2=SUB(cuit2,1,lon-1) & FORMAT(digver,@n01)
RETURN(cuit2)
Hola Anibal, buenos día
Muchas gracias por el aporte y la buena onda de responder.
Soy nuevo en Clarion, hace año hice una rutina en la Vers. 5 pero no fue significativa.
Estoy tratando de retomar nuevamente, te confieso que me cuesta mucho pero voy logrando entende el IDE (de apoco, claro).
Una consulta más.
Puedo hacerte consultas o preguntarte cuando tenga dificultades en algo...!!?
Indicame si lo hago por este foro o por algún correo que me pases.
Un saludo cordial y muchas gracias nuevamente :) .
Última edición por aspabper el Mar Abr 09, 2024 3:37 pm, editado 1 vez en total.
Pablo Dante

anibalponce
Novato
Mensajes: 25
Registrado: Mar May 10, 2011 5:20 pm
Contactar:

Re: Validar CUIL/CUIT

Mensaje por anibalponce » Vie May 06, 2022 12:17 pm

Hola Pablo, me parece que lo mejor para vos es practicar asi te familiarizas con la herramienta. Las dudas las podes resolver buscando en el foro, hay mucha informacion. Si no la encontrás siempre alguien te va a ayudar con algo puntual. Seguramente hay alguno que haga algun soporte personalizado, pero no creo que te haga falta.
Saludos
Anibal

Avatar de Usuario
aspabper
Novato
Mensajes: 32
Registrado: Mar Nov 09, 2021 1:31 pm
Ubicación: Argentina
Contactar:

Re: Validar CUIL/CUIT

Mensaje por aspabper » Vie May 06, 2022 4:39 pm

Hola Anibal
Muchas gracias
Saludos
Pablo Dante


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado