dbo.Imperium_cumplimientos

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