Autor Tema: ¿Cómo calcular dígito verificador del DUI y NIT?  (Leído 61789 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado SiKa

  • -^- Elite Silver -^-
  • Trade Count: (2)
  • The Communiter-
  • *
  • Thank You
  • -Given: 11
  • -Receive: 22
  • Mensajes: 2540
  • .
Re:¿Cómo calcular dígito verificador del DUI y NIT?
« Respuesta #45 : septiembre 19, 2014, 08:40:41 am »
amigos.. colgandome del tema.. alguien me puede ayudar con algo parecido.. pero para verificar los numero de registro de IVA??

http://www.svcommunity.org/forum/chat-general/codigo-verificador-de-numero-de-iva-%28cualquier-lenguaje%29/

Desconectado light1456

  • Trade Count: (0)
  • MiembrosReales
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 38
Re:¿Cómo calcular dígito verificador del DUI y NIT?
« Respuesta #46 : septiembre 24, 2014, 12:07:06 pm »
Gracias MauricioG, entonces solo para confirmar los checkdigit de NRC y DUI, tienen el mismo algoritmo?

un saludo :thumbsup:


Desconectado MauricioG

  • Trade Count: (0)
  • The newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 10
Re:¿Cómo calcular dígito verificador del DUI y NIT?
« Respuesta #47 : octubre 30, 2014, 11:29:31 am »
 :yahoo: :sur: Aca esta la rutina del NIT, desarrollada en VFP
*--- Funcion Validar NIT  Rutina comprobada para viejos y nuevos MAG 30/10/2014
*--- Funcion NIT  Proposito Validar si el NIT es valido
LOCAL vnit, vsum, vdig, vfac
vnit = '11070806771015'
STORE 0 TO vsum, vdig, vfac
* Valida la longitud del NIT
IF LEN(vnit) # 14
   MESSAGEBOX('Longitud de NIT erronea',0,'Valida NIT')
   RETURN
ENDIF
* Valida que todos sean numeros
FOR I = 1 TO 14
   IF !ISDIGIT(SUBST(vnit,i,1))
      MESSAGEBOX('NIT erroneo contiene alfabeticos',0,'Valida NIT')
      RETURN
   ENDIF
ENDFOR
*--- Valida si es NIT viejo(<= 100) o nuevo (>= 100)
IF INT(VAL(SUBS(vnit,11,3))) <= 100   && Rutina Vieja
   FOR I = 1 TO 13
      vsum = vsum + (INT(VAL(SUBS(vnit,i,1))) * (15 - i))
   ENDFOR
   vdig = MOD(vsum,11)
   IF vdig = 10
      vdig = 0
   ENDIF
ELSE         && Rutina Nueva
   FOR I = 1 TO 13
      vfac = (3 + (6 * FLOOR(ABS(I + 4) / 6))) - I
      vsum = vsum + (INT(VAL(SUBS(vnit,i,1))) * vfac)
   ENDFOR
   vdig = MOD(vsum,11)
   IF vdig > 1
      vdig = 11 - vdig
   ELSE
      vdig = 0
   ENDIF
ENDIF
RETURN

Desconectado Raizor

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 36
  • -Receive: 10
  • Mensajes: 2016
Re:¿Cómo calcular dígito verificador del DUI y NIT?
« Respuesta #48 : febrero 13, 2021, 10:10:30 am »
Señores primero disculpas por revivir algo tan antigüo.

Segundo, podría alguien ser tan amable de explicar el proceso para validar el NIT?

ya copie las formulas en excel que dejo cedlink, y lo adapte a mi conveniencia pero no entiendo para nada que es lo que dicho proceso hace.

En cambio con lo del DUI si me quedó todo claro gracias a la explicación que dió Camus.

Gracias.

Desconectado Cvizkrra

  • Trade Count: (0)
  • The newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2
Re:¿Cómo calcular dígito verificador del DUI y NIT?
« Respuesta #49 : noviembre 25, 2021, 01:03:56 pm »
Hola, tengo unas consultas y es que estoy haciendo la parte de validadores de NIT, DUI y Pasaporte, para NIT y DUI tengo los dígitos validadores y ya funciona todo bien, pero para el pasaporte no he encontrado nada sobre digito validador, de momento solo tengo que me valide el formato, que hasta donde se es 1 letra seguida de 8 números, mis consultas serian si la letra del inicio puede ser de la A a la Z o solo un rango especifico y si existe digito validador para este y procedimiento matemático para comprobarlo.
De momento uso el siguiente regex : "^[A-Z]{1}[0-9]{8}$"

Desconectado Cvizkrra

  • Trade Count: (0)
  • The newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2
Re:¿Cómo calcular dígito verificador del DUI y NIT?
« Respuesta #50 : noviembre 25, 2021, 01:10:28 pm »
Hola, tengo unas consultas y es que estoy haciendo la parte de validadores de NIT, DUI y Pasaporte, para NIT y DUI tengo los dígitos validadores y ya funciona todo bien, pero para el pasaporte no he encontrado nada sobre digito validador, de momento solo tengo que me valide el formato, que hasta donde se es 1 letra seguida de 8 números, mis consultas serian si la letra del inicio puede ser de la A a la Z o solo un rango especifico y si existe digito validador para este y procedimiento matemático para comprobarlo.
De momento uso el siguiente regex : "^[A-Z]{1}[0-9]{8}$"