dbo.sp_validar_cuit

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@cuit varchar 20
@validacion bit 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
declare @val bit
exec sp_validar_cuit '20208925658', @val output
select @val 
*/

CREATE OR ALTER PROCEDURE dbo.sp_validar_cuit
@cuit varchar(20),
@validacion bit output 
AS

begin
declare @verificador int
declare @resultado int = 0
declare @cuit_nro varchar(11)
declare @codes varchar(10) = '6789456789'
  
set @cuit = (select replace(@cuit,'-',''))
set @cuit = (select replace(@cuit,'.',''))
set @cuit = (select replace(@cuit,'/',''))
set @cuit = (select replace(@cuit,' ',''))
set @cuit = (select ltrim(rtrim(@cuit)))

if (len(@cuit)=11) 
begin

 set @cuit_nro = @cuit
 
 set @verificador = RIGHT(@cuit_nro, 1)

 declare @x int = 0

 while @x < 10
 begin
 declare @digitoValidador int = convert(int, substring(@codes, @x + 1, 1))
 declare @digito int = convert(int, substring(@cuit_nro, @x + 1, 1))
 declare @digitoValidacion int = @digitoValidador * @digito
 set @resultado = @resultado + @digitoValidacion
 set @x = @x + 1
 end

 set @resultado = @resultado % 11

 If @resultado = @verificador
 begin
 set @validacion = 1
 end
 else
 begin
 set @validacion = 0
 End
end
else
begin
 set @validacion = 0
end 

end

GO

Depends On

No items found