﻿-- =============================================
-- Description:  <Előszedjük a tanuló legutolsó 6 évközi értékelését>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[uspGetLegfrissebbTanuloErtekelesDataSet]
GO

CREATE PROCEDURE [dbo].[uspGetLegfrissebbTanuloErtekelesDataSet]
   @pIntezmenyId            INT
  ,@pTanevId              INT
  ,@pTanuloId              INT
  ,@pTipusId              INT
  ,@pKesleltetettMegjelenitesOraszam  INT
AS
BEGIN

  SET NOCOUNT ON;

    SELECT TOP 6
     TanuloErtekeles.ID
      ,TanuloErtekeles.C_ERTEKELESSZOVEG
      ,TanuloErtekeles.C_ERTEKELESOSZTALYZATID
      ,TanuloErtekeles.C_ERTEKELESSZAZALEK
      ,TanuloErtekeles.C_ERTEKELESTEMA
      ,ISNULL(Tantargy.C_ROVIDNEV, Tantargy.C_NEV) AS C_ROVIDNEV
      ,TanuloErtekeles.C_TIPUSID
      ,TanuloErtekeles.C_DATUM
    FROM
      T_TANULOERTEKELES_OSSZES TanuloErtekeles
    INNER JOIN
      T_TANTARGY_OSSZES Tantargy ON
          Tantargy.C_INTEZMENYID        = TanuloErtekeles.C_INTEZMENYID
      AND Tantargy.C_TANEVID          = TanuloErtekeles.C_TANEVID
            AND Tantargy.TOROLT            = 'F'
            AND Tantargy.ID              = TanuloErtekeles.C_TANTARGYID
    WHERE
      TanuloErtekeles.C_INTEZMENYID      = @pIntezmenyId
    AND TanuloErtekeles.C_TANEVID        = @pTanevId
        AND TanuloErtekeles.TOROLT          = 'F'
      AND TanuloErtekeles.C_TANULOID        = @pTanuloId 
        AND TanuloErtekeles.C_TIPUSID        = @pTipusId
    --NOTE: Ha van elküldve értesítés vagy a késleltetetés utánra esik a GETDATE(), akkor adjuk vissza a tanuló értékelést.
        AND (TanuloErtekeles.C_ISERTESITESELKULDVE  = 'T'
     OR DATEADD(HOUR, @pKesleltetettMegjelenitesOraszam, TanuloErtekeles.CREATED) <= GETDATE())
    ORDER BY
      TanuloErtekeles.C_DATUM DESC

END

GO

