228 lines
9.6 KiB
Transact-SQL
228 lines
9.6 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('fnGetDokumentumErtekelesekOsztalyonkent') IS NOT NULL
|
|
BEGIN
|
|
DROP FUNCTION fnGetDokumentumErtekelesekOsztalyonkent
|
|
END
|
|
GO
|
|
|
|
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (@tanevId INT, @osztalyCsoportId INT, @ertekelesTipusa INT = NULL, @csakTanorai BIT = 1, @csakKivlasztottOsztalyCsoport BIT = 0, @atsoroltTanuloErtekelesek INT = 0)
|
|
RETURNS @retTanuloErtekeles TABLE
|
|
(
|
|
ErtekelesId INT NOT NULL,
|
|
Datum DATE,
|
|
TipusId INT,
|
|
ErtekelesSzoveg NVARCHAR(MAX),
|
|
ErtekelesSzovegRovidNev NVARCHAR(3),
|
|
ErtekelesOsztalyzatId INT,
|
|
ErtekelesOsztalyzatValue INT,
|
|
ErtekelesOsztalyzatNev NVARCHAR(MAX),
|
|
ErtekelesSzazalek NVARCHAR(MAX),
|
|
MagatartasOsztalyzatId INT,
|
|
MagatartasOsztalyzatValue INT,
|
|
MagatartasOsztalyzatNev NVARCHAR(MAX),
|
|
MagatartasSzoveg NVARCHAR(MAX),
|
|
MagatartasSzovegRovidNev NVARCHAR(3),
|
|
MagatartasErtekId INT,
|
|
MagatartasErtek NVARCHAR(MAX),
|
|
MagatartasErtekOsztalyzatkent INT,
|
|
SzorgalomOsztalyzatId INT,
|
|
SzorgalomOsztalyzatValue INT,
|
|
SzorgalomOsztalyzatNev NVARCHAR(MAX),
|
|
SzorgalomSzoveg NVARCHAR(MAX),
|
|
SzorgalomSzovegRovidNev NVARCHAR(3),
|
|
SzorgalomErtekId INT,
|
|
SzorgalomErtek NVARCHAR(MAX),
|
|
SzorgalomErtekOsztalyzatkent INT,
|
|
TanuloId INT,
|
|
TanuloCsoportId INT,
|
|
OsztalyCsoportId INT,
|
|
TantargyId INT,
|
|
TantargyNevZarojellel NVARCHAR(MAX),
|
|
TantargyNevNyomtatvanyban NVARCHAR(MAX),
|
|
TantargyNev NVARCHAR(MAX),
|
|
TargyKategoriaId INT,
|
|
FotargyE CHAR(1),
|
|
Altantargy CHAR(1),
|
|
FotargyId INT,
|
|
ErtekelesTema NVARCHAR(MAX),
|
|
ErtekeloId INT,
|
|
ErtekelesModjaId INT,
|
|
IsMagatartasSzorgalom CHAR(1),
|
|
Jeloles NVARCHAR(MAX),
|
|
JelolesAndErtekelesTema NVARCHAR(MAX)
|
|
)
|
|
AS
|
|
BEGIN
|
|
INSERT INTO @retTanuloErtekeles
|
|
SELECT DISTINCT
|
|
[tanuloErtekeles].[ID] [ErtekelesId],
|
|
[tanuloErtekeles].[C_DATUM] [Datum],
|
|
[tanuloErtekeles].[C_TIPUSID] [TipusId],
|
|
[tanuloErtekeles].[C_ERTEKELESSZOVEG] [ErtekelesSzoveg],
|
|
[tanuloErtekeles].[C_ERTEKELESSZOVEGROVIDNEV] [ErtekelesSzovegRovidNev],
|
|
[tanuloErtekeles].[C_ERTEKELESOSZTALYZATID] [ErtekelesOsztalyzatId],
|
|
[ertekelesOsztalyzat].[C_VALUE] [ErtekelesOsztalyzatValue],
|
|
[ertekelesOsztalyzat].[C_NAME] [ErtekelesOsztalyzatNev],
|
|
IIF([tanuloErtekeles].[C_ERTEKELESSZAZALEK] IS NOT NULL --
|
|
, CONVERT(NVARCHAR(3), [tanuloErtekeles].[C_ERTEKELESSZAZALEK])+'%' --
|
|
, NULL) [ErtekelesSzazalek],
|
|
[tanuloErtekeles].[C_MAGATARTASOSZTALYZATID] [MagatartasOsztalyzatId],
|
|
[magatartasOsztalyzat].[C_VALUE] [MagatartasOsztalyzatValue],
|
|
[magatartasOsztalyzat].[C_NAME] [MagatartasOsztalyzatNev],
|
|
[tanuloErtekeles].[C_MAGATARTASSZOVEG] [MagatartasSzoveg],
|
|
[tanuloErtekeles].[C_MAGATARTASSZOVEGROVIDNEV] [MagatartasSzovegRovidNev],
|
|
[tanuloErtekeles].[C_MAGATARTASERTEKID] [MagatartasErtekId],
|
|
[magatartasErtek].[C_NAME] [MagatartasErtek],
|
|
[magatartasErtek].[C_VALUE] + 1 [MagatartasErtekOsztalyzatkent],
|
|
[tanuloErtekeles].[C_SZORGALOMOSZTALYZATID] [SzorgalomOsztalyzatId],
|
|
[szorgalomOsztalyzat].[C_VALUE] [SzorgalomOsztalyzatValue],
|
|
[szorgalomOsztalyzat].[C_NAME] [SzorgalomOsztalyzatNev],
|
|
[tanuloErtekeles].[C_SZORGALOMSZOVEG] [SzorgalomSzoveg],
|
|
[tanuloErtekeles].[C_SZORGALOMSZOVEGROVIDNEV] [SzorgalomSzovegRovidNev],
|
|
[tanuloErtekeles].[C_SZORGALOMERTEKID] [SzorgalomErtekId],
|
|
[szorgalomErtek].[C_NAME] [SzorgalomErtek],
|
|
[szorgalomErtek].[C_VALUE] + 1 [SzorgalomErtekOsztalyzatkent],
|
|
[tanuloErtekeles].[C_TANULOID] [TanuloId],
|
|
TanuloCsoportId,
|
|
[tanuloErtekeles].[C_OSZTALYCSOPORTID] [OsztalyCsoportId],
|
|
[tanuloErtekeles].[C_TANTARGYID] [TantargyId],
|
|
IIF([tantargy].[C_NEV] <> [tantargy].[C_NEVNYOMTATVANYBAN]
|
|
AND [tantargy].[C_NEVNYOMTATVANYBAN] IS NOT NULL --
|
|
, [C_NEVNYOMTATVANYBAN]+' ('+[tantargy].[C_NEV]+')' --
|
|
, [tantargy].[C_NEV]) [TantargyNevZarojellel],
|
|
[tantargy].[C_NEVNYOMTATVANYBAN] [TantargyNevNyomtatvanyban],
|
|
[tantargy].[C_NEV] [TantargyNev],
|
|
[tantargy].[C_TARGYKATEGORIA] [TargyKategoriaId],
|
|
[tantargy].[C_FOTARGYE] [FotargyE],
|
|
[tantargy].[C_ALTANTARGYKENTNYOMTATVANYBAN] [Altantargy],
|
|
[tantargy].[C_FOTARGYID] [FotargyId],
|
|
[tanuloErtekeles].[C_ERTEKELESTEMA] [ErtekelesTema],
|
|
[tanuloErtekeles].[C_ERTEKELOID] [ErtekeloId],
|
|
[tanuloErtekeles].[C_ERTEKELESMODID] [ErtekelesModjaId],
|
|
[tanuloErtekeles].[C_ISMAGATARTASSZORGALOM] [IsMagatartasSzorgalom],
|
|
IIF( --
|
|
[tanuloErtekeles].[C_ERTEKELESTEMA] IS NOT NULL
|
|
AND [tanuloErtekeles].[C_TIPUSID] IN(1519, 1520), '<i>('+CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY [tanuloErtekeles].[C_TANULOID],
|
|
[tanuloErtekeles].[C_TIPUSID],
|
|
IIF([tanuloErtekeles].[C_ERTEKELESTEMA] IS NOT NULL, 1, 0) ORDER BY [tanuloErtekeles].[C_DATUM])+96) AS NVARCHAR(10))+')</i>', '') [Jeloles],
|
|
IIF( --
|
|
[tanuloErtekeles].[C_ERTEKELESTEMA] IS NOT NULL
|
|
AND [tanuloErtekeles].[C_TIPUSID] IN(1519, 1520), '<i>('+CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY [tanuloErtekeles].[C_TANULOID],
|
|
[tanuloErtekeles].[C_TIPUSID],
|
|
IIF([tanuloErtekeles].[C_ERTEKELESTEMA] IS NOT NULL, 1, 0) ORDER BY [tanuloErtekeles].[C_DATUM])+96) AS NVARCHAR(10))+')</i>: '+[tanuloErtekeles].[C_ERTEKELESTEMA], '') [JelolesAndErtekelesTema]
|
|
FROM
|
|
[T_TANULOERTEKELES_OSSZES] [tanuloErtekeles]
|
|
INNER JOIN
|
|
[fnGetDokumentumOsztalyokCsoportokTanuloi](@tanevId, @osztalyCsoportId, 'T') [tanulo] ON [tanulo].[TanuloId] = [tanuloErtekeles].[C_TANULOID]
|
|
INNER JOIN
|
|
[T_TANULOCSOPORT_OSSZES] [TanuloCsoport] ON [TanuloCsoport].[C_TANULOID] = [tanuloErtekeles].[C_TANULOID]
|
|
AND [TanuloCsoport].[C_OSZTALYCSOPORTID] = [tanuloErtekeles].[C_OSZTALYCSOPORTID]
|
|
AND [tanuloErtekeles].[C_DATUM] BETWEEN [TanuloCsoport].[C_BELEPESDATUM] AND ISNULL([TanuloCsoport].[C_KILEPESDATUM], GETDATE())
|
|
AND [TanuloCsoport].[TOROLT] = 'F'
|
|
LEFT JOIN
|
|
[T_TANTARGY_OSSZES] [tantargy] ON [tantargy].[Id] = [tanuloErtekeles].[C_TANTARGYID]
|
|
AND ([tantargy].[C_TARGYKATEGORIA] <> 1248
|
|
OR [tantargy].[C_TARGYKATEGORIA] IS NULL)
|
|
LEFT JOIN
|
|
[T_DICTIONARYITEMBASE_OSSZES] [ertekelesOsztalyzat] ON [ertekelesOsztalyzat].[ID] = [tanuloErtekeles].[C_ERTEKELESOSZTALYZATID]
|
|
AND [ertekelesOsztalyzat].[C_TANEVID] = @tanevId
|
|
AND [ertekelesOsztalyzat].[C_TYPE] LIKE 'OsztalyzatTipus'
|
|
LEFT JOIN
|
|
[T_DICTIONARYITEMBASE_OSSZES] [magatartasOsztalyzat] ON [magatartasOsztalyzat].[ID] = [tanuloErtekeles].[C_MAGATARTASOSZTALYZATID]
|
|
AND [magatartasOsztalyzat].[C_TANEVID] = @tanevId
|
|
AND [magatartasOsztalyzat].[C_TYPE] LIKE 'OsztalyzatTipus'
|
|
LEFT JOIN
|
|
[T_DICTIONARYITEMBASE_OSSZES] [szorgalomOsztalyzat] ON [szorgalomOsztalyzat].[ID] = [tanuloErtekeles].[C_SZORGALOMOSZTALYZATID]
|
|
AND [szorgalomOsztalyzat].[C_TANEVID] = @tanevId
|
|
AND [szorgalomOsztalyzat].[C_TYPE] LIKE 'OsztalyzatTipus'
|
|
LEFT JOIN
|
|
[T_DICTIONARYITEMBASE_OSSZES] [magatartasErtek] ON [magatartasErtek].[ID] = [tanuloErtekeles].[C_MAGATARTASERTEKID]
|
|
AND [magatartasErtek].[C_TANEVID] = @tanevId
|
|
AND [magatartasErtek].[C_TYPE] LIKE 'MagatartasErtekelesTipus'
|
|
LEFT JOIN
|
|
[T_DICTIONARYITEMBASE_OSSZES] [szorgalomErtek] ON [szorgalomErtek].[ID] = [tanuloErtekeles].[C_SZORGALOMERTEKID]
|
|
AND [szorgalomErtek].[C_TANEVID] = @tanevId
|
|
AND [szorgalomErtek].[C_TYPE] LIKE 'SzorgalomErtekelesTipus'
|
|
INNER JOIN
|
|
[T_OSZTALYCSOPORT_OSSZES] [osztalyCsoport] ON [osztalyCsoport].[ID] = [tanuloErtekeles].[C_OSZTALYCSOPORTID]
|
|
AND [osztalyCsoport].[TOROLT] = 'F'
|
|
LEFT JOIN
|
|
[T_CSOPORT_OSSZES] [csoport] ON [csoport].[ID] = [tanuloErtekeles].[C_OSZTALYCSOPORTID]
|
|
LEFT JOIN
|
|
[T_OSZTALY_OSSZES] [osztaly] ON [osztaly].[ID] = [tanuloErtekeles].[C_OSZTALYCSOPORTID]
|
|
WHERE [tanuloErtekeles].[Torolt] = 'F'
|
|
AND (@atsoroltTanuloErtekelesek > 0
|
|
OR ([tanuloErtekeles].[C_OSZTALYCSOPORTID] IN
|
|
(
|
|
SELECT
|
|
[ID]
|
|
FROM
|
|
[fnGetDokumentumKapcsolodoOsztalycsoportok](@osztalyCsoportId, @tanevId)
|
|
)))
|
|
AND (@ertekelesTipusa IS NULL
|
|
OR [C_TIPUSID] = @ertekelesTipusa)
|
|
AND (@csakKivlasztottOsztalyCsoport = 0
|
|
OR [tanuloErtekeles].[C_OSZTALYCSOPORTID] = @osztalyCsoportId)
|
|
AND (@csakTanorai = 0
|
|
OR [osztaly].[ID] IS NOT NULL
|
|
OR ([csoport].[ID] IS NOT NULL
|
|
AND [csoport].[C_TIPUSA] IN
|
|
(
|
|
SELECT
|
|
[ID]
|
|
FROM
|
|
[fnGetTanoraiCeluCsoportTipusok](@tanevId)
|
|
)))
|
|
option (recompile);
|
|
IF @atsoroltTanuloErtekelesek = 1
|
|
BEGIN
|
|
DECLARE @osztalyTantargyak TABLE
|
|
(
|
|
[TantargyId] INT
|
|
);
|
|
INSERT INTO @osztalyTantargyak
|
|
SELECT DISTINCT
|
|
[TantargyId]
|
|
FROM
|
|
@retTanuloErtekeles
|
|
WHERE [OsztalyCsoportId] IN
|
|
(
|
|
SELECT
|
|
[ID]
|
|
FROM
|
|
[fnGetDokumentumKapcsolodoOsztalycsoportok](@osztalyCsoportId, @tanevId)
|
|
)
|
|
UNION
|
|
SELECT DISTINCT
|
|
[C_TANTARGYID]
|
|
FROM
|
|
[T_FOGLALKOZAS_OSSZES]
|
|
INNER JOIN
|
|
[fnGetDokumentumKapcsolodoOsztalycsoportok](@osztalyCsoportId, @tanevId) AS [OSZTALYCSOPORT] ON [OSZTALYCSOPORT].[ID] = [T_FOGLALKOZAS_OSSZES].[C_OSZTALYCSOPORTID]
|
|
WHERE [T_FOGLALKOZAS_OSSZES].[TOROLT] = 'F';
|
|
DELETE FROM @retTanuloErtekeles
|
|
WHERE
|
|
[ErtekelesId] NOT IN
|
|
(
|
|
SELECT
|
|
[ErtekelesId]
|
|
FROM
|
|
@retTanuloErtekeles
|
|
WHERE [TantargyId] IS NULL
|
|
OR [TantargyId] IN
|
|
(
|
|
SELECT
|
|
[TantargyId]
|
|
FROM
|
|
@osztalyTantargyak
|
|
)
|
|
);
|
|
END
|
|
RETURN
|
|
END;
|
|
|
|
GO
|