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 '' + 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))+'' WHEN tanuloErtekeles.C_SZORGALOMSZOVEG IS NOT NULL THEN '' + 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))+'' END WHEN tanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' THEN '' + 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))+'' END WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520) THEN '(' + 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))+')' WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN '(' + 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))+')' END as Jeloles ,CASE WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520) THEN '(' + 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)) + '): ' + tanuloErtekeles.C_ERTEKELESTEMA WHEN tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1522, 1523, 1524, 1525) THEN '(' + 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)) + '): ' + 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