Página 1 de 1

Validar CUIL/CUIT

Publicado: Mar May 03, 2022 12:52 pm
por aspabper
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

Re: Validar CUIL/CUIT

Publicado: Mié May 04, 2022 11:13 pm
por anibalponce
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)

Re: Validar CUIL/CUIT

Publicado: Jue May 05, 2022 2:58 pm
por aspabper
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 :) .

Re: Validar CUIL/CUIT

Publicado: Vie May 06, 2022 12:17 pm
por anibalponce
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

Re: Validar CUIL/CUIT

Publicado: Vie May 06, 2022 4:39 pm
por aspabper
Hola Anibal
Muchas gracias
Saludos