EXEC EventosExternos_Reporte_Incidencias
SELECT rut_externo FROM EVENTOS_EXTERNOS
WHERE fecha_hora_generacion >= (select getdate()-1)
DECLARE @FechaInicio FECHA_HORA
DECLARE @FechaTermino FECHA_HORA
SELECT @FechaInicio = DATEADD(HOUR, 3, CAST(CAST(getdate()-1 AS DATE) AS DATETIME))
SELECT @FechaTermino = DATEADD(HOUR, 3, CAST(CAST(getdate() AS DATE) AS DATETIME))
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM EVENTOS_EXTERNOS
WHERE fecha_hora_generacion between @FechaInicio AND @FechaTermino
SELECT * FROM EVENTOS_EXTERNOS ORDER BY fecha_hora_generacion DESC
DELETE FROM EVENTOS_EXTERNOS WHERE fecha_hora_evento='2022-01-19 00:05:00.000'
INSERT INTO EVENTOS_EXTERNOS
VALUES ('E','1','2022-01-19 00:05:00.000','e','1',NULL,'013.508.483-2','2022-01-19 00:05:00.000', NULL,NULL,NULL,NULL)
INSERT INTO EVENTOS_EXTERNOS
VALUES ('S','1','2022-01-19 03:00:00.000','e','1',NULL,'013.508.483-2','2022-01-19 03:00:00.000', NULL,NULL,NULL,NULL)
INSERT INTO EVENTOS_EXTERNOS
VALUES ('S','1','2022-01-19 03:01:00.000','e','1',NULL,'013.508.483-2','2022-01-19 03:01:00.000', NULL,NULL,NULL,NULL)
datos enviados por evelyn
select * from IDENT_SOLICITUD_INGRESO a
INNER JOIN NOMINA_INGRESO b on a.numero_solicitud = b.numero_solicitud
WHERE b.fecha_inicio >= '2022-01-01'
Código centro 68 es subcontrato.
select subcontrato from PARAMETRO_SEGUR
-------------------------------------------------------------------------
-- AUTORIZACION INGRESO X EMPRESA X ACTIVIDAD
SELECT * FROM IDENT_SOLICITUD_INGRESO
WHERE rut_usuario = '011.986.276-0'
ORDER BY fecha_proceso DESC
-- NOMINA AUTORIZADA X TRABAJADOR DE EMPRESA EXTERNA
SELECT * FROM NOMINA_INGRESO
WHERE rut_empleado = '011.986.276-0'
ORDER BY fecha_inicio DESC
-- LISTA DE EVENTOS EXTERNOS TRABAJADORES
SELECT * FROM EVENTOS_EXTERNOS
WHERE rut_externo = '011.986.276-0'
ORDER BY fecha_hora_generacion DESC
-- PRESENCIA ES SOLO PARA EMPLEADOS
SELECT TOP(20) * FROM PRESENCIA_ACCESO
WHERE rut_empleado = '011.986.276-0'
ORDER BY fecha_hora_entrada_real DESC
SELECT * FROM PRESENCIA_EXTERNO
-------------------------------------------------------------------------------------------------
CREATE PROCEDURE EventosExternos_Reporte_Incidencias
DECLARE @MensajeError DESCRIPCION_EXTRA
DECLARE @lista_rut table (rut_externo RUT NULL)
DECLARE @rut_busqueda RUT
DECLARE @lista_eventos_diaria table (tipo_evento DESCRIPCION_10 NULL, fecha_hora_evento FECHA_HORA NULL, rut_externo RUT NULL)
DECLARE @lista_eventos_por_trabajador table (tipo_evento DESCRIPCION_10 NULL, fecha_hora_evento FECHA_HORA NULL, rut_externo RUT NULL)
DECLARE @lista_eventos_nomina_incidentes table (tipo_evento DESCRIPCION_10 NULL, fecha_hora_evento FECHA_HORA NULL, rut_externo RUT NULL)
DECLARE @TotalEntrada CANTIDAD
DECLARE @TotalSalida CANTIDAD
DECLARE @TotalEventos CANTIDAD
DECLARE @FechaInicio FECHA_HORA
DECLARE @FechaTermino FECHA_HORA
SELECT @FechaInicio = DATEADD(HOUR, 3, CAST(CAST(getdate()-1 AS DATE) AS DATETIME))
SELECT @FechaTermino = DATEADD(HOUR, 3, CAST(CAST(getdate() AS DATE) AS DATETIME))
-- CREACION LISTA TEMPORAL EVENTOS DEL DÍA ANTERIOR 3AM HASTA HOY 3AM
INSERT @lista_eventos_diaria
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM EVENTOS_EXTERNOS
WHERE fecha_hora_generacion between @FechaInicio AND @FechaTermino
-- CREACION LISTA CON RUT
SELECT rut_externo FROM @lista_eventos_diaria
-- INICIA WHILE HASTA QUE NO HAYAN RUT EN LA LISTA
WHILE (SELECT COUNT(rut_externo) FROM @lista_rut) > 0
-- CREACION LISTA CON EVENTOS INDIVIDUAL
SELECT @rut_busqueda = (SELECT TOP(1) rut_externo FROM @lista_rut)
DELETE FROM @lista_rut WHERE rut_externo=@rut_busqueda
INSERT @lista_eventos_por_trabajador
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_diaria
WHERE rut_externo = @rut_busqueda
-- INICIA WHILE HASTA QUE NO HAYAN EVENTOS DEL TRABAJADOR
SELECT @TotalEventos = COUNT(rut_externo) FROM @lista_eventos_por_trabajador
-- CASO DE EVENTOS IMPARES
INSERT @lista_eventos_nomina_incidentes
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_por_trabajador
--PRINT(@lista_eventos_nomina_incidentes)
DELETE FROM @lista_eventos_por_trabajador
-- -- CASO DE EVENTOS CON TARJETA NO ACTIVADA - NO AUTORIZADA
IF EXISTS (SELECT 1 FROM @lista_eventos_por_trabajador WHERE tipo_evento IN ('?','N'))
INSERT @lista_eventos_nomina_incidentes
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_por_trabajador
DELETE FROM @lista_eventos_por_trabajador
-- CASO DE EVENTOS CON 2 O MÁS REGISTROS PARES
SELECT @TotalEntrada = COUNT(tipo_evento) FROM @lista_eventos_por_trabajador WHERE tipo_evento IN ('I','E')
SELECT @TotalSalida = COUNT(tipo_evento) FROM @lista_eventos_por_trabajador WHERE tipo_evento IN ('O','S')
IF (@TotalEntrada!=@TotalSalida)
INSERT @lista_eventos_nomina_incidentes
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_por_trabajador
DELETE FROM @lista_eventos_por_trabajador
DELETE FROM @lista_eventos_por_trabajador
SELECT @TotalEventos = COUNT(rut_externo) FROM @lista_eventos_por_trabajador
SELECT * FROM @lista_eventos_nomina_incidentes
SELECT @MensajeError = ERROR_MESSAGE()
THROW 50001, @MensajeError, 1;
EXEC EventosExternos_Reporte_Incidencias
SELECT rut_externo FROM EVENTOS_EXTERNOS
WHERE fecha_hora_generacion >= (select getdate()-1)
ALTER PROCEDURE EventosExternos_Reporte_Incidencias
DECLARE @MensajeError DESCRIPCION_EXTRA
DECLARE @lista_rut table (rut_externo RUT NULL)
DECLARE @rut_busqueda RUT
DECLARE @lista_eventos_diaria table (tipo_evento DESCRIPCION_10 NULL, fecha_hora_evento FECHA_HORA NULL, rut_externo RUT NULL)
DECLARE @lista_eventos_por_trabajador table (tipo_evento DESCRIPCION_10 NULL, fecha_hora_evento FECHA_HORA NULL, rut_externo RUT NULL)
DECLARE @lista_eventos_nomina_incidentes table (tipo_evento DESCRIPCION_10 NULL, fecha_hora_evento FECHA_HORA NULL, rut_externo RUT NULL)
DECLARE @TotalEntrada CANTIDAD
DECLARE @TotalSalida CANTIDAD
DECLARE @TotalEventos CANTIDAD
-- CREACION LISTA TEMPORAL EVENTOS DEL DÍA ANTERIOR 3AM HASTA HOY 3AM
INSERT @lista_eventos_diaria
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM EVENTOS_EXTERNOS
WHERE fecha_hora_generacion >= (select getdate()-1)
-- CREACION LISTA CON RUT
SELECT rut_externo FROM @lista_eventos_diaria
-- INICIA WHILE HASTA QUE NO HAYAN RUT EN LA LISTA
WHILE (SELECT COUNT(rut_externo) FROM @lista_rut) > 0
-- CREACION LISTA CON EVENTOS INDIVIDUAL
SELECT @rut_busqueda = (SELECT TOP(1) rut_externo FROM @lista_rut)
DELETE FROM @lista_rut WHERE rut_externo=@rut_busqueda
INSERT @lista_eventos_por_trabajador
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_diaria
WHERE rut_externo = @rut_busqueda
-- INICIA WHILE HASTA QUE NO HAYAN EVENTOS DEL TRABAJADOR
select @TotalEventos = COUNT(rut_externo) FROM @lista_eventos_por_trabajador
-- CASO DE EVENTOS IMPARES
INSERT @lista_eventos_nomina_incidentes
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_por_trabajador
--PRINT(@lista_eventos_nomina_incidentes)
DELETE FROM @lista_eventos_por_trabajador
-- CASO DE EVENTOS CON TARJETA NO ACTIVADA - NO AUTORIZADA
IF EXISTS (SELECT 1 FROM @lista_eventos_por_trabajador WHERE tipo_evento IN ('?','N'))
INSERT @lista_eventos_nomina_incidentes
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_por_trabajador
DELETE FROM @lista_eventos_por_trabajador
-- CASO DE EVENTOS CON 2 O MÁS REGISTROS PARES
SELECT @TotalEntrada = COUNT(tipo_evento) FROM @lista_eventos_por_trabajador WHERE tipo_evento IN ('I','E')
SELECT @TotalSalida = COUNT(tipo_evento) FROM @lista_eventos_por_trabajador WHERE tipo_evento IN ('O','S')
IF (@TotalEntrada!=@TotalSalida)
INSERT @lista_eventos_nomina_incidentes
SELECT tipo_evento, fecha_hora_evento, rut_externo FROM @lista_eventos_por_trabajador
DELETE FROM @lista_eventos_por_trabajador
SELECT * FROM @lista_eventos_nomina_incidentes
SELECT @MensajeError = ERROR_MESSAGE()
THROW 50001, @MensajeError, 1;