FITOMN of AM v3
8/24/2017 - 10:20 PM

sp2CES_ALU_ListarEncuestasPorAplicarByAlumno

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