OT: Algoritmo de Digito de Verificacion de Nit

04/07/2003 - 17:02 por Gustavo Santis | Informe spam
Hola Grupo,

Alguien sabe como calcular en digito de verificaion del NIT en Colombia


Gracias,

Gustavo Santis (gsantis@hotmail.com)

Preguntas similare

Leer las respuestas

#1 Diego
04/07/2003 - 18:04 | Informe spam
ok

Se toma un arreglo de 15 numeros primos como sigue :

(71,67,59,53,47,43,41,37,29,23,19,17,13,7,3)

Luego se captura el nit sin digito de chequeo... y se alinea de 15
posiciones con ceros a la izquierda, pongamos el nit: 800123456-5

quedaria:

0,0,0,0,0,0,8,0,0,1,2,3,4,5,6

y ahora de izquierda a derecha se multiplican cada uno de los valores del
nit de 15 digitos sin numero de chequeo respectivamente en el mismo
"estricto" orden:

(0,0,0,0,0,0,8,0,0,1,2,3,4,5,6)
(71,67,59,53,47,43,41,37,29,23,19,17,13,7,3)

0 * 71 = 0
0 * 67 = 0
0 * 59 = 0
0 * 53 = 0
0 * 47 = 0
0 * 43 = 0
8 * 41 = 328
0 * 37 = 0
0 * 29 = 0
1 * 23 = 23
2 * 19 = 38
3 * 17 = 51
4 * 13 = 52
5 * 7 = 35
6 * 3 = 18

Se suman los resultados = 545 para este caso

Y se sigue lo siguiente se toma el residuo de (545 / 11) = 6 (= variable
resid) y ahora:

if resid = 0 or resid = 1 then
digito_chequeo = resid
Else
digito_chequeo = 11 - resid
End if

Para este caso 11 - 6 = 5 como nuestro numero de chequeo!!

Saludos




"Gustavo Santis" escribió en el mensaje
news:
Hola Grupo,

Alguien sabe como calcular en digito de verificaion del NIT en Colombia


Gracias,

Gustavo Santis ()


Respuesta Responder a este mensaje
#2 Programmer
04/07/2003 - 18:09 | Informe spam
Acá tinees el código compañero:

Function Nit(strNit) As Boolean
Dim I As Byte, chrCar As String
Dim V(1 To 9, 1 To 2) As Integer
Dim bytVerificacion As Byte
Dim intSuma As Integer, dblM As Double

'*********************************************************************
' Carga los factores de verificación
'*********************************************************************

V(1, 1) = 41
V(2, 1) = 37
V(3, 1) = 29
V(4, 1) = 23
V(5, 1) = 19
V(6, 1) = 17
V(7, 1) = 13
V(8, 1) = 7
V(9, 1) = 3

'*********************************************************************

strNit = Replace(strNit, "-", "")
If Len(strNit) > 10 Then
Nit = False
Else
strNit = Format(Val(strNit), String(10, "0"))

If Val(strNit) = 0 Then
Nit = False
Exit Function
End If

For I = 1 To 9
V(I, 2) = Right(Left(strNit, I), 1)
Next I
bytVerificacion = Right(Left(strNit, 10), 1)

intSuma = 0
For I = 1 To 9
intSuma = V(I, 1) * V(I, 2) + intSuma
Next I
dblM = (intSuma Mod 11)
If dblM > 1 Then dblM = 11 - dblM

If dblM = bytVerificacion Then
Nit = True
Else
Nit = False
End If
End If

End Function


JOSE DAVID GALVIZ MUÑOZ
Microsoft Certified Professional
"Gustavo Santis" escribió en el mensaje
news:
Hola Grupo,

Alguien sabe como calcular en digito de verificaion del NIT en Colombia


Gracias,

Gustavo Santis ()


Respuesta Responder a este mensaje
#3 Iv
04/07/2003 - 18:10 | Informe spam
NIT ????

"Gustavo Santis" wrote in message
news:
Hola Grupo,

Alguien sabe como calcular en digito de verificaion del NIT en Colombia


Gracias,

Gustavo Santis ()


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida