Ecco una utile funzione per controllare la validità formale di una partita iva passata come parametro. La funzione restituisce un valore di tipo bit: 1 se la partita IVA è valida, 0 altrimenti.
CREATE
FUNCTION [PartitaIva_IsValid](@sPiva varchar(16))
RETURNS
bitAS
BEGIN
declare
@risultato bitset
@risultato=0
IF
LEN(@sPiva)=11
BEGIN
declare @index int
declare @char varchar(1)
declare @s int
declare @s1 int
declare @dispari bit
declare @r int
declare @c int
set @index=1
set @risultato=1
set @s=0
set @dispari=1
while (@index<=11) and (@risultato=1)
begin
set @char=substring(@sPiva,@index,1)
if (@char=‘.’) or (isnumeric(@char)=0)
begin
set @risultato=0
end
else
begin
if @index=11
begin
set @r=@s%10
if @r=0
begin
set @c=0
end
else
begin
set @c=10-@r
end
if @c<>cast(@char as int)
begin
set @risultato=0
end
end
else
begin
if @dispari=1
begin
set @s=@s+cast(@char as int)
set @dispari=0
end
else
begin
set @s1=cast(@char as int)*2
if @s1>9
begin
set @s1=@s1-9
end
set @s=@s+@s1
set @dispari=1
end
end
end
set @index=@index+1
end
END
return
@risultato
END
0 risposte finora ↓
Non ci sono ancora commenti... Inizia tu riempiendo il modulo sottostante.