dbo.Imperium_KPIs_detail

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

6
Name Data Type Length Description
@action varchar 30
@p_desde int 4
@p_hasta int 4
@lista_comp varchar 50
@p_user_id int 4
@p_cliente int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*

exec Imperium_KPIs_detail 'verificados',20200606,20200628,null,61501872,null

*/

-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_KPIs_detail 
 -- Add the parameters for the stored procedure here
 @action         varchar(30),
 @p_desde         int,
 @p_hasta         int,
 @lista_comp         varchar(50),
 @p_user_id         int,
 @p_cliente         int
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 DECLARE @fecha_desde DATETIME = DATETIMEFROMPARTS(CONVERT(INT,(@p_desde/10000)),
         CONVERT(INT, SUBSTRING(CONVERT(VARCHAR, @p_desde),5,2)),
         CONVERT(INT, SUBSTRING(CONVERT(VARCHAR, @p_desde),7,2)), 0, 0, 0, 0)

 DECLARE @fecha_hasta DATETIME = DATETIMEFROMPARTS(CONVERT(INT,(@p_hasta/10000)),
         CONVERT(INT, SUBSTRING(CONVERT(VARCHAR, @p_hasta),5,2)),
         CONVERT(INT, SUBSTRING(CONVERT(VARCHAR, @p_hasta),7,2)),23,59,59,998)



 IF (@action = 'Ingresados') BEGIN

  IF (@lista_comp IS NULL)

   select led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion,
     CASE 
      WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
      WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
      WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
     END AS nombre_seccion,
     led_complejidad_doc.codigo_complejidad, 
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
     led_complejidad_doc.descripcion_complejidad,
     COUNT(*) AS total_docs
   from led_docs 
   inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
   left outer join led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
   where led_docs.ingresado BETWEEN @fecha_desde AND @fecha_hasta
   and led_docs.doc_id_lista IS NULL
   and led_docs.estado_doc IN ('I','R','V')
   and led_docs.replicated_doc_id IS NULL
   group by led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
     led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
   ORDER BY led_tipos_doc.nombre_tipo_doc

  ELSE

   select led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion,
     CASE 
      WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
      WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
      WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
     END AS nombre_seccion,
     led_complejidad_doc.codigo_complejidad, 
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
     led_complejidad_doc.descripcion_complejidad,
     COUNT(*) AS total_docs
   from led_docs 
   inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
   INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
       ON led_tipos_doc.complejidad =  complej.Item
   left outer join led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
   where led_docs.ingresado BETWEEN @fecha_desde AND @fecha_hasta
   and led_docs.doc_id_lista IS NULL
   and led_docs.estado_doc IN ('I','R','V')
   and led_docs.replicated_doc_id IS NULL
   group by led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
     led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
   ORDER BY led_tipos_doc.nombre_tipo_doc

 END ELSE
 
  IF (@action = 'Procesados') BEGIN

   IF (@lista_comp IS NULL)

    SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
     CASE 
      WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
      WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
      WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
     END AS nombre_seccion,
     led_complejidad_doc.codigo_complejidad, 
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,     
     led_complejidad_doc.descripcion_complejidad,
     COUNT(*) AS total_docs
    FROM led_tipos_doc 
    
    INNER JOIN
     (select led_docs.doc_id, led_docs.tipo_doc,
     CASE
      when led_docs.estado_doc = 'V' then verificado
      when led_docs.estado_doc = 'R' then rechazado
     END AS fecha_procesado
     from led_docs 
     where led_docs.doc_id_lista IS NULL
     and led_docs.estado_doc IN ('V','R')
     and led_docs.replicated_doc_id IS NULL
  
     UNION ALL

     select led_docs.doc_id, led_docs.tipo_doc,
      led_notificaciones.horario as fecha_procesado
     from led_docs inner join led_notificaciones on
      led_docs.notificacion = led_notificaciones.notificacion
     where led_docs.doc_id_lista IS NULL
     and led_docs.estado_doc = 'I'
     and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc

    LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
    WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
    GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
     led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
    ORDER BY led_tipos_doc.nombre_tipo_doc

   ELSE

    SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
     CASE 
      WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
      WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
      WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
     END AS nombre_seccion,
     led_complejidad_doc.codigo_complejidad, 
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
     iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
     led_complejidad_doc.descripcion_complejidad,
     COUNT(*) AS total_docs
    FROM led_tipos_doc 
    
    INNER JOIN
     (select led_docs.doc_id, led_docs.tipo_doc,
     CASE
      when led_docs.estado_doc = 'V' then verificado
      when led_docs.estado_doc = 'R' then rechazado
     END AS fecha_procesado
     from led_docs 
     where led_docs.doc_id_lista IS NULL
     and led_docs.estado_doc IN ('V','R')
     and led_docs.replicated_doc_id IS NULL
  
     UNION ALL

     select led_docs.doc_id, led_docs.tipo_doc,
      led_notificaciones.horario as fecha_procesado
     from led_docs inner join led_notificaciones on
      led_docs.notificacion = led_notificaciones.notificacion
     where led_docs.doc_id_lista IS NULL
     and led_docs.estado_doc = 'I'
     and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc

    INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
       ON led_tipos_doc.complejidad =  complej.Item
    LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
    WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
    GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
     led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
    ORDER BY led_tipos_doc.nombre_tipo_doc

  END ELSE

   IF (@action = 'Verificados') BEGIN 

    IF (@lista_comp IS NULL)

     select led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       CASE 
        WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
        WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
        WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
       END AS nombre_seccion,
       led_complejidad_doc.codigo_complejidad, 
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
       led_complejidad_doc.descripcion_complejidad,
       COUNT(*) AS total_docs
     from led_docs 
     inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
     left outer join led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
     where led_docs.verificado BETWEEN @fecha_desde AND @fecha_hasta
     and led_docs.doc_id_lista IS NULL
     and led_docs.estado_doc ='V'
     and led_docs.replicated_doc_id IS NULL
     group by led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
     ORDER BY led_tipos_doc.nombre_tipo_doc

    ELSE

     select led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       CASE 
        WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
        WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
        WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
       END AS nombre_seccion,
       led_complejidad_doc.codigo_complejidad, 
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
       led_complejidad_doc.descripcion_complejidad,
       COUNT(*) AS total_docs
     from led_docs 
     inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
     INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
         ON led_tipos_doc.complejidad =  complej.Item
     left outer join led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
     where led_docs.verificado BETWEEN @fecha_desde AND @fecha_hasta
     and led_docs.doc_id_lista IS NULL
     and led_docs.estado_doc ='V'
     and led_docs.replicated_doc_id IS NULL
     group by led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
     ORDER BY led_tipos_doc.nombre_tipo_doc
   

   END ELSE

    IF (@action = 'Rechazados_parciales') BEGIN

     IF (@lista_comp IS NULL)

      SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       CASE 
        WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
        WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
        WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
       END AS nombre_seccion,
       led_complejidad_doc.codigo_complejidad, 
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
       led_complejidad_doc.descripcion_complejidad,
       COUNT(*) AS total_docs
      FROM led_tipos_doc 
    
      INNER JOIN
       (select led_docs.doc_id, led_docs.tipo_doc,
        led_docs.rechazado AS fecha_procesado
       from led_docs 
       where led_docs.doc_id_lista IS NULL
       and led_docs.estado_doc = 'R'
       and led_docs.replicated_doc_id IS NULL
  
       UNION ALL

       select led_docs.doc_id, led_docs.tipo_doc,
        led_notificaciones.horario as fecha_procesado
       from led_docs inner join led_notificaciones on
        led_docs.notificacion = led_notificaciones.notificacion
       where led_docs.doc_id_lista IS NULL
       and led_docs.estado_doc = 'I'
       and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc

      LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
      WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
      GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
      ORDER BY led_tipos_doc.nombre_tipo_doc

     ELSE

      SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       CASE 
        WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
        WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
        WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
       END AS nombre_seccion,
       led_complejidad_doc.codigo_complejidad, 
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
       iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
       led_complejidad_doc.descripcion_complejidad,
       COUNT(*) AS total_docs
      FROM led_tipos_doc 
    
      INNER JOIN
       (select led_docs.doc_id, led_docs.tipo_doc,
        led_docs.rechazado AS fecha_procesado
       from led_docs 
       where led_docs.doc_id_lista IS NULL
       and led_docs.estado_doc = 'R'
       and led_docs.replicated_doc_id IS NULL
  
       UNION ALL

       select led_docs.doc_id, led_docs.tipo_doc,
        led_notificaciones.horario as fecha_procesado
       from led_docs inner join led_notificaciones on
        led_docs.notificacion = led_notificaciones.notificacion
       where led_docs.doc_id_lista IS NULL
       and led_docs.estado_doc = 'I'
       and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc

      INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
          ON led_tipos_doc.complejidad =  complej.Item
      LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
      WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
      GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
       led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad
      ORDER BY led_tipos_doc.nombre_tipo_doc


    END ELSE

     IF (@action = 'Procesados_usuario') BEGIN

      IF (@lista_comp IS NULL)

       SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        CASE 
         WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
         WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
         WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
        END AS nombre_seccion,
        led_complejidad_doc.codigo_complejidad, 
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,        
        led_complejidad_doc.descripcion_complejidad,
        users.first_name, users.last_name,
        COUNT(*) AS total_docs
       FROM led_tipos_doc 
       INNER JOIN
        (select led_docs.doc_id, led_docs.tipo_doc,
        CASE
         when led_docs.estado_doc = 'V' then verificado
         when led_docs.estado_doc = 'R' then rechazado
        END AS fecha_procesado,
        CASE
         when led_docs.estado_doc = 'V' then verificado_por
         when led_docs.estado_doc = 'R' then rechazado_por
        END AS usuario

        from led_docs 
        where led_docs.doc_id_lista IS NULL
        and led_docs.estado_doc IN ('V','R')
        and led_docs.replicated_doc_id IS NULL  

        UNION ALL

        select led_docs.doc_id, led_docs.tipo_doc,
        led_notificaciones.horario as fecha_procesado,
        led_notificaciones.usuario_de as usuario
        from led_docs inner join led_notificaciones on
         led_docs.notificacion = led_notificaciones.notificacion
        where led_docs.doc_id_lista IS NULL
        and led_docs.estado_doc = 'I'
        and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc
       INNER JOIN users ON docs.usuario = users.user_id
       LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
       WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
       AND docs.usuario = @p_user_id
       GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad,
        users.first_name, users.last_name
       ORDER BY led_tipos_doc.nombre_tipo_doc

      ELSE

       SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        CASE 
         WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
         WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
         WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
        END AS nombre_seccion,
        led_complejidad_doc.codigo_complejidad, 
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
        led_complejidad_doc.descripcion_complejidad,
        users.first_name, users.last_name,
        COUNT(*) AS total_docs
       FROM led_tipos_doc 
       INNER JOIN
        (select led_docs.doc_id, led_docs.tipo_doc,
        CASE
         when led_docs.estado_doc = 'V' then verificado
         when led_docs.estado_doc = 'R' then rechazado
        END AS fecha_procesado,
        CASE
         when led_docs.estado_doc = 'V' then verificado_por
         when led_docs.estado_doc = 'R' then rechazado_por
        END AS usuario

        from led_docs 
        where led_docs.doc_id_lista IS NULL
        and led_docs.estado_doc IN ('V','R')
        and led_docs.replicated_doc_id IS NULL  

        UNION ALL

        select led_docs.doc_id, led_docs.tipo_doc,
        led_notificaciones.horario as fecha_procesado,
        led_notificaciones.usuario_de as usuario
        from led_docs inner join led_notificaciones on
         led_docs.notificacion = led_notificaciones.notificacion
        where led_docs.doc_id_lista IS NULL
        and led_docs.estado_doc = 'I'
        and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc
       INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
           ON led_tipos_doc.complejidad =  complej.Item
       INNER JOIN users ON docs.usuario = users.user_id
       LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
       WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
       AND docs.usuario = @p_user_id
       GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad,
        users.first_name, users.last_name
       ORDER BY led_tipos_doc.nombre_tipo_doc

     END ELSE

      IF (@action = 'Ingresados_cliente') BEGIN
       
       IF (@lista_comp IS NULL)
      
        select led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        CASE 
         WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
         WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
         WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
        END AS nombre_seccion,
        led_complejidad_doc.codigo_complejidad, 
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
        led_complejidad_doc.descripcion_complejidad, 
        led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_docs
        from led_docs inner join clientes on led_docs.cliente = clientes.cliente
        inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
        LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
        where led_docs.ingresado BETWEEN @fecha_desde AND @fecha_hasta
        and led_docs.cliente = @p_cliente
        and led_docs.doc_id_lista IS NULL
        and led_docs.estado_doc IN ('I','R','V')
        and led_docs.replicated_doc_id IS NULL
        group by led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad, 
        led_docs.cliente, clientes.nombre_cliente
        ORDER BY led_tipos_doc.nombre_tipo_doc
       
       ELSE

        select led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        CASE 
         WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
         WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
         WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
        END AS nombre_seccion,
        led_complejidad_doc.codigo_complejidad, 
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
        iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
        led_complejidad_doc.descripcion_complejidad, 
        led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_docs
        from led_docs inner join clientes on led_docs.cliente = clientes.cliente
        inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
        INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
          ON led_tipos_doc.complejidad =  complej.Item
        LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
        where led_docs.ingresado BETWEEN @fecha_desde AND @fecha_hasta
        and led_docs.cliente = @p_cliente
        and led_docs.doc_id_lista IS NULL
        and led_docs.estado_doc IN ('I','R','V')
        and led_docs.replicated_doc_id IS NULL
        group by led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
        led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad, 
        led_docs.cliente, clientes.nombre_cliente
        ORDER BY led_tipos_doc.nombre_tipo_doc

      END ELSE

       IF (@action = 'Procesados_cliente') BEGIN

        IF (@lista_comp IS NULL)

         SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
         CASE 
          WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
          WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
          WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
         END AS nombre_seccion,
          led_complejidad_doc.codigo_complejidad, 
          iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
          iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
          iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
          led_complejidad_doc.descripcion_complejidad,
          clientes.nombre_cliente, COUNT(*) AS total_docs
         FROM led_tipos_doc 
         INNER JOIN
          (select led_docs.doc_id, led_docs.cliente, led_docs.tipo_doc,
          CASE
           when led_docs.estado_doc = 'V' then verificado
           when led_docs.estado_doc = 'R' then rechazado
          END AS fecha_procesado
          from led_docs 
          where led_docs.doc_id_lista IS NULL
          and led_docs.estado_doc IN ('V','R')
          and led_docs.replicated_doc_id IS NULL

          UNION ALL

          select led_docs.doc_id, led_docs.cliente, led_docs.tipo_doc,
            led_notificaciones.horario as fecha_procesado
          from led_docs inner join led_notificaciones on
           led_docs.notificacion = led_notificaciones.notificacion
          where led_docs.doc_id_lista IS NULL
          and led_docs.estado_doc = 'I'
          and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc
         INNER JOIN clientes ON docs.cliente = clientes.cliente
         LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
         WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
         AND docs.cliente = @p_cliente
         GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
          led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad,
          clientes.nombre_cliente
         ORDER BY led_tipos_doc.nombre_tipo_doc

        ELSE

         SELECT led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
          CASE 
           WHEN led_tipos_doc.led_seccion='C' THEN 'Empresa' 
           WHEN led_tipos_doc.led_seccion='E' THEN 'Empleados'
           WHEN led_tipos_doc.led_seccion='V' THEN 'Vehículos'
          END AS nombre_seccion,
          led_complejidad_doc.codigo_complejidad, 
          iif(LEN(led_complejidad_doc.codigo_complejidad)=3, LEFT(led_complejidad_doc.codigo_complejidad,1),NULL) as complejidad,
          iif(LEN(led_complejidad_doc.codigo_complejidad)=3, SUBSTRING(led_complejidad_doc.codigo_complejidad,2,1),NULL) as tiempo,
          iif(LEN(led_complejidad_doc.codigo_complejidad)=3, RIGHT(led_complejidad_doc.codigo_complejidad,1),NULL) as verificacion,
          led_complejidad_doc.descripcion_complejidad,
          clientes.nombre_cliente, COUNT(*) AS total_docs
         FROM led_tipos_doc 
         INNER JOIN
          (select led_docs.doc_id, led_docs.cliente, led_docs.tipo_doc,
          CASE
           when led_docs.estado_doc = 'V' then verificado
           when led_docs.estado_doc = 'R' then rechazado
          END AS fecha_procesado
          from led_docs 
          where led_docs.doc_id_lista IS NULL
          and led_docs.estado_doc IN ('V','R')
          and led_docs.replicated_doc_id IS NULL

          UNION ALL

          select led_docs.doc_id, led_docs.cliente, led_docs.tipo_doc,
            led_notificaciones.horario as fecha_procesado
          from led_docs inner join led_notificaciones on
           led_docs.notificacion = led_notificaciones.notificacion
          where led_docs.doc_id_lista IS NULL
          and led_docs.estado_doc = 'I'
          and led_docs.aprobacion_parcial = 1) docs ON led_tipos_doc.tipo_doc = docs.tipo_doc
         INNER JOIN clientes ON docs.cliente = clientes.cliente
         INNER JOIN DelimitedSplit8K(@lista_comp, ',') AS complej
            ON led_tipos_doc.complejidad =  complej.Item
         LEFT OUTER JOIN led_complejidad_doc on led_tipos_doc.complejidad = led_complejidad_doc.complejidad
         WHERE docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
         AND docs.cliente = @p_cliente
         GROUP BY led_tipos_doc.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.complejidad, led_tipos_doc.led_seccion, 
          led_complejidad_doc.codigo_complejidad, led_complejidad_doc.descripcion_complejidad,
          clientes.nombre_cliente
         ORDER BY led_tipos_doc.nombre_tipo_doc


       END




 
END

GO

Used By

No items found