Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
4| Name | Data Type | Length | Description |
|---|---|---|---|
| @IDCliente | int | 4 | |
| @pEmpleado | int | 4 | |
| @periodo | int | 4 | |
| @Modalidad | varchar | 1 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec Imperium_Multi_Carga_Docs_Empleados 1226057645,134758,202203,'V'
exec Imperium_Multi_Carga_Docs_Empleados 9936068,75002,202209,'A'
select * from led_docs where empleado =75002 and periodo in (202208,202209) order by periodo desc
select * from led_tipos_doc where tipo_doc in (735,754,705,704,735,705,704,884,376,367,346)
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_Multi_Carga_Docs_Empleados
@IDCliente int,
@pEmpleado int,
@periodo int,
@Modalidad varchar(1)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ERRORNUMBER SMALLINT
DECLARE @tipo_doc INT,@estado_doc VARCHAR(1),@led_seccion VARCHAR(1),@cliente INT,@contratista INT,@empleado INT,@vehiculo INT
DECLARE @contratista_1 INT,@insertado DATETIME,@fecha_tolerancia DATETIME,@compliance_doc VARCHAR(1),@fecha_vigencia DATETIME,@doc_log VARCHAR(150),@grupo_doc INT
DECLARE @doc_id_lista INT
DECLARE LedCargaDocs Cursor
FOR
/*
declare @IDCliente int = 9936068
declare @pEmpleado int = 171484
declare @periodo int = 202411
declare @Modalidad varchar(1) = 'V'
*/
SELECT distinct led_tipos_doc.tipo_doc,
led_cliente_empleado.estado_inicial as estado_doc,
led_tipos_doc.led_seccion,
led_empleados.cliente,
led_empleados.contratista,
led_empleados.empleado as empleado,
null as vehiculo,
@periodo AS periodo,
led_empleados.contratista_1,
GETDATE() as insertado,
iif(@Modalidad = 'A',dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_empleado.dias_tolerancia,0) + getdate(),111)),dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_empleado.dias_tolerancia,0) + getdate(),111))) as fecha_tolerancia,
/*
led_cliente_contratista.estado_inicial as compliance_doc,
*/
iif(led_cliente_empleado.estado_inicial='N','B',iif(led_cliente_empleado.estado_inicial='R','R',iif(led_cliente_empleado.estado_inicial='V','V',iif(led_cliente_empleado.estado_inicial='I','A','B')))) as compliance_doc,
NULL as fecha_vigencia,
convert(varchar(16),getdate(),120) + ' ALTA DE DOCUMENTOS DE EMPLEADOS' AS doc_log,
/* AGB 5 DE ABRIL DE 2022 POR BBVA IMPERIUM SETUP led_grupo_tipo_doc.grupo_doc,*/
0 AS grupo_doc,
led_tipos_doc.tipo_doc_lista as doc_id_lista
FROM led_empleados
INNER JOIN led_cliente_empleado ON (led_empleados.cliente = led_cliente_empleado.cliente
AND led_cliente_empleado.tipo_empleado = led_empleados.tipo_empleado)
/*
16 / 12 / 2020 VER DE REACTIVAR
AND led_cliente_empleado.tipo_empleado IN (select DISTINCT tipo_empleado
from led_empleado_multi where activo in (1,0)
and vigencia_desde >= getdate() -3000 and (vigencia_hasta is null or getdate() < vigencia_hasta) and empleado = @pEmpleado))
*/
INNER JOIN clientes ON led_empleados.cliente = clientes.cliente
inner JOIN led_tipos_doc ON led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
/* AGB 5 DE ABRIL DE 2022 POR BBVA IMPERIUM SETUP
inner join led_grupo_tipo_doc ON led_cliente_empleado.tipo_doc = led_grupo_tipo_doc.tipo_doc
inner join led_grupos_doc on led_grupo_tipo_doc.grupo_doc = led_grupos_doc.grupo_doc
*/
INNER JOIN led_empleados_periodo on (led_empleados.contratista = led_empleados_periodo.contratista and led_empleados_periodo.periodo = @periodo)
WHERE (clientes.cliente = @IDCliente)
AND (led_cliente_empleado.activo = 1)
and (ISNULL(led_tipos_doc.doc_alta,0) = 0 or (led_tipos_doc.doc_alta = 1 ) )
and ISNULL(led_tipos_doc.doc_baja,0) = 0
and led_empleados.estado_empleado = 'A'
/* AGB 5 DE ABRIL DE 2022 POR BBVA IMPERIUM SETUP and led_grupos_doc.cliente = @IDCliente*/
and led_cliente_empleado.cliente = @IDCliente
and led_tipos_doc.modalidad = @Modalidad
AND led_empleados.empleado = @pEmpleado
AND led_empleados_periodo.empleado = @pEmpleado
DECLARE @dbDocID BIGINT = 0
Open LedCargaDocs
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
While (@@FETCH_STATUS = 0)
BEGIN
/*
SELECT 'A',@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
SET @dbDocID = 0
DELETE from led_docs
where tipo_doc = @tipo_doc
and periodo = @periodo
and led_seccion = @led_seccion
and contratista = @contratista
and empleado = @empleado
AND estado_doc NOT IN ('N','I','V','R')
select @dbDocID = doc_id from led_docs
where tipo_doc = @tipo_doc
and periodo = @periodo
and led_seccion = @led_seccion
and contratista = @contratista
and empleado = @empleado
IF (@dbDocID = 0)
/*
select @dbDocID as dbDocID
*/
BEGIN
BEGIN TRY
insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,
doc_id_lista
)
values
(@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista)
END TRY
BEGIN CATCH
/* SET @ERRORNUMBER = 1
SELECT @ERRORNUMBER,@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc
select 'insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,doc_id_lista
)
values'select @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
END CATCH
END
/*
exec Imperium_Multi_Compliance_Periodo_Contratista @periodo,@contratista,@led_seccion
*/
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
END
CLOSE LedCargaDocs
DEALLOCATE LedCargaDocs
END
GO
GO
/*
exec Imperium_Multi_Carga_Docs_Empleados 1226057645,134758,202203,'V'
exec Imperium_Multi_Carga_Docs_Empleados 9936068,75002,202209,'A'
select * from led_docs where empleado =75002 and periodo in (202208,202209) order by periodo desc
select * from led_tipos_doc where tipo_doc in (735,754,705,704,735,705,704,884,376,367,346)
*/
CREATE OR ALTER PROCEDURE dbo.Imperium_Multi_Carga_Docs_Empleados
@IDCliente int,
@pEmpleado int,
@periodo int,
@Modalidad varchar(1)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ERRORNUMBER SMALLINT
DECLARE @tipo_doc INT,@estado_doc VARCHAR(1),@led_seccion VARCHAR(1),@cliente INT,@contratista INT,@empleado INT,@vehiculo INT
DECLARE @contratista_1 INT,@insertado DATETIME,@fecha_tolerancia DATETIME,@compliance_doc VARCHAR(1),@fecha_vigencia DATETIME,@doc_log VARCHAR(150),@grupo_doc INT
DECLARE @doc_id_lista INT
DECLARE LedCargaDocs Cursor
FOR
/*
declare @IDCliente int = 9936068
declare @pEmpleado int = 171484
declare @periodo int = 202411
declare @Modalidad varchar(1) = 'V'
*/
SELECT distinct led_tipos_doc.tipo_doc,
led_cliente_empleado.estado_inicial as estado_doc,
led_tipos_doc.led_seccion,
led_empleados.cliente,
led_empleados.contratista,
led_empleados.empleado as empleado,
null as vehiculo,
@periodo AS periodo,
led_empleados.contratista_1,
GETDATE() as insertado,
iif(@Modalidad = 'A',dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_empleado.dias_tolerancia,0) + getdate(),111)),dateadd(ms,-3,Convert(varchar(10),isnull(led_cliente_empleado.dias_tolerancia,0) + getdate(),111))) as fecha_tolerancia,
/*
led_cliente_contratista.estado_inicial as compliance_doc,
*/
iif(led_cliente_empleado.estado_inicial='N','B',iif(led_cliente_empleado.estado_inicial='R','R',iif(led_cliente_empleado.estado_inicial='V','V',iif(led_cliente_empleado.estado_inicial='I','A','B')))) as compliance_doc,
NULL as fecha_vigencia,
convert(varchar(16),getdate(),120) + ' ALTA DE DOCUMENTOS DE EMPLEADOS' AS doc_log,
/* AGB 5 DE ABRIL DE 2022 POR BBVA IMPERIUM SETUP led_grupo_tipo_doc.grupo_doc,*/
0 AS grupo_doc,
led_tipos_doc.tipo_doc_lista as doc_id_lista
FROM led_empleados
INNER JOIN led_cliente_empleado ON (led_empleados.cliente = led_cliente_empleado.cliente
AND led_cliente_empleado.tipo_empleado = led_empleados.tipo_empleado)
/*
16 / 12 / 2020 VER DE REACTIVAR
AND led_cliente_empleado.tipo_empleado IN (select DISTINCT tipo_empleado
from led_empleado_multi where activo in (1,0)
and vigencia_desde >= getdate() -3000 and (vigencia_hasta is null or getdate() < vigencia_hasta) and empleado = @pEmpleado))
*/
INNER JOIN clientes ON led_empleados.cliente = clientes.cliente
inner JOIN led_tipos_doc ON led_cliente_empleado.tipo_doc = led_tipos_doc.tipo_doc
/* AGB 5 DE ABRIL DE 2022 POR BBVA IMPERIUM SETUP
inner join led_grupo_tipo_doc ON led_cliente_empleado.tipo_doc = led_grupo_tipo_doc.tipo_doc
inner join led_grupos_doc on led_grupo_tipo_doc.grupo_doc = led_grupos_doc.grupo_doc
*/
INNER JOIN led_empleados_periodo on (led_empleados.contratista = led_empleados_periodo.contratista and led_empleados_periodo.periodo = @periodo)
WHERE (clientes.cliente = @IDCliente)
AND (led_cliente_empleado.activo = 1)
and (ISNULL(led_tipos_doc.doc_alta,0) = 0 or (led_tipos_doc.doc_alta = 1 ) )
and ISNULL(led_tipos_doc.doc_baja,0) = 0
and led_empleados.estado_empleado = 'A'
/* AGB 5 DE ABRIL DE 2022 POR BBVA IMPERIUM SETUP and led_grupos_doc.cliente = @IDCliente*/
and led_cliente_empleado.cliente = @IDCliente
and led_tipos_doc.modalidad = @Modalidad
AND led_empleados.empleado = @pEmpleado
AND led_empleados_periodo.empleado = @pEmpleado
DECLARE @dbDocID BIGINT = 0
Open LedCargaDocs
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
While (@@FETCH_STATUS = 0)
BEGIN
/*
SELECT 'A',@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
SET @dbDocID = 0
DELETE from led_docs
where tipo_doc = @tipo_doc
and periodo = @periodo
and led_seccion = @led_seccion
and contratista = @contratista
and empleado = @empleado
AND estado_doc NOT IN ('N','I','V','R')
select @dbDocID = doc_id from led_docs
where tipo_doc = @tipo_doc
and periodo = @periodo
and led_seccion = @led_seccion
and contratista = @contratista
and empleado = @empleado
IF (@dbDocID = 0)
/*
select @dbDocID as dbDocID
*/
BEGIN
BEGIN TRY
insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,
doc_id_lista
)
values
(@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista)
END TRY
BEGIN CATCH
/* SET @ERRORNUMBER = 1
SELECT @ERRORNUMBER,@tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc
select 'insert into led_docs (
tipo_doc,
estado_doc,
led_seccion,
cliente,
contratista,
empleado,
vehiculo,
periodo,
contratista_1,
insertado,
fecha_tolerancia,
compliance_doc,
fecha_vigencia,
doc_log,
grupo_doc,doc_id_lista
)
values'select @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
*/
END CATCH
END
/*
exec Imperium_Multi_Compliance_Periodo_Contratista @periodo,@contratista,@led_seccion
*/
Fetch NEXT FROM LedCargaDocs INTO @tipo_doc,@estado_doc,@led_seccion,@cliente,@contratista,@empleado,@vehiculo,@periodo,@contratista_1,@insertado,@fecha_tolerancia,@compliance_doc,@fecha_vigencia,@doc_log,@grupo_doc,@doc_id_lista
END
CLOSE LedCargaDocs
DEALLOCATE LedCargaDocs
END
GO
Depends On
6Used By
15- dbo.Imperium_Inicio_Periodo_Multi
- dbo.Imperium_Regeneracion_Documentacion
- dbo.Imperium_Regeneracion_Documentacion_11
- dbo.Imperium_Regeneracion_Documentacion_Adelantada
- dbo.Imperium_Regeneracion_Documentacion_Cliente
- dbo.Imperium_Regeneracion_Documentacion_OD
- dbo.Imperium_Regeneracion_Documentacion_OD_Original
- dbo.Imperium_Regeneracion_Documentacion_Vencida
- dbo.Imperium_Regeneracion_Documentacion30Min
- dbo.Imperium_Regeneracion_Documentacion30Min_DEV
- dbo.Imperium_Regeneracion_DocumentacionXCliente
- dbo.Imperium_Regeneracion_Inicio_Mes
- dbo.Imperium_Regeneracion_Nati
- dbo.Imperium_replicar_nomina
- dbo.Imperium_vista_contratista_Alta_Empleado