128 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('[dbo].[sp_PedagogusNemBejegyzettOrai]') IS NOT NULL 
 | 
						|
BEGIN
 | 
						|
  DROP PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai]
 | 
						|
END  
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai]
 | 
						|
	@tanevID		INT,
 | 
						|
	@mindenHeten	INT,
 | 
						|
	@tanarID		INT
 | 
						|
 | 
						|
	AS
 | 
						|
	BEGIN
 | 
						|
		SET NOCOUNT ON;
 | 
						|
 | 
						|
	DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
 | 
						|
 | 
						|
	DECLARE @OsztalyCsoportokTanevRendje TABLE (OsztalyCsoportId INT, Datum DATE, isOrarendiNap NVARCHAR(1))
 | 
						|
	INSERT INTO @OsztalyCsoportokTanevRendje
 | 
						|
	SELECT
 | 
						|
		C_OSZTALYCSOPORTID
 | 
						|
		,C_DATUM 
 | 
						|
		,C_ORARENDINAP
 | 
						|
	FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
 | 
						|
		INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID	
 | 
						|
	WHERE 
 | 
						|
		TOROLT = 'F'
 | 
						|
		AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
 | 
						|
		AND tr.C_ORARENDINAP = 'F'
 | 
						|
 | 
						|
	SELECT  
 | 
						|
		  CONVERT(NVARCHAR(10),ROW_NUMBER() OVER (ORDER BY Napdatuma ))+'.'  COLUMN440
 | 
						|
		 ,FORMAT(Napdatuma, 'yyyy.MM.dd.')	COLUMN273
 | 
						|
		 ,Oraszam							COLUMN274
 | 
						|
		 ,OsztalyNev						COLUMN673
 | 
						|
		 ,TanarNev							COLUMN456
 | 
						|
		 ,TantargyNev						COLUMN252
 | 
						|
		 ,TeremNev							COLUMN2477
 | 
						|
		 ,Hetirend							COLUMN4252
 | 
						|
	FROM (
 | 
						|
		SELECT
 | 
						|
			  naptar.C_NAPDATUMA							Napdatuma
 | 
						|
			 ,oo.C_ORASZAM									Oraszam			
 | 
						|
			 ,ocs.C_NEV										OsztalyNev			
 | 
						|
			 ,f.C_NYOMTATASINEV								TanarNev
 | 
						|
			 ,t.C_NEV										TantargyNev
 | 
						|
			 ,ter.C_NEV										TeremNev
 | 
						|
			 ,d.C_NAME										Hetirend
 | 
						|
		FROM T_ORARENDIORA_OSSZES oo
 | 
						|
		 INNER JOIN T_NAPTARINAP_OSSZES naptar ON ((naptar.C_NAPDATUMA >= oo.C_ORAERVENYESSEGKEZDETE
 | 
						|
								AND oo.C_ORAERVENYESSEGVEGE> naptar.C_NAPDATUMA) OR (naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGVEGE))
 | 
						|
								AND (naptar.C_HETIREND = oo.C_HETIREND OR oo.C_HETIREND = @mindenHeten)
 | 
						|
								AND oo.C_HETNAPJA=naptar.C_HETNAPJA
 | 
						|
								AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
 | 
						|
		 LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = naptar.C_NAPDATUMA AND tr.C_TANEVID = naptar.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
 | 
						|
		 LEFT JOIN @OsztalyCsoportokTanevRendje OsztalyCsoportokTanevRendje ON OsztalyCsoportokTanevRendje.Datum = naptar.C_NAPDATUMA AND OsztalyCsoportokTanevRendje.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID
 | 
						|
		 LEFT JOIN T_TANITASIORA_OSSZES tao ON 
 | 
						|
		    naptar.C_NAPDATUMA=tao.C_DATUM
 | 
						|
			AND tao.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
 | 
						|
			AND tao.C_TANTARGYID = oo.C_TANTARGYID
 | 
						|
			AND oo.C_TANARID IN (SELECT C_TANAROKID FROM T_ORAK_TANAROK WHERE T_ORAK_TANAROK.C_ORAKID = tao.ID 
 | 
						|
									UNION SELECT tao.C_HELYETTESITOTANARID
 | 
						|
									UNION SELECT tao.C_ORATULAJDONOSID)
 | 
						|
			AND tao.C_HETNAPJA = oo.C_HETNAPJA
 | 
						|
			AND tao.C_ORASZAM = oo.C_ORASZAM
 | 
						|
			AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE 
 | 
						|
			AND tao.TOROLT='F'
 | 
						|
		 LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID=oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA
 | 
						|
		 INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID
 | 
						|
		 INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
 | 
						|
		 INNER JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
 | 
						|
		 INNER JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
 | 
						|
		 INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.ID=oo.C_HETIREND
 | 
						|
		WHERE 
 | 
						|
			oo.C_TANEVID=@tanevId
 | 
						|
		   AND oo.TOROLT='F'
 | 
						|
		   AND oo.C_TANARID = @tanarID
 | 
						|
		   AND naptar.C_NAPDATUMA <= IIF(C_VEGZOSEVFOLYAM = 'T' AND @vegzosUtolsoNapDatuma < GETDATE(), @vegzosUtolsoNapDatuma, GETDATE())
 | 
						|
		   AND tao.ID IS NULL
 | 
						|
		   AND hely.ID IS NULL
 | 
						|
		   AND oo.TOROLT='F'
 | 
						|
		   AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
 | 
						|
		   AND oo.C_CSENGETESIRENDORAID IS NOT NULL
 | 
						|
		   AND naptar.C_TANEVID = @tanevID
 | 
						|
		   AND (tr.C_ORARENDINAP = 'T' OR tr.C_ORARENDINAP IS NULL)
 | 
						|
		   AND (OsztalyCsoportokTanevRendje.isOrarendiNap = 'T' OR OsztalyCsoportokTanevRendje.isOrarendiNap IS NULL)
 | 
						|
	
 | 
						|
		UNION
 | 
						|
 | 
						|
		SELECT 
 | 
						|
			 naptar.C_NAPDATUMA
 | 
						|
			 ,oo.C_ORASZAM				
 | 
						|
			 ,ocs.C_NEV					
 | 
						|
			 ,f.C_NYOMTATASINEV			
 | 
						|
			 ,t.C_NEV					
 | 
						|
			 ,ter.C_NEV					
 | 
						|
			 ,d.C_NAME					
 | 
						|
		FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
 | 
						|
				INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID
 | 
						|
				INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID
 | 
						|
				LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
 | 
						|
				LEFT JOIN T_FELHASZNALO_OSSZES fh ON hi.C_HELYETTESTANAROKID = f.ID
 | 
						|
				LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
 | 
						|
				LEFT JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
 | 
						|
				LEFT JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
 | 
						|
				LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID
 | 
						|
		WHERE 
 | 
						|
			 hi.C_HELYETTESITESNAPJA <= IIF(C_VEGZOSEVFOLYAM = 'T', @vegzosUtolsoNapDatuma, GETDATE())
 | 
						|
			AND hi.TOROLT='F'
 | 
						|
			AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
 | 
						|
			AND oo.C_CSENGETESIRENDORAID IS NOT NULL
 | 
						|
			AND oo.TOROLT='F'
 | 
						|
			AND hi.C_HELYETTESTANAROKID = @tanarID
 | 
						|
			AND NOT EXISTS (
 | 
						|
				SELECT 1 FROM T_ORARENDIORA ooo 
 | 
						|
				JOIN T_TANITASIORA tao ON tao.C_ORARENDIORAGROUPID = ooo.C_ORARENDIORAGROUPID AND tao.C_DATUM BETWEEN ooo.C_ORAERVENYESSEGKEZDETE AND ooo.C_ORAERVENYESSEGVEGE 
 | 
						|
				WHERE tao.C_DATUM =  CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND ooo.ID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F'
 | 
						|
			)
 | 
						|
	)orak
 | 
						|
	ORDER BY Napdatuma, Oraszam
 | 
						|
 | 
						|
	END
 | 
						|
GO |