183 lines
No EOL
7.1 KiB
Transact-SQL
183 lines
No EOL
7.1 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDetailDataSet
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetTanuloErtekelesDetailDataSet
|
|
@pTanevId int
|
|
,@pTanuloId int
|
|
,@pTantargyId int = NULL
|
|
,@pShowToroltElemek bit
|
|
,@pTanarId int = NULL
|
|
,@pErtekelesMegjelenesFajtaEnumTantargyId int
|
|
,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId int
|
|
,@pErtekelesMegjelenesFajtaId int
|
|
,@pDatum date = NULL
|
|
,@pAmiKategoriaId int
|
|
,@pFeladatKategoriaId int
|
|
,@pOktatasiNevelesiFeladatId int = NULL
|
|
,@pIsFromSzervezet bit = 0
|
|
AS BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
IF @pDatum IS NULL
|
|
SET @pDatum = CONVERT(date, GETDATE())
|
|
|
|
DECLARE
|
|
@evfolyamTipusId int
|
|
,@sql nvarchar (max)
|
|
|
|
SELECT TOP (1)
|
|
@evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
|
|
FROM
|
|
fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, 0, @pOktatasiNevelesiFeladatId) tanuloOsztaly
|
|
ORDER BY
|
|
tanuloOsztaly.BelepesDatuma DESC
|
|
|
|
SET @sql = N'
|
|
--NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót!
|
|
SELECT DISTINCT
|
|
TanuloErtekeles.ID AS ID
|
|
,TanuloErtekeles.C_DATUM AS Datum
|
|
,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum
|
|
,TanuloErtekeles.C_TIPUSID AS TipusId
|
|
,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
|
|
,TanuloErtekeles.C_TANORAID AS TanoraId
|
|
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEG AS ErtekelesSzoveg
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEGFORMAZOTT AS ErtekelesSzovegFormazott
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV AS ErtekelesSzovegRovidNev
|
|
,TanuloErtekeles.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
|
|
,TanuloErtekeles.C_ERTEKELESMODID AS ErtekelesModId
|
|
,TanuloErtekeles.C_ERTEKELESTEMA AS ErtekelesTema
|
|
,TanuloErtekeles.C_MAGATARTASOSZTALYZATID AS MagatartasOsztalyzatId
|
|
,TanuloErtekeles.C_MAGATARTASSZOVEG AS MagatartasSzoveg
|
|
,TanuloErtekeles.C_MAGATARTASSZOVEGFORMAZOTT AS MagatartasSzovegFormazott
|
|
,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV AS MagatartasSzovegRovidNev
|
|
,TanuloErtekeles.C_MAGATARTASERTEKID AS MagatartasErtekId
|
|
,TanuloErtekeles.C_SZORGALOMOSZTALYZATID AS SzorgalomOsztalyzatId
|
|
,TanuloErtekeles.C_SZORGALOMSZOVEG AS SzorgalomSzoveg
|
|
,TanuloErtekeles.C_SZORGALOMSZOVEGFORMAZOTT AS SzorgalomSzovegFormazott
|
|
,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV AS SzorgalomSzovegRovidNev
|
|
,TanuloErtekeles.C_SZORGALOMERTEKID AS SzorgalomErtekId
|
|
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom
|
|
,TanuloErtekeles.CREATED AS Created
|
|
,TanuloErtekeles.TOROLT AS Torolt
|
|
,TanuloErtekeles.C_TANULOID AS TanuloId
|
|
,em.C_SULY AS Suly
|
|
,Felhasznalo.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
|
|
,Tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
|
|
,CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END AS Modosithato
|
|
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
'
|
|
|
|
IF @pFeladatKategoriaId = @pAmiKategoriaId
|
|
BEGIN
|
|
|
|
SET @sql += N'
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = ''F''
|
|
AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
|
|
'
|
|
IF @pOktatasiNevelesiFeladatId IS NULL
|
|
BEGIN
|
|
SET @sql += N'
|
|
AND (Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pIsFromSzervezet = 1)
|
|
'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @sql += N'
|
|
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = Osztaly.C_FELADATELLATASIHELYID
|
|
AND FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId
|
|
'
|
|
END
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @sql += N'
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = ''F''
|
|
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
'
|
|
IF @pOktatasiNevelesiFeladatId IS NULL
|
|
BEGIN
|
|
SET @sql += N'
|
|
AND (Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pIsFromSzervezet = 1)
|
|
'
|
|
END
|
|
SET @sql += N'
|
|
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID AND TanuloCsoport.TOROLT = ''F''
|
|
AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
|
|
AND TanuloCsoport.C_TANULOID = @pTanuloId
|
|
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
|
'
|
|
IF @pOktatasiNevelesiFeladatId IS NOT NULL
|
|
BEGIN
|
|
SET @sql += N'
|
|
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = Osztaly.C_FELADATELLATASIHELYID
|
|
AND FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId
|
|
'
|
|
END
|
|
END
|
|
|
|
SET @sql += N'
|
|
LEFT JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID AND Tantargy.TOROLT = ''F''
|
|
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
|
|
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.C_TANEVID = TanuloErtekeles.C_TANEVID AND Felhasznalo.TOROLT = ''F''
|
|
AND Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
|
|
LEFT JOIN T_ERTEKELESMOD_OSSZES em ON em.C_ALTANEVID = TanuloErtekeles.C_TANEVID AND em.TOROLT = ''F''
|
|
AND em.ID = TanuloErtekeles.C_ERTEKELESMODID
|
|
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
|
|
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId'
|
|
|
|
IF @pIsFromSzervezet = 1 OR @pFeladatKategoriaId <> @pAmiKategoriaId
|
|
SET @sql += N'
|
|
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
|
|
'
|
|
|
|
SET @sql +=
|
|
CASE
|
|
WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId
|
|
THEN N'
|
|
AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId)
|
|
'
|
|
WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId
|
|
THEN N'
|
|
AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL)
|
|
'
|
|
ELSE N'
|
|
AND ((TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @pTantargyId IS NOT NULL)
|
|
OR (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))
|
|
'
|
|
END
|
|
|
|
SET @sql += N'
|
|
ORDER BY
|
|
Datum DESC
|
|
,RogzitesDatum DESC
|
|
'
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pTanevId int
|
|
,@pTanuloId int
|
|
,@pTantargyId int
|
|
,@pShowToroltElemek bit
|
|
,@pTanarId int
|
|
,@evfolyamTipusId int
|
|
,@pFeladatKategoriaId int
|
|
,@pOktatasiNevelesiFeladatId int
|
|
,@pDatum date
|
|
,@pIsFromSzervezet bit
|
|
'
|
|
,@pTanevId = @pTanevId
|
|
,@pTanuloId = @pTanuloId
|
|
,@pTantargyId = @pTantargyId
|
|
,@pShowToroltElemek = @pShowToroltElemek
|
|
,@pTanarId = @pTanarId
|
|
,@evfolyamTipusId = @evfolyamTipusId
|
|
,@pFeladatKategoriaId= @pFeladatKategoriaId
|
|
,@pOktatasiNevelesiFeladatId= @pOktatasiNevelesiFeladatId
|
|
,@pDatum = @pDatum
|
|
,@pIsFromSzervezet = @pIsFromSzervezet
|
|
END
|
|
GO |