dbo.Imperium_vista_contratista_Cumplimiento_General

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@p_contratista int 4
@cumplimiento int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
declare @hhh int
exec Imperium_vista_contratista_Cumplimiento_General 1965,@hhh output
select @hhh

*/



CREATE OR ALTER PROCEDURE dbo.Imperium_vista_contratista_Cumplimiento_General 
 -- Add the parameters for the stored procedure here
 @p_contratista         int,
 @cumplimiento         int output
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 DECLARE @rate FLOAT

 DECLARE @verificados FLOAT
 DECLARE @totales FLOAT


    /*SELECT @verificados = 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)
     WHERE led_docs.contratista_1 = @p_contratista
     AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     AND led_docs.estado_doc = 'V'
     AND led_docs.doc_id_lista IS NULL
     AND led_docs.tipo_doc IN
    
     (select lcc.tipo_doc
     from led_cliente_contratista lcc
     inner join led_contratistas lc on lcc.cliente = lc.cliente
     inner join led_contratista_multi lcm on 
     (lc.contratista = lcm.contratista AND lcc.tipo_contratista = lcm.tipo_contratista)
     inner join led_contratista_periodo lcp on lc.contratista = lcp.contratista
     where lcc.requiere_upload = 1
     and lcc.activo = 1
     and lcm.activo = 1
     and lcm.vigencia_desde <= GETDATE()
     and (lcm.vigencia_hasta IS NULL OR lcm.vigencia_hasta >= GETDATE())
     and lcp.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and lc.contratista_1 = @p_contratista
     group by lcc.tipo_doc
    
     UNION 
    
     select lce.tipo_doc
     from led_cliente_empleado lce
     inner join led_empleados le on lce.tipo_empleado = le.tipo_empleado
     inner join led_contratistas lc on 
     (le.contratista_1 = lc.contratista and lce.cliente = lc.cliente)
     inner join led_empleado_multi lem on 
     (le.empleado = lem.empleado AND lce.tipo_empleado = lem.tipo_empleado)
     inner join led_empleados_periodo lep on le.empleado = lep.empleado
     where lce.requiere_upload = 1
     and lce.activo = 1
     and lem.activo = 1
     and lem.vigencia_desde <= GETDATE()
     and (lem.vigencia_hasta IS NULL OR lem.vigencia_hasta >= GETDATE())
     and lep.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and le.contratista_1 = @p_contratista
     group by lce.tipo_doc
    
     UNION 
    
     select lcv.tipo_doc
     from led_cliente_vehiculo lcv
     inner join led_vehiculos lv on 
     (lcv.tipo_vehiculo = lv.tipo_vehiculo AND lcv.cliente = lv.cliente)
     inner join led_vehiculos_periodo lvp on lv.vehiculo = lvp.vehiculo
     where lcv.requiere_upload = 1
     and lcv.activo = 1
     and lvp.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and lv.contratista_1 = @p_contratista
     group by lcv.tipo_doc
    
     UNION
    
     select lcc.tipo_doc
     from led_cliente_contratista lcc
     inner join led_contratistas lc on lcc.cliente = lc.cliente
     inner join led_subcontratista_periodo lsp on 
     (lc.contratista = lsp.subcontratista AND lc.contratista_1 = lsp.contratista_1)
     where lcc.requiere_upload = 1
     and lcc.activo = 1
     and lsp.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and lc.contratista_1 = @p_contratista
     group by lcc.tipo_doc)
    
    
     SELECT @totales = 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)
     WHERE led_docs.contratista_1 = @p_contratista
     AND led_docs.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     AND led_docs.estado_doc IN ('N','I','R','V')
     AND led_docs.doc_id_lista IS NULL
     AND led_docs.tipo_doc IN
    
     (select lcc.tipo_doc
     from led_cliente_contratista lcc
     inner join led_contratistas lc on lcc.cliente = lc.cliente
     inner join led_contratista_multi lcm on 
     (lc.contratista = lcm.contratista AND lcc.tipo_contratista = lcm.tipo_contratista)
     inner join led_contratista_periodo lcp on lc.contratista = lcp.contratista
     where lcc.requiere_upload = 1
     and lcc.activo = 1
     and lcm.activo = 1
     and lcm.vigencia_desde <= GETDATE()
     and (lcm.vigencia_hasta IS NULL OR lcm.vigencia_hasta >= GETDATE())
     and lcp.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and lc.contratista_1 = @p_contratista
     group by lcc.tipo_doc
    
     UNION 
    
     select lce.tipo_doc
     from led_cliente_empleado lce
     inner join led_empleados le on lce.tipo_empleado = le.tipo_empleado
     inner join led_contratistas lc on 
     (le.contratista_1 = lc.contratista and lce.cliente = lc.cliente)
     inner join led_empleado_multi lem on 
     (le.empleado = lem.empleado AND lce.tipo_empleado = lem.tipo_empleado)
     inner join led_empleados_periodo lep on le.empleado = lep.empleado
     where lce.requiere_upload = 1
     and lce.activo = 1
     and lem.activo = 1
     and lem.vigencia_desde <= GETDATE()
     and (lem.vigencia_hasta IS NULL OR lem.vigencia_hasta >= GETDATE())
     and lep.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and le.contratista_1 = @p_contratista
     group by lce.tipo_doc
    
     UNION 
    
     select lcv.tipo_doc
     from led_cliente_vehiculo lcv
     inner join led_vehiculos lv on 
     (lcv.tipo_vehiculo = lv.tipo_vehiculo AND lcv.cliente = lv.cliente)
     inner join led_vehiculos_periodo lvp on lv.vehiculo = lvp.vehiculo
     where lcv.requiere_upload = 1
     and lcv.activo = 1
     and lvp.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and lv.contratista_1 = @p_contratista
     group by lcv.tipo_doc
    
     UNION
    
     select lcc.tipo_doc
     from led_cliente_contratista lcc
     inner join led_contratistas lc on lcc.cliente = lc.cliente
     inner join led_subcontratista_periodo lsp on 
     (lc.contratista = lsp.subcontratista AND lc.contratista_1 = lsp.contratista_1)
     where lcc.requiere_upload = 1
     and lcc.activo = 1
     and lsp.periodo BETWEEN dbo.PeriodoAnual() AND dbo.PeriodoVencido()
     and lc.contratista_1 = @p_contratista
     group by lcc.tipo_doc) */




  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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    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 dbo.PeriodoAnual() AND dbo.PeriodoVencido()
    AND led_docs.estado_doc IN ('N','I','R','V')
    AND led_docs.doc_id_lista IS NULL)




 IF (@totales > 0) BEGIN
  SET @rate = ROUND(@verificados / @totales * 100, 0)
  SET @cumplimiento = CAST(@rate AS int)
 END ELSE
  SET @cumplimiento = 0
 
 
END

GO

Used By

No items found