﻿
DROP PROCEDURE IF EXISTS [dbo].[sp_GetDokumentumErtekelesek] 
GO

CREATE PROCEDURE [dbo].[sp_GetDokumentumErtekelesek]
  @osztalyId int,
  @tanevId int,
  @ertekelesTipus int,
  @isBizonyitvany int = 0,
  @nyomtatvanyNyelvEnum int = 0,
  @isMuveszetOktatasi bit = 0,
  @tanitasiHetekSzamaVegzos int = 32,
  @tanitasiHetekSzamaNemVegzos int = 36,
  @isAltantargyBeszamitasa bit = 0
AS
BEGIN
  SET NOCOUNT ON;


  --PRINT 'Osztályhoz tartozó tanulók'
  CREATE TABLE #Tanulo (
     TanuloId int
    ,TanuloCsoportId int
    ,BelepesDatum date
    ,KilepesDatum date
    ,PRIMARY KEY (TanuloId, BelepesDatum, TanuloCsoportId)
  )

  INSERT INTO #Tanulo
  SELECT  
     C_TANULOID AS TanuloId
    ,ID AS TanuloCsoportId
    ,C_BELEPESDATUM AS BelepesDatum
    ,ISNULL(C_KILEPESDATUM, '22000101') AS KilepesDatum
  FROM T_TANULOCSOPORT_OSSZES tanuloCsoport
  WHERE C_OSZTALYCSOPORTID = @osztalyId	
    AND C_TANEVID =  @tanevId
    AND TOROLT = 'F'
  

  DECLARE 
     @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE ID = @osztalyId AND TOROLT = 'F')
    ,@nyelvesitettMagatartasNev nvarchar(max) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'MAGATARTAS' WHEN 1 THEN 'Betragen' WHEN 2 THEN 'Conduct' END
    ,@nyelvesitettSzorgalomNev nvarchar(max)  = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'SZORGALOM' WHEN 1 THEN 'Fleiss' WHEN 2 THEN 'Effort' END   

  CREATE TABLE #Oraszamok (
     TanuloId int
    ,Tantargy int
    ,Oraszam float
    ,INDEX IX_1 CLUSTERED (TanuloId, Tantargy)
  )

  INSERT INTO #Oraszamok
  SELECT TanuloId, TantargyId, Oraszam 
  FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevId, @osztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
  
  IF @isMuveszetOktatasi = 0 BEGIN
    SELECT 
       x.TANULOID 
      ,x.TanuloCsoportId
      ,x.TARGY 
      ,x.Jegyzet
      ,REPLACE(Ertekeles, '(', ' (') AS Ertekeles
      ,x.ErtekelesValue  
      ,REPLACE(ErtekelesJegyzettel, '(', ' (') AS ErtekelesJegyzettel
      ,x.Oraszam
      ,x.RENDEZ1 
      ,x.RENDEZ2
      ,x.RENDEZ3
      ,x.RENDEZ4
      ,x.RENDEZ5
    FROM (
      SELECT 
         er.C_TANULOID AS TANULOID
        ,dk.TanuloCsoportId AS TANULOCSOPORTID
        ,@nyelvesitettMagatartasNev AS TARGY
        ,NULL AS Jegyzet
        ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, mag.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASERTEKID, @tanevId))), ISNULL(er.C_MAGATARTASSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, mao.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASOSZTALYZATID, @tanevId)))) AS Ertekeles
        ,NULL AS ErtekelesValue
        ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, mag.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASERTEKID, @tanevId))), ISNULL(er.C_MAGATARTASSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, mao.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASOSZTALYZATID, @tanevId)))) AS ErtekelesJegyzettel
        ,NULL AS Oraszam
        ,-2 AS RENDEZ1           
        ,NULL AS RENDEZ2
        ,NULL AS RENDEZ3
        ,NULL AS RENDEZ4
        ,NULL AS RENDEZ5
      FROM T_TANULOERTEKELES_OSSZES er
        INNER JOIN #Tanulo dk ON dk.TanuloId = er.C_TANULOID 
          AND er.C_DATUM BETWEEN dk.BelepesDatum AND dk.KilepesDatum
        INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = er.C_TANULOID
          AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = er.C_OSZTALYCSOPORTID
          AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= er.C_DATUM
          AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= er.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
          AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
          AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mao ON mao.ID = er.C_MAGATARTASOSZTALYZATID AND mao.C_TANEVID = er.C_TANEVID
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mag ON mag.ID = er.C_MAGATARTASERTEKID AND mag.C_TANEVID = er.C_TANEVID
      WHERE (er.C_MAGATARTASERTEKID IS NOT NULL OR er.C_MAGATARTASSZOVEGFORMAZOTT IS NOT NULL OR er.C_MAGATARTASOSZTALYZATID IS NOT NULL)
        AND er.C_TANEVID = @tanevId
        AND er.TOROLT = 'F'
        AND er.C_ISMAGATARTASSZORGALOM = 'T'
        AND er.C_TIPUSID = @ertekelesTipus
    --    AND er.C_OSZTALYCSOPORTID IN (SELECT ID FROM @kapcsolodoOcsID)
  
      UNION ALL

      SELECT 
         er.C_TANULOID AS TANULOID
        ,dk.TanuloCsoportId AS TanuloCsoportId
        ,@nyelvesitettSzorgalomNev AS TARGY
        ,NULL AS Jegyzet                              
        ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMERTEKID , @tanevId))), ISNULL(er.C_SZORGALOMSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMOSZTALYZATID, @tanevId)))) AS Ertekeles
        ,NULL AS ErtekelesValue
        ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMERTEKID, @tanevId))), ISNULL(er.C_SZORGALOMSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMOSZTALYZATID, @tanevId)))) AS ErtekelesJegyzettel
        ,NULL AS Oraszam
        ,-1 AS RENDEZ1           
        ,NULL AS RENDEZ2
        ,NULL AS RENDEZ3
        ,NULL AS RENDEZ4
        ,NULL AS RENDEZ5
      FROM T_TANULOERTEKELES_OSSZES er
        INNER JOIN #Tanulo dk ON dk.TanuloId = er.C_TANULOID 
          AND er.C_DATUM BETWEEN dk.BelepesDatum AND dk.KilepesDatum
        INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = er.C_TANULOID
          AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = er.C_OSZTALYCSOPORTID
          AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= er.C_DATUM
          AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= er.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
          AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
          AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szo ON szo.ID = er.C_SZORGALOMOSZTALYZATID AND szo.C_TANEVID = er.C_TANEVID
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szg ON szg.ID = er.C_SZORGALOMERTEKID AND szg.C_TANEVID = er.C_TANEVID
      WHERE (er.C_SZORGALOMERTEKID IS NOT NULL OR er.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL OR er.C_SZORGALOMOSZTALYZATID IS NOT NULL)
        AND er.C_TANEVID = @tanevId
        AND er.TOROLT = 'F'
        AND er.C_ISMAGATARTASSZORGALOM = 'T'
        AND er.C_TIPUSID = @ertekelesTipus
     ---   AND TipusId = @ertekelesTipus --????
     UNION ALL
       SELECT 
         er.C_TANULOID AS TANULOID
        ,dk.TanuloCsoportId AS TanuloCsoportId
        ,CASE 
          WHEN @nyomtatvanyNyelvEnum = 0 THEN
            ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV)
          WHEN @nyomtatvanyNyelvEnum = 1 THEN
            COALESCE(tgy.C_NEMETNEV, tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV)
          WHEN @nyomtatvanyNyelvEnum = 2 THEN
            COALESCE(tgy.C_ANGOLNEV, tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV)
         END AS TARGY   
        ,er.C_ERTEKELESTEMA AS Jegyzet
        ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, jegy.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_ERTEKELESOSZTALYZATID, @tanevId))), ISNULL(er.C_ERTEKELESSZOVEGFORMAZOTT, CONVERT(nvarchar(max),er.C_ERTEKELESSZAZALEK))) AS Ertekeles
        ,jegy.C_VALUE AS ErtekelesValue
        ,CASE
          WHEN tgy.C_TARGYKATEGORIA = 7688 AND er.C_ERTEKELESOSZTALYZATID IS NOT NULL THEN           
            CASE er.C_ERTEKELESOSZTALYZATID
              WHEN 1502 THEN 'Hanyag(2)'
              WHEN 1503 THEN 'Változó(3)'
              WHEN 1504 THEN 'Jó(4)'
              WHEN 1505 THEN 'Példás(5)'
            END 
          ELSE ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, jegy.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_ERTEKELESOSZTALYZATID, @tanevId))), ISNULL(er.C_ERTEKELESSZOVEGFORMAZOTT, CONVERT(nvarchar(max),er.C_ERTEKELESSZAZALEK))) + IIF(er.C_ERTEKELESTEMA IS NULL, '', ' * ' + er.C_ERTEKELESTEMA) 
        END AS ErtekelesJegyzettel
        ,Oraszam AS Oraszam
        ,CASE WHEN tgy.C_FOTARGYID IS NULL THEN ISNULL(kat.C_ORDER, 10000) ELSE ISNULL(fokat.C_ORDER, 10000) END as RENDEZ1
        ,COALESCE(fotgy.C_NEVNYOMTATVANYBAN, fotgy.C_NEV, tgy.C_NEV) as RENDEZ2
        ,ISNULL(tgy.C_FOTARGYID, tgy.ID) as RENDEZ3
        ,tgy.C_FOTARGYID as RENDEZ4
        ,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS RENDEZ5
      FROM T_TANULOERTEKELES_OSSZES er
        INNER JOIN #Tanulo dk ON dk.TanuloId = er.C_TANULOID 
          AND er.C_DATUM BETWEEN dk.BelepesDatum AND dk.KilepesDatum
        INNER JOIN T_TANULOCSOPORT_OSSZES ocs ON ocs.C_TANULOID = er.C_TANULOID
          AND ocs.C_OSZTALYCSOPORTID = er.C_OSZTALYCSOPORTID
          AND ocs.C_BELEPESDATUM <= er.C_DATUM
          AND (ocs.C_KILEPESDATUM >= er.C_DATUM OR ocs.C_KILEPESDATUM IS NULL)
          AND ocs.TOROLT = 'F'
        LEFT JOIN #Oraszamok OraszamTable ON OraszamTable.Tantargy = er.C_TANTARGYID 
          AND OraszamTable.TanuloId = er.C_TANULOID
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jegy ON jegy.ID = er.C_ERTEKELESOSZTALYZATID 
          AND jegy.C_TANEVID = er.C_TANEVID 
          AND jegy.TOROLT = 'F'
        INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = er.C_TANTARGYID AND tgy.TOROLT = 'F'
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kat ON kat.ID = tgy.C_TARGYKATEGORIA
          AND kat.TOROLT = 'F'
          AND kat.C_TANEVID = tgy.C_TANEVID
        LEFT JOIN T_TANTARGY_OSSZES fotgy ON tgy.C_FOTARGYID = fotgy.ID AND fotgy.TOROLT = 'F'
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES fokat ON fokat.ID = fotgy.C_TARGYKATEGORIA
          AND fokat.TOROLT = 'F'
          AND fokat.C_TANEVID = fotgy.C_TANEVID
        INNER JOIN T_OSZTALYCSOPORT_OSSZES o ON er.C_OSZTALYCSOPORTID = o.ID AND  o.C_FELADATKATEGORIAID = @feladatKategoriaId
        LEFT JOIN (
          SELECT cs.ID, cs.C_OSZTALYBONTASID
          FROM T_CSOPORT_OSSZES cs 
          INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = cs.C_TIPUSA AND cst.C_ALTANEVID = cs.C_ALTANEVID AND cst.C_ISTANORAICELU = 'T'
        ) cs ON cs.ID = er.C_OSZTALYCSOPORTID AND (cs.C_OSZTALYBONTASID IS NULL OR cs.C_OSZTALYBONTASID = @osztalyId)  
      WHERE er.C_TIPUSID = @ertekelesTipus 
        AND (tgy.C_FOTARGYE = 'T' OR tgy.C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')
        AND tgy.C_TARGYKATEGORIA <> 1248
        AND er.C_ISMAGATARTASSZORGALOM = 'F'
        AND er.TOROLT = 'F' 
        AND (cs.ID IS NOT NULL OR er.C_OSZTALYCSOPORTID = @osztalyId)     
    ) x
    
  END
  ELSE BEGIN  -- A művészeti csoportos lekérdezés maradt a régi, elvileg nem használják már, mert ott az ami, de azért ez nagy bizonyossággal nem jelenthető ki.
  	CREATE TABLE #ErtekelesekTemp (
       ErtekelesId int primary key NOT NULL
      ,Datum date
      ,TipusId int
      ,ErtekelesSzoveg nvarchar(max)
      ,ErtekelesSzovegFormazott 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)
      ,MagatartasSzovegFormazott nvarchar(max)
      ,MagatartasSzovegRovidNev nvarchar(3)
      ,MagatartasErtekId int
      ,MagatartasErtek nvarchar(max)
      ,MagatartasErtekOsztalyzatkent int
      ,SzorgalomOsztalyzatId int
      ,SzorgalomOsztalyzatValue int
      ,SzorgalomOsztalyzatNev nvarchar(max)
      ,SzorgalomSzoveg nvarchar(max)
      ,SzorgalomSzovegFormazott 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)
      ,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)
      ,RENDEZ1	int
      ,RENDEZ2	nvarchar(max)
      ,RENDEZ3 int
      ,RENDEZ4	int
      ,RENDEZ5	nvarchar(max)
    )

    INSERT INTO #ErtekelesekTemp
    SELECT 
       ErtekelesId 
      ,Datum 
      ,TipusId
      ,ErtekelesSzoveg 
      ,ErtekelesSzovegFormazott
      ,ErtekelesSzovegRovidNev 
      ,ErtekelesOsztalyzatId
      ,ErtekelesOsztalyzatValue 
      ,ErtekelesOsztalyzatNev
      ,ErtekelesSzazalek 
      ,MagatartasOsztalyzatId
      ,MagatartasOsztalyzatValue 
      ,MagatartasOsztalyzatNev 
      ,MagatartasSzoveg 
      ,MagatartasSzovegFormazott
      ,MagatartasSzovegRovidNev
      ,MagatartasErtekId 
      ,MagatartasErtek 
      ,MagatartasErtekOsztalyzatkent
      ,SzorgalomOsztalyzatId
      ,SzorgalomOsztalyzatValue
      ,SzorgalomOsztalyzatNev
      ,SzorgalomSzoveg 
      ,SzorgalomSzovegFormazott
      ,SzorgalomSzovegRovidNev
      ,SzorgalomErtekId
      ,SzorgalomErtek 
      ,SzorgalomErtekOsztalyzatkent 
      ,TanuloId
      ,OsztalyCsoportId
      ,TantargyId 
      ,TantargyNevZarojellel 
      ,TantargyNevNyomtatvanyban 
      ,TantargyNev
      ,NULL
      ,NULL
      ,TargyKategoriaId
      ,FotargyE
      ,Altantargy
      ,FotargyId 
      ,ErtekelesTema 
      ,ErtekeloId 
      ,ErtekelesModjaId 
      ,IsMagatartasSzorgalom 
      ,Jeloles
      ,JelolesAndErtekelesTema
      ,RENDEZ1              
      ,RENDEZ2
      ,RENDEZ3
      ,RENDEZ4
      ,RENDEZ5
    FROM fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 0, DEFAULT, 2)  

    CREATE TABLE #temp (
       TANULOID int
      ,TANULOCSOPORTID int
      ,TARGY nvarchar(max)
      ,Jegyzet nvarchar(max)
      ,Ertekeles nvarchar(max)
      ,ErtekelesValue int
      ,ErtekelesJegyzettel nvarchar(max)
      ,Oraszam FLOAT
      ,RENDEZ1 int
      ,RENDEZ2 nvarchar(max)
      ,RENDEZ3 int
      ,RENDEZ4 int
      ,RENDEZ5 nvarchar(max)
    )
    
    INSERT INTO #temp
    SELECT 
       ErtekelesTemp.TanuloId AS TANULOID
      ,TanuloTable.TanuloCsoportId AS TanuloCsoportId
      ,@nyelvesitettMagatartasNev AS TARGY
      ,NULL
      ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId))))
      ,NULL
      ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId)))) AS ErtekelesJegyzettel
      ,NULL AS Oraszam
      ,-2              
      ,RENDEZ2
      ,RENDEZ3
      ,RENDEZ4
      ,RENDEZ5
    FROM #ErtekelesekTemp ErtekelesTemp
      INNER JOIN #Tanulo TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
    WHERE (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
      AND (MagatartasErtek IS NOT NULL OR MagatartasSzovegFormazott IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
      AND TipusId = @ertekelesTipus --????
   
    INSERT INTO #TEMP
    SELECT 
       ErtekelesTemp.TanuloId AS TANULOID
      ,TanuloTable.TanuloCsoportId AS TanuloCsoportId
      ,@nyelvesitettSzorgalomNev AS TARGY
      ,NULL                              
      ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId))))
      ,NULL
      ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId)))) AS ErtekelesJegyzettel
      ,NULL AS Oraszam
      ,-1              
      ,RENDEZ2
      ,RENDEZ3
      ,RENDEZ4
      ,RENDEZ5
    FROM #ErtekelesekTemp ErtekelesTemp
      INNER JOIN #Tanulo TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
    WHERE (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
      AND (SzorgalomErtek IS NOT NULL OR SzorgalomSzovegFormazott IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
      AND TipusId = @ertekelesTipus --????
    INSERT INTO #TEMP  
    SELECT 
       ErtekelesTemp.TanuloId AS TANULOID
      ,TanuloTable.TanuloCsoportId AS TanuloCsoportId
      ,CASE 
        WHEN @nyomtatvanyNyelvEnum = 0 THEN
          ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
        WHEN @nyomtatvanyNyelvEnum = 1 THEN
          ISNULL(TantargyNemetNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
        WHEN @nyomtatvanyNyelvEnum = 2 THEN
          ISNULL(TantargyAngolNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
       END AS TARGY   
      ,ErtekelesTemp.ErtekelesTema
      ,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzovegFormazott, CONVERT(nvarchar(max),ErtekelesTemp.ErtekelesSzazalek)))
      ,ErtekelesTemp.ErtekelesOsztalyzatValue
      ,CASE
        WHEN TargyKategoriaId = 7688 AND ErtekelesOsztalyzatId IS NOT NULL THEN           
        CASE 
          WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1502 THEN 'Hanyag(2)'
          WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1503 THEN 'Változó(3)'
          WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1504 THEN 'Jó(4)'
          WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1505 THEN 'Példás(5)'
        END 
        ELSE ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzovegFormazott, CONVERT(nvarchar(max),ErtekelesTemp.ErtekelesSzazalek))) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) 
      END AS ErtekelesJegyzettel
      ,Oraszam AS Oraszam
      ,RENDEZ1              
      ,RENDEZ2
      ,RENDEZ3
      ,RENDEZ4
      ,RENDEZ5
    FROM #ErtekelesekTemp ErtekelesTemp
      INNER JOIN #Tanulo TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
      LEFT JOIN #Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId
    WHERE ErtekelesTemp.TipusId = @ertekelesTipus 
      AND (ErtekelesTemp.FotargyE = 'T' OR ErtekelesTemp.Altantargy = 'T')
      AND (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
      AND ErtekelesTemp.TargyKategoriaId <> 1248
      AND ErtekelesTemp.isMagatartasSzorgalom = 'F'
        
    SELECT 
       TANULOID 
      ,TanuloCsoportId
      ,TARGY 
      ,Jegyzet
      ,REPLACE(Ertekeles, '(', ' (') AS Ertekeles
      ,ErtekelesValue  
      ,REPLACE(ErtekelesJegyzettel, '(', ' (')  AS ErtekelesJegyzettel
      ,Oraszam 
      ,RENDEZ1 
      ,RENDEZ2
      ,RENDEZ3
      ,RENDEZ4
      ,RENDEZ5
    FROM #temp
    ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
  END
END
GO

