FoxPro/Visual FoxPro - Validacion rut

 
Vista:

Validacion rut

Publicado por Yeka (1 intervención) el 06/06/2003 18:31:22
hola

mi pregunta es cual es la validacion del rut se multiplica los digitos por 9,8,7,6,5,4,3,2 los resultados se suman se dividen por 11 y....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Validacion rut

Publicado por CesarZ (84 intervenciones) el 07/06/2003 01:08:18
Bueno me imagino que RUT debe ser igual a RUC(Perú) ó NIT
bueno yo tengo una rutina que valida RUC de 11 DIgitos Ahi Va.

*function VALRUC11
parameter xruc
private a, b, c, d, e, f, g, h, i, j, k
if empty(xruc)
return .T.
endif
if len(alltrim(xruc))<>11
return .F.
endif
store 0 to a, b, c, d, e, f, g, h, i, j, k
a = val(substr(xruc, 1, 1))*5
b = val(substr(xruc, 2, 1))*4
c = val(substr(xruc, 3, 1))*3
d = val(substr(xruc, 4, 1))*2
e = val(substr(xruc, 5, 1))*7
f = val(substr(xruc, 6, 1))*6
g = val(substr(xruc, 7, 1))*5
h = val(substr(xruc, 8, 1))*4
i = val(substr(xruc, 9, 1))*3
j = val(substr(xruc, 10, 1))*2
k = val(substr(xruc, 11, 1))
wsuma = a+b+c+d+e+f+g+h+i+j
wresto = mod(wsuma, 11)
wultimodig = 11-wresto
if wultimodig<>k
if .not. ((wresto=1 .and. k=0) .or. (wresto=0 .and. k=1))
return .F.
endif
endif
return .T.

Salu2
CesarZ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 4 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Validacion rut

Publicado por NEJER LUDOVID (2 intervenciones) el 05/10/2018 08:07:45
RUT ==> 15960747-k *** (ejemplo)

--------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Form1 ==>  VerificarRut()
 
Lparameters lcValue
 
Local lcAuxValue, lcChrValue, dv, i, lcSum, lcRest, j, lcNumValue
Store 0 To lcSum
Store 2 To j
lcAuxValue = Left(lcValue, At("-", lcValue) - 1)
lcChrValue = Len(lcAuxValue)
dv = "0"
For i = lcChrValue To 1 Step - 1
lcNumValue = Val(Substr(lcAuxValue, i, 1))
lcSum = lcSum + (lcNumValue * j)
If j > 6
j = 1
Endif
j = j + 1
Endfor
lcRest = Mod(lcSum, 11)
dv = Alltrim(Str(11 - lcRest))
Do Case
CASE dv = "10"
dv = "K"
Case dv = "11"
dv = "0"
Endcase
Return Upper(Right(lcValue, 1)) == dv
thisform.text2.Value = dv

-----------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmdvalidar  click()
 
local xrut
 
xrut = alltrim(thisform.txt_rut.value)
 
IF !thisform.VerificarRut(xcons_rut)
     MESSAGEBOX("RUT INVALIDO",0+64,"Validar RUT")
    RETURN
ELSE
 
    MESSAGEBOX("RUT VALIDO",0+64,"Validar RUT")
 
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar