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

143 lines
4.5 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
ID
,C_DATUM
,C_TIPUSID
,C_ERTEKELESOSZTALYZATID
,C_ERTEKELESSZOVEG
,C_ERTEKELESSZOVEGROVIDNEV
,C_ERTEKELESSZAZALEK
,C_ERTEKELESMODID
,C_ERTEKELESTEMA
,C_MAGATARTASOSZTALYZATID
,C_MAGATARTASSZOVEG
,C_MAGATARTASSZOVEGROVIDNEV
,C_MAGATARTASERTEKID
,C_SZORGALOMOSZTALYZATID
,C_SZORGALOMSZOVEG
,C_SZORGALOMSZOVEGROVIDNEV
,C_SZORGALOMERTEKID
,C_ISMAGATARTASSZORGALOM
,C_TANULOID
,C_ERTEKELOID
,C_TANORAID
,TOROLT
,CREATOR
FROM
T_TANULOERTEKELES_OSSZES
WHERE
(
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId AND C_ISMAGATARTASSZORGALOM = 'F' AND C_TANTARGYID = @pTantargyId) OR
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId AND C_ISMAGATARTASSZORGALOM = 'T' AND C_TANTARGYID IS NULL) OR
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTanuloId AND (C_ISMAGATARTASSZORGALOM = 'F' AND @pTantargyId IS NOT NULL AND C_TANTARGYID = @pTantargyId) OR (C_ISMAGATARTASSZORGALOM = 'T' AND C_TANTARGYID IS NULL AND @pTantargyId IS NULL))
)
--Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk!
AND TOROLT = IIF(@pShowToroltElemek = 1, TOROLT, 'F')
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS TanuloErtekeles
ON TanuloCsoport.C_TANULOID = TanuloErtekeles.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