159 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
DROP PROCEDURE IF EXISTS sp_GetDokumentumHelyettesitesekByDateInterval
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval
 | 
						|
	 @tanevId						INT
 | 
						|
	,@intezmenyId					INT
 | 
						|
	,@helyettesitesListaFormatumId	INT = 0 --0 helyettesitett, 1 helyettesito
 | 
						|
	,@idoszakKezdete				DATE
 | 
						|
	,@idoszakVege					DATE
 | 
						|
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
 | 
						|
 CREATE TABLE #OrarendAdatok (
 | 
						|
     Id int
 | 
						|
    ,ORARENDIID int
 | 
						|
    ,Datum datetime
 | 
						|
    ,Bontott char(1)
 | 
						|
    ,Hetirend int
 | 
						|
    ,HetNapja int
 | 
						|
    ,HetSorszam int
 | 
						|
    ,ErvenyessegKezdete datetime
 | 
						|
    ,ErvenyessegVege datetime
 | 
						|
    ,OraKezdete datetime
 | 
						|
    ,OraVege datetime
 | 
						|
    ,Oraszam int
 | 
						|
    ,TargyNev nvarchar(300)
 | 
						|
    ,TargyNevForMobile nvarchar(300)
 | 
						|
    ,TargykategoriaID int
 | 
						|
    ,Megtartott char(1)
 | 
						|
    ,CsengetesiRendOraID int
 | 
						|
    ,CsengetesiRendID int
 | 
						|
    ,MaxNapiOraszam int
 | 
						|
    ,OsztalyNev nvarchar(255)
 | 
						|
    ,TanevRendOsztalyCsoportId int
 | 
						|
    ,MegjelenesOka nvarchar(300)
 | 
						|
    ,TanarNev nvarchar(255)
 | 
						|
    ,TeremNev nvarchar(255)
 | 
						|
	,TeremId int
 | 
						|
    ,OraTipus nvarchar(200)
 | 
						|
    ,Hianyzas char(1)
 | 
						|
    ,Keses char(1)
 | 
						|
    ,Ures char(1)
 | 
						|
    ,HelyettesitoTanarID int
 | 
						|
    ,HelyettesitoTanarNev nvarchar(255)
 | 
						|
	,HelyettesitesId int
 | 
						|
    ,TanarID int
 | 
						|
    ,AdminAltalKiirt char(1)
 | 
						|
    ,GroupId int
 | 
						|
    ,Tema nvarchar(max)
 | 
						|
    ,TantargyId int
 | 
						|
    ,OsztCsopId int  
 | 
						|
	)		
 | 
						|
	
 | 
						|
  INSERT INTO #OrarendAdatok (
 | 
						|
     Id 
 | 
						|
    ,ORARENDIID 
 | 
						|
    ,Datum 
 | 
						|
    ,Bontott 
 | 
						|
    ,Hetirend 
 | 
						|
    ,HetNapja 
 | 
						|
    ,HetSorszam 
 | 
						|
    ,ErvenyessegKezdete 
 | 
						|
    ,ErvenyessegVege 
 | 
						|
    ,OraKezdete 
 | 
						|
    ,OraVege 
 | 
						|
    ,Oraszam 
 | 
						|
    ,TargyNev 
 | 
						|
    ,TargyNevForMobile 
 | 
						|
    ,TargykategoriaID 
 | 
						|
    ,Megtartott 
 | 
						|
    ,CsengetesiRendOraID 
 | 
						|
    ,CsengetesiRendID 
 | 
						|
    ,MaxNapiOraszam 
 | 
						|
    ,OsztalyNev 
 | 
						|
    ,TanevRendOsztalyCsoportId 
 | 
						|
    ,MegjelenesOka 
 | 
						|
    ,TanarNev 
 | 
						|
    ,TeremNev 
 | 
						|
	,TeremId
 | 
						|
    ,OraTipus 
 | 
						|
    ,Hianyzas 
 | 
						|
    ,Keses 
 | 
						|
    ,Ures 
 | 
						|
    ,HelyettesitoTanarID 
 | 
						|
    ,HelyettesitoTanarNev
 | 
						|
	,HelyettesitesId
 | 
						|
    ,TanarID 
 | 
						|
    ,AdminAltalKiirt 
 | 
						|
    ,GroupId 
 | 
						|
    ,Tema 
 | 
						|
    ,TantargyId 
 | 
						|
    ,OsztCsopId 
 | 
						|
  )
 | 
						|
 | 
						|
EXEC dbo.sp_GetOrarend
 | 
						|
     @pIntezmenyId = @IntezmenyId
 | 
						|
    ,@pTanevId = @TanevId
 | 
						|
    ,@pIdoszakKezdete = @IdoszakKezdete
 | 
						|
    ,@pIdoszakVege = @IdoszakVege  
 | 
						|
    ,@pTanarId = NULL
 | 
						|
    ,@pIsHelyettesitesNelkul  = 0
 | 
						|
    ,@pOsztalyCsoportId = NULL
 | 
						|
    ,@pTanuloId = NULL
 | 
						|
    ,@pTantargyId = NULL
 | 
						|
    ,@pTeremId = NULL
 | 
						|
    ,@pCsakOrarendiOrak  = 0
 | 
						|
    ,@pIsNapirend = NULL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		 hely.HelyettesitoTanarID AS  HelyettesitoId
 | 
						|
		,hely.TanarID AS  HelyettesitettId
 | 
						|
		,dbo.fnGetDokumentumDatumFormatum(hely.Datum) AS  HetNapja
 | 
						|
		,IIF(hely.Oraszam IS NOT NULL,CONVERT(NVARCHAR(5), hely.Oraszam) + '.', 
 | 
						|
	     CONCAT(CONVERT(NVARCHAR(5), hely.OraKezdete, 108), '-', CONVERT(NVARCHAR(5), hely.OraVege, 108))) AS  Oraszam
 | 
						|
		,IIF(hely.OraTipus = 'TanitasiOra' AND hely.Megtartott = 'F', 'Elmaradt óra', hely.HelyettesitoTanarNev) AS  HelyettesitoNeve
 | 
						|
		,hely.TanarNev  AS  HelyettesitettNeve
 | 
						|
		,hely.OsztalyNev  AS  OsztalyCsoportNev
 | 
						|
		,tantargy.C_NEV AS  TantargyNev
 | 
						|
		,hely.TeremNev  AS  TeremNev
 | 
						|
		,HelyettesitesTipusa.C_NAME AS  HelyettesitesTipusa
 | 
						|
		,helyettesito.C_OKTATASIAZONOSITO AS  HelyettesitoOktatasiAzon
 | 
						|
		,helyettesitesett.C_OKTATASIAZONOSITO AS  HelyettesitettOktatasiAzon
 | 
						|
	    ,Rendez = CASE ISNUMERIC(hely.Oraszam) 
 | 
						|
	              WHEN 1 THEN CAST(hely.Oraszam AS INT) 
 | 
						|
	              ELSE 999999999999999 END  
 | 
						|
	INTO #adatok
 | 
						|
		FROM #OrarendAdatok hely
 | 
						|
			LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = hely.TantargyId AND tantargy.TOROLT = 'F'
 | 
						|
			LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hi ON hi.ID = hely.HelyettesitesId and hi.TOROLT = 'F'
 | 
						|
			LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = hely.HelyettesitoTanarID AND helyettesito.TOROLT = 'F'
 | 
						|
			LEFT JOIN T_FELHASZNALO_OSSZES helyettesitesett ON helyettesitesett.ID = hely.TanarID AND helyettesitesett.TOROLT = 'F'
 | 
						|
			LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HelyettesitesTipusa ON HelyettesitesTipusa.ID = hi.C_HELYETTESITESTIPUS AND  HelyettesitesTipusa.C_TANEVID = @TanevId 
 | 
						|
	WHERE (hely.OraTipus = 'TanitasiOra' AND (hely.HelyettesitoTanarID IS NOT NULL OR hely.Megtartott = 'F'))
 | 
						|
			OR (hely.OraTipus = 'OrarendiOra' AND hely.HelyettesitoTanarID IS NOT NULL)
 | 
						|
	ORDER BY hely.HetNapja, hely.Oraszam
 | 
						|
	
 | 
						|
	SELECT DISTINCT HetNapja FROM #adatok
 | 
						|
 | 
						|
IF @helyettesitesListaFormatumId = 0
 | 
						|
	BEGIN
 | 
						|
		SELECT DISTINCT HelyettesitettId PedagogusId, HelyettesitettNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitettNeve
 | 
						|
		SELECT * FROM #adatok 
 | 
						|
		ORDER BY HetNapja, Rendez, Oraszam
 | 
						|
	END
 | 
						|
ELSE
 | 
						|
	BEGIN
 | 
						|
		SELECT DISTINCT HelyettesitoId PedagogusId, HelyettesitoNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitoNeve
 | 
						|
		SELECT * FROM #adatok
 | 
						|
		ORDER BY HetNapja, Rendez, Oraszam
 | 
						|
	END
 | 
						|
END
 | 
						|
GO |