dbo.sp_posiciones_fijas_asigna_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

/*

exec sp_posiciones_fijas_asigna_cuit

*/

CREATE OR ALTER PROCEDURE  dbo.sp_posiciones_fijas_asigna_cuit
AS

BEGIN
 SET NOCOUNT ON;

DECLARE @ERRORNUMBER int

DECLARE @idreg INT,@dni varchar(8),@denominacion varchar(150),@dniOrig varchar(8),@CUIT VARCHAR(11)
DECLARE @W_Nombre VARCHAR(70)
DECLARE @W_NroDoc VARCHAR(12)
DECLARE @nombre_contains varchar(8000)

 begin
  DECLARE registrosAprocesar Cursor
  FOR
  
  select top 3000 idreg,dni,denominacion from posiciones_fijas where procesado_cuit =0 and nombre_cliente='WORLDSYS14082018'

  /*
    and len(ltrim(rtrim(dni)))<8
    */

  Open registrosAprocesar


  Fetch NEXT FROM registrosAprocesar INTO @idreg,@dni,@denominacion

  While (@@FETCH_STATUS = 0)
  BEGIN
   
   set @dniOrig = @dni
   --set @dni = iif(len(ltrim(rtrim(@dni)))<8,'00000000' + @dni,@dni)
   --set @dni = CONVERT(varchar(8),right(@dni,8))
   set @dni= RIGHT('00000000'+CAST(@dni AS VARCHAR(8)),8)
   SET @W_Nombre = @denominacion
   SET @W_NroDoc = @dni
   SET @nombre_contains = @denominacion
   --select @dniOrig as dnioriginal,@dni as dni
   --select * from posiciones_fijas
   /*
    EXEC  @CUIT = sp_buscar_cuit @W_Nombre,@W_NroDoc,@nombre_contains
    */


   declare @cantidad int = 0
   declare @W_Nombre1 VARCHAR(70)
   declare @W_Cuit1   VARCHAR(12)
   declare @iguales   BIT
   declare @encontro  BIT
   declare @resultado BIT 

   set @encontro = 0

   if(@W_NroDoc is not null and @W_NroDoc != '')
   begin
   --set @W_NroDoc = right('00000000'+@W_NroDoc,8);

   set @cantidad = (SELECT COUNT(*)
      from padrones 
     where cuerpo_clave = @W_Nrodoc
     and habilitado = 1
     and identificador  in( select identificador from identificadores where identificadores.country_code = 'AR')) 
     
   if (@cantidad = 0) 
   begin
    select @CUIT = null
   end 

   if (@cantidad = 1) 
   begin
      SELECT @CUIT = identificacion 
       from padrones 
      where cuerpo_clave = @W_Nrodoc
      and habilitado = 1
     and identificador  in( select identificador from identificadores where identificadores.country_code = 'AR')
    set @encontro = 1
   end 

   
   set @nombre_contains= '"' + @nombre_contains + '"' 
   
   if (@cantidad > 1 and @nombre_contains is not null) 
    begin
    set @encontro = (select count(*) from padrones where cuerpo_clave = @W_Nrodoc and contains(nombre_persona,@nombre_contains))
    if(@encontro = 1)
    begin
    select @CUIT = identificacion from padrones where cuerpo_clave = @W_Nrodoc and contains(nombre_persona,@nombre_contains)
    end
    if(@encontro = 0)
    begin
     select @CUIT = null
    end
    if(@encontro > 1)
    begin
     select @CUIT = null

    end
    
    if (@encontro = 0)
    begin
     select @CUIT = null
    end 
   end 
   end
   else
   begin
    if (@nombre_contains is not null) 
    begin
    set @encontro = (select count(*) from padrones where contains(nombre_persona,@nombre_contains))
     if(@encontro = 1)
     begin
     select @CUIT = identificacion from padrones where contains(nombre_persona,@nombre_contains)
     end
     if(@encontro = 0)
     begin
      select @CUIT = null
     end
     if(@encontro > 1)
     begin
      select @CUIT = null

     end
    end 
   end  


/*
select @CUIT as jjjjj,@encontro as enc
*/


   if(@encontro = 1)
   begin
    UPDATE posiciones_fijas SET cuit_asignado=@CUIT,procesado_cuit=1 where idreg= @idreg
   end
  Fetch NEXT FROM registrosAprocesar INTO @idreg,@dni,@denominacion

  END

  CLOSE registrosAprocesar
  DEALLOCATE registrosAprocesar


end

declare @aAfip int=0

select @aAfip = count(*) from posiciones_fijas where nombre_cliente='WORLDSYS14082018' and procesado_cuit=0

select @aAfip

/* SI NO HAY MAS DNI PARA ASIGNAR CUIT LOS MANDO PARA PASAR POR AFIP */
if (@aAfip=321)
BEGIN
 exec sp_posiciones_fijas_cuit_a_afip
END

END

GO

Used By

No items found