238 lines
No EOL
13 KiB
Transact-SQL
238 lines
No EOL
13 KiB
Transact-SQL
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
|
|
,@includeOsztalyfonokiKategoria bit = 0
|
|
,@osztalyzatTipusTypeID int = 44
|
|
,@magatartasErtekelesTipusTypeID int = 50
|
|
,@szorgalomErtekelesTipusTypeID int = 51
|
|
)
|
|
RETURNS @retTanuloErtekeles TABLE
|
|
(
|
|
ErtekelesId INT NOT NULL
|
|
,Datum DATE
|
|
,TipusId INT
|
|
,ErtekelesSzoveg NVARCHAR(MAX)
|
|
,ErtekelesSzovegFormazott NVARCHAR(MAX)
|
|
,ErtekelesSzovegRovidNev NVARCHAR(3)
|
|
,ErtekelesOsztalyzatId INT
|
|
,ErtekelesOsztalyzatValue INT
|
|
,ErtekelesOsztalyzatNev NVARCHAR(500)
|
|
,ErtekelesSzazalek NVARCHAR(4)
|
|
,MagatartasOsztalyzatId INT
|
|
,MagatartasOsztalyzatValue INT
|
|
,MagatartasOsztalyzatNev NVARCHAR(500)
|
|
,MagatartasSzoveg NVARCHAR(MAX)
|
|
,MagatartasSzovegFormazott NVARCHAR(MAX)
|
|
,MagatartasSzovegRovidNev NVARCHAR(6)
|
|
,MagatartasErtekId INT
|
|
,MagatartasErtek NVARCHAR(500)
|
|
,MagatartasErtekOsztalyzatkent INT
|
|
,SzorgalomOsztalyzatId INT
|
|
,SzorgalomOsztalyzatValue INT
|
|
,SzorgalomOsztalyzatNev NVARCHAR(500)
|
|
,SzorgalomSzoveg NVARCHAR(MAX)
|
|
,SzorgalomSzovegFormazott NVARCHAR(MAX)
|
|
,SzorgalomSzovegRovidNev NVARCHAR(6)
|
|
,SzorgalomErtekId INT
|
|
,SzorgalomErtek NVARCHAR(500)
|
|
,SzorgalomErtekOsztalyzatkent INT
|
|
,TanuloId INT
|
|
,TanuloCsoportId INT
|
|
,OsztalyCsoportId INT
|
|
,TantargyId INT
|
|
,TantargyNevZarojellel NVARCHAR(1023)
|
|
,TantargyNevNyomtatvanyban NVARCHAR(510)
|
|
,TantargyNev NVARCHAR(510)
|
|
,TantargyAngolNev NVARCHAR(510)
|
|
,TantargyNemetNev NVARCHAR(510)
|
|
,TargyKategoriaId INT
|
|
,FotargyE CHAR(1)
|
|
,Altantargy CHAR(1)
|
|
,FotargyId INT
|
|
,ErtekelesTema NVARCHAR(2100)
|
|
,ErtekeloId INT
|
|
,ErtekelesModjaId INT
|
|
,IsMagatartasSzorgalom CHAR(1)
|
|
,Jeloles NVARCHAR(MAX)
|
|
,JelolesAndErtekelesTema NVARCHAR(MAX)
|
|
,RogzitesDatum DATETIME
|
|
,RENDEZ0 int
|
|
,RENDEZ1 INT
|
|
,RENDEZ2 NVARCHAR(510)
|
|
,RENDEZ3 INT
|
|
,RENDEZ4 INT
|
|
,RENDEZ5 NVARCHAR(510)
|
|
,IsTanulmanyiatlagbanemszamit CHAR(1)
|
|
)
|
|
AS
|
|
BEGIN
|
|
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
|
|
|
DECLARE @kapcsolodoOcsID TABLE(ID INT)
|
|
INSERT INTO @kapcsolodoOcsID (ID)
|
|
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0, DEFAULT)
|
|
|
|
DECLARE @DefaultFeladatKategoriaId int = 7553
|
|
|
|
INSERT INTO @retTanuloErtekeles
|
|
SELECT
|
|
tanuloErtekeles.ID as ErtekelesId
|
|
,tanuloErtekeles.C_DATUM as Datum
|
|
,tanuloErtekeles.C_TIPUSID as TipusId
|
|
,tanuloErtekeles.C_ERTEKELESSZOVEG as ErtekelesSzoveg
|
|
,tanuloErtekeles.C_ERTEKELESSZOVEGFORMAZOTT as ErtekelesSzovegFormazott
|
|
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV as ErtekelesSzovegRovidNev
|
|
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID as ErtekelesOsztalyzatId
|
|
,ertekelesOsztalyzat.C_VALUE as ErtekelesOsztalyzatValue
|
|
,ertekelesOsztalyzat.C_NAME as ErtekelesOsztalyzatNev
|
|
,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK)+'%' as ErtekelesSzazalek
|
|
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID as MagatartasOsztalyzatId
|
|
,magatartasOsztalyzat.C_VALUE as MagatartasOsztalyzatValue
|
|
,magatartasOsztalyzat.C_NAME as MagatartasOsztalyzatNev
|
|
,tanuloErtekeles.C_MAGATARTASSZOVEG as MagatartasSzoveg
|
|
,tanuloErtekeles.C_MAGATARTASSZOVEGFORMAZOTT as MagatartasSzovegFormazott
|
|
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV as MagatartasSzovegRovidNev
|
|
,tanuloErtekeles.C_MAGATARTASERTEKID as MagatartasErtekId
|
|
,magatartasErtek.C_NAME as MagatartasErtek
|
|
,magatartasErtek.C_VALUE + 1 as MagatartasErtekOsztalyzatken
|
|
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID as SzorgalomOsztalyzatId
|
|
,szorgalomOsztalyzat.C_VALUE as SzorgalomOsztalyzatValue
|
|
,szorgalomOsztalyzat.C_NAME as SzorgalomOsztalyzatNev
|
|
,tanuloErtekeles.C_SZORGALOMSZOVEG as SzorgalomSzoveg
|
|
,tanuloErtekeles.C_SZORGALOMSZOVEGFORMAZOTT as SzorgalomSzovegFormazott
|
|
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV as SzorgalomSzovegRovidNev
|
|
,tanuloErtekeles.C_SZORGALOMERTEKID as SzorgalomErtekId
|
|
,szorgalomErtek.C_NAME as SzorgalomErtek
|
|
,szorgalomErtek.C_VALUE + 1 as SzorgalomErtekOsztalyzatkent
|
|
,tanuloErtekeles.C_TANULOID as TanuloId
|
|
,TanuloCsoport.ID AS TanuloCsoportId
|
|
,tanuloErtekeles.C_OSZTALYCSOPORTID as OsztalyCsoportId
|
|
,tanuloErtekeles.C_TANTARGYID as TantargyId
|
|
,IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL, tantargy.C_NEVNYOMTATVANYBAN +' (' + tantargy.C_NEV + ')', tantargy.C_NEV) as TantargyNevZarojellel
|
|
,tantargy.C_NEVNYOMTATVANYBAN as TantargyNevNyomtatvanyban
|
|
,tantargy.C_NEV as TantargyNev
|
|
,tantargy.C_ANGOLNEV as TantargyAngolNev
|
|
,tantargy.C_NEMETNEV as TantargyNemetNev
|
|
,tantargy.C_TARGYKATEGORIA as TargyKategoriaId
|
|
,tantargy.C_FOTARGYE as FotargyE
|
|
,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN as Altantargy
|
|
,tantargy.C_FOTARGYID as FotargyId
|
|
,tanuloErtekeles.C_ERTEKELESTEMA as ErtekelesTema
|
|
,tanuloErtekeles.C_ERTEKELOID as ErtekeloId
|
|
,tanuloErtekeles.C_ERTEKELESMODID as ErtekelesModjaId
|
|
,tanuloErtekeles.C_ISMAGATARTASSZORGALOM as IsMagatartasSzorgalom
|
|
,CASE
|
|
WHEN tanuloErtekeles.C_TIPUSID = 1518 THEN
|
|
CASE
|
|
WHEN tanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T' THEN
|
|
CASE
|
|
WHEN tanuloErtekeles.C_MAGATARTASSZOVEG IS NOT NULL THEN
|
|
'<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_MAGATARTASSZOVEG IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
|
|
WHEN tanuloErtekeles.C_SZORGALOMSZOVEG IS NOT NULL THEN
|
|
'<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_SZORGALOMSZOVEG IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
|
|
END
|
|
WHEN tanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' THEN
|
|
'<sup>' + CAST(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESSZOVEG IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_ROGZITESDATUM) AS NVARCHAR(10))+'</sup>'
|
|
END
|
|
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520) THEN
|
|
'<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>'
|
|
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN
|
|
'<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>'
|
|
END as Jeloles
|
|
,CASE
|
|
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520) THEN
|
|
'<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
|
|
WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN
|
|
'<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
|
|
END as JelolesAndErtekelesTema
|
|
,tanuloErtekeles.C_ROGZITESDATUM as RogzitesDatum
|
|
,tantargy.C_SORSZAM as RENDEZ0
|
|
,CASE WHEN tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
|
|
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, tantargy.C_NEV) as RENDEZ2
|
|
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID) as RENDEZ3
|
|
,tantargy.C_FOTARGYID as RENDEZ4
|
|
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV) as RENDEZ5
|
|
,tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT as IsTanulmanyiatlagbanemszamit
|
|
FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
|
|
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND TanuloCsoport.C_BELEPESDATUM <= tanuloErtekeles.C_DATUM
|
|
AND (TanuloCsoport.C_KILEPESDATUM >= tanuloErtekeles.C_DATUM OR TanuloCsoport.C_KILEPESDATUM IS NULL)
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
|
|
AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
|
AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= tanuloErtekeles.C_DATUM
|
|
AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= tanuloErtekeles.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
|
|
AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
|
|
AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
|
|
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tanuloErtekeles.C_TANTARGYID AND tantargy.TOROLT = 'F'
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
|
|
AND ertekelesOsztalyzat.C_TANEVID = @tanevId
|
|
AND ertekelesOsztalyzat.C_DICTIONARYTYPEID = @osztalyzatTipusTypeID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
|
|
AND magatartasOsztalyzat.C_TANEVID = @tanevId
|
|
AND magatartasOsztalyzat.C_DICTIONARYTYPEID = @osztalyzatTipusTypeID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
|
|
AND szorgalomOsztalyzat.C_TANEVID = @tanevId
|
|
AND szorgalomOsztalyzat.C_DICTIONARYTYPEID = @osztalyzatTipusTypeID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
|
|
AND magatartasErtek.C_TANEVID = @tanevId
|
|
AND magatartasErtek.C_DICTIONARYTYPEID = @magatartasErtekelesTipusTypeID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
|
|
AND szorgalomErtek.C_TANEVID = @tanevId
|
|
AND szorgalomErtek.C_DICTIONARYTYPEID = @szorgalomErtekelesTipusTypeID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tantargy.C_TARGYKATEGORIA
|
|
AND TargyKategoriaDictionary.TOROLT = 'F'
|
|
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
|
|
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tantargy.C_FOTARGYID = FotargyTable.ID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
|
|
AND FotargyKategoriaDictionary.TOROLT = 'F'
|
|
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
|
AND osztalyCsoport.TOROLT = 'F' and osztalyCsoport.C_FELADATKATEGORIAID = @kategoriaId
|
|
LEFT JOIN (
|
|
SELECT
|
|
tanorai.ID as tanoraiId
|
|
,cs.ID as CsoportId
|
|
FROM T_CSOPORT_OSSZES cs
|
|
INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
|
|
) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
|
|
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
|
WHERE tanuloErtekeles.C_TANEVID = @tanevId
|
|
AND tanuloErtekeles.TOROLT = 'F'
|
|
AND (@atsoroltTanuloErtekelesek = 1 OR (tanuloErtekeles.C_OSZTALYCSOPORTID IN(SELECT ID FROM @kapcsolodoOcsID)))
|
|
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 tanorai.tanoraiId IS NOT NULL)
|
|
AND ((ISNULL(tantargy.C_TARGYKATEGORIA,0) <> 1248) OR @includeOsztalyfonokiKategoria = 1)
|
|
|
|
IF @atsoroltTanuloErtekelesek > 0
|
|
BEGIN
|
|
DECLARE @osztalyTantargyak TABLE (TantargyId INT)
|
|
|
|
INSERT INTO @osztalyTantargyak (TantargyId)
|
|
SELECT DISTINCT
|
|
TantargyId
|
|
FROM @retTanuloErtekeles
|
|
WHERE OsztalyCsoportId IN (SELECT ID FROM @kapcsolodoOcsID)
|
|
UNION
|
|
SELECT DISTINCT
|
|
C_TANTARGYID
|
|
FROM T_FOGLALKOZAS_OSSZES
|
|
INNER JOIN @kapcsolodoOcsID AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
|
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
|
|
|
|
DELETE FROM @retTanuloErtekeles
|
|
WHERE TantargyId NOT IN (SELECT TantargyId FROM @osztalyTantargyak)
|
|
END
|
|
|
|
RETURN
|
|
END
|
|
GO |