Verificar CUIT y CBU en Sistema Web
Publicado por Jimena Denis (1 intervención) el 11/12/2009 07:13:49
Hola amigos del foro, soy bastante nueva con Genexus y necesito poder validar los campos de CUIT(ClieCuit) y de CBU (ClieCbu) en una tabla de Clientes, estoy trabajando con ambiente Web (.net y sql server ). Estaba probando de hacerlo con procedures que encontre, pero la verdad que no logro hacerlo funcionar, porque nose como pasarle los parametros y llamar a los procedimientos desde la transaccion, si alguien lo hizo en ambiente Web y es tan amable me ayuda. Gracias.
El procedimiento de Cuit tiene:
en Rules parm(&Cuit ,&Correcto ) ;
Y en Event:
&Correcto = 0
&aCuit()=0
&aCuit(01,2) =5
&aCuit(02,2) =4
&aCuit(03,2) =3
&aCuit(04,2) =2
&aCuit(05,2) =7
&aCuit(06,2) =6
&aCuit(07,2) =5
&aCuit(08,2) =4
&aCuit(09,2) =3
&aCuit(10,2) =2
&Primero = substr( &Cuit , 01, 2)
&Segundo = substr( &Cuit , 04, 8)
&Tercero = substr( &Cuit , 13, 1)
If &Primero = nullvalue(&Primero ) .AND. &Segundo =nullvalue(&Segundo ).AND. &Tercero =nullvalue(&Tercero )
&Correcto = 1
Endif
If &Correcto = 0
&xCuit = concat( &Primero , &Segundo )
&xCuit = trim( &xCuit )
If len( &xCuit ) < 10
&Correcto = 2
Else
&Contador = 1
&nTotal = 0
do While &Contador <= len(&xCuit )
&DigitoProc = substr(&xCuit ,&Contador ,1)
&aCuit(&Contador ,1) = val(&DigitoProc )
&aCuit(&Contador ,3) = (val(&DigitoProc ))*&aCuit(&Contador ,2)
&nTotal = &nTotal +&aCuit(&Contador ,3)
&Contador = &Contador +1
EndDo
Do 'Resto'
If &nresto = 0 .OR. &nresto = 1
&nDigito = &nresto
Else
&nDigito = 11 - &nresto
Endif
If &nDigito <> val(&Tercero )
&Correcto = 3
Endif
Endif
Endif
Sub 'Resto'
&Resultado =int(&nTotal / 11 )
&nresto = &nTotal - (&Resultado *11 )
EndSub
Como debo llamarlo desde la transaccion para que valide? y si los datos ingresados son erroneos como muestro el error?. Muchas Gracias.
El procedimiento de Cuit tiene:
en Rules parm(&Cuit ,&Correcto ) ;
Y en Event:
&Correcto = 0
&aCuit()=0
&aCuit(01,2) =5
&aCuit(02,2) =4
&aCuit(03,2) =3
&aCuit(04,2) =2
&aCuit(05,2) =7
&aCuit(06,2) =6
&aCuit(07,2) =5
&aCuit(08,2) =4
&aCuit(09,2) =3
&aCuit(10,2) =2
&Primero = substr( &Cuit , 01, 2)
&Segundo = substr( &Cuit , 04, 8)
&Tercero = substr( &Cuit , 13, 1)
If &Primero = nullvalue(&Primero ) .AND. &Segundo =nullvalue(&Segundo ).AND. &Tercero =nullvalue(&Tercero )
&Correcto = 1
Endif
If &Correcto = 0
&xCuit = concat( &Primero , &Segundo )
&xCuit = trim( &xCuit )
If len( &xCuit ) < 10
&Correcto = 2
Else
&Contador = 1
&nTotal = 0
do While &Contador <= len(&xCuit )
&DigitoProc = substr(&xCuit ,&Contador ,1)
&aCuit(&Contador ,1) = val(&DigitoProc )
&aCuit(&Contador ,3) = (val(&DigitoProc ))*&aCuit(&Contador ,2)
&nTotal = &nTotal +&aCuit(&Contador ,3)
&Contador = &Contador +1
EndDo
Do 'Resto'
If &nresto = 0 .OR. &nresto = 1
&nDigito = &nresto
Else
&nDigito = 11 - &nresto
Endif
If &nDigito <> val(&Tercero )
&Correcto = 3
Endif
Endif
Endif
Sub 'Resto'
&Resultado =int(&nTotal / 11 )
&nresto = &nTotal - (&Resultado *11 )
EndSub
Como debo llamarlo desde la transaccion para que valide? y si los datos ingresados son erroneos como muestro el error?. Muchas Gracias.
Valora esta pregunta
0