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_contraparte | int | 4 | |
| @si_no | bit | 1 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
declare @resp bit
exec [EMPLEADOS_EVENTUALES_] 147326, @resp output
select @resp
*/
CREATE OR ALTER PROCEDURE dbo.EMPLEADOS_EVENTUALES_
@p_contraparte int,
@si_no bit output
AS
BEGIN
SET NOCOUNT ON;
declare @contratista int
declare @empleado int
declare @hay bit = 0
declare @periodo int
select @contratista = LN_contrapartes.id_imperium
from LN_contrapartes
where LN_contrapartes.contraparte = @p_contraparte
DECLARE C_empleados CURSOR FOR
select led_empleados.empleado, max(led_empleados_periodo.periodo) -- Si tiene acceso serĂ¡ el mes actual, si no sera el mes vencido
from led_empleados
inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
where led_empleados.contratista_1 = @contratista
and led_empleados.estado_empleado = 'A'
and led_empleados_periodo.periodo in (dbo.PeriodoVencido(), dbo.PeriodoAdelantado())
group by led_empleados.empleado
OPEN C_empleados
FETCH NEXT FROM C_empleados INTO @empleado, @periodo
WHILE @@FETCH_STATUS = 0
BEGIN
if exists (select *
from led_docs
inner join led_campos_doc on (led_campos_doc.doc_id = led_docs.doc_id and campo_tipo_doc = 2)
where led_docs.tipo_doc = 346
and contratista_1 = @contratista
and empleado = @empleado
and led_docs.estado_doc = 'V'
and led_docs.periodo = @periodo
and led_campos_doc.valor_fecha is not null
)
begin
set @hay = 1
break
end
FETCH NEXT FROM C_empleados INTO @empleado, @periodo
END
CLOSE C_empleados
DEALLOCATE C_empleados
set @si_no = @hay
END
GO
GO
/*
declare @resp bit
exec [EMPLEADOS_EVENTUALES_] 147326, @resp output
select @resp
*/
CREATE OR ALTER PROCEDURE dbo.EMPLEADOS_EVENTUALES_
@p_contraparte int,
@si_no bit output
AS
BEGIN
SET NOCOUNT ON;
declare @contratista int
declare @empleado int
declare @hay bit = 0
declare @periodo int
select @contratista = LN_contrapartes.id_imperium
from LN_contrapartes
where LN_contrapartes.contraparte = @p_contraparte
DECLARE C_empleados CURSOR FOR
select led_empleados.empleado, max(led_empleados_periodo.periodo) -- Si tiene acceso serĂ¡ el mes actual, si no sera el mes vencido
from led_empleados
inner join led_empleados_periodo on led_empleados.empleado = led_empleados_periodo.empleado
where led_empleados.contratista_1 = @contratista
and led_empleados.estado_empleado = 'A'
and led_empleados_periodo.periodo in (dbo.PeriodoVencido(), dbo.PeriodoAdelantado())
group by led_empleados.empleado
OPEN C_empleados
FETCH NEXT FROM C_empleados INTO @empleado, @periodo
WHILE @@FETCH_STATUS = 0
BEGIN
if exists (select *
from led_docs
inner join led_campos_doc on (led_campos_doc.doc_id = led_docs.doc_id and campo_tipo_doc = 2)
where led_docs.tipo_doc = 346
and contratista_1 = @contratista
and empleado = @empleado
and led_docs.estado_doc = 'V'
and led_docs.periodo = @periodo
and led_campos_doc.valor_fecha is not null
)
begin
set @hay = 1
break
end
FETCH NEXT FROM C_empleados INTO @empleado, @periodo
END
CLOSE C_empleados
DEALLOCATE C_empleados
set @si_no = @hay
END
GO