Autor Tema: Verificación de CUIT  (Leído 140 veces)

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

softmania

  • Bytes
  • *
  • Mensajes: 35
  • Reputación: +4/-0
    • Ver Perfil
Verificación de CUIT
« en: Octubre 25, 2013, 10:37:27 pm »
Esta función permite verificar si el CUIT ingresado es correcto

Código: Visual Basic
  1.   Public Function VerificacionCuit(ByVal sValor As String) As Boolean
  2.         Dim sValorNeto As String
  3.         Dim iSuma As Integer
  4.         Dim iResto As Integer
  5.         Dim iVerificador As Integer
  6.         Dim iVerificadorCadena As Integer
  7.         Dim iValorMaTrizConst() As Integer = {5, 4, 3, 2, 7, 6, 5, 4, 3, 2}
  8.         Dim iCont As Integer
  9.         'by softmania
  10.        'Quitamos los caracteres que no usaremos
  11.        sValorNeto = sValor.Replace("-", "").ToString
  12.         'sValorNeto = Valor.Replace("/", "").ToString
  13.  
  14.         Try
  15.             'verificamos que sean 11 dígitos
  16.            If sValorNeto.Length <> 11 Then Return False : Exit Function
  17.             'separamos el dígito verificador del resto de los números
  18.            iVerificadorCadena = CInt(sValorNeto.Substring(10, 1).ToString)
  19.             'separamos todos los números del dígito verficador
  20.            sValorNeto = sValorNeto.Substring(0, 10).ToString
  21.  
  22.             For iCont = 0 To 9
  23.                 'aquí se suman las multiplicaciones de cada dígito por cada número contenido en la matríz
  24.                'ejemplo 20-28175331-1
  25.                'sería
  26.                '  2   0   2    8   1    7    5    3   3   1
  27.                'X
  28.                '  5   4   3    2   7    6    5    4   3   2
  29.                '-------------------------------------------
  30.                ' 10 + 0 + 6 + 16 + 7 + 42 + 25 + 12 + 9 + 2 =  129
  31.  
  32.                 iSuma = iSuma + (CInt(sValorNeto.Substring(iCont, 1)) * iValorMaTrizConst(iCont))
  33.  
  34.             Next
  35.             ' Obtenermos el resto de la suma dividida 11
  36.            iResto = iSuma Mod 11
  37.  
  38.  
  39.             'Según el resto obtenido calculamos el dígito verificador
  40.            If iResto = 0 Then
  41.                 iVerificador = 0
  42.             ElseIf iResto = 1 Then
  43.                 iVerificador = 9
  44.             Else
  45.                 iVerificador = 11 - iResto
  46.             End If
  47.  
  48.             'comparamos el dígito verificador obtenido con el dígito de verificación ingresado
  49.            'establecemos si la función devuelve false o true según corresponda
  50.            If iVerificador = iVerificadorCadena Then
  51.                 Return True
  52.  
  53.             Else
  54.                 Return False
  55.  
  56.             End If
  57.  
  58.         Catch ex As Exception
  59.             Return False
  60.         End Try
  61.  
  62.     End Function
Solo se que no se nada!!! ;) By Sócrates