dbo.sp_formar_cuit

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.sp_formar_cuit
AS

begin
 declare @dni int 
 declare @resultado int = 0
 declare @cuit_nro varchar(11)
 declare @cuit varchar(11)
 declare @validacion bit
 declare @codes varchar(10) = '6789456789'
 declare @res char(1)
 declare @ok char(1)
 declare @pre char(2)
 declare @tabla table (cuit varchar(11))
 declare @dnis table (dni varchar(8))
 insert into @dnis values ('70054499')


 DECLARE C_padron CURSOR FOR
  /*select documento
     from alberti
    where cuit = ''*/

   select dni from @dnis

 OPEN C_Padron
 FETCH NEXT FROM C_Padron INTO @dni
 WHILE @@fetch_status = 0
 BEGIN 
     set @ok = 'N'
  set @pre = '20'
  while @ok = 'N'
  begin
   set @cuit_nro = @pre + right('00000000'+convert(varchar,@dni),8)
   declare @x int = 0
   set @resultado = 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
   set @res = right('00'+convert(varchar,@resultado),1) 
   set @cuit = @cuit_nro  + @res
   insert into  @tabla values ( @cuit )
   if (@pre = '27') begin set @ok = 'S' end 
   if (@pre = '24') begin set @pre = '27'end
   if (@pre = '23') begin set @pre = '24'end 
   if (@pre = '20') begin set @pre = '23'end  
  end 
  FETCH NEXT FROM C_Padron INTO @dni

 END  
 CLOSE C_Padron
 DEALLOCATE C_Padron
 select * from @tabla
end 
GO

Depends On

No items found

Used By

No items found