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
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
Depends On
4Used By
No items found