sp2CES_ALU_ListarEncuestasPorAplicarByAlumno
----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('sp2CES_ALU_ListarEncuestasPorAplicarByAlumno', 'P') IS NOT NULL
DROP PROC sp2CES_ALU_ListarEncuestasPorAplicarByAlumno
GO
CREATE PROCEDURE [dbo].[sp2CES_ALU_ListarEncuestasPorAplicarByAlumno]
(
@idAlumno BIGINT
/* --------------------------------------------------------------------------------------------------------------
FECHA | AUTOR | DESCRIPCION
23/ago./2017 | Chris López | Hecho para saber que encuestas le falta a un alumno presentar, siempre y cuando estén dentro de una fecha
24/ago./2017 | Luis Bernal | Se agrega función de modificación de fechas para considerar hora de inicio y fin de día.
--------------------------------------------------------------------------------------------------------------*/
)
AS
BEGIN
SET NOCOUNT ON;
SELECT encuestas.idEncuesta ,
encuestas.sEncuesta
FROM ( SELECT DISTINCT
ce.idEncuesta ,
ce.sEncuesta
FROM dbo.Cat_Encuestas AS ce
LEFT JOIN dbo.Ctrl_EncuestasAplicadas AS CEA ON ce.idEncuesta = CEA.idEncuesta
LEFT JOIN dbo.Cat_PersonasReferencia AS cpr ON cpr.idPersonaRef = CEA.idPersona
WHERE ce.bActivo = 1
AND CEA.idPersona = @idAlumno
AND ((GETDATE() BETWEEN dbo.fnModificarHoraFecha(ce.dFechaInicio, 1, '') AND dbo.fnModificarHoraFecha(ce.dFechaFin, 0, '')) OR ce.bRangoFechas = 0)
) contestadas
RIGHT JOIN ( SELECT ce.idEncuesta ,
ce.sEncuesta
FROM dbo.Cat_Encuestas AS ce
INNER JOIN dbo.Ctrl_TipoPersonasEncuesta AS ctpe ON ctpe.idEncuesta = ce.idEncuesta
AND ctpe.idTipoPersonaEncuesta = 1
WHERE (GETDATE() BETWEEN dbo.fnModificarHoraFecha(ce.dFechaInicio, 1, '') AND dbo.fnModificarHoraFecha(ce.dFechaFin, 0, '')) OR ce.bRangoFechas = 0
) encuestas ON encuestas.idEncuesta = contestadas.idEncuesta
WHERE contestadas.idEncuesta IS NULL
END
GO