dbo.monitoreos_cendeu_prueba

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_10_new '2017-07-17'
--select * from monitoreos_resultados where tabla = 'cendeu1'
--delete from monitoreos_resultados where tabla = 'cendeu1'
--select * from monitoreos_resultados where tabla = 'cendeu' and CONVERT(date,fecha) = '2017-07-17'

-- monitoreos_cendeu_prueba '2018-02-05'
CREATE OR ALTER PROCEDURE dbo.monitoreos_cendeu_prueba
@yesterday date = null

AS
BEGIN
    SET NOCOUNT ON;
 
 declare @r_cuit varchar(20)

 declare @yesterday_1 date
 
 declare @carga_cd date
 declare @periodo  char(6)
 declare @dbf_filename varchar(15)

 declare @r_tabla varchar(20),
         @r_id_cendeu int, 
   @r_id_fuente int,
   @r_fec_inf char(6),
         @r_created date, 
   @r_modified date, 
   @r_situacion int,
   @r_dbf_filename varchar(15)

 declare @mostrar char(1)
 
 if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end 

 set @yesterday_1 = @yesterday
 /*  Cuando se quiere desde una fecha anterior hasta hoy, agregar este set: */
 if (@yesterday = '2018-03-07')
 begin 
 set @yesterday_1 = '2018-02-01'
 end
 /* */ 

 -- Buscamos cuál es el último periodo de deuda cargado
 select @carga_cd = created, 
     @periodo  = replace(CONVERT(char(7),fecha_informacion),'-',''),
     @dbf_filename = observaciones
 from fuentes_procesadas 
 where fuente = 'cendeu'  
 and visible = 1 
 and fecha_informacion = (select MAX(fecha_informacion)
 from fuentes_procesadas 
 where fuente = 'cendeu' and visible = 1)

 DECLARE bn CURSOR

  FOR
   select distinct top 1 cuit 
     from monitoreos 
    where visible = 1 
      and seccion_mantenimiento = 10 
      and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
  OPEN bn 
  Fetch next from bn INTO  @r_cuit

  WHILE (@@FETCH_STATUS <> -1 )
 
  BEGIN 
   DECLARE cendeuc CURSOR
   FOR
    select 'cendeu', id_cendeu
      from cendeu 
     where iden = @r_cuit 
          and vigente = 1
    union all
    select 'cendeu_temp', id_cendeu
      from cendeu_temp
     where iden = @r_cuit 
          and vigente = 1

   OPEN cendeuc 
    FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu
   WHILE (@@FETCH_STATUS <> -1 )
    BEGIN 
     set @mostrar = 'N'
     if (@r_tabla = 'cendeu') 
     begin
     select @r_fec_inf = fec_inf, 
            @r_id_fuente = id_fuente, 
         @r_created   = CONVERT(date,created), 
         @r_modified  = CONVERT(date,modified), 
         @r_situacion = CONVERT(int,situacion), 
         @r_dbf_filename = dbf_filename 
     from cendeu 
     where id_cendeu = @r_id_cendeu
     end 
     else 
     begin
     select @r_fec_inf = fec_inf, 
            @r_id_fuente = id_fuente, 
         @r_created   = CONVERT(date,created), 
         @r_modified  = CONVERT(date,modified), 
         @r_situacion = CONVERT(int,situacion), 
         @r_dbf_filename = dbf_filename 
     from cendeu_temp
     where id_cendeu = @r_id_cendeu
     end 
        if (@r_situacion = 1) continue -- No se muestra en monitoreo Situacion 1

     if (@carga_cd between @yesterday_1 and @yesterday) 
     begin
      -- Se termino de cargar un nuevo cd dentro de los días que buscamos --> busco los registros de ese periodo
      if (@r_fec_inf = @periodo or @r_dbf_filename = @dbf_filename) 
        begin
            -- Es una novedad a mostrar
         set @mostrar = 'S'
        end 

     end 
     
     -- busco los registros modificados esos días
     if (@r_created is not null and @r_created between @yesterday_1 and @yesterday) or 
      (@r_modified is not null and @r_modified between @yesterday_1 and @yesterday) 
      begin
        if (@r_id_fuente = 2) -- lo cargaron a mano 
        begin
            -- Es una novedad a mostrar
         set @mostrar = 'S'
        end 
      end 
      
     if (@mostrar = 'S') 
     begin

     /*
       
      insert into monitoreos_resultados 
         (id_tabla,     tabla,    cuit,    seccion_mantenimiento, fecha,      novedad, tipo_novedad)
      values (@r_id_cendeu, @r_tabla, @r_cuit, 10,                    @yesterday, 1,       'Bancos');
     
      update monitoreos 
         set fecha_ultimo_procesamiento = @yesterday,
         fecha_modificacion = @yesterday
       where cuit= @r_cuit 
         and seccion_mantenimiento = 10
         and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
         and (fecha_desde is null or fecha_desde <= @yesterday)
     
      */

     select @r_id_cendeu as id, 
            @r_tabla as tabla,
         @r_cuit as cuit
     end 
      FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu

    END
   CLOSE cendeuc
   DEALLOCATE cendeuc 

   FETCH next from bn INTO  @r_cuit

  END
  
  CLOSE bn
  DEALLOCATE bn 

END

GO

Used By

No items found