kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190718123435_KRETA2_465/uspGetTanuloErtekelesDetailDataSet.sql
2024-03-13 00:33:46 +01:00

177 lines
7.1 KiB
Transact-SQL

-- =============================================
-- Description: <Előszedjük a tanuló értékeléseket részletesen>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDetailDataSet
GO
CREATE PROCEDURE uspGetTanuloErtekelesDetailDataSet
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pTantargyId INT = NULL
,@pShowToroltElemek BIT
,@pTanarId INT
,@pErtekelesMegjelenesFajtaEnumTantargyId INT
,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId INT
,@pErtekelesMegjelenesFajtaId INT
,@pDatum DATE = NULL
,@pAmiKategoriaId INT
,@pFeladatKategoriaId INT = NULL
,@pKiiratkozottNeJelenjenMeg BIT = 1
AS
BEGIN
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = CONVERT(DATE, GETDATE())
DECLARE @evfolyamTipusId INT = (SELECT TOP 1 EvfolyamTipusId
FROM dbo.fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, @pKiiratkozottNeJelenjenMeg)
ORDER BY BelepesDatuma DESC)
DECLARE @sql NVARCHAR(MAX)
SET @sql = N'
SELECT DISTINCT
TanuloErtekeles.ID ID
,TanuloErtekeles.C_DATUM Datum
,TanuloErtekeles.C_ROGZITESDATUM RogzitesDatum
,TanuloErtekeles.C_TIPUSID TipusId
,TanuloErtekeles.C_ISERTESITESELKULDVE IsErtesitesElkuldve
,TanuloErtekeles.C_TANORAID TanoraId
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
,TanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
,TanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
,TanuloErtekeles.C_ERTEKELESMODID ErtekelesModId
,TanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
,TanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId
,TanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev
,TanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId
,TanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId
,TanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev
,TanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM IsMagatartasSzorgalom
,TanuloErtekeles.CREATED Created
,TanuloErtekeles.TOROLT Torolt
,TanuloErtekeles.C_TANULOID TanuloId
,TanariAtlagSuly.C_SULY Suly
,Felhasznalo.C_NYOMTATASINEV ErtekeloNyomtatasiNev
,Tantargy.C_TARGYKATEGORIA TantargyKategoriaId
,CASE
WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
THEN ''T''
ELSE ''F''
END Modosithato
FROM
T_TANULOERTEKELES_OSSZES AS TanuloErtekeles'
IF @pFeladatKategoriaId IS NOT NULL AND @pFeladatKategoriaId <> @pAmiKategoriaId
BEGIN
SET @sql += N'
INNER JOIN
T_OSZTALYCSOPORT_OSSZES Osztaly ON
Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
AND Osztaly.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
AND Osztaly.C_INTEZMENYID = @pIntezmenyId
AND Osztaly.C_TANEVID = @pTanevId
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
INNER JOIN
T_TANULOCSOPORT_OSSZES TanuloCsoport ON
TanuloCsoport.C_OSZTALYCSOPORTID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
AND TanuloCsoport.C_TANULOID = @pTanuloId
AND TanuloCsoport.C_INTEZMENYID = @pIntezmenyId
AND TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.C_BELEPESDATUM <= GETDATE()
AND TanuloCsoport.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')'
IF @pKiiratkozottNeJelenjenMeg = 1
BEGIN
SET @sql += N' AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= GETDATE())'
END
END
SET @sql += N'
LEFT JOIN
T_TANTARGY_OSSZES Tantargy ON
Tantargy.C_INTEZMENYID = @pIntezmenyId
AND Tantargy.C_TANEVID = @pTanevId
AND Tantargy.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
INNER JOIN
T_FELHASZNALO_OSSZES AS Felhasznalo ON
Felhasznalo.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
LEFT JOIN
T_TANARIATLAGSULY_OSSZES AS TanariAtlagSuly ON
TanariAtlagSuly.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
AND TanariAtlagSuly.C_INTEZMENYID = @pIntezmenyId
AND TanariAtlagSuly.C_TANEVID = @pTanevId
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
WHERE
TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
AND TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
AND TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.C_TANULOID = @pTanuloId'
IF @pFeladatKategoriaId IS NOT NULL
BEGIN
IF @pFeladatKategoriaId = @pAmiKategoriaId
BEGIN
SET @sql += N' AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL'
END
ELSE
BEGIN
SET @sql += N' AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL'
END
END
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'
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pTantargyId INT
,@pShowToroltElemek BIT
,@pTanarId INT
,@evfolyamTipusId INT
,@pFeladatKategoriaId INT'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pTanuloId = @pTanuloId
,@pTantargyId = @pTantargyId
,@pShowToroltElemek = @pShowToroltElemek
,@pTanarId = @pTanarId
,@evfolyamTipusId = @evfolyamTipusId
,@pFeladatKategoriaId = @pFeladatKategoriaId
END
GO