99 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			4.1 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,
 | 
						|
	@helyettesitesListaFormatumId	INT = 0, --0 helyettesitett, 1 helyettesito
 | 
						|
	@idoszakKezdete					DATE,
 | 
						|
	@idoszakVege					DATE
 | 
						|
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
 | 
						|
SELECT 
 | 
						|
	 helyettesito.ID						HelyettesitoId
 | 
						|
	,helyettesitesett.ID					HelyettesitettId
 | 
						|
	,dbo.fnGetDokumentumDatumFormatum(hi.C_HELYETTESITESNAPJA)	HetNapja
 | 
						|
	,IIF(orarendiOra.C_ORASZAM IS NOT NULL,CONVERT(NVARCHAR(5), orarendiOra.C_ORASZAM) + '.', 
 | 
						|
    CONCAT(CONVERT(NVARCHAR(5), orarendiOra.C_ORAKEZDETE, 108), '-', CONVERT(NVARCHAR(5), orarendiOra.C_ORAVEGE, 108)))Oraszam
 | 
						|
  ,helyettesito.C_NYOMTATASINEV			HelyettesitoNeve
 | 
						|
	,helyettesitesett.C_NYOMTATASINEV		HelyettesitettNeve
 | 
						|
	,ocs.C_NEV								OsztalyCsoportNev
 | 
						|
	,tantargy.C_NEV							TantargyNev
 | 
						|
	,terem.C_NEV							TeremNev
 | 
						|
	,HelyettesitesTipusa.C_NAME				HelyettesitesTipusa
 | 
						|
	,helyettesito.C_OKTATASIAZONOSITO		HelyettesitoOktatasiAzon
 | 
						|
	,helyettesitesett.C_OKTATASIAZONOSITO	HelyettesitettOktatasiAzon
 | 
						|
  ,Rendez = CASE ISNUMERIC(orarendiOra.C_ORASZAM) 
 | 
						|
       WHEN 1 THEN CAST(orarendiOra.C_ORASZAM AS INT) 
 | 
						|
       ELSE 999999999999999 END  
 | 
						|
INTO #adatok
 | 
						|
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
 | 
						|
	LEFT JOIN T_ORARENDIORA_OSSZES orarendiOra ON orarendiOra.Id = hi.C_HELYETTESITETTORARENDID AND orarendiOra.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = hi.C_HELYETTESTANAROKID AND helyettesito.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_FELHASZNALO_OSSZES helyettesitesett ON helyettesitesett.ID = orarendiOra.C_TANARID AND helyettesitesett.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = orarendiOra.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = orarendiOra.C_TANTARGYID AND tantargy.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_TEREM_OSSZES terem ON terem.Id = orarendiOra.C_TEREMID AND terem.TOROLT = 'F'
 | 
						|
	INNER JOIN T_DICTIONARYITEMBASE_OSSZES HelyettesitesTipusa ON HelyettesitesTipusa.ID = hi.C_HELYETTESITESTIPUS AND HelyettesitesTipusa.C_TANEVID = @tanevId
 | 
						|
WHERE
 | 
						|
	hi.TOROLT = 'F'	
 | 
						|
	AND hi.C_TANEVID = @tanevId	
 | 
						|
	AND hi.C_HELYETTESITESNAPJA BETWEEN @idoszakKezdete AND @idoszakVege
 | 
						|
ORDER BY dbo.fnGetDokumentumDatumFormatum(hi.C_HELYETTESITESNAPJA), orarendiOra.C_ORASZAM
 | 
						|
 | 
						|
-- elmaradt órák hozzáadása
 | 
						|
INSERT INTO #adatok
 | 
						|
SELECT 
 | 
						|
	 NULL						HelyettesitoId
 | 
						|
	,tanar.ID					HelyettesitettId
 | 
						|
	,dbo.fnGetDokumentumDatumFormatum(ora.C_DATUM)	HetNapja
 | 
						|
	,IIF(ora.C_ORASZAM IS NOT NULL,CONVERT(NVARCHAR(5), ora.C_ORASZAM) + '.', 
 | 
						|
    CONCAT(CONVERT(NVARCHAR(5), ora.C_ORAKEZDETE, 108), '-', CONVERT(NVARCHAR(5), ora.C_ORAVEGE, 108)))Oraszam
 | 
						|
	,'Elmaradt óra'			HelyettesitoNeve
 | 
						|
	,tanar.C_NYOMTATASINEV		HelyettesitettNeve
 | 
						|
	,ocs.C_NEV								OsztalyCsoportNev
 | 
						|
	,tantargy.C_NEV							TantargyNev
 | 
						|
	,terem.C_NEV							TeremNev
 | 
						|
	,''				HelyettesitesTipusa
 | 
						|
	,NULL						HelyettesitoOktatasiAzon
 | 
						|
	,tanar.C_OKTATASIAZONOSITO	HelyettesitettOktatasiAzon
 | 
						|
  ,Rendez = CASE ISNUMERIC(ora.C_ORASZAM) 
 | 
						|
       WHEN 1 THEN CAST(ora.C_ORASZAM AS INT) 
 | 
						|
       ELSE 999999999999999 END  
 | 
						|
FROM T_TANITASIORA_OSSZES ora
 | 
						|
	LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = ora.C_TANARID AND tanar.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = ora.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = ora.C_TANTARGYID AND tantargy.TOROLT = 'F'
 | 
						|
	LEFT JOIN T_TEREM_OSSZES terem ON terem.Id = ora.C_TEREMID AND terem.TOROLT = 'F'
 | 
						|
WHERE
 | 
						|
	ora.TOROLT = 'F'
 | 
						|
	AND ora.C_MEGTARTOTT = 'F'	
 | 
						|
	AND ora.C_TANEVID = @tanevId	
 | 
						|
	AND ora.C_DATUM BETWEEN @idoszakKezdete AND @idoszakVege
 | 
						|
ORDER BY dbo.fnGetDokumentumDatumFormatum(ora.C_DATUM), ora.C_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 |