﻿-- =============================================
-- Description:	minden intézmény aktív tanévéből visszaadja a még kinem küldött értékeléseket figyelembe véve a késleltetéseket is
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF EXISTS [dbo].[sp_GetAllSchemaKikuldendoErtekeles]
GO


CREATE PROCEDURE [dbo].[sp_GetAllSchemaKikuldendoErtekeles]
	 @DATUM		DATETIME
	,@EVVEGIJEGY	INT
	,@FELEVIJEGY	INT
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
	SET NOCOUNT ON;
	
select
I.C_AZONOSITO
,I.ID INTEZMENYID
,T.ID TANEVID
,[dbo].[fnGetRendszerbeallitasSelectedValue](7380,I.ID,T.ID) Kesleltetes
,[dbo].[fnGetRendszerbeallitasDateValue](5438,I.ID,T.ID) Felevi_jegyek_megjelenesenek_datuma
,[dbo].[fnGetRendszerbeallitasDateValue](5439,I.ID,T.ID) Ev_vegi_jegyek_megjelenesenek_datuma
,[dbo].[fnGetRendszerbeallitasDateValue](5440,I.ID,T.ID) Ev_vegi_jegyek_megjelenesenek_datuma_vegzos
INTO #temp
from T_TANEV T
INNER JOIN T_INTEZMENY I ON I.TOROLT = 'F' AND T.C_INTEZMENYID = I.ID
where T.C_AKTIV = 'T' AND T.TOROLT = 'F' 

SELECT 
ID
,TanuloNev
,C_AZONOSITO IntezmenyAzonosito
,TanuloId 
,TantargyNev
,C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
,Osztalyzat 
,C_ERTEKELESSZAZALEK ErtekelesSzazalek
,C_ERTEKELESSZOVEG ErtekelesSzoveg
FROM
(SELECT TE.[ID]
,T.C_AZONOSITO
,T.INTEZMENYID INTEZMENYID
,T.TANEVID TANEVID
,CASE WHEN T.Felevi_jegyek_megjelenesenek_datuma <= @DATUM THEN 1 ELSE 0 END FelEviJelgyekMegjelenjenek
,CASE WHEN T.Ev_vegi_jegyek_megjelenesenek_datuma <= @DATUM THEN 1 ELSE 0 END EvVegiJelgyekMegjelenjenek
,CASE WHEN T.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos <= @DATUM THEN 1 ELSE 0 END VegzosEvVegiJelgyekMegjelenjenek
,dateadd(HOUR, T.Kesleltetes, TE.CREATED) KesleltetettDatum
,CASE WHEN OCS.C_VEGZOSEVFOLYAM = 'T' THEN 1 ELSE 0 END Vegzos
,CASE WHEN TE.C_TIPUSID = @EVVEGIJEGY THEN 1 ELSE 0 END EvVegiJegy
,CASE WHEN TE.C_TIPUSID = @FELEVIJEGY THEN 1 ELSE 0 END FelEviJegy
,F.C_NYOMTATASINEV TanuloNev
,TANULO.ID TanuloId
,TARGY.C_NEV TantargyNev
,TE.C_ERTEKELESOSZTALYZATID
,TE.C_ERTEKELESSZAZALEK
,TE.C_ERTEKELESSZOVEG
,TE.C_ERTEKELESSZOVEGROVIDNEV
,DIB.C_NAME Osztalyzat
FROM T_TANULOERTEKELES TE
INNER JOIN #temp T ON TE.C_TANEVID = T.TANEVID 
INNER JOIN T_TANULO TANULO ON TANULO.TOROLT ='F' AND TANULO.ID = TE.C_TANULOID
INNER JOIN T_FELHASZNALO F ON F.TOROLT = 'F' AND TANULO.ID = F.ID
INNER JOIN T_TANULOCSOPORT TCS ON TCS.TOROLT = 'F' AND TANULO.ID = TCS.C_TANULOID AND
	TCS.C_BELEPESDATUM < @DATUM AND (TCS.C_KILEPESDATUM IS NULL OR TCS.C_KILEPESDATUM >= @DATUM)
INNER JOIN T_OSZTALY O ON O.TOROLT = 'F' AND TCS.C_OSZTALYCSOPORTID = O.ID
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.TOROLT = 'F' AND OCS.ID = O.ID
INNER JOIN T_TANTARGY TARGY ON TARGY.TOROLT = 'F' AND TARGY.ID = TE.C_TANTARGYID 
INNER JOIN T_DICTIONARYITEMBASE DIB ON DIB.TOROLT = 'F' AND DIB.C_TANEVID = TE.C_TANEVID AND TE.C_ERTEKELESOSZTALYZATID = DIB.ID            
where TE.TOROLT = 'F' AND TE.C_ISERTESITESELKULDVE = 'F'
)SB
WHERE  SB.KesleltetettDatum <= @DATUM AND (
(EvVegiJegy = 1 AND (SB.Vegzos = 1 AND SB.VegzosEvVegiJelgyekMegjelenjenek = 1) OR (SB.Vegzos = 0 AND EvVegiJelgyekMegjelenjenek = 1))
OR
(FelEviJegy = 1 AND FelEviJelgyekMegjelenjenek = 1)
OR
(EvVegiJegy = 0 AND FelEviJegy = 0)
)

END

GO

