venerdì 18 aprile 2008

Verifica Validità formale della Partita IVA per VB6 / VBA

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

Un progetto vb6 di esempio

2 commenti:

Anonimo ha detto...

La ringrazio per intiresnuyu iformatsiyu

Anonimo ha detto...

La ringrazio per intiresnuyu iformatsiyu