103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
IF OBJECT_ID('dbo.fnGetTanorakNevekkel') IS NOT NULL BEGIN
 | 
						|
  DROP FUNCTION dbo.fnGetTanorakNevekkel
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
-- A Funkció visszaadja egy pedagógus, egy osztály vagy csoport, egy tantárgy vagy egy terem minden 
 | 
						|
-- naplózatlan, naplózott, megtartott és nem-megtartott, helyettesített, vagy akármilyen óráját 
 | 
						|
-- egy megadott időszakra
 | 
						|
CREATE FUNCTION dbo.fnGetTanorakNevekkel 
 | 
						|
	( 
 | 
						|
		@tanevId INT,					-- Kötelezően átadandó
 | 
						|
		@kezdoDatum DATETIME = NULL, 	-- NULL esetén az adott tanév első napjától vizsgálja
 | 
						|
		@vegDatum DATETIME = NULL,		-- NULL esetén az adott tanév utolsó napjáig vizsgálja
 | 
						|
		@tanarId INT = NULL,			-- NULL esetén minden pedagógus órái lejönnek
 | 
						|
		@tantargyId INT = NULL,			-- NULL esetén minden pedagógus órái lejönnek
 | 
						|
		@teremId INT = NULL,			-- NULL esetén minden pedagógus órái lejönnek
 | 
						|
		@osztalycsoportId INT = NULL,	-- NULL esetén minden osztály vagy csoport órái lejönnek
 | 
						|
		@isKapcsolodoCsoportok BIT = 0	-- 1 esetén az osztály vagy csoport kapcsolódó osztályait is csoportojait is lehozza, 
 | 
						|
										-- 		csak akkor értelmezhető, ha van @osztalycsoportId is.
 | 
						|
	)
 | 
						|
RETURNS @retTable TABLE (
 | 
						|
   OraDatuma 			DATETIME,
 | 
						|
   OraKezdete 			DATETIME,
 | 
						|
   OraVege 				DATETIME,
 | 
						|
   HetNapjaId 			INT,
 | 
						|
   CsengetesiRendId 	INT,
 | 
						|
   CsengetesiRendOraId 	INT,
 | 
						|
   HetirendId			INT,
 | 
						|
   Oraszam 				INT,
 | 
						|
   OraTulajdonosId 		INT,
 | 
						|
   TanarId 				INT,
 | 
						|
   HelyettesitoId 		INT,
 | 
						|
   OsztalyCsoportId 	INT,
 | 
						|
   TantargyId 			INT,
 | 
						|
   TeremId 				INT,
 | 
						|
   IsHelyettesitett 	CHAR,
 | 
						|
   IsNaplozott 			CHAR,
 | 
						|
   IsMobilNaplozott 	CHAR,
 | 
						|
   IsElmaradt 			CHAR,
 | 
						|
   IsOrarendNelkul 		CHAR,
 | 
						|
   OrarendiOraId		INT,
 | 
						|
   TanitasiOraId		INT,
 | 
						|
   TanarNev				nvarchar(1000),
 | 
						|
   HelyettesitoNev		nvarchar(1000),
 | 
						|
   OsztalyCsoportNev	nvarchar(1000),
 | 
						|
   TantargyNev			nvarchar(1000),
 | 
						|
   TeremNev				nvarchar(1000),
 | 
						|
   HetirendNev			nvarchar(1000)
 | 
						|
)
 | 
						|
BEGIN  
 | 
						|
	
 | 
						|
	INSERT INTO @retTable (	
 | 
						|
		OraDatuma, OraKezdete, OraVege, HetNapjaId, CsengetesiRendId, CsengetesiRendOraId, Oraszam, HetirendId, 
 | 
						|
		OraTulajdonosId, TanarId, HelyettesitoId, OsztalyCsoportId, TantargyId, TeremId, 
 | 
						|
		IsHelyettesitett, IsNaplozott, IsMobilNaplozott, IsElmaradt, IsOrarendNelkul, OrarendiOraId, TanitasiOraId,
 | 
						|
		TanarNev, HelyettesitoNev, OsztalyCsoportNev, TantargyNev, TeremNev, HetirendNev)
 | 
						|
	SELECT 
 | 
						|
		-- Időszak adatok
 | 
						|
		orarend.OraDatuma,
 | 
						|
		orarend.OraKezdete,
 | 
						|
		orarend.OraVege,
 | 
						|
		orarend.HetNapjaId,
 | 
						|
		orarend.CsengetesiRendId,
 | 
						|
		orarend.CsengetesiRendOraId,
 | 
						|
		orarend.Oraszam,
 | 
						|
		orarend.HetirendId,
 | 
						|
		-- Kapcsolati adatok
 | 
						|
		orarend.OraTulajdonosId,
 | 
						|
		orarend.TanarId,
 | 
						|
		orarend.HelyettesitoId,
 | 
						|
		orarend.OsztalyCsoportId,
 | 
						|
		orarend.TantargyId,
 | 
						|
		orarend.TeremId,
 | 
						|
		-- Egyéb adatok
 | 
						|
		orarend.IsHelyettesitett,
 | 
						|
		orarend.IsNaplozott,
 | 
						|
		orarend.IsMobilNaplozott,
 | 
						|
		orarend.IsElmaradt,
 | 
						|
		orarend.IsOrarendNelkul,
 | 
						|
		orarend.OrarendiOraId,
 | 
						|
		orarend.TanitasiOraId,
 | 
						|
		-- Név adatok
 | 
						|
		ISNULL(tanar.C_NYOMTATASINEV,''),
 | 
						|
		ISNULL(helyettesito.C_NYOMTATASINEV,''),
 | 
						|
		ISNULL(osztalycsoport.C_NEV,''),
 | 
						|
		ISNULL(tantargy.C_NEV,''),
 | 
						|
		ISNULL(terem.C_NEV,''),
 | 
						|
		ISNULL(hetirend.C_NAME,'')
 | 
						|
	FROM fnGetTanorak(@tanevId,@kezdoDatum,@vegDatum,@tanarId,@tantargyId,@teremId,@osztalycsoportId,@isKapcsolodoCsoportok) orarend
 | 
						|
	LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = orarend.TanarId AND tanar.C_TANEVID = @tanevId AND tanar.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = orarend.HelyettesitoId AND helyettesito.C_TANEVID = @tanevId AND helyettesito.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalycsoport ON osztalycsoport.ID = orarend.OsztalyCsoportId AND osztalycsoport.C_TANEVID = @tanevId AND osztalycsoport.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = orarend.TantargyId AND tantargy.C_TANEVID = @tanevId AND tantargy.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = orarend.TeremId AND terem.C_TANEVID = @tanevId AND terem.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.ID = orarend.HetirendId AND hetirend.C_TANEVID = @tanevId AND hetirend.TOROLT = 'F'
 | 
						|
	RETURN
 | 
						|
END
 | 
						|
GO |