﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

-- =============================================
-- Author:		<Hoffmann Zsolt>
-- Create date: <2016. 03. 03.>
-- Description:	<Felhasználóhoz kötheto tantárgyak és egyéb tantárgyak>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloErintettTargyai]
	@felhasznaloId INT = NULL
AS
BEGIN

	SET NOCOUNT ON;

	WITH q (ID,Nev,Tipus) AS
	(SELECT 
		T_TANTARGY.ID,
		T_TANTARGY.C_NEV Nev,
		'1' Tipus
	FROM 
		T_TANTARGY
			INNER JOIN T_FOGLALKOZAS ON T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID
	WHERE 
		T_TANTARGY.TOROLT = 'F' AND
		T_TANTARGY.C_FOTARGYID IS NULL AND
		(T_FOGLALKOZAS.C_TANARID = @felhasznaloId OR @felhasznaloId IS NULL)
		)
	SELECT ID,Nev,tipus FROM q
	UNION
		SELECT DISTINCT
			T_TANTARGY.ID,
			T_TANTARGY.C_NEV Nev,
			'3' Tipus
		FROM T_TANTARGY
			INNER JOIN T_FOGLALKOZAS ON T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID AND T_FOGLALKOZAS.TOROLT = 'F'
			INNER JOIN T_OSZTALYCSOPORT ON T_OSZTALYCSOPORT.ID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID AND T_OSZTALYCSOPORT.TOROLT = 'F'
			INNER JOIN T_OSZTALY ON T_OSZTALY.ID = T_OSZTALYCSOPORT.ID AND T_OSZTALY.TOROLT = 'F'
		WHERE 
			T_TANTARGY.TOROLT = 'F' 
			AND (T_OSZTALY.C_OSZTALYFONOKID = @felhasznaloId OR T_OSZTALY.C_OFOHELYETTESID = @felhasznaloId)
			AND T_TANTARGY.ID not in (SELECT ID FROM q)
END