175 lines
8.6 KiB
Transact-SQL
175 lines
8.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 primary key 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,
|
|
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),
|
|
IsMagatartasSzorgalom CHAR(1),
|
|
Jeloles NVARCHAR(MAX),
|
|
JelolesAndErtekelesTema NVARCHAR(MAX)
|
|
)
|
|
AS
|
|
BEGIN
|
|
INSERT INTO @retTanuloErtekeles
|
|
SELECT
|
|
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
|
|
,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_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
|
|
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_DATUM >= BelepesDatum AND C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId))))
|
|
AND (tanuloErtekeles.C_DATUM <= KilepesDatum OR KilepesDatum IS NULL)
|
|
AND (@ertekelesTipusa IS NULL OR C_TIPUSID = @ertekelesTipusa)
|
|
AND (@csakKivlasztottOsztalyCsoport = 0 OR 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))))
|
|
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
|