dbo.Imperium_vista_contratista_Empleados

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@p_contratista int 4
@p_estado_doc varchar 10
@p_horas_venc 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_Empleados
 -- Add the parameters for the stored procedure here
 @p_contratista       int,
 @p_estado_doc       varchar(10),
 @p_horas_venc       int = 96
 
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 @periodo_actual INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(GETDATE())) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(GETDATE())), 2))


 IF(@p_estado_doc = 'N' OR @p_estado_doc = 'R') BEGIN
  /* no ingresaos (pendientes) o rechazados */

  select led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1,
  led_contratistas.contratista, led_contratistas.cliente, 
  padrones_1.identificador AS identificador_1, 
  padrones_1.numero AS numero_1,
  padrones_1.nombre_persona AS nombre_persona_1,
  identificadores_1.abreviatura AS abreviatura_1, 
  padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
  led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
  led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,

  padrones_e.nombre_persona AS nombre_persona_e,
  padrones_e.identificador AS identificador_e,
  padrones_e.numero AS numero_e,
  identificadores_e.abreviatura AS abreviatura_e,

  clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

  from led_contratistas 
  inner join led_contratistas AS led_contratistas_1 on led_contratistas.contratista_1 = led_contratistas_1.contratista
  inner join clientes on led_contratistas.cliente = clientes.cliente

  inner join padrones on led_contratistas.id_padron = padrones.id_padron
  inner join identificadores on padrones.identificador = identificadores.identificador

  inner join padrones padrones_1 on led_contratistas_1.id_padron = padrones_1.id_padron
  inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

  inner join led_docs on led_contratistas.contratista = led_docs.contratista
  inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

  inner join users on led_contratistas_1.user_id = users.user_id

  inner join led_empleados on (led_docs.empleado = led_empleados.empleado AND led_docs.contratista = led_empleados.contratista)

  inner join led_empleados_periodo on (led_empleados.empleado = led_empleados_periodo.empleado
            and led_docs.periodo = led_empleados_periodo.periodo)

  inner join padrones padrones_e on led_empleados.id_padron = padrones_e.id_padron
  inner join identificadores identificadores_e on padrones_e.identificador = identificadores_e.identificador


  inner join led_empleado_multi on led_empleados.empleado = led_empleado_multi.empleado
  inner join 
    (select lce.cliente, lce.tipo_empleado, lce.tipo_doc
    from led_cliente_empleado lce
    where /*lce.afecta_compliance = 1
     and*/
 lce.requiere_upload = 1
    and lce.activo = 1) CONFIG_TE
     ON (led_docs.cliente = CONFIG_TE.cliente 
      AND led_empleado_multi.tipo_empleado = CONFIG_TE.tipo_empleado
      AND led_docs.tipo_doc = CONFIG_TE.tipo_doc)

  where led_docs.estado_doc IN (@p_estado_doc)
  and led_contratistas.estado_contratista = 'A'
  and led_contratistas_1.estado_contratista = 'A'
  and led_docs.doc_id_lista IS NULL
  and led_tipos_doc.tipo_doc_lista IS NULL
  and clientes.estado_cliente = 'A'

  and led_empleado_multi.vigencia_desde <= GETDATE()
  and (led_empleado_multi.vigencia_hasta IS NULL OR led_empleado_multi.vigencia_hasta >= GETDATE())
  and led_empleado_multi.activo = 1

  and led_contratistas.contratista_1 = @p_contratista

  group by led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1, 
  led_contratistas.contratista, led_contratistas.cliente, 
  padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
  padrones_1.identificador, padrones_1.numero, padrones_1.nombre_persona, identificadores_1.abreviatura, 
  led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
  led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,
  padrones_e.nombre_persona,
  padrones_e.identificador,
  padrones_e.numero,
  identificadores_e.abreviatura,
  clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

  ORDER BY led_docs.periodo, led_docs.fecha_tolerancia

 END ELSE
  
  IF(@p_estado_doc = 'V') BEGIN
   /* verificados KILLERS de ACCESO con vencimiento dentro de las proximas 96 horas */

   select led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1,
   led_contratistas.contratista, led_contratistas.cliente, 
   padrones_1.identificador AS identificador_1, 
   padrones_1.numero AS numero_1,
   padrones_1.nombre_persona AS nombre_persona_1,
   identificadores_1.abreviatura AS abreviatura_1, 
   padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
   led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
   led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,

   padrones_e.nombre_persona AS nombre_persona_e,
   padrones_e.identificador AS identificador_e,
   padrones_e.numero AS numero_e,
   identificadores_e.abreviatura AS abreviatura_e,

   clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

   from led_contratistas 
   inner join led_contratistas AS led_contratistas_1 on led_contratistas.contratista_1 = led_contratistas_1.contratista
   inner join clientes on led_contratistas.cliente = clientes.cliente

   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador

   inner join padrones padrones_1 on led_contratistas_1.id_padron = padrones_1.id_padron
   inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

   inner join led_docs on led_contratistas.contratista = led_docs.contratista
   inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

   inner join users on led_contratistas_1.user_id = users.user_id

   inner join led_empleados on (led_docs.empleado = led_empleados.empleado AND led_docs.contratista = led_empleados.contratista)

   inner join led_empleados_periodo on (led_empleados.empleado = led_empleados_periodo.empleado
             and led_docs.periodo = led_empleados_periodo.periodo)

   inner join padrones padrones_e on led_empleados.id_padron = padrones_e.id_padron
   inner join identificadores identificadores_e on padrones_e.identificador = identificadores_e.identificador


   inner join led_empleado_multi on led_empleados.empleado = led_empleado_multi.empleado
   inner join 
     (select lce.cliente, lce.tipo_empleado, lce.tipo_doc
     from led_cliente_empleado lce
     where /*lce.afecta_compliance = 1
      and*/
 lce.requiere_upload = 1
     and lce.activo = 1
     and lce.ci_killer = 1) CONFIG_TE
      ON (led_docs.cliente = CONFIG_TE.cliente 
       AND led_empleado_multi.tipo_empleado = CONFIG_TE.tipo_empleado
       AND led_docs.tipo_doc = CONFIG_TE.tipo_doc)

   where led_docs.estado_doc IN (@p_estado_doc)
   and DATEDIFF(HOUR, GETDATE(), led_docs.fecha_vigencia) <= @p_horas_venc
   and DATEDIFF(HOUR, GETDATE(), led_docs.fecha_vigencia) > 0
   and led_docs.periodo = @periodo_actual

   and led_contratistas.estado_contratista = 'A'
   and led_contratistas_1.estado_contratista = 'A'
   and led_docs.doc_id_lista IS NULL
   and led_tipos_doc.tipo_doc_lista IS NULL
   and clientes.estado_cliente = 'A'

   and led_empleado_multi.vigencia_desde <= GETDATE()
   and (led_empleado_multi.vigencia_hasta IS NULL OR led_empleado_multi.vigencia_hasta >= GETDATE())
   and led_empleado_multi.activo = 1

   and led_contratistas.contratista_1 = @p_contratista

   group by led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1, 
   led_contratistas.contratista, led_contratistas.cliente, 
   padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
   padrones_1.identificador, padrones_1.numero, padrones_1.nombre_persona, identificadores_1.abreviatura, 
   led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
   led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,
   padrones_e.nombre_persona,
   padrones_e.identificador,
   padrones_e.numero,
   identificadores_e.abreviatura,
   clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

   ORDER BY led_docs.periodo, led_docs.fecha_tolerancia


  END ELSE BEGIN


   select led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1,
   led_contratistas.contratista, led_contratistas.cliente, 
   padrones_1.identificador AS identificador_1, 
   padrones_1.numero AS numero_1,
   padrones_1.nombre_persona AS nombre_persona_1,
   identificadores_1.abreviatura AS abreviatura_1, 
   padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
   led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
   led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,

   padrones_e.nombre_persona AS nombre_persona_e,
   padrones_e.identificador AS identificador_e,
   padrones_e.numero AS numero_e,
   identificadores_e.abreviatura AS abreviatura_e,

   clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

   from led_contratistas 
   inner join led_contratistas AS led_contratistas_1 on led_contratistas.contratista_1 = led_contratistas_1.contratista
   inner join clientes on led_contratistas.cliente = clientes.cliente

   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador

   inner join padrones padrones_1 on led_contratistas_1.id_padron = padrones_1.id_padron
   inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

   inner join led_docs on led_contratistas.contratista = led_docs.contratista
   inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

   inner join users on led_contratistas_1.user_id = users.user_id

   inner join led_empleados on (led_docs.empleado = led_empleados.empleado AND led_docs.contratista = led_empleados.contratista)

   inner join led_empleados_periodo on (led_empleados.empleado = led_empleados_periodo.empleado
             and led_docs.periodo = led_empleados_periodo.periodo)

   inner join padrones padrones_e on led_empleados.id_padron = padrones_e.id_padron
   inner join identificadores identificadores_e on padrones_e.identificador = identificadores_e.identificador


   inner join led_empleado_multi on led_empleados.empleado = led_empleado_multi.empleado
   inner join 
     (select lce.cliente, lce.tipo_empleado, lce.tipo_doc
     from led_cliente_empleado lce
     where /*lce.afecta_compliance = 1
      and*/
 lce.requiere_upload = 1
     and lce.activo = 1) CONFIG_TE
      ON (led_docs.cliente = CONFIG_TE.cliente 
       AND led_empleado_multi.tipo_empleado = CONFIG_TE.tipo_empleado
       AND led_docs.tipo_doc = CONFIG_TE.tipo_doc)

   where led_docs.estado_doc IN ('N', 'R')
   and led_contratistas.estado_contratista = 'A'
   and led_contratistas_1.estado_contratista = 'A'
   and led_docs.doc_id_lista IS NULL
   and led_tipos_doc.tipo_doc_lista IS NULL
   and clientes.estado_cliente = 'A'

   and led_empleado_multi.vigencia_desde <= GETDATE()
   and (led_empleado_multi.vigencia_hasta IS NULL OR led_empleado_multi.vigencia_hasta >= GETDATE())
   and led_empleado_multi.activo = 1

   and led_contratistas.contratista_1 = @p_contratista

   group by led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1, 
   led_contratistas.contratista, led_contratistas.cliente, 
   padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
   padrones_1.identificador, padrones_1.numero, padrones_1.nombre_persona, identificadores_1.abreviatura, 
   led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
   led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,
   padrones_e.nombre_persona,
   padrones_e.identificador,
   padrones_e.numero,
   identificadores_e.abreviatura,
   clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

   UNION ALL


   select led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1,
   led_contratistas.contratista, led_contratistas.cliente, 
   padrones_1.identificador AS identificador_1, 
   padrones_1.numero AS numero_1,
   padrones_1.nombre_persona AS nombre_persona_1,
   identificadores_1.abreviatura AS abreviatura_1, 
   padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
   led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
   led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,

   padrones_e.nombre_persona AS nombre_persona_e,
   padrones_e.identificador AS identificador_e,
   padrones_e.numero AS numero_e,
   identificadores_e.abreviatura AS abreviatura_e,

   clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

   from led_contratistas 
   inner join led_contratistas AS led_contratistas_1 on led_contratistas.contratista_1 = led_contratistas_1.contratista
   inner join clientes on led_contratistas.cliente = clientes.cliente

   inner join padrones on led_contratistas.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador

   inner join padrones padrones_1 on led_contratistas_1.id_padron = padrones_1.id_padron
   inner join identificadores identificadores_1 on padrones_1.identificador = identificadores_1.identificador

   inner join led_docs on led_contratistas.contratista = led_docs.contratista
   inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc

   inner join users on led_contratistas_1.user_id = users.user_id

   inner join led_empleados on (led_docs.empleado = led_empleados.empleado AND led_docs.contratista = led_empleados.contratista)

   inner join led_empleados_periodo on (led_empleados.empleado = led_empleados_periodo.empleado
             and led_docs.periodo = led_empleados_periodo.periodo)

   inner join padrones padrones_e on led_empleados.id_padron = padrones_e.id_padron
   inner join identificadores identificadores_e on padrones_e.identificador = identificadores_e.identificador


   inner join led_empleado_multi on led_empleados.empleado = led_empleado_multi.empleado
   inner join 
     (select lce.cliente, lce.tipo_empleado, lce.tipo_doc
     from led_cliente_empleado lce
     where /*lce.afecta_compliance = 1
      and*/
 lce.requiere_upload = 1
     and lce.activo = 1
     and lce.ci_killer = 1) CONFIG_TE
      ON (led_docs.cliente = CONFIG_TE.cliente 
       AND led_empleado_multi.tipo_empleado = CONFIG_TE.tipo_empleado
       AND led_docs.tipo_doc = CONFIG_TE.tipo_doc)

   where led_docs.estado_doc IN ('V')
   and DATEDIFF(HOUR, GETDATE(), led_docs.fecha_vigencia) <= @p_horas_venc
   and DATEDIFF(HOUR, GETDATE(), led_docs.fecha_vigencia) > 0
   and led_docs.periodo = @periodo_actual

   and led_contratistas.estado_contratista = 'A'
   and led_contratistas_1.estado_contratista = 'A'
   and led_docs.doc_id_lista IS NULL
   and led_tipos_doc.tipo_doc_lista IS NULL
   and clientes.estado_cliente = 'A'

   and led_empleado_multi.vigencia_desde <= GETDATE()
   and (led_empleado_multi.vigencia_hasta IS NULL OR led_empleado_multi.vigencia_hasta >= GETDATE())
   and led_empleado_multi.activo = 1

   and led_contratistas.contratista_1 = @p_contratista

   group by led_docs.doc_id, led_docs.led_seccion, led_contratistas.contratista_1, 
   led_contratistas.contratista, led_contratistas.cliente, 
   padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura, 
   padrones_1.identificador, padrones_1.numero, padrones_1.nombre_persona, identificadores_1.abreviatura, 
   led_docs.periodo, led_tipos_doc.nombre_tipo_doc, led_docs.estado_doc, led_docs.fecha_tolerancia,
   led_docs.led_seccion, led_docs.empleado, led_docs.vehiculo,
   padrones_e.nombre_persona,
   padrones_e.identificador,
   padrones_e.numero,
   identificadores_e.abreviatura,
   clientes.nombre_cliente, users.user_id, users.first_name, users.last_name, users.username, users.email

   ORDER BY periodo, fecha_tolerancia
  END

  
END

GO

Used By

No items found