kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180606164420_KRETA_5843_1/sp_GetTanuloErtekelesDetailDataSet.sql
2024-03-13 00:33:46 +01:00

148 lines
5.4 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloErtekelesDetailDataSet]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet]
END
GO
-- =============================================
-- Description: <Előszedjük a tanuló értékeléseket részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pTantargyId INT = NULL
,@pShowToroltElemek BIT
,@pIsFotargyAltargyLekerdezes BIT
,@pTanarId INT
,@pErtekelesMegjelenesFajtaEnumTantargyId INT
,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId INT
,@pErtekelesMegjelenesFajtaEnumTanuloId INT
,@pErtekelesMegjelenesFajtaId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
TanuloErtekeles.ID ID
,TanuloErtekeles.C_DATUM Datum
,TanuloErtekeles.C_TIPUSID TipusId
,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.TOROLT Torolt
,TanuloCsoport.C_TANULOID TanuloId
,TanariAtlagSuly.C_SULY Suly
,Felhasznalo.C_NYOMTATASINEV ErtekeloNyomtatasiNev
,CASE
WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
THEN 'T'
ELSE 'F'
END Modosithato
FROM (
SELECT DISTINCT
C_TANULOID
FROM
T_TANULOCSOPORT
WHERE
TOROLT = 'F'
AND C_TANULOID = @pTanuloId
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS TanuloCsoport
INNER JOIN (
SELECT
TanuloErtekeles.ID
,TanuloErtekeles.C_DATUM
,TanuloErtekeles.C_TIPUSID
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID
,TanuloErtekeles.C_ERTEKELESSZOVEG
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV
,TanuloErtekeles.C_ERTEKELESSZAZALEK
,TanuloErtekeles.C_ERTEKELESMODID
,TanuloErtekeles.C_ERTEKELESTEMA
,TanuloErtekeles.C_MAGATARTASOSZTALYZATID
,TanuloErtekeles.C_MAGATARTASSZOVEG
,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV
,TanuloErtekeles.C_MAGATARTASERTEKID
,TanuloErtekeles.C_SZORGALOMOSZTALYZATID
,TanuloErtekeles.C_SZORGALOMSZOVEG
,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV
,TanuloErtekeles.C_SZORGALOMERTEKID
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM
,TanuloErtekeles.C_OSZTALYCSOPORTID
,TanuloErtekeles.C_TANULOID
,TanuloErtekeles.C_ERTEKELOID
,TanuloErtekeles.C_TANORAID
,TanuloErtekeles.TOROLT
,TanuloErtekeles.CREATOR
FROM
T_TANULOERTEKELES_OSSZES TanuloErtekeles
INNER JOIN T_OSZTALYCSOPORT Osztaly ON
Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_EVFOLYAMTIPUSA = (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(TanuloErtekeles.C_TANULOID, DEFAULT))
WHERE
(
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId) OR
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T' AND TanuloErtekeles.C_TANTARGYID IS NULL) OR
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTanuloId AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' AND @pTantargyId IS NOT NULL AND TanuloErtekeles.C_TANTARGYID = @pTantargyId) OR (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))
)
--Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk!
AND TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, 'F')
AND TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
AND TanuloErtekeles.C_TANEVID = @pTanevId
) AS TanuloErtekeles
ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
INNER JOIN (
SELECT
ID
,C_NYOMTATASINEV
FROM
T_FELHASZNALO
WHERE
TOROLT = 'F'
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS Felhasznalo
ON Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
LEFT JOIN (
SELECT
C_SULY
,C_ERTEKELESMODID
FROM
T_TANARIATLAGSULY_OSSZES
WHERE
TOROLT = 'F'
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS TanariAtlagSuly ON
TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
END
GO