208 lines
8.5 KiB
Transact-SQL
208 lines
8.5 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
DROP FUNCTION IF EXISTS fnGetDokumentumErtekelesekOsztalyonkent
|
|
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),
|
|
TantargyAngolNev NVARCHAR(MAX),
|
|
TantargyNemetNev 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,
|
|
tanuloErtekeles.C_DATUM,
|
|
tanuloErtekeles.C_TIPUSID,
|
|
tanuloErtekeles.C_ERTEKELESSZOVEG,
|
|
tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV,
|
|
tanuloErtekeles.C_ERTEKELESOSZTALYZATID,
|
|
ertekelesOsztalyzat.C_VALUE,
|
|
ertekelesOsztalyzat.C_NAME,
|
|
IIF(tanuloErtekeles.C_ERTEKELESSZAZALEK IS NOT NULL, CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK)+'%', NULL),
|
|
tanuloErtekeles.C_MAGATARTASOSZTALYZATID,
|
|
magatartasOsztalyzat.C_VALUE,
|
|
magatartasOsztalyzat.C_NAME,
|
|
tanuloErtekeles.C_MAGATARTASSZOVEG,
|
|
tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV,
|
|
tanuloErtekeles.C_MAGATARTASERTEKID,
|
|
magatartasErtek.C_NAME,
|
|
magatartasErtek.C_VALUE + 1,
|
|
tanuloErtekeles.C_SZORGALOMOSZTALYZATID,
|
|
szorgalomOsztalyzat.C_VALUE,
|
|
szorgalomOsztalyzat.C_NAME,
|
|
tanuloErtekeles.C_SZORGALOMSZOVEG,
|
|
tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV,
|
|
tanuloErtekeles.C_SZORGALOMERTEKID,
|
|
szorgalomErtek.C_NAME,
|
|
szorgalomErtek.C_VALUE + 1,
|
|
tanuloErtekeles.C_TANULOID,
|
|
TanuloCsoportId,
|
|
tanuloErtekeles.C_OSZTALYCSOPORTID,
|
|
tanuloErtekeles.C_TANTARGYID,
|
|
IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN +' ('+tantargy.C_NEV+')', tantargy.C_NEV),
|
|
tantargy.C_NEVNYOMTATVANYBAN,
|
|
tantargy.C_NEV,
|
|
tantargy.C_ANGOLNEV,
|
|
tantargy.C_NEMETNEV,
|
|
tantargy.C_TARGYKATEGORIA,
|
|
tantargy.C_FOTARGYE,
|
|
tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN,
|
|
tantargy.C_FOTARGYID,
|
|
tanuloErtekeles.C_ERTEKELESTEMA,
|
|
tanuloErtekeles.C_ERTEKELOID,
|
|
tanuloErtekeles.C_ERTEKELESMODID,
|
|
tanuloErtekeles.C_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>',
|
|
''),
|
|
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,
|
|
'')
|
|
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.C_TANEVID = @tanevId
|
|
AND tanuloErtekeles.TOROLT = 'F'
|
|
AND (@atsoroltTanuloErtekelesek > 0
|
|
OR (tanuloErtekeles.C_OSZTALYCSOPORTID
|
|
IN(
|
|
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0))
|
|
)
|
|
)
|
|
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)
|
|
)
|
|
)
|
|
)
|
|
AND BelepesDatum <= tanuloErtekeles.C_DATUM
|
|
AND (KilepesDatum IS NULL OR KilepesDatum >= tanuloErtekeles.C_DATUM)
|
|
|
|
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, 0)
|
|
)
|
|
|
|
UNION
|
|
|
|
SELECT DISTINCT
|
|
C_TANTARGYID
|
|
FROM
|
|
T_FOGLALKOZAS_OSSZES
|
|
INNER JOIN fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0) 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
|