Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
6| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_contratista | int | 4 | |
| @cumplimiento | int | 4 | |
| @p_contratistas_subcontratistas | char | 1 | |
| @p_ultimo_mes_anteriores | char | 1 | |
| @p_cual_es_ultimo | int | 4 | |
| @p_cuantos_meses_tomar | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 28/06/2023
-- Description: Calcula Porcentaje de cumplimiento de Imperium:
-- - Se puede pedir de documentos propios del Contratista / de los Subcontratistas o Todo (Completo: contratista y subcontratistas)
-- (@p_contratistas_subcontratistas C o S o T)
-- - Del ultimo mes o de los meses anteriores a ese ultimo que quieren
-- (@p_ultimo_mes_anteriores U o A)
-- - que mes tomamos como ultimo?
-- (@p_cual_es_ultimo) -- 1 = PeriodoVencido
-- 2 = PeriodoMenosDos,
-- etc
-- - cantidad de meses a tomar cuando se pide Anteriores
-- (@p_cuantos_meses_tomar)
-- =============================================
/*
exec [Imperium_cumplimientos] 10072, @cumplimiento output, 'T','A',2,1
declare @hhh1 int
exec [Imperium_cumplimientos] 10072, @hhh1 output, 'C','U',1
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'S','U',1
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'T','U',1
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'C','A',1,12
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'S','A',1,12
declare @hhh1 int
exec [Imperium_cumplimientos] 10072, @hhh1 output, 'T','A',2,1
--exec [Imperium_cumplimientos] 10072, @hhh1 output, 'T','A',1,12
select @hhh1
select id_imperium from ln_contrapartes where contraparte = 183617
select * from led_docs where contratista_1 = 7900 and led_docs.contratista != led_docs.contratista_1
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_cumplimientos
@p_contratista int,
@cumplimiento int output,
@p_contratistas_subcontratistas char(1) = 'C', -- C = contratista, S = Subcontratistas, T = Todo (Completo: contratista y subcontratistas)
@p_ultimo_mes_anteriores char(1) = 'U', -- U = ultimo mes (toma como mes lo indicado en: @p_cual_es_ultimo)
-- A = meses anteriores
@p_cual_es_ultimo int = 1, /* que mes tomamos como ultimo?
1 = PeriodoVencido
2 = PeriodoMenosDos,
etc
*/
@p_cuantos_meses_tomar int = 11 -- cantidad de meses a tomar cuando se pide Anteriores
AS
BEGIN
SET NOCOUNT ON;
DECLARE @rate FLOAT
DECLARE @verificados FLOAT
DECLARE @totales FLOAT
if (@p_cual_es_ultimo is null or @p_cual_es_ultimo < 0) set @p_cual_es_ultimo = 1
if (@p_cuantos_meses_tomar is null or @p_cuantos_meses_tomar <= 0) set @p_cuantos_meses_tomar = 11
declare @periodo_desde1 date = null
declare @periodo_hasta1 date = null
declare @periodo_desde int
declare @periodo_hasta int = dbo.PeriodoAdelantado()
declare @meses int
set @meses = @p_cual_es_ultimo * (-1)
set @periodo_hasta1 = convert(date, substring(convert(char,@periodo_hasta),1,4)+'-'+substring(convert(char,@periodo_hasta),5,2)+'-01')
set @periodo_hasta1 = dateadd(m,@meses,@periodo_hasta1)
if (@p_ultimo_mes_anteriores = 'U')
begin
set @periodo_hasta = convert(int,convert(char(6),replace(@periodo_hasta1,'-','')))
set @periodo_desde = @periodo_hasta -- solo ultimo
end
else
begin -- Meses anteriores
-- set @periodo_hasta1 = dateadd(m,-1,@periodo_hasta1) -- hasta: uno menos que el que consideramos ultimo
-- MAL PORQUE SE PARABA UN MES MENOS DEL QUE PEDIMOS
-- (servia cuando se pedian ultimos 12 meses, pero lo que hay que hacer es cuando se llama mandarle como parametro 2,12
-- desde: tantos meses para atras solicitados
set @meses = (@p_cuantos_meses_tomar-1) * (-1)
set @periodo_desde1 = dateadd(m,@meses,@periodo_hasta1)
set @periodo_hasta = convert(int,convert(char(6),replace(@periodo_hasta1,'-','')))
set @periodo_desde = convert(int,convert(char(6),replace(@periodo_desde1,'-','')))
end
if (@periodo_desde < dbo.PeriodoAnual()) set @periodo_desde = dbo.PeriodoAnual()
if (@periodo_hasta < dbo.PeriodoAnual()) set @periodo_hasta = dbo.PeriodoAnual()
select @periodo_desde desde, @periodo_hasta hasta, @meses as cuantos_meses
if (@p_contratistas_subcontratistas = 'C')
begin
SELECT @verificados =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
SELECT @totales =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
end
if (@p_contratistas_subcontratistas = 'S')
begin
SELECT @verificados =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
SELECT @totales =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
end
if (@p_contratistas_subcontratistas = 'T') -- Todo
begin
SELECT @verificados =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
SELECT @totales =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
end
IF (@totales > 0) BEGIN
--SET @rate = ROUND(@verificados / @totales * 100, 0)
SET @rate = floor(@verificados / @totales * 100) --> redondea para abajo 99.99 = 99
SET @cumplimiento = CAST(@rate AS int)
END ELSE
SET @cumplimiento = null
select @p_contratistas_subcontratistas as 'Cont./Subcont./Todos', @p_ultimo_mes_anteriores as 'Ultimo/Anteriores', @periodo_hasta as hasta,
@verificados as verificados, @totales as totales, @cumplimiento as cumplimiento
END
GO
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 28/06/2023
-- Description: Calcula Porcentaje de cumplimiento de Imperium:
-- - Se puede pedir de documentos propios del Contratista / de los Subcontratistas o Todo (Completo: contratista y subcontratistas)
-- (@p_contratistas_subcontratistas C o S o T)
-- - Del ultimo mes o de los meses anteriores a ese ultimo que quieren
-- (@p_ultimo_mes_anteriores U o A)
-- - que mes tomamos como ultimo?
-- (@p_cual_es_ultimo) -- 1 = PeriodoVencido
-- 2 = PeriodoMenosDos,
-- etc
-- - cantidad de meses a tomar cuando se pide Anteriores
-- (@p_cuantos_meses_tomar)
-- =============================================
/*
exec [Imperium_cumplimientos] 10072, @cumplimiento output, 'T','A',2,1
declare @hhh1 int
exec [Imperium_cumplimientos] 10072, @hhh1 output, 'C','U',1
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'S','U',1
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'T','U',1
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'C','A',1,12
exec [Imperium_cumplimientos] 7900, @hhh1 output, 'S','A',1,12
declare @hhh1 int
exec [Imperium_cumplimientos] 10072, @hhh1 output, 'T','A',2,1
--exec [Imperium_cumplimientos] 10072, @hhh1 output, 'T','A',1,12
select @hhh1
select id_imperium from ln_contrapartes where contraparte = 183617
select * from led_docs where contratista_1 = 7900 and led_docs.contratista != led_docs.contratista_1
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_cumplimientos
@p_contratista int,
@cumplimiento int output,
@p_contratistas_subcontratistas char(1) = 'C', -- C = contratista, S = Subcontratistas, T = Todo (Completo: contratista y subcontratistas)
@p_ultimo_mes_anteriores char(1) = 'U', -- U = ultimo mes (toma como mes lo indicado en: @p_cual_es_ultimo)
-- A = meses anteriores
@p_cual_es_ultimo int = 1, /* que mes tomamos como ultimo?
1 = PeriodoVencido
2 = PeriodoMenosDos,
etc
*/
@p_cuantos_meses_tomar int = 11 -- cantidad de meses a tomar cuando se pide Anteriores
AS
BEGIN
SET NOCOUNT ON;
DECLARE @rate FLOAT
DECLARE @verificados FLOAT
DECLARE @totales FLOAT
if (@p_cual_es_ultimo is null or @p_cual_es_ultimo < 0) set @p_cual_es_ultimo = 1
if (@p_cuantos_meses_tomar is null or @p_cuantos_meses_tomar <= 0) set @p_cuantos_meses_tomar = 11
declare @periodo_desde1 date = null
declare @periodo_hasta1 date = null
declare @periodo_desde int
declare @periodo_hasta int = dbo.PeriodoAdelantado()
declare @meses int
set @meses = @p_cual_es_ultimo * (-1)
set @periodo_hasta1 = convert(date, substring(convert(char,@periodo_hasta),1,4)+'-'+substring(convert(char,@periodo_hasta),5,2)+'-01')
set @periodo_hasta1 = dateadd(m,@meses,@periodo_hasta1)
if (@p_ultimo_mes_anteriores = 'U')
begin
set @periodo_hasta = convert(int,convert(char(6),replace(@periodo_hasta1,'-','')))
set @periodo_desde = @periodo_hasta -- solo ultimo
end
else
begin -- Meses anteriores
-- set @periodo_hasta1 = dateadd(m,-1,@periodo_hasta1) -- hasta: uno menos que el que consideramos ultimo
-- MAL PORQUE SE PARABA UN MES MENOS DEL QUE PEDIMOS
-- (servia cuando se pedian ultimos 12 meses, pero lo que hay que hacer es cuando se llama mandarle como parametro 2,12
-- desde: tantos meses para atras solicitados
set @meses = (@p_cuantos_meses_tomar-1) * (-1)
set @periodo_desde1 = dateadd(m,@meses,@periodo_hasta1)
set @periodo_hasta = convert(int,convert(char(6),replace(@periodo_hasta1,'-','')))
set @periodo_desde = convert(int,convert(char(6),replace(@periodo_desde1,'-','')))
end
if (@periodo_desde < dbo.PeriodoAnual()) set @periodo_desde = dbo.PeriodoAnual()
if (@periodo_hasta < dbo.PeriodoAnual()) set @periodo_hasta = dbo.PeriodoAnual()
select @periodo_desde desde, @periodo_hasta hasta, @meses as cuantos_meses
if (@p_contratistas_subcontratistas = 'C')
begin
SELECT @verificados =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
SELECT @totales =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista = @p_contratista and led_docs.contratista = led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
end
if (@p_contratistas_subcontratistas = 'S')
begin
SELECT @verificados =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
SELECT @totales =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista and led_docs.contratista != led_docs.contratista_1
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
end
if (@p_contratistas_subcontratistas = 'T') -- Todo
begin
SELECT @verificados =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc = 'V'
AND led_docs.doc_id_lista IS NULL)
SELECT @totales =
(SELECT COUNT(*)
FROM led_docs INNER JOIN led_contratista_periodo
ON (led_docs.contratista = led_contratista_periodo.contratista
AND led_docs.periodo = led_contratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_empleados_periodo
ON (led_docs.empleado = led_empleados_periodo.empleado
AND led_docs.periodo = led_empleados_periodo.periodo)
INNER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
INNER JOIN led_cliente_empleado ON
(led_docs.tipo_doc = led_cliente_empleado.tipo_doc
AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado
AND led_empleados.cliente = led_cliente_empleado.cliente
AND ISNULL(led_cliente_empleado.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_vehiculos_periodo
ON (led_docs.vehiculo = led_vehiculos_periodo.vehiculo
AND led_docs.periodo = led_vehiculos_periodo.periodo)
INNER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
INNER JOIN led_cliente_vehiculo ON
(led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo
AND led_vehiculos.cliente = led_cliente_vehiculo.cliente
AND ISNULL(led_cliente_vehiculo.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
+ (SELECT COUNT(*)
FROM led_docs INNER JOIN led_subcontratista_periodo
ON (led_docs.contratista = led_subcontratista_periodo.subcontratista
AND led_docs.periodo = led_subcontratista_periodo.periodo)
INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
INNER JOIN led_cliente_contratista ON
(led_docs.tipo_doc = led_cliente_contratista.tipo_doc
AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista
AND led_contratistas.cliente = led_cliente_contratista.cliente
AND ISNULL(led_cliente_contratista.afecta_compliance, 0) > 0)
WHERE led_docs.contratista_1 = @p_contratista
AND led_docs.periodo BETWEEN @periodo_desde AND @periodo_hasta
AND led_docs.estado_doc IN ('N','I','R','V')
AND led_docs.doc_id_lista IS NULL)
end
IF (@totales > 0) BEGIN
--SET @rate = ROUND(@verificados / @totales * 100, 0)
SET @rate = floor(@verificados / @totales * 100) --> redondea para abajo 99.99 = 99
SET @cumplimiento = CAST(@rate AS int)
END ELSE
SET @cumplimiento = null
select @p_contratistas_subcontratistas as 'Cont./Subcont./Todos', @p_ultimo_mes_anteriores as 'Ultimo/Anteriores', @periodo_hasta as hasta,
@verificados as verificados, @totales as totales, @cumplimiento as cumplimiento
END
GO