dbo.Imperium_replicar_nomina

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@contratista bigint 8
@periodo_de int 4
@periodo_a int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

-- =============================================
-- Author: Marita Soria
-- Create date: 26-01-2024
-- Description: Replica la nomina de empleados de un periodo en otro y crea los documentos de esos empleados para ese periodo
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_replicar_nomina 
 @contratista bigint, 
 @periodo_de int, 
 @periodo_a int 
AS
BEGIN
 SET NOCOUNT ON;

 insert into led_empleados_periodo (empleado, contratista, tipo_alta, tipo_baja, periodo, 
            contratista_1, fecha_afectacion, ratificado_por, fecha_ratificado)
 select empleado, contratista, tipo_alta, tipo_baja, @periodo_a as periodo, 
     contratista_1, getdate() as fecha_afectacion, ratificado_por, fecha_ratificado
   from led_empleados_periodo 
  where contratista = @contratista and periodo = @periodo_de

 -- Carga documentos para cada empleado 
 declare @cliente bigint = (select cliente from led_contratistas where contratista = @contratista)
 declare @empleado bigint
 DECLARE C_Cursor CURSOR FOR
  select led_empleados_periodo.empleado 
    from led_empleados_periodo 
    inner join led_empleados on led_empleados.empleado = led_empleados_periodo.empleado
   where led_empleados_periodo.contratista = @contratista and 
         led_empleados_periodo.periodo = @periodo_a and 
      led_empleados.estado_empleado = 'A'
 OPEN C_Cursor
 FETCH NEXT FROM C_Cursor INTO @empleado
 WHILE @@fetch_status = 0
 BEGIN 
  exec Imperium_Multi_Carga_Docs_Empleados @cliente,@empleado,@periodo_a,'V'
  exec Imperium_Multi_Carga_Docs_Empleados @cliente,@empleado,@periodo_a,'A'
  FETCH NEXT FROM C_Cursor INTO @empleado
 END 
 CLOSE C_Cursor
 DEALLOCATE C_Cursor 


END
GO

Used By

No items found