dbo.Imperium_cliente_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
@p_servicio_contratado int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*

exec Imperium_cliente_cumplimiento_general 1983


/*
select * from led_cliente_cumplimiento_general
delete led_cliente_cumplimiento_general
*/


*/

/*
select * from led_contratistas where contratista = 1983


declare @p_contratista int

DECLARE C_padron CURSOR FOR
select distinct contratista_1 from led_contratistas where cliente = 7048064 and estado_contratista='A'
OPEN C_Padron
FETCH NEXT FROM C_Padron INTO @p_contratista
WHILE @@fetch_status = 0
BEGIN

exec Imperium_cliente_cumplimiento_general @p_contratista
FETCH NEXT FROM C_Padron INTO @p_contratista

END  
CLOSE C_Padron
DEALLOCATE C_Padron


select padrones.identificacion,padrones.nombre_persona,LTC.nombre_tipo_contratista,LCCG.cumplimiento,LCCG.periodo
from led_cliente_cumplimiento_general LCCG inner join led_contratistas LC on LCCG.contratista_1=LC.contratista
inner join padrones on LC.id_padron=padrones.id_padron
inner join led_tipos_contratista LTC on LC.tipo_contratista=LTC.tipo_contratista
-- where cumplimiento=100
order by cumplimiento desc, padrones.nombre_persona ASC


*/
 





CREATE OR ALTER PROCEDURE dbo.Imperium_cliente_cumplimiento_general 
 -- Add the parameters for the stored procedure here
 @p_contratista        int,
 @p_servicio_contratado      int = null
 
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 =
    (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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    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.PeriodoAdelantado() AND dbo.PeriodoAdelantado()
    AND led_docs.estado_doc IN ('N','I','R','V')
    AND led_docs.doc_id_lista IS NULL)




 DECLARE @cumplimiento INT




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


 insert into led_cliente_cumplimiento_general (cumplimiento,contratista_1,periodo,verificados,totales,created)
 values (@cumplimiento,@p_contratista,dbo.PeriodoAdelantado(),@verificados,@totales,getdate())


/*
CREATE TABLE [dbo].[led_cliente_cumplimiento_general]
(
id_cumplimiento int identity(1,1) not null,
contratista_1 int,
cumplimiento int,
periodo int,
verificados int,
totales int,
created datetime default(getdate())
) ON [PRIMARY]
*/



 --SELECT @cumplimiento as cumplimiento,@totales as totales,@verificados as verificados
 
 
END

GO

Used By

No items found