Autore Topic: Controllo se una partita iva è corretta  (Letto 859 volte)

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Controllo se una partita iva è corretta
« il: 17 Giugno 2012, 15:37:28 »
Ciao a tutti, se può essere utile vi posto il codice che uso per controllare se data una partita iva è corretta oppure no. Ciao a tutti.

Codice: [Seleziona]
Public Sub IsPartitaIva(PartitaIva As String) As Boolean
 
  Dim SplitPartIva As New String[]
  Dim Elemento As String
  Dim i, x As Integer
  Dim Controllo1, Controllo2, Controllo3 As Integer
 
  x = 1
  Controllo1 = 0
  Controllo2 = 0
  Controllo3 = 0
 
  For i = 0 To Len(PartitaIva) - 1
    SplitPartIva.Add(Mid$(PartitaIva, x, 1))
    If (x Mod 2) = 1 Then
      Controllo1 += Mid$(PartitaIva, x, 1)
    Else
      Controllo2 += Mid$(PartitaIva, x, 1)
      If CInt(Mid$(PartitaIva, x, 1)) >= 5 Then
        Inc Controllo3
      Endif
    Endif
    Inc x
  Next
 
  If (Controllo1 + (Controllo2 * 2) + Controllo3) Mod 10 = 0 Then
    Return True
  Else
    Return False
  Endif
   
End
Matteo DoubleMM Mion

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Controllo se una partita iva è corretta
« Risposta #1 il: 17 Giugno 2012, 15:59:36 »
Ciao a tutti, se può essere utile vi posto il codice che uso per controllare se data una partita iva è corretta oppure no. Ciao a tutti.
:ciao:

Grazie, doublemm, per la tua disponibilità.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Controllo se una partita iva è corretta
« Risposta #2 il: 17 Giugno 2012, 23:50:23 »
non c'è di che. Se avete a disposizione un DB con archiviate tutte le sigle delle province italiane lo starei cercando.
Matteo DoubleMM Mion

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Controllo se una partita iva è corretta
« Risposta #3 il: 18 Giugno 2012, 08:27:54 »
Ciao, non è propriamente un database ma un file csv, aggiornato al 30-12-2011, facilmente importabile.

Inoltre volevo proporti una differente versione dell'algoritmo per la verifica della P.Iva:
funziona per ora solo con i codici italiani, il parametro country verrà utilizzato se e quando avrò tempo di analizzare le P.Iva estere

Codice: gambas [Seleziona]
Static Public Function CheckPiva(sPiva As String, Optional sCountry As String = "IT") As Boolean
Dim iEven, iOdd, iBig, iCtrl, iStep As Integer
  If (Upper$(sCountry) <> "IT") Then Return True
  If (Len(sPiva) <> 11) Then Return False
  For iStep = 1 To 9 Step 2
    iEven = CInteger(Mid$(sPiva, iStep, 1))
    iOdd = CInteger(Mid$(sPiva, iStep + 1, 1))
    If (iOdd > 4) Then iBig += 1
    iCtrl += 2 * iOdd + iEven
  Next
  iCtrl += iBig + CInteger(Right$(sPiva, 1))
  Return (iCtrl Mod 10 = 0)
End
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Controllo se una partita iva è corretta
« Risposta #4 il: 18 Giugno 2012, 18:47:16 »

Inoltre volevo proporti una differente versione dell'algoritmo per la verifica della P.Iva:
funziona per ora solo con i codici italiani, il parametro country verrà utilizzato se e quando avrò tempo di analizzare le P.Iva estere


ottimo anche il tuo algoritmo. Grazie mille per il file, csv va più che bene.
Matteo DoubleMM Mion