This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions
@@ -0,0 +1,113 @@
DROP PROCEDURE IF EXISTS uspGetOralatogatasData
GO
CREATE PROCEDURE uspGetOralatogatasData
@pTanevId int
,@pFelhasznaloId int
,@pTol datetime = NULL
,@pIg datetime = NULL
,@pIsTanar bit
,@pTanarId int = NULL
,@pLatogatottPedagogusId int = NULL
,@pOsztalyCsoportId int = NULL
,@pIsKellKapcsolodoCsoportok bit
,@pTantargyId int = NULL
,@pFeladatKategoriaId int = NULL
,@pFeladatEllatasiHelyId int = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
,@ertekeloId int
SET @sql = N'
SELECT
Oralatogatas.ID
,TanitasiOra.ID AS TanitasiOraId
,Oralatogatas.C_DATUM AS Datum
,CONVERT(nvarchar(25), Oralatogatas.C_DATUM, 102) AS DatumST
,ISNULL(DIB_VezetoiOraszamok.C_NAME, DIB_Beosztas.C_NAME) AS Beosztas
,TanitasiOra.C_ORASZAM AS Oraszam
,Felhasznalo.C_NYOMTATASINEV AS Alkalmazott
,Felhasznalo.ID AS AlkalmazottId
,Felhasznalo.C_VEZETEKNEV + '' '' + Felhasznalo.C_UTONEV AS AlkalmazottElotagNelkul
,Tantargy.C_NEV AS Tantargy
,OsztalyCsoport.C_NEV AS OsztalyCsoport
,IIF(Oralatogatas.C_ERTEKELOID = @pFelhasznaloId, ''T'', ''F'') AS IsSajatErtekeles
,LatogatottPedagogus.C_NYOMTATASINEV AS LatogatottPedagogus
,LatogatottPedagogus.Id AS LatogatottPedagogusId
FROM T_ORALATOGATAS_OSSZES Oralatogatas
INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = Oralatogatas.C_MEGTARTOTTORAID AND TanitasiOra.TOROLT = ''F''
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID AND OsztalyCsoport.TOROLT = ''F''
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.ID = TanitasiOra.C_TANTARGYID AND Tantargy.TOROLT = ''F''
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Oralatogatas.C_ERTEKELOID AND Felhasznalo.TOROLT = ''F''
INNER JOIN T_MUNKAUGYIADATOK_OSSZES MunkaugyiAdatok ON MunkaugyiAdatok.C_ALKALMAZOTTID = Oralatogatas.C_ERTEKELOID AND MunkaugyiAdatok.TOROLT = ''F''
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES DIB_VezetoiOraszamok ON DIB_VezetoiOraszamok.ID = MunkaugyiAdatok.C_VEZETOIORASZAMOK AND MunkaugyiAdatok.C_VEZETOIORASZAMOK <> 6571 AND DIB_VezetoiOraszamok.TOROLT = ''F'' AND DIB_VezetoiOraszamok.C_TANEVID = MunkaugyiAdatok.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES DIB_Beosztas ON DIB_Beosztas.ID = MunkaugyiAdatok.C_MUNKAKORTIPUSA AND DIB_Beosztas.TOROLT = ''F'' AND DIB_Beosztas.C_TANEVID = MunkaugyiAdatok.C_TANEVID
INNER JOIN T_FELHASZNALO_OSSZES LatogatottPedagogus ON LatogatottPedagogus.ID = TanitasiOra.C_TANARID AND LatogatottPedagogus.TOROLT = ''F''
WHERE Oralatogatas.TOROLT = ''F''
AND Oralatogatas.C_TANEVID = @pTanevId
'
SET @sql += IIF(@pTol IS NOT NULL, N'
AND Oralatogatas.C_DATUM >= @pTol', '')
SET @sql += IIF(@pIg IS NOT NULL, N'
AND Oralatogatas.C_DATUM <= @pIg', '')
--NOTE: Tanár esetén azok az óralátogatások kellenek, ahol vagy ő volt az értékelő,
--vagy az ő óráját értékelték (a kiválasztott tanár).
SET @sql +=
CASE
WHEN (@pIsTanar = 1) AND (@pTanarId IS NOT NULL) THEN N'
AND (Oralatogatas.C_ERTEKELOID = @pErtekeloId AND TanitasiOra.C_TANARID = @pFelhasznaloId)'
WHEN (@pIsTanar = 1) AND (@pTanarId IS NULL) THEN N'
AND (Oralatogatas.C_ERTEKELOID = @pErtekeloId OR TanitasiOra.C_TANARID = @pFelhasznaloId)'
WHEN (@pIsTanar = 0) AND (@pTanarId IS NOT NULL) THEN N'
AND Oralatogatas.C_ERTEKELOID = @pErtekeloId'
ELSE ''
END
SET @ertekeloId =
CASE
WHEN (@pIsTanar = 1) AND (@pTanarId IS NOT NULL) THEN @pTanarId
WHEN (@pIsTanar = 1) AND (@pTanarId IS NULL) THEN @pFelhasznaloId
WHEN (@pIsTanar = 0) AND (@pTanarId IS NOT NULL) THEN @pTanarId
END
SET @sql += IIF(@pOsztalyCsoportId IS NOT NULL, IIF(@pIsKellKapcsolodoCsoportok = 0, N'
AND TanitasiOra.C_OSZTALYCSOPORTID = @pOsztalyCsoportId', N'
AND TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId))'), '')
SET @sql += IIF(@pTantargyId IS NOT NULL, N'
AND TanitasiOra.C_TANTARGYID = @pTantargyId', '')
SET @sql += IIF(@pFeladatKategoriaId IS NOT NULL, N'
AND OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId', '')
SET @sql += IIF(@pFeladatEllatasiHelyId IS NOT NULL, N'
AND OsztalyCsoport.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId', '')
SET @sql += IIF(@pLatogatottPedagogusId IS NOT NULL, N'
AND LatogatottPedagogus.Id = @pLatogatottPedagogusId', '')
EXEC sp_executesql @sql
,N'
@pTanevId int
,@pFelhasznaloId int
,@pTol datetime
,@pIg datetime
,@pErtekeloId int
,@pOsztalyCsoportId int
,@pTantargyId int
,@pLatogatottPedagogusId int
,@pFeladatKategoriaId int
,@pFeladatEllatasiHelyId int
'
,@pTanevId = @pTanevId
,@pFelhasznaloId = @pFelhasznaloId
,@pTol = @pTol
,@pIg = @pIg
,@pErtekeloId = @ertekeloId
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTantargyId = @pTantargyId
,@pLatogatottPedagogusId = @pLatogatottPedagogusId
,@pFeladatKategoriaId = @pFeladatKategoriaId
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
END