30 de diciembre de 2003

Validar RUC (Registro Único de Contribuyentes de Perú)

Con esta rutina podemos validar el RUC (Registro Único de Contribuyentes) emitido por la SUNAT (Superintendencia Nacional de Administración Tributaria).

Solo para Perú.
? ValidRucSunat("20372706288")

FUNCTION ValidRucSunat(lcNroRuc)
  IF LEN(ALLTRIM(lcNroRuc)) <> 11 THEN
    RETURN .F.
  ENDIF
  LOCAL aArrayRuc
  DIMENSION aArrayRuc(3,11)
  FOR i = 1 TO 11
    aArrayRuc(1,i)=VAL(SUBS(lcNroRuc,i,1))
  ENDFOR
  aArrayRuc(2,1)=5
  aArrayRuc(2,2)=4
  aArrayRuc(2,3)=3
  aArrayRuc(2,4)=2
  aArrayRuc(2,5)=7
  aArrayRuc(2,6)=6
  aArrayRuc(2,7)=5
  aArrayRuc(2,8)=4
  aArrayRuc(2,9)=3
  aArrayRuc(2,10)=2
  aArrayRuc(3,11)=0
  FOR i=1 TO 10
    aArrayRuc(3,i)  = aArrayRuc(1,i)  * aArrayRuc(2,i)
    aArrayRuc(3,11) = aArrayRuc(3,11) + aArrayRuc(3,i)
  ENDFOR
  lnResiduo   = MOD(aArrayRuc(3,11),11)
  lnUltDigito = 11 - lnResiduo
  DO CASE
    CASE lnUltDigito = 11 OR lnUltDigito=1
      lnUltDigito = 1
    CASE lnUltDigito = 10 OR lnUltDigito=0
      lnUltDigito = 0
  ENDCASE
  IF lnUltDigito = aArrayRuc(1,11) THEN
    RETURN .T.
  ELSE
    RETURN .F.
  ENDIF
ENDFUNC
Saludos.....

NavaSoft S.A.C.

1 comentario :

  1. Aquí encontré una nueva versión

    https://tisoft.wordpress.com/2021/02/

    ResponderBorrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.