Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- option Explicit
- Function MsgBox(msg)
- Err.Raise MFScriptCancel, msg
- End Function
- '--------------------------------
- Dim nipOrgValue, recycledValue
- nipOrgValue = PropertyValue.Value
- If IsNull(nipOrgValue) = true Then
- nipOrgValue = ""
- End If
- recycledValue = Replace(Trim(nipOrgValue),"-","")
- If ValidateNIP(recycledValue) = true Then
- '
- Else
- MsgBox "Nieprawidłowa wartość w polu NIP"
- End If
- Function ValidateNIP(sNIP)
- Dim aWagi 'zmienna tablicowa, do ktorej przypiszemy tablice wag
- Dim nSuma 'zmianna, do ktorej przypiszemy sume iloczynow
- Dim lPoprawny_NIP 'True - jesli NIP jest poprawnie zweryfikowany
- Dim i 'zmienna iteracyjna
- lPoprawny_NIP = False 'zakladamy, ze NIP jest bledy
- aWagi = Array(6, 5, 7, 2, 3, 4, 5, 6, 7) 'tablica wartosci wag algorytmu Luhn'a
- sNIP = Trim(sNIP) 'dla pewnosci usuwamy niedrukowalne znaki przed i za numerem NIP
- sNIP = Replace(sNIP, " ", "") 'usuwamy wszystkie znaki " "
- sNIP = Replace(sNIP, "-", "") 'usuwamy wszystkie znaki "-"
- nSuma = 0 'zerujemy zmienna sumatora
- If IsNumeric(sNIP) And Len(sNIP) = 10 Then 'jesli NIP sklada sie dokladnie z 10-ciu cyfr to ...
- For i = 1 To 9 'dla 9-ciu znakow wyliczamy iloczyny waga[i] * NIP[i]
- nSuma = nSuma + aWagi(i - 1) * CInt(Mid(sNIP, i, 1))
- Next
- If (nSuma Mod 11) = CInt(Right(sNIP, 1)) Then
- lPoprawny_NIP = True 'jesli wyliczona reszta = cyfrze kontrolnej NIP jest poprawny
- End If
- End If
- If Len(sNip) = 0 Then
- lPoprawny_NIP = True
- End If
- ValidateNIP = lPoprawny_NIP
- 'ValidateNIP = false
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement