Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
7| Name | Data Type | Length | Description |
|---|---|---|---|
| @action | varchar | 30 | |
| @agrupacion | varchar | 10 | |
| @mes_desde | int | 4 | |
| @mes_hasta | int | 4 | |
| @fecha_desde | datetime | 8 | |
| @fecha_hasta | datetime | 8 | |
| @lista_comp | varchar | 50 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_KPIs
-- Add the parameters for the stored procedure here
@action varchar(30),
@agrupacion varchar(10),
@mes_desde int,
@mes_hasta int,
@fecha_desde datetime,
@fecha_hasta datetime,
@lista_comp varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @fh DATETIME
SET @agrupacion = LTRIM(RTRIM(UPPER(@agrupacion)))
DECLARE @t1start datetime = DATETIMEFROMPARTS(YEAR(GETDATE()),MONTH(GETDATE()),1,0,0,0,0)
DECLARE @t1end datetime = DATEADD(SECOND,-1,DATEADD(DAY,1,CONVERT(DATETIME,EOMONTH(GETDATE()))))
IF (@agrupacion = 'ULTIMO_MES') BEGIN
SET @fecha_desde = @t1start
SET @fecha_hasta = @t1end
END
--select @t1start,@t1end
-- Insert statements for procedure here
IF (@agrupacion = 'ANUAL') BEGIN
/*SET @fecha_desde = DATETIMEFROMPARTS(YEAR(DATEADD(MONTH,-11,GETDATE())),MONTH(DATEADD(MONTH,-11,GETDATE())),1,0,0,0,0)
SET @fecha_hasta = DATEADD(SECOND,-1,DATEADD(DAY,1,CONVERT(DATETIME,EOMONTH(GETDATE()))))*/
SET @fecha_desde = DATETIMEFROMPARTS(YEAR(DATEADD(MONTH,-12,GETDATE())),MONTH(DATEADD(MONTH,-12,GETDATE())),1,0,0,0,0)
SET @fecha_hasta = DATEADD(SECOND,-1,DATEADD(DAY,1,CONVERT(DATETIME,EOMONTH( DATEADD(MONTH,-1,GETDATE()) ))))
END ELSE BEGIN
IF (@agrupacion = 'MENSUAL') BEGIN
SET @fecha_desde = DATETIMEFROMPARTS(CONVERT(INT,@mes_desde/100),@mes_desde-CONVERT(INT,@mes_desde/100)*100,1,0,0,0,0)
SET @fh = DATETIMEFROMPARTS(CONVERT(INT,@mes_hasta/100),@mes_hasta-CONVERT(INT,@mes_hasta/100)*100,1,23,59,59,0)
SET @fecha_hasta = DATEADD(SECOND,-1,DATEADD(DAY,1, CONVERT(DATETIME,EOMONTH(@fh))))
END
END
IF (@fecha_desde != '' AND @fecha_hasta != '') BEGIN
IF (@fecha_desde < @fecha_hasta) BEGIN
--SELECT @fecha_desde, @fecha_hasta
IF (@action = 'Ingresados') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm, COUNT(*) AS total_ingresados
from led_docs
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 Year(led_docs.ingresado), Month(led_docs.ingresado)
ORDER BY Year(led_docs.ingresado), Month(led_docs.ingresado)
ELSE
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm, COUNT(*) AS total_ingresados
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
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 Year(led_docs.ingresado), Month(led_docs.ingresado)
ORDER BY Year(led_docs.ingresado), Month(led_docs.ingresado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_ingresados
from led_docs
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
ELSE
select COUNT(*) AS total_ingresados
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
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
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_ingresados
FROM
(select CONVERT(INT, (DAY(ingresado)-1)/10) AS fraccion, COUNT(*) AS total_ingresados
from led_docs
where led_docs.ingresado between @t1start AND @t1end
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 CONVERT(INT, (DAY(led_docs.ingresado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_ingresados
FROM
(select CONVERT(INT, (DAY(ingresado)-1)/10) AS fraccion, COUNT(*) AS total_ingresados
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
where led_docs.ingresado between @t1start AND @t1end
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 CONVERT(INT, (DAY(led_docs.ingresado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Procesados') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
ELSE
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id,
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_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
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Verificados') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(led_docs.verificado) AS yyyy, Month(led_docs.verificado) AS mm, COUNT(*) AS total_verificados
from led_docs
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 Year(led_docs.verificado), Month(led_docs.verificado)
ORDER BY Year(led_docs.verificado), Month(led_docs.verificado)
ELSE
select Year(led_docs.verificado) AS yyyy, Month(led_docs.verificado) AS mm, COUNT(*) AS total_verificados
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
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 Year(led_docs.verificado), Month(led_docs.verificado)
ORDER BY Year(led_docs.verificado), Month(led_docs.verificado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_verificados
from led_docs
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
ELSE
select COUNT(*) AS total_verificados
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
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
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_verificados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_verificados
FROM
(select CONVERT(INT, (DAY(verificado)-1)/10) AS fraccion, COUNT(*) AS total_verificados
from led_docs
where led_docs.verificado between @t1start AND @t1end
and led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'V'
and led_docs.replicated_doc_id IS NULL
group by CONVERT(INT, (DAY(verificado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_verificados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_verificados
FROM
(select CONVERT(INT, (DAY(verificado)-1)/10) AS fraccion, COUNT(*) AS total_verificados
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
where led_docs.verificado between @t1start AND @t1end
and led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'V'
and led_docs.replicated_doc_id IS NULL
group by CONVERT(INT, (DAY(verificado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Rechazados_parciales') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, 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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.rechazado AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id, 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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
ELSE
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.rechazado AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id, 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_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
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id, led_docs.rechazado as fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Procesados_usuario') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, docs.usuario,
users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.usuario, users.first_name, users.last_name
ORDER BY users.first_name, users.last_name, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, docs.usuario,
users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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
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
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_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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.usuario, users.first_name, users.last_name
ORDER BY users.first_name, users.last_name, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select docs.usuario, users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.usuario, users.first_name, users.last_name
ORDER BY count(*) desc, users.first_name, users.last_name
ELSE
select docs.usuario, users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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
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
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_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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.usuario, users.first_name, users.last_name
ORDER BY count(*) desc, users.first_name, users.last_name
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango,
TOTALES.usuario, TOTALES.first_name, TOTALES.last_name,
SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.usuario, CANT.first_name, CANT.last_name,
CANT.total_procesados
FROM
(SELECT CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.usuario, procesados.first_name, procesados.last_name,
COUNT(*) AS total_procesados
FROM
(SELECT docs.usuario, users.first_name, users.last_name, docs.fecha_procesado
from
(select doc_id,
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.verificado between @t1start AND @t1end) OR (led_docs.rechazado between @t1start AND @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.doc_id, 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_notificaciones.horario between @t1start AND @t1end
and led_docs.aprobacion_parcial = 1) docs
INNER JOIN users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
WHERE docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
GROUP BY procesados.usuario, procesados.first_name, procesados.last_name,
CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.usuario, TOTALES.first_name, TOTALES.last_name
ORDER BY TOTALES.first_name, TOTALES.last_name, TOTALES.rango
ELSE
SELECT TOTALES.rango,
TOTALES.usuario, TOTALES.first_name, TOTALES.last_name,
SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.usuario, CANT.first_name, CANT.last_name,
CANT.total_procesados
FROM
(SELECT CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.usuario, procesados.first_name, procesados.last_name,
COUNT(*) AS total_procesados
FROM
(SELECT docs.usuario, users.first_name, users.last_name, docs.fecha_procesado
from
(select doc_id,
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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc IN ('V','R')
and ( (led_docs.verificado between @t1start AND @t1end) OR (led_docs.rechazado between @t1start AND @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.doc_id, 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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_notificaciones.horario between @t1start AND @t1end
and led_docs.aprobacion_parcial = 1) docs
INNER JOIN users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
WHERE docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
GROUP BY procesados.usuario, procesados.first_name, procesados.last_name,
CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.usuario, TOTALES.first_name, TOTALES.last_name
ORDER BY TOTALES.first_name, TOTALES.last_name, TOTALES.rango
END
END ELSE
IF (@action = 'Ingresados_cliente') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm,
led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
from led_docs inner join clientes on led_docs.cliente = clientes.cliente
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 Year(led_docs.ingresado), Month(led_docs.ingresado), led_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(led_docs.ingresado), Month(led_docs.ingresado)
ELSE
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm,
led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
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
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 Year(led_docs.ingresado), Month(led_docs.ingresado), led_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(led_docs.ingresado), Month(led_docs.ingresado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
from led_docs inner join clientes on led_docs.cliente = clientes.cliente
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_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
ELSE
select led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
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
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_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente,
CANT.total_ingresados
FROM
(SELECT CONVERT(INT, (DAY(ingresados.ingresado)-1)/10) AS fraccion,
ingresados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_ingresados
FROM
(select led_docs.cliente, led_docs.ingresado
from led_docs
where led_docs.ingresado BETWEEN @t1start AND @t1end
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) ingresados
inner join clientes on ingresados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(ingresados.ingresado)-1)/10),
ingresados.cliente, clientes.nombre_cliente) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
ELSE
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente,
CANT.total_ingresados
FROM
(SELECT CONVERT(INT, (DAY(ingresados.ingresado)-1)/10) AS fraccion,
ingresados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_ingresados
FROM
(select led_docs.cliente, led_docs.ingresado
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
where led_docs.ingresado BETWEEN @t1start AND @t1end
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) ingresados
inner join clientes on ingresados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(ingresados.ingresado)-1)/10),
ingresados.cliente, clientes.nombre_cliente) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
END
END ELSE
IF (@action = 'Procesados_cliente') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm,
docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
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_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
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm,
docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
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_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
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
ELSE
select docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_procesados) AS total_documentos
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente, CANT.total_procesados
FROM (
select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_procesados
from
(select cliente,
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.verificado between @t1start and @t1end) OR (led_docs.rechazado between @t1start and @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.cliente, 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_notificaciones.horario between @t1start and @t1end
and led_docs.aprobacion_parcial = 1) procesados
inner join clientes on procesados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10),
procesados.cliente, clientes.nombre_cliente ) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
ELSE
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_procesados) AS total_documentos
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente, CANT.total_procesados
FROM (
select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_procesados
from
(select cliente,
CASE when led_docs.estado_doc = 'V' then verificado when led_docs.estado_doc = 'R' then rechazado END AS fecha_procesado
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc IN ('V','R')
and ( (led_docs.verificado between @t1start and @t1end) OR (led_docs.rechazado between @t1start and @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.cliente, led_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_notificaciones.horario between @t1start and @t1end
and led_docs.aprobacion_parcial = 1) procesados
inner join clientes on procesados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10),
procesados.cliente, clientes.nombre_cliente ) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
END
END ELSE
IF (@action = 'Notificaciones_recibidas') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
select Year(led_notificaciones.horario) AS yyyy, Month(led_notificaciones.horario) AS mm, led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE '%2A'
group by Year(led_notificaciones.horario), Month(led_notificaciones.horario), led_notificaciones.leido
order by led_notificaciones.leido, Year(led_notificaciones.horario), Month(led_notificaciones.horario)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
select led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE '%2A'
group by led_notificaciones.leido
order by led_notificaciones.leido
END ELSE BEGIN
SELECT TOTALES.rango, TOTALES.leido,
SUM(TOTALES.total_notificaciones) AS total_notificaciones
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.leido, CANT.total_notificaciones
FROM (select CONVERT(INT, (DAY(notif.horario)-1)/10) AS fraccion,
notif.leido, COUNT(*) AS total_notificaciones
from
(select led_notificaciones.leido, led_notificaciones.horario
from led_notificaciones
where led_notificaciones.horario BETWEEN @t1start and @t1end
and led_notificaciones.tipo_notificacion LIKE '%2A') notif
group by CONVERT(INT, (DAY(notif.horario)-1)/10), notif.leido) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.leido
ORDER BY TOTALES.leido, TOTALES.rango
END
END ELSE
IF (@action = 'Notificaciones_emitidas') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
select Year(led_notificaciones.horario) AS yyyy, Month(led_notificaciones.horario) AS mm, led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE 'A2%'
group by Year(led_notificaciones.horario), Month(led_notificaciones.horario), led_notificaciones.leido
order by led_notificaciones.leido, Year(led_notificaciones.horario), Month(led_notificaciones.horario)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
select led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE 'A2%'
group by led_notificaciones.leido
order by led_notificaciones.leido
END ELSE BEGIN
SELECT TOTALES.rango, TOTALES.leido,
SUM(TOTALES.total_notificaciones) AS total_notificaciones
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.leido, CANT.total_notificaciones
FROM (select CONVERT(INT, (DAY(notif.horario)-1)/10) AS fraccion,
notif.leido, COUNT(*) AS total_notificaciones
from
(select led_notificaciones.leido, led_notificaciones.horario
from led_notificaciones
where led_notificaciones.horario BETWEEN @t1start and @t1end
and led_notificaciones.tipo_notificacion LIKE 'A2%') notif
group by CONVERT(INT, (DAY(notif.horario)-1)/10), notif.leido) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.leido
ORDER BY TOTALES.leido, TOTALES.rango
END
END
END
END
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_KPIs
-- Add the parameters for the stored procedure here
@action varchar(30),
@agrupacion varchar(10),
@mes_desde int,
@mes_hasta int,
@fecha_desde datetime,
@fecha_hasta datetime,
@lista_comp varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @fh DATETIME
SET @agrupacion = LTRIM(RTRIM(UPPER(@agrupacion)))
DECLARE @t1start datetime = DATETIMEFROMPARTS(YEAR(GETDATE()),MONTH(GETDATE()),1,0,0,0,0)
DECLARE @t1end datetime = DATEADD(SECOND,-1,DATEADD(DAY,1,CONVERT(DATETIME,EOMONTH(GETDATE()))))
IF (@agrupacion = 'ULTIMO_MES') BEGIN
SET @fecha_desde = @t1start
SET @fecha_hasta = @t1end
END
--select @t1start,@t1end
-- Insert statements for procedure here
IF (@agrupacion = 'ANUAL') BEGIN
/*SET @fecha_desde = DATETIMEFROMPARTS(YEAR(DATEADD(MONTH,-11,GETDATE())),MONTH(DATEADD(MONTH,-11,GETDATE())),1,0,0,0,0)
SET @fecha_hasta = DATEADD(SECOND,-1,DATEADD(DAY,1,CONVERT(DATETIME,EOMONTH(GETDATE()))))*/
SET @fecha_desde = DATETIMEFROMPARTS(YEAR(DATEADD(MONTH,-12,GETDATE())),MONTH(DATEADD(MONTH,-12,GETDATE())),1,0,0,0,0)
SET @fecha_hasta = DATEADD(SECOND,-1,DATEADD(DAY,1,CONVERT(DATETIME,EOMONTH( DATEADD(MONTH,-1,GETDATE()) ))))
END ELSE BEGIN
IF (@agrupacion = 'MENSUAL') BEGIN
SET @fecha_desde = DATETIMEFROMPARTS(CONVERT(INT,@mes_desde/100),@mes_desde-CONVERT(INT,@mes_desde/100)*100,1,0,0,0,0)
SET @fh = DATETIMEFROMPARTS(CONVERT(INT,@mes_hasta/100),@mes_hasta-CONVERT(INT,@mes_hasta/100)*100,1,23,59,59,0)
SET @fecha_hasta = DATEADD(SECOND,-1,DATEADD(DAY,1, CONVERT(DATETIME,EOMONTH(@fh))))
END
END
IF (@fecha_desde != '' AND @fecha_hasta != '') BEGIN
IF (@fecha_desde < @fecha_hasta) BEGIN
--SELECT @fecha_desde, @fecha_hasta
IF (@action = 'Ingresados') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm, COUNT(*) AS total_ingresados
from led_docs
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 Year(led_docs.ingresado), Month(led_docs.ingresado)
ORDER BY Year(led_docs.ingresado), Month(led_docs.ingresado)
ELSE
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm, COUNT(*) AS total_ingresados
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
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 Year(led_docs.ingresado), Month(led_docs.ingresado)
ORDER BY Year(led_docs.ingresado), Month(led_docs.ingresado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_ingresados
from led_docs
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
ELSE
select COUNT(*) AS total_ingresados
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
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
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_ingresados
FROM
(select CONVERT(INT, (DAY(ingresado)-1)/10) AS fraccion, COUNT(*) AS total_ingresados
from led_docs
where led_docs.ingresado between @t1start AND @t1end
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 CONVERT(INT, (DAY(led_docs.ingresado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_ingresados
FROM
(select CONVERT(INT, (DAY(ingresado)-1)/10) AS fraccion, COUNT(*) AS total_ingresados
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
where led_docs.ingresado between @t1start AND @t1end
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 CONVERT(INT, (DAY(led_docs.ingresado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Procesados') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
ELSE
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id,
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_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
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Verificados') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(led_docs.verificado) AS yyyy, Month(led_docs.verificado) AS mm, COUNT(*) AS total_verificados
from led_docs
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 Year(led_docs.verificado), Month(led_docs.verificado)
ORDER BY Year(led_docs.verificado), Month(led_docs.verificado)
ELSE
select Year(led_docs.verificado) AS yyyy, Month(led_docs.verificado) AS mm, COUNT(*) AS total_verificados
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
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 Year(led_docs.verificado), Month(led_docs.verificado)
ORDER BY Year(led_docs.verificado), Month(led_docs.verificado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_verificados
from led_docs
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
ELSE
select COUNT(*) AS total_verificados
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
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
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_verificados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_verificados
FROM
(select CONVERT(INT, (DAY(verificado)-1)/10) AS fraccion, COUNT(*) AS total_verificados
from led_docs
where led_docs.verificado between @t1start AND @t1end
and led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'V'
and led_docs.replicated_doc_id IS NULL
group by CONVERT(INT, (DAY(verificado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_verificados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_verificados
FROM
(select CONVERT(INT, (DAY(verificado)-1)/10) AS fraccion, COUNT(*) AS total_verificados
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
where led_docs.verificado between @t1start AND @t1end
and led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'V'
and led_docs.replicated_doc_id IS NULL
group by CONVERT(INT, (DAY(verificado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Rechazados_parciales') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, 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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.rechazado AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ORDER BY Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id, 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_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
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
ELSE
select COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.rechazado AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id, 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_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
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
ELSE
SELECT TOTALES.rango, SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango, CANT.total_procesados
FROM
(select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion, COUNT(*) AS total_procesados
from
(SELECT docs.*
FROM
(select led_docs.doc_id, led_docs.rechazado as fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
where docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango
ORDER BY TOTALES.rango
END
END ELSE
IF (@action = 'Procesados_usuario') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, docs.usuario,
users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.usuario, users.first_name, users.last_name
ORDER BY users.first_name, users.last_name, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm, docs.usuario,
users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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
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
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_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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.usuario, users.first_name, users.last_name
ORDER BY users.first_name, users.last_name, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select docs.usuario, users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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_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
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.usuario, users.first_name, users.last_name
ORDER BY count(*) desc, users.first_name, users.last_name
ELSE
select docs.usuario, users.first_name + ' ' + users.last_name as nombre, COUNT(*) AS total_procesados
from ( select led_docs.doc_id,
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
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
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_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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.usuario, users.first_name, users.last_name
ORDER BY count(*) desc, users.first_name, users.last_name
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango,
TOTALES.usuario, TOTALES.first_name, TOTALES.last_name,
SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.usuario, CANT.first_name, CANT.last_name,
CANT.total_procesados
FROM
(SELECT CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.usuario, procesados.first_name, procesados.last_name,
COUNT(*) AS total_procesados
FROM
(SELECT docs.usuario, users.first_name, users.last_name, docs.fecha_procesado
from
(select doc_id,
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.verificado between @t1start AND @t1end) OR (led_docs.rechazado between @t1start AND @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.doc_id, 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_notificaciones.horario between @t1start AND @t1end
and led_docs.aprobacion_parcial = 1) docs
INNER JOIN users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
WHERE docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
GROUP BY procesados.usuario, procesados.first_name, procesados.last_name,
CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.usuario, TOTALES.first_name, TOTALES.last_name
ORDER BY TOTALES.first_name, TOTALES.last_name, TOTALES.rango
ELSE
SELECT TOTALES.rango,
TOTALES.usuario, TOTALES.first_name, TOTALES.last_name,
SUM(TOTALES.total_procesados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.usuario, CANT.first_name, CANT.last_name,
CANT.total_procesados
FROM
(SELECT CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.usuario, procesados.first_name, procesados.last_name,
COUNT(*) AS total_procesados
FROM
(SELECT docs.usuario, users.first_name, users.last_name, docs.fecha_procesado
from
(select doc_id,
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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc IN ('V','R')
and ( (led_docs.verificado between @t1start AND @t1end) OR (led_docs.rechazado between @t1start AND @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.doc_id, 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
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_notificaciones.horario between @t1start AND @t1end
and led_docs.aprobacion_parcial = 1) docs
INNER JOIN users on docs.usuario = users.user_id
INNER JOIN users_by_group on users.user_id = users_by_group.user_id
INNER JOIN groups ON users_by_group.group_id = groups.group_id AND groups.group_name = 'FIDELITAS'
WHERE docs.fecha_procesado BETWEEN @t1start AND @t1end) procesados
GROUP BY procesados.usuario, procesados.first_name, procesados.last_name,
CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10)) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.usuario, TOTALES.first_name, TOTALES.last_name
ORDER BY TOTALES.first_name, TOTALES.last_name, TOTALES.rango
END
END ELSE
IF (@action = 'Ingresados_cliente') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm,
led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
from led_docs inner join clientes on led_docs.cliente = clientes.cliente
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 Year(led_docs.ingresado), Month(led_docs.ingresado), led_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(led_docs.ingresado), Month(led_docs.ingresado)
ELSE
select Year(led_docs.ingresado) AS yyyy, Month(led_docs.ingresado) AS mm,
led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
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
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 Year(led_docs.ingresado), Month(led_docs.ingresado), led_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(led_docs.ingresado), Month(led_docs.ingresado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
from led_docs inner join clientes on led_docs.cliente = clientes.cliente
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_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
ELSE
select led_docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_ingresados
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
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_docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente,
CANT.total_ingresados
FROM
(SELECT CONVERT(INT, (DAY(ingresados.ingresado)-1)/10) AS fraccion,
ingresados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_ingresados
FROM
(select led_docs.cliente, led_docs.ingresado
from led_docs
where led_docs.ingresado BETWEEN @t1start AND @t1end
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) ingresados
inner join clientes on ingresados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(ingresados.ingresado)-1)/10),
ingresados.cliente, clientes.nombre_cliente) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
ELSE
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_ingresados) AS total_documentos
FROM
(SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente,
CANT.total_ingresados
FROM
(SELECT CONVERT(INT, (DAY(ingresados.ingresado)-1)/10) AS fraccion,
ingresados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_ingresados
FROM
(select led_docs.cliente, led_docs.ingresado
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
where led_docs.ingresado BETWEEN @t1start AND @t1end
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) ingresados
inner join clientes on ingresados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(ingresados.ingresado)-1)/10),
ingresados.cliente, clientes.nombre_cliente) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
END
END ELSE
IF (@action = 'Procesados_cliente') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
IF (@lista_comp IS NULL)
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm,
docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
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_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
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
ELSE
select Year(docs.fecha_procesado) AS yyyy, Month(docs.fecha_procesado) AS mm,
docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by Year(docs.fecha_procesado), Month(docs.fecha_procesado), docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente, Year(docs.fecha_procesado), Month(docs.fecha_procesado)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
IF (@lista_comp IS NULL)
select docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
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_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
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
ELSE
select docs.cliente, clientes.nombre_cliente, COUNT(*) AS total_procesados
from ( select led_docs.doc_id, led_docs.cliente,
CASE
when led_docs.estado_doc = 'V' then verificado
when led_docs.estado_doc = 'R' then rechazado
END AS fecha_procesado
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
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_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_docs.aprobacion_parcial = 1) docs
inner join clientes on docs.cliente = clientes.cliente
where docs.fecha_procesado BETWEEN @fecha_desde AND @fecha_hasta
group by docs.cliente, clientes.nombre_cliente
ORDER BY clientes.nombre_cliente
END ELSE BEGIN
IF (@lista_comp IS NULL)
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_procesados) AS total_documentos
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente, CANT.total_procesados
FROM (
select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_procesados
from
(select cliente,
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.verificado between @t1start and @t1end) OR (led_docs.rechazado between @t1start and @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.cliente, 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_notificaciones.horario between @t1start and @t1end
and led_docs.aprobacion_parcial = 1) procesados
inner join clientes on procesados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10),
procesados.cliente, clientes.nombre_cliente ) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
ELSE
SELECT TOTALES.rango,
TOTALES.cliente, TOTALES.nombre_cliente,
SUM(TOTALES.total_procesados) AS total_documentos
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.cliente, CANT.nombre_cliente, CANT.total_procesados
FROM (
select CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10) AS fraccion,
procesados.cliente, clientes.nombre_cliente,
COUNT(*) AS total_procesados
from
(select cliente,
CASE when led_docs.estado_doc = 'V' then verificado when led_docs.estado_doc = 'R' then rechazado END AS fecha_procesado
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc IN ('V','R')
and ( (led_docs.verificado between @t1start and @t1end) OR (led_docs.rechazado between @t1start and @t1end) )
and led_docs.replicated_doc_id IS NULL
UNION ALL
select led_docs.cliente, led_notificaciones.horario as fecha_procesado
from led_docs inner join led_notificaciones on
led_docs.notificacion = led_notificaciones.notificacion
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
where led_docs.doc_id_lista IS NULL
and led_docs.estado_doc = 'I'
and led_notificaciones.horario between @t1start and @t1end
and led_docs.aprobacion_parcial = 1) procesados
inner join clientes on procesados.cliente = clientes.cliente
group by CONVERT(INT, (DAY(procesados.fecha_procesado)-1)/10),
procesados.cliente, clientes.nombre_cliente ) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.cliente, TOTALES.nombre_cliente
ORDER BY TOTALES.nombre_cliente, TOTALES.rango
END
END ELSE
IF (@action = 'Notificaciones_recibidas') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
select Year(led_notificaciones.horario) AS yyyy, Month(led_notificaciones.horario) AS mm, led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE '%2A'
group by Year(led_notificaciones.horario), Month(led_notificaciones.horario), led_notificaciones.leido
order by led_notificaciones.leido, Year(led_notificaciones.horario), Month(led_notificaciones.horario)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
select led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE '%2A'
group by led_notificaciones.leido
order by led_notificaciones.leido
END ELSE BEGIN
SELECT TOTALES.rango, TOTALES.leido,
SUM(TOTALES.total_notificaciones) AS total_notificaciones
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.leido, CANT.total_notificaciones
FROM (select CONVERT(INT, (DAY(notif.horario)-1)/10) AS fraccion,
notif.leido, COUNT(*) AS total_notificaciones
from
(select led_notificaciones.leido, led_notificaciones.horario
from led_notificaciones
where led_notificaciones.horario BETWEEN @t1start and @t1end
and led_notificaciones.tipo_notificacion LIKE '%2A') notif
group by CONVERT(INT, (DAY(notif.horario)-1)/10), notif.leido) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.leido
ORDER BY TOTALES.leido, TOTALES.rango
END
END ELSE
IF (@action = 'Notificaciones_emitidas') BEGIN
IF(@agrupacion = 'ANUAL' OR @agrupacion = 'MENSUAL') BEGIN
select Year(led_notificaciones.horario) AS yyyy, Month(led_notificaciones.horario) AS mm, led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE 'A2%'
group by Year(led_notificaciones.horario), Month(led_notificaciones.horario), led_notificaciones.leido
order by led_notificaciones.leido, Year(led_notificaciones.horario), Month(led_notificaciones.horario)
END ELSE IF (@agrupacion = 'TOTAL') BEGIN
select led_notificaciones.leido, count(*) AS total_notificaciones
from led_notificaciones
where led_notificaciones.horario BETWEEN @fecha_desde AND @fecha_hasta
and led_notificaciones.tipo_notificacion LIKE 'A2%'
group by led_notificaciones.leido
order by led_notificaciones.leido
END ELSE BEGIN
SELECT TOTALES.rango, TOTALES.leido,
SUM(TOTALES.total_notificaciones) AS total_notificaciones
FROM (
SELECT CASE WHEN CANT.fraccion < 3 THEN CANT.fraccion+1 ELSE CANT.fraccion END AS rango,
CANT.leido, CANT.total_notificaciones
FROM (select CONVERT(INT, (DAY(notif.horario)-1)/10) AS fraccion,
notif.leido, COUNT(*) AS total_notificaciones
from
(select led_notificaciones.leido, led_notificaciones.horario
from led_notificaciones
where led_notificaciones.horario BETWEEN @t1start and @t1end
and led_notificaciones.tipo_notificacion LIKE 'A2%') notif
group by CONVERT(INT, (DAY(notif.horario)-1)/10), notif.leido) CANT ) TOTALES
GROUP BY TOTALES.rango, TOTALES.leido
ORDER BY TOTALES.leido, TOTALES.rango
END
END
END
END
END
GO
Depends On
9Used By
No items found