Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
1| Name | Data Type | Length | Description |
|---|---|---|---|
| @W_Cuit | varchar | 20 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.ws_valida_cuit
@W_Cuit VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
declare @W_Suma int = 0
declare @W_Division int
declare @W_Digv smallint
declare @W_2_Digv smallint
declare @W_Resto smallint
declare @W_error bit = 1
set @W_Cuit = ltrim(rtrim(@W_Cuit))
if (try_convert(decimal(11),@W_Cuit) is null or len(@W_Cuit)<>11) -- no es numerico o no tiene 11 digitos
begin
set @W_error = 0
end
else
begin
set @W_2_Digv = substring(@W_Cuit,11,1)
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,1,1)) * 5
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,2,1)) * 4
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,3,1)) * 3
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,4,1)) * 2
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,5,1)) * 7
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,6,1)) * 6
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,7,1)) * 5
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,8,1)) * 4
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,9,1)) * 3
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,10,1)) * 2
set @W_Division = @W_Suma / 11;
set @W_Resto = @W_Suma - (@W_Division * 11);
if (@W_Resto = 0)
begin
set @W_Digv = 0
end
else
begin
set @W_Digv = 11 - @W_Resto
end
if (@W_Digv != @W_2_Digv OR @W_Digv = 10)
begin
set @W_error = 0
end
end
return @W_error
END
GO
GO
CREATE OR ALTER PROCEDURE dbo.ws_valida_cuit
@W_Cuit VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
declare @W_Suma int = 0
declare @W_Division int
declare @W_Digv smallint
declare @W_2_Digv smallint
declare @W_Resto smallint
declare @W_error bit = 1
set @W_Cuit = ltrim(rtrim(@W_Cuit))
if (try_convert(decimal(11),@W_Cuit) is null or len(@W_Cuit)<>11) -- no es numerico o no tiene 11 digitos
begin
set @W_error = 0
end
else
begin
set @W_2_Digv = substring(@W_Cuit,11,1)
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,1,1)) * 5
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,2,1)) * 4
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,3,1)) * 3
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,4,1)) * 2
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,5,1)) * 7
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,6,1)) * 6
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,7,1)) * 5
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,8,1)) * 4
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,9,1)) * 3
set @W_Suma = @W_Suma + convert(int,substring(@W_Cuit,10,1)) * 2
set @W_Division = @W_Suma / 11;
set @W_Resto = @W_Suma - (@W_Division * 11);
if (@W_Resto = 0)
begin
set @W_Digv = 0
end
else
begin
set @W_Digv = 11 - @W_Resto
end
if (@W_Digv != @W_2_Digv OR @W_Digv = 10)
begin
set @W_error = 0
end
end
return @W_error
END
GO
Depends On
No items found