dbo.Imperium_vista_contratista_Cumplimiento_General_OLD

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,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_vista_contratista_Cumplimiento_General_OLD 
 -- 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)

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

GO

Used By

No items found