Su richiesta di qualche amico ho convertito la mia funzione VB.NET di controllo e verifica validità Partita Iva.
La funzione di verifica:
Option Explicit
Public Function PadLeft(ByVal testo As String, ByVal lungo As String) As String
Dim s As String
s = String(lungo, "0") & testo
PadLeft = Right(s, lungo)
End Function
Public Function CheckPartitaIva(ByVal PIva As String) As String
CheckPartitaIva = "Errata"
Const caratteri As Integer = 11
Dim partitaiva As String
partitaiva = PIva
If Not (Len(partitaiva) = caratteri) Then
If Len(partitaiva) < caratteri Then
partitaiva = PadLeft(partitaiva, caratteri)
Else
partitaiva = Mid(partitaiva, 3)
End If
End If
If Len(partitaiva) <> caratteri Then Exit Function
If Mid(partitaiva, 1, 8) = "00000000" Or Mid(partitaiva, 9, 2) = "00" Then Exit Function
If (CInt(Mid(partitaiva, 8, 3)) > 121) Then Exit Function
Dim somma As Integer
somma = 0
Dim i As Integer
Dim j As Integer
For i = 1 To caratteri - 1
j = CInt(Mid(partitaiva, i, 1))
If i Mod 2 = 0 Then
j = j * 2
'Dim c As Char() = j.ToString("00").ToCharArray
somma = somma + CInt(Mid(Format(j, "00"), 1, 1))
somma = somma + CInt(Mid(Format(j, "00"), 2, 1))
Else
somma = somma + j
End If
Next
If (Mid(Format(somma, "00"), 2, 1) = "0") And (Not (Mid(partitaiva, 11, 1) = "0")) Then
Exit Function
End If
somma = CInt(Right(partitaiva, 1)) + CInt(Right(Format(somma, "00"), 1))
If Right(Format(somma, "00"), 1) = "0" Then CheckPartitaIva = "Corretta"
End Function
2 commenti:
La ringrazio per intiresnuyu iformatsiyu
La ringrazio per intiresnuyu iformatsiyu
Posta un commento