dbo.Imperium_buscar_empleado_acceso

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_cliente int 4
@p_nombre varchar 50
@p_numero varchar 20
@p_locacion int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*

exec Imperium_buscar_empleado_acceso 9936068,null,'20328088399',1013
exec Imperium_buscar_empleado_acceso 9936068,'ABENTE',NULL,1013

exec Imperium_buscar_empleado_acceso 9936068,NULL,'20373494071',1013
exec Imperium_buscar_empleado_acceso 9936068,'ACOSTA',NULL,1013



*/

-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_buscar_empleado_acceso
 -- Add the parameters for the stored procedure here

 @p_cliente           int = NULL,
 @p_nombre           varchar(50) = NULL,
 @p_numero           varchar(20) = NULL,
 @p_locacion           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

 if (@p_cliente > 0 AND (@p_nombre is not null OR @p_numero is not null) AND @p_locacion > 0) begin

  if (@p_nombre is not null)

   select padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,led_blacklist.tipo_lista AS tipo_reg
   from padrones
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   inner join led_blacklist ON padrones.id_padron = led_blacklist.id_padron
   where led_blacklist.activo = 1
   and led_blacklist.cliente = @p_cliente 
   and contains(padrones.*, @p_nombre)
   group by padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,led_blacklist.tipo_lista

   
   UNION ALL


   select padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,'E' AS tipo_reg
   from padrones
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   
   inner join led_empleados ON padrones.id_padron = led_empleados.id_padron
   left join led_docs ON led_empleados.empleado = led_docs.empleado
   inner join led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
   inner join led_contratistas ON led_empleados.contratista = led_contratistas.contratista
   inner join led_contratista_locaciones on led_contratistas.contratista = led_contratista_locaciones.contratista
   inner join led_empleado_locaciones on led_empleados.empleado = led_empleado_locaciones.empleado
   
   where led_tipos_doc.modalidad = 'A'
   and led_contratistas.estado_contratista = 'A'
   and led_docs.periodo = dbo.PeriodoAdelantado()
   and led_empleados.cliente = @p_cliente
   and led_empleados.estado_empleado = 'A' 
   and contains(padrones.*, @p_nombre)
   
   and led_contratista_locaciones.locacion = @p_locacion
   and led_contratista_locaciones.activo = 1
   and led_contratista_locaciones.vigencia_desde <= GETDATE()
   and (led_contratista_locaciones.vigencia_hasta > GETDATE() OR led_contratista_locaciones.vigencia_hasta IS NULL)
   and led_empleado_locaciones.locacion = @p_locacion
   and led_empleado_locaciones.activo = 1
   and led_empleado_locaciones.vigencia_desde <= GETDATE()
   and (led_empleado_locaciones.vigencia_hasta > GETDATE() OR led_empleado_locaciones.vigencia_hasta IS NULL)
   and padrones.id_padron not in (select id_padron from led_blacklist where activo = 1 and cliente = @p_cliente)
   
   group by padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name
   
   UNION ALL

   select padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,'C' AS tipo_reg
   from padrones
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   
   inner join led_contratistas ON padrones.id_padron = led_contratistas.id_padron
   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 led_contratista_locaciones on led_contratistas.contratista = led_contratista_locaciones.contratista
   
   left outer join
      (select led_contratistas.contratista, count(*) AS total_empleados
      from led_contratistas inner join led_empleados
      on led_contratistas.contratista = led_empleados.contratista
      inner join led_empleados_periodo
      on led_empleados.empleado = led_empleados_periodo.empleado
      where led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
      and led_empleados.cliente = @p_cliente
      and led_empleados.estado_empleado = 'A'
      and led_contratistas.estado_contratista = 'A'
      group by led_contratistas.contratista) empleados
   on led_contratistas.contratista = empleados.contratista
   
   where led_tipos_doc.modalidad = 'A'
   and led_docs.periodo = dbo.PeriodoAdelantado()
   and ISNULL(empleados.total_empleados,0) = 0
   and led_contratistas.cliente = @p_cliente
   and led_contratistas.estado_contratista = 'A'
   and led_contratista_locaciones.locacion = @p_locacion
   and led_contratista_locaciones.activo = 1
   and led_contratista_locaciones.vigencia_desde <= GETDATE()
   and (led_contratista_locaciones.vigencia_hasta > GETDATE() OR led_contratista_locaciones.vigencia_hasta IS NULL)
   and contains(padrones.*, @p_nombre)
   and padrones.id_padron not in (select id_padron from led_blacklist where activo = 1 and cliente = @p_cliente)
   group by empleados.total_empleados, padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name


  else
   /** consulta por nĂºmero de documento **/


   select padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,led_blacklist.tipo_lista AS tipo_reg
   from padrones
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   inner join led_blacklist ON padrones.id_padron = led_blacklist.id_padron
   where led_blacklist.activo = 1
   and led_blacklist.cliente = @p_cliente 
   and padrones.identificacion = @p_numero
   group by padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,led_blacklist.tipo_lista

   
   UNION ALL


   select padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,'E' AS tipo_reg
   from padrones
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   
   inner join led_empleados ON padrones.id_padron = led_empleados.id_padron
   left join led_docs ON led_empleados.empleado = led_docs.empleado
   inner join led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
   inner join led_contratistas ON led_empleados.contratista = led_contratistas.contratista
   inner join led_contratista_locaciones on led_contratistas.contratista = led_contratista_locaciones.contratista
   inner join led_empleado_locaciones on led_empleados.empleado = led_empleado_locaciones.empleado
   
   where led_tipos_doc.modalidad = 'A'
   and led_contratistas.estado_contratista = 'A'
   and led_docs.periodo = dbo.PeriodoAdelantado()
   and led_empleados.cliente = @p_cliente
   and led_empleados.estado_empleado = 'A' 
   and padrones.identificacion = @p_numero
   
   and led_contratista_locaciones.locacion = @p_locacion
   and led_contratista_locaciones.activo = 1
   and led_contratista_locaciones.vigencia_desde <= GETDATE()
   and (led_contratista_locaciones.vigencia_hasta > GETDATE() OR led_contratista_locaciones.vigencia_hasta IS NULL)
   and led_empleado_locaciones.locacion = @p_locacion
   and led_empleado_locaciones.activo = 1
   and led_empleado_locaciones.vigencia_desde <= GETDATE()
   and (led_empleado_locaciones.vigencia_hasta > GETDATE() OR led_empleado_locaciones.vigencia_hasta IS NULL)
   and padrones.id_padron not in (select id_padron from led_blacklist where activo = 1 and cliente = @p_cliente)
   
   group by padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name
   
   UNION ALL

   select padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name,'C' AS tipo_reg
   from padrones
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   
   inner join led_contratistas ON padrones.id_padron = led_contratistas.id_padron
   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 led_contratista_locaciones on led_contratistas.contratista = led_contratista_locaciones.contratista
   
   left outer join
      (select led_contratistas.contratista, count(*) AS total_empleados
      from led_contratistas inner join led_empleados
      on led_contratistas.contratista = led_empleados.contratista
      inner join led_empleados_periodo
      on led_empleados.empleado = led_empleados_periodo.empleado
      where led_empleados_periodo.periodo = dbo.PeriodoAdelantado()
      and led_empleados.cliente = @p_cliente
      and led_empleados.estado_empleado = 'A'
      and led_contratistas.estado_contratista = 'A'
      group by led_contratistas.contratista) empleados
   on led_contratistas.contratista = empleados.contratista
   
   where led_tipos_doc.modalidad = 'A'
   and led_docs.periodo = dbo.PeriodoAdelantado()
   and ISNULL(empleados.total_empleados,0) = 0
   and led_contratistas.cliente = @p_cliente
   and led_contratistas.estado_contratista = 'A'
   and led_contratista_locaciones.locacion = @p_locacion
   and led_contratista_locaciones.activo = 1
   and led_contratista_locaciones.vigencia_desde <= GETDATE()
   and (led_contratista_locaciones.vigencia_hasta > GETDATE() OR led_contratista_locaciones.vigencia_hasta IS NULL)
   and padrones.identificacion = @p_numero
   and padrones.id_padron not in (select id_padron from led_blacklist where activo = 1 and cliente = @p_cliente)
   group by empleados.total_empleados, padrones.id_padron, padrones.nombre_persona, padrones.identificador, 
   padrones.numero, padrones.tipo_persona, padrones.sexo,
   padrones.pre_clave, padrones.cuerpo_clave, padrones.suf_clave,
   identificadores.country_code, identificadores.abreviatura, country.country_name


 end

 
END
GO

Used By

No items found