﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetFelhasznaloOsztalyCsoportTantargyakErtekelesekhez]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyCsoportTantargyakErtekelesekhez]
END  
GO

-- =============================================
-- Description:	<Felhasználóhoz köthető osztály/csoport->tantárgy az értékelések szűréséhez>
-- =============================================

CREATE PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyCsoportTantargyakErtekelesekhez]
	@pTanarID INT,
	@pTanevID INT
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
  SELECT 
    ID,
    Nev,
    ''	Tipus
  FROM
  (
	  SELECT DISTINCT
		  CONVERT(VARCHAR(10), osztalyCsoport.ID) + '¤' + CONVERT(VARCHAR(10), tantargy.ID)   ID,
		  osztalyCsoport.C_NEV + ' - ' + 	tantargy.C_Nev	                                  Nev,
		  'TTF'                                  					                          Tipus,
		  evfolyamTipus.C_ORDER                                                               EvfolyamTipusOrder
	  FROM 
		  T_FOGLALKOZAS_OSSZES foglalkozas
		  LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
			  ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
		  LEFT JOIN T_TANTARGY_OSSZES tantargy
			  ON tantargy.ID = foglalkozas.C_TANTARGYID
		  LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo
			  ON felhasznalo.ID = foglalkozas.C_TANARID
		  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTipus
			  ON osztalyCsoport.C_EVFOLYAMTIPUSA = evfolyamTipus.ID AND osztalyCsoport.C_TANEVID = evfolyamTipus.C_TANEVID
	  WHERE 
		  foglalkozas.TOROLT = 'F' AND 
		  foglalkozas.C_TANEVID = @pTanevID AND 
		  foglalkozas.C_TANARID = @pTanarID

    UNION

	  SELECT DISTINCT
		  CONVERT(VARCHAR(10), osztalyCsoport.ID) + '¤' + CONVERT(VARCHAR(10), tantargy.ID)   ID,
		  osztalyCsoport.C_NEV + ' - ' + 	tantargy.C_Nev	                                  Nev,
		  'Saját óra'                            					                          Tipus,
		  evfolyamTipus.C_ORDER                                                               EvfolyamTipusOrder
	  FROM 
		  T_TANITASIORA_OSSZES tanitasiOra
		  LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
			  ON osztalyCsoport.ID = tanitasiOra.C_OSZTALYCSOPORTID
		  LEFT JOIN T_TANTARGY_OSSZES tantargy
			  ON tantargy.ID = tanitasiOra.C_TANTARGYID
		  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTipus
			  ON osztalyCsoport.C_EVFOLYAMTIPUSA = evfolyamTipus.ID AND osztalyCsoport.C_TANEVID = evfolyamTipus.C_TANEVID
	  WHERE 
		  tanitasiOra.TOROLT = 'F' AND 
		  tanitasiOra.C_TANEVID = @pTanevID AND 
		  tanitasiOra.C_ORATULAJDONOSID = @pTanarID	

    UNION

	  SELECT DISTINCT
		  CONVERT(VARCHAR(10), osztalyCsoport.ID) + '¤' + CONVERT(VARCHAR(10), tantargy.ID)   ID,
		  osztalyCsoport.C_NEV + ' - ' + 	tantargy.C_Nev	                                  Nev,
		  'Értékelt óra'                         					                          Tipus,
		  evfolyamTipus.C_ORDER                                                               EvfolyamTipusOrder
	  FROM 
		  T_TANULOERTEKELES_OSSZES ertekeles
		  LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport
			  ON osztalyCsoport.ID = ertekeles.C_OSZTALYCSOPORTID
		  LEFT JOIN T_TANTARGY_OSSZES tantargy
			  ON tantargy.ID = ertekeles.C_TANTARGYID
		  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTipus
			  ON osztalyCsoport.C_EVFOLYAMTIPUSA = evfolyamTipus.ID AND osztalyCsoport.C_TANEVID = evfolyamTipus.C_TANEVID
	  WHERE 
		  ertekeles.TOROLT = 'F' AND 
		  ertekeles.C_TANEVID = @pTanevID AND 
		  ertekeles.C_ERTEKELOID = @pTanarID	
    
    ) innerSelect

    GROUP BY 
      ID, Nev, EvfolyamTipusOrder
    ORDER BY
      EvfolyamTipusOrder

END
