Código de FoxPro/Visual FoxPro - Calcular Dígito Verificador del RUC (Paraguay)

Versión 1
estrellaestrellaestrellaestrellaestrella(5)

Publicado el 13 de Marzo del 2013gráfica de visualizaciones de la versión: Versión 1
23.533 visualizaciones desde el 13 de Marzo del 2013
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
*
* consultarDV.prg
*
* Derechos Reservados (c) 2000-2009 José Acuña
* Villa Elisa, Paraguay
*
* Descripción:
* Calcula el dígito verificador del RUC.
*
* Compilador / Lenguaje:
* Microsoft Visual Foxpro 9.0 Service Pack 1.
*
* Historial de Modificación:
* Enero 03, 2009     Creación del Programa
*
PARAMETERS tcRUC
 
LOCAL lnDV AS INTEGER
lnDV = calcular(tcRUC, 11)
 
RETURN (lnDV)
 
*------------------------------------------------------------------------------*
FUNCTION calcular
   PARAMETERS tcNumero, tnBaseMax
 
   LOCAL lcNumeroAl, i, lcCaracter, k, lnTotal, lnNumeroAux, lnResto, lnDigito
 
   lcNumeroAl = ""
 
   FOR i = 1 TO LEN(tcNumero)
      lcCaracter = UPPER(SUBSTR(tcNumero, i, 1))
 
      IF !BETWEEN(ASC(lcCaracter), 48, 57) THEN   && de 0 a 9
         lcNumeroAl = lcNumeroAl + ALLTRIM(STR(ASC(lcCaracter)))
      ELSE
         lcNumeroAl = lcNumeroAl + lcCaracter
      ENDIF
   ENDFOR
 
   k = 2
   lnTotal = 0
 
   FOR i = LEN(lcNumeroAl) TO 1 STEP -1
      IF k > tnBaseMax THEN
         k = 2
      ENDIF
 
      lnNumeroAux = VAL(SUBSTR(lcNumeroAl, i, 1))
      lnTotal = lnTotal + (lnNumeroAux * k)
      k = k + 1
   ENDFOR
 
   lnResto = MOD(lnTotal, 11)
 
   IF lnResto > 1 THEN
      lnDigito = 11 - lnResto
   ELSE
      lnDigito = 0
   ENDIF
 
   RETURN (lnDigito)
ENDFUNC



Comentarios sobre la versión: Versión 1 (5)

Jessi
17 de Julio del 2016
estrellaestrellaestrellaestrellaestrella
el código funciona muy bien
Responder
Luis Alberto Gomez Mendoza
15 de Noviembre del 2016
estrellaestrellaestrellaestrellaestrella
Necesito como hago para consultar los datos de un RUC (Paraguay) a traves de mi sistema, si alguien lo sabe...
Responder
Imágen de perfil
29 de Noviembre del 2016
estrellaestrellaestrellaestrellaestrella
La SET proporciona algunos datos a través de su sitio web:

http://www.set.gov.py/portal/PARAGUAY-SET/InformesPeriodicos

Debe hacer clic en el enlace que dice:

"Listado de RUC con sus equivalencias"

Y descargar los archivos zip que aparecen en la página, los mismos están formato TXT; los datos están delimitados con el caracter "|" (sin las comillas).

Una vez que descomprima los arhivos, puede crear un tabla DBF con los siguientes campos: ruc, nombre, dv y ruc_anterior; luego se debe utilizar el comando APPEND FROM para traspasar los datos de los archivos TXT al archivo DBF.

Cuando tenga el archivo DBF con los datos puede crear índice por el campo RUC para localizar el registro y recuperar los demás datos.
Responder
aldus
21 de Septiembre del 2017
estrellaestrellaestrellaestrellaestrella
Sabe donde obtener la documentación de cómo se forma el número de RUC y la numeración de comprobantes en paraguay? Muchas gracias.
Responder
Pablo
1 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
A mi no me funciona, hay que modificar algo? en el codigo?
desde ya muchas gracias
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2327