Advertisement
Guest User

Untitled

a guest
Nov 8th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. option Explicit
  2.  
  3. Function MsgBox(msg)
  4.     Err.Raise MFScriptCancel, msg
  5. End Function
  6. '--------------------------------
  7.  
  8. Dim nipOrgValue, recycledValue
  9. nipOrgValue = PropertyValue.Value
  10.  
  11. If IsNull(nipOrgValue) = true Then
  12. nipOrgValue = ""
  13. End If
  14.  
  15. recycledValue = Replace(Trim(nipOrgValue),"-","")
  16.  
  17. If ValidateNIP(recycledValue) = true Then
  18. '
  19. Else
  20.     MsgBox "Nieprawidłowa wartość w polu NIP"
  21. End If
  22.  
  23. Function ValidateNIP(sNIP)
  24.     Dim aWagi             'zmienna tablicowa, do ktorej przypiszemy tablice wag
  25.    Dim nSuma                'zmianna, do ktorej przypiszemy sume iloczynow
  26.    Dim lPoprawny_NIP     'True - jesli NIP jest poprawnie zweryfikowany
  27.    Dim i                 'zmienna iteracyjna
  28.    
  29.     lPoprawny_NIP = False                       'zakladamy, ze NIP jest bledy
  30.    aWagi = Array(6, 5, 7, 2, 3, 4, 5, 6, 7)    'tablica wartosci wag algorytmu Luhn'a
  31.    sNIP = Trim(sNIP)                           'dla pewnosci usuwamy niedrukowalne znaki przed i za numerem NIP
  32.    sNIP = Replace(sNIP, " ", "")               'usuwamy wszystkie znaki " "
  33.    sNIP = Replace(sNIP, "-", "")               'usuwamy wszystkie znaki "-"
  34.    nSuma = 0                                   'zerujemy zmienna sumatora
  35.  
  36.     If IsNumeric(sNIP) And Len(sNIP) = 10 Then      'jesli NIP sklada sie dokladnie z 10-ciu cyfr to ...
  37.        For i = 1 To 9          'dla 9-ciu znakow wyliczamy iloczyny waga[i] * NIP[i]
  38.            nSuma = nSuma + aWagi(i - 1) * CInt(Mid(sNIP, i, 1))
  39.         Next
  40.  
  41.         If (nSuma Mod 11) = CInt(Right(sNIP, 1)) Then
  42.         lPoprawny_NIP = True 'jesli wyliczona reszta = cyfrze kontrolnej NIP jest poprawny
  43.         End If
  44.     End If
  45.    
  46.     If Len(sNip) = 0 Then
  47.         lPoprawny_NIP = True
  48.     End If
  49.  
  50.     ValidateNIP = lPoprawny_NIP
  51.     'ValidateNIP = false
  52. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement