dbo.EMPLEADOS_EVENTUALES_

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