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_tipo_empleado | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec Imperium_buscar_tipos_empleado 4084
*/
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_buscar_tipos_empleado
-- Add the parameters for the stored procedure here
@p_contratista int = NULL,
@p_tipo_empleado 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 @tipo_contratista int, @cliente int, @tipos_hab tinyint = 0
-- OBTENER TIPOS DE EMPLEADO HABILITADOS PARA UN CONTRATISTA EN PARTICULAR
declare @QuienVerifica char(1) ='F'
if (@p_contratista is not null AND @p_tipo_empleado is null) begin
/*
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
*/
select distinct @tipo_contratista=led_contratistas.tipo_contratista , @cliente=led_contratistas.cliente,
@QuienVerifica=led_cliente_contratista.verificacion
from led_contratistas inner join led_cliente_contratista on (led_contratistas.tipo_contratista=led_cliente_contratista.tipo_contratista
and led_contratistas.cliente=led_cliente_contratista.cliente)
where led_contratistas.contratista = @p_contratista
-- verificar si existen tipos de empleado habilitados exclusivamente para el tipo de contratista
if exists (
/*select 2 as tipo_empleado
union */
select distinct led_tipos_empleado.tipo_empleado
from led_tipos_empleado inner join led_cliente_empleado
on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
where led_tipos_empleado.hab_tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_empleado.cliente = @cliente
group by led_tipos_empleado.tipo_empleado)
begin
set @tipos_hab = 1
end
/**/
/* select @tipos_hab as tipos_hab*/
-- modalidad de documentación del contratista
declare @mod_count int, @modalidad_doc varchar(1)
select @mod_count = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad) modalidades
/*
select 'J',@mod_count as MODcount
exec Imperium_buscar_tipos_empleado 4084
*/
if (@mod_count = 1)
-- unica modalidad Vencida o adelantada
select @modalidad_doc = led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad
-- modalidad de documentación de los empleados
/*declare @mod_count_emp int, @modalidad_doc_emp varchar(1)
select @mod_count_emp = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_empleado inner join led_tipos_doc
on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
group by led_tipos_doc.modalidad) modalidades
if (@mod_count_emp = 1)
-- unica modalidad Vencida o adelantada
select @modalidad_doc_emp = led_tipos_doc.modalidad
from led_cliente_empleado inner join led_tipos_doc
on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
group by led_tipos_doc.modalidad*/
-- misma única modalidad vencida o adelantada tanto para el contratista como para los empleados
/*select @tipos_hab as tipos_hab,@mod_count as mod_count*/
if (@mod_count = 1) begin
if (@tipos_hab = 0)
-- sin tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_doc.modalidad = @modalidad_doc
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
else
-- con tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
inner join (
/*select 2 as tipo_empleado
union */
select distinct led_tipos_empleado.tipo_empleado
from led_tipos_empleado inner join led_cliente_empleado
on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
where led_tipos_empleado.hab_tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_empleado.cliente = @cliente
group by led_tipos_empleado.tipo_empleado) exclusivos on led_cliente_empleado.tipo_empleado = exclusivos.tipo_empleado
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_doc.modalidad = @modalidad_doc
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
/*select @tipos_hab as tipos_hab,@mod_count as mod_count,@modalidad_doc as modalidad_doc*/
end
else begin
-- contratista tiene modalidad Vencida y adelantada : no hay restricción
if (@mod_count > 1) begin
if (@tipos_hab = 0)
-- sin tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_empleado.hab_tipo_contratista is null
/*and led_cliente_empleado.verificacion=@QuienVerifica */
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
else
-- con tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
inner join (select led_tipos_empleado.tipo_empleado
from led_tipos_empleado inner join led_cliente_empleado
on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
where led_tipos_empleado.hab_tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_empleado.cliente = @cliente
group by led_tipos_empleado.tipo_empleado) exclusivos on led_cliente_empleado.tipo_empleado = exclusivos.tipo_empleado
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_empleado.hab_tipo_contratista is not null
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
end
end
end
-- OBTENER TIPOS DE ALTA HABILITADO PARA UN CONTRATISTA Y TIPO DE EMPLEADO
if (@p_contratista is not null AND @p_tipo_empleado is not null) begin
/*select @tipos_hab as tipos_hab,@mod_count as mod_count,@modalidad_doc as modalidad_doc,'AA' AS AA*/
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
select led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
from led_tipos_alta inner join led_cliente_empleado
on led_tipos_alta.tipo_alta = led_cliente_empleado.tipo_alta
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.tipo_empleado = @p_tipo_empleado
and led_cliente_empleado.activo = 1
group by led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
order by led_tipos_alta.nombre_tipo_alta
end
END
GO
GO
/*
exec Imperium_buscar_tipos_empleado 4084
*/
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_buscar_tipos_empleado
-- Add the parameters for the stored procedure here
@p_contratista int = NULL,
@p_tipo_empleado 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 @tipo_contratista int, @cliente int, @tipos_hab tinyint = 0
-- OBTENER TIPOS DE EMPLEADO HABILITADOS PARA UN CONTRATISTA EN PARTICULAR
declare @QuienVerifica char(1) ='F'
if (@p_contratista is not null AND @p_tipo_empleado is null) begin
/*
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
*/
select distinct @tipo_contratista=led_contratistas.tipo_contratista , @cliente=led_contratistas.cliente,
@QuienVerifica=led_cliente_contratista.verificacion
from led_contratistas inner join led_cliente_contratista on (led_contratistas.tipo_contratista=led_cliente_contratista.tipo_contratista
and led_contratistas.cliente=led_cliente_contratista.cliente)
where led_contratistas.contratista = @p_contratista
-- verificar si existen tipos de empleado habilitados exclusivamente para el tipo de contratista
if exists (
/*select 2 as tipo_empleado
union */
select distinct led_tipos_empleado.tipo_empleado
from led_tipos_empleado inner join led_cliente_empleado
on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
where led_tipos_empleado.hab_tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_empleado.cliente = @cliente
group by led_tipos_empleado.tipo_empleado)
begin
set @tipos_hab = 1
end
/**/
/* select @tipos_hab as tipos_hab*/
-- modalidad de documentación del contratista
declare @mod_count int, @modalidad_doc varchar(1)
select @mod_count = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad) modalidades
/*
select 'J',@mod_count as MODcount
exec Imperium_buscar_tipos_empleado 4084
*/
if (@mod_count = 1)
-- unica modalidad Vencida o adelantada
select @modalidad_doc = led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad
-- modalidad de documentación de los empleados
/*declare @mod_count_emp int, @modalidad_doc_emp varchar(1)
select @mod_count_emp = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_empleado inner join led_tipos_doc
on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
group by led_tipos_doc.modalidad) modalidades
if (@mod_count_emp = 1)
-- unica modalidad Vencida o adelantada
select @modalidad_doc_emp = led_tipos_doc.modalidad
from led_cliente_empleado inner join led_tipos_doc
on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
group by led_tipos_doc.modalidad*/
-- misma única modalidad vencida o adelantada tanto para el contratista como para los empleados
/*select @tipos_hab as tipos_hab,@mod_count as mod_count*/
if (@mod_count = 1) begin
if (@tipos_hab = 0)
-- sin tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_doc.modalidad = @modalidad_doc
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
else
-- con tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
inner join (
/*select 2 as tipo_empleado
union */
select distinct led_tipos_empleado.tipo_empleado
from led_tipos_empleado inner join led_cliente_empleado
on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
where led_tipos_empleado.hab_tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_empleado.cliente = @cliente
group by led_tipos_empleado.tipo_empleado) exclusivos on led_cliente_empleado.tipo_empleado = exclusivos.tipo_empleado
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_doc.modalidad = @modalidad_doc
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
/*select @tipos_hab as tipos_hab,@mod_count as mod_count,@modalidad_doc as modalidad_doc*/
end
else begin
-- contratista tiene modalidad Vencida y adelantada : no hay restricción
if (@mod_count > 1) begin
if (@tipos_hab = 0)
-- sin tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_empleado.hab_tipo_contratista is null
/*and led_cliente_empleado.verificacion=@QuienVerifica */
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
else
-- con tipos exclusivos para el tipo de contratista
select led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
from led_cliente_empleado
inner join clientes on led_cliente_empleado.cliente = clientes.cliente
inner join led_tipos_empleado on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
inner join led_tipos_doc on led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
inner join (select led_tipos_empleado.tipo_empleado
from led_tipos_empleado inner join led_cliente_empleado
on led_cliente_empleado.tipo_empleado = led_tipos_empleado.tipo_empleado
where led_tipos_empleado.hab_tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_empleado.cliente = @cliente
group by led_tipos_empleado.tipo_empleado) exclusivos on led_cliente_empleado.tipo_empleado = exclusivos.tipo_empleado
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.activo = 1
and led_tipos_empleado.hab_tipo_contratista is not null
group by led_cliente_empleado.cliente, led_cliente_empleado.tipo_empleado,
clientes.nombre_cliente, led_tipos_empleado.nombre_tipo_empleado, led_tipos_empleado.hab_tipo_contratista, led_tipos_empleado.es_principal
order by led_tipos_empleado.nombre_tipo_empleado
end
end
end
-- OBTENER TIPOS DE ALTA HABILITADO PARA UN CONTRATISTA Y TIPO DE EMPLEADO
if (@p_contratista is not null AND @p_tipo_empleado is not null) begin
/*select @tipos_hab as tipos_hab,@mod_count as mod_count,@modalidad_doc as modalidad_doc,'AA' AS AA*/
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
select led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
from led_tipos_alta inner join led_cliente_empleado
on led_tipos_alta.tipo_alta = led_cliente_empleado.tipo_alta
where led_cliente_empleado.cliente = @cliente
and led_cliente_empleado.tipo_empleado = @p_tipo_empleado
and led_cliente_empleado.activo = 1
group by led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
order by led_tipos_alta.nombre_tipo_alta
end
END
GO
Depends On
8Used By
No items found