dbo.monitoreos_batch_socios

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@yesterday date 3

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [monitoreos_batch_socios] 
*/

-- select * from productos_secciones where producto = 12
-- seccion 8 = Relaciones
CREATE OR ALTER PROCEDURE dbo.monitoreos_batch_socios
@yesterday date = null

AS
BEGIN
    SET NOCOUNT ON;

 declare @id int, 
         @cuit_new varchar(20), 
   @cuit_old varchar(20),
   @cuit_relacionado_new varchar(20),
   @cuit_relacionado_old varchar(20), 
   @cargo_new varchar(20),
   @cargo_old varchar(20),
   @ultimo_directorio_new varchar(20), 
   @ultimo_directorio_old varchar(20),
   @accion varchar(20), 
   @html varchar(max),
   @cargo varchar(200),
   @empresa varchar(200), 
   @socio varchar(200), 
   @ultimo_directorio varchar(200), 
   @id_padron_new int, 
   @id_padron_old int, 
   @id_padron_relacionado_new int,
   @id_padron_relacionado_old int, 
   @created date 
   

 if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end 
 
 declare @cant1 bigint
 declare @cant2 bigint
 
 declare @r_cuit varchar(20),@r_seccion_mantenimiento int = 8
 DECLARE bn CURSOR FOR
/* select distinct cuit 
from monitoreos 
where visible = 1 
and isnull(seccion_mantenimiento,8) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday) 
*/
 
   select distinct monitoreos.cuit 
   from trazabilidad_id_padron 
   inner join monitoreos on  
              ((isnull(trazabilidad_id_padron.cuit_new,'') = monitoreos.cuit or isnull(trazabilidad_id_padron.cuit_relacionado_new,'') = monitoreos.cuit)
      and monitoreos.visible = 1 
      and isnull(seccion_mantenimiento,8) = 8
      and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
      and (fecha_desde is null or fecha_desde <= @yesterday))

   where convert(date,trazabilidad_id_padron.created) = @yesterday




 OPEN bn 
 Fetch next from bn INTO  @r_cuit 

 WHILE (@@FETCH_STATUS <> -1 )

  BEGIN
   DECLARE mod_socios CURSOR FOR
    select  id_trazabilidad, accion, cuit_new, id_padron_new, cuit_old, id_padron_old,
      cuit_relacionado_new, id_padron_relacionado_new, cuit_relacionado_old, id_padron_relacionado_old, 
      cargo_new, cargo_old, 
      ultimo_directorio_new, ultimo_directorio_old, created 
     from trazabilidad_id_padron 
     where (-- es un alta 
             accion = 'INSERT' or 
          -- o algo cambio
         (isnull(cuit_old,'') != isnull(cuit_new,'') or 
       isnull(cuit_relacionado_old,'') != isnull(cuit_relacionado_new,'') or 
       isnull(cargo_old,'') != isnull(cargo_new,'') or 
       isnull(ultimo_directorio_old,'') != isnull(ultimo_directorio_new,''))) 
     -- para el CUIT que estamos monitoreando
     /*and (isnull(cuit_old,'') = @r_cuit or isnull(cuit_new,'') = @r_cuit or 
           isnull(cuit_relacionado_new,'') = @r_cuit or isnull(cuit_relacionado_old,'') = @r_cuit)*/

     and (isnull(cuit_new,'') = @r_cuit or 
          isnull(cuit_relacionado_new,'') = @r_cuit)
     -- el día que estamos monitoreando 
     and (convert(date,created) = @yesterday and created is not null)
     
     order by created 
   
   OPEN mod_socios 
   FETCH next from mod_socios INTO @id, @accion, 
           @cuit_new, @id_padron_new, 
           @cuit_old, @id_padron_old, 
           @cuit_relacionado_new, @id_padron_relacionado_new, 
           @cuit_relacionado_old, @id_padron_relacionado_old, 
           @cargo_new, @cargo_old, 
           @ultimo_directorio_new, 
           @ultimo_directorio_old,
           @created 

   WHILE (@@FETCH_STATUS <> -1 )
    BEGIN
     set @cargo = ''
     set @empresa = ''
     set @socio = ''
    
     if @cargo_new is not null 
      set @cargo = (select car_nombre from cargos where car_codigo = @cargo_new) 
     if @id_padron_new is not null
      set @empresa = (select nombre_persona from padrones where id_padron = @id_padron_new)
     if @id_padron_relacionado_new is not null 
      set @socio = (select nombre_persona from padrones where id_padron = @id_padron_relacionado_new) 
     set @ultimo_directorio = case @ultimo_directorio_new
            when 'N' then 'NO'
            when 'S' then 'SI'
            else ''
            end 
     set @html = '<td align=left>'+@cuit_new+'</td>'+ 
        '<td align=left>'+@empresa+'</td>'+ 
        '<td align=left>'+@cuit_relacionado_new+'</td>'+ 
        '<td align=left> '+@socio+'</td>'+ 
        '<td align=left>'+@cargo+'</td>'+ 
        '<td align=left>'+@ultimo_directorio+'</td>'
      
     insert into monitoreos_resultados (id_tabla, tabla,cuit,          seccion_mantenimiento, fecha,    novedad, tipo_novedad, html)
            values(@id, 'trazabilidad_id_padron', @r_cuit, 8,            @created, 1,       'Socios',     @html)
     update monitoreos 
       set fecha_ultimo_procesamiento = @yesterday,
        fecha_modificacion = @yesterday
     where cuit = @r_cuit 
       and isnull(seccion_mantenimiento,@r_seccion_mantenimiento) = @r_seccion_mantenimiento
       and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
       and (fecha_desde is null or fecha_desde <= @yesterday)
      
     FETCH next from mod_socios INTO  @id, @accion, 
            @cuit_new, @id_padron_new, 
            @cuit_old, @id_padron_old, 
            @cuit_relacionado_new, @id_padron_relacionado_new, 
            @cuit_relacionado_old, @id_padron_relacionado_old, 
            @cargo_new, @cargo_old, 
            @ultimo_directorio_new, 
               @ultimo_directorio_old,
            @created 
    END
   
    CLOSE mod_socios
    DEALLOCATE mod_socios 
  
    FETCH next from bn INTO  @r_cuit 

  END
  CLOSE bn
  DEALLOCATE bn 
END 

GO

Used By

No items found