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

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

  DECLARE @sql nvarchar(MAX)

  --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'

  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)

  DECLARE @feladatKategoriaId int
  SET @feladatKategoriaId = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE ID = @osztalyId AND TOROLT = 'F')
  SET @sql = N'
  DECLARE 
     
     @nyelvesitettMagatartasNev nvarchar(max) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN ''Magatartás'' 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   

    SELECT 
       x.TANULOID 
      ,x.TanuloCsoportId
      ,x.TARGY 
      ,x.Jegyzet
      ,REPLACE(Ertekeles, ''('', '' ('') AS Ertekeles
      ,x.ErtekelesValue  
      ,REPLACE(ErtekelesJegyzettel, ''('', '' ('') AS ErtekelesJegyzettel
      ,x.Oraszam
      ,x.RENDEZ0
      ,x.RENDEZ1 
      ,x.RENDEZ2
      ,x.RENDEZ3
      ,x.RENDEZ4
      ,x.RENDEZ5
     /*nemzetiségi törzslaphoz kell*/
      ,ErtekelesTema
      ,ErtekelesSzovegIdegenNyelven
      ,ErtekelesValueIdegenNyelven
      ,ErtekelesOsztalyzatIdegenNyelven
      ,ErtekelesSzazalek
      ,Jeloles
      ,TantargyNevIdegenNyelven
      ,TantargyNevMagyarul
    /**/
      ,x.TantargyId
    FROM ('

    IF @isMuveszetOktatasi = 0 BEGIN
      SET @sql += N'
      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
        ,0 AS RENDEZ0
        ,-2 AS RENDEZ1           
        ,NULL AS RENDEZ2
        ,NULL AS RENDEZ3
        ,NULL AS RENDEZ4
        ,NULL AS RENDEZ5
        /*nemzetiségi törzslaphoz kell*/
        ,erny.C_ERTEKELESTEMA AS ErtekelesTema
        ,erny.C_ERTEKELESSZOVEG AS ErtekelesSzovegIdegenNyelven
        ,magny.C_NAME AS ErtekelesValueIdegenNyelven
        ,maony.C_NAME AS ErtekelesOsztalyzatIdegenNyelven
        ,er.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
        ,NULL AS Jeloles
        ,IIF(@idegenNyelvId = 507, ''Betragen'', ''Magatartás'') AS TantargyNevIdegenNyelven
        ,''Magatartás'' AS TantargyNevMagyarul
        /**/
        ,-2 as TantargyId
      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 AND mao.TOROLT = ''F''
        LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES maony ON maony.C_DICTIONARYITEMBASEID = er.C_MAGATARTASOSZTALYZATID AND maony.C_TANEVID = @tanevId AND maony.C_NYELVID = @idegenNyelvId AND maony.TOROLT = ''F''
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mag ON mag.ID = er.C_MAGATARTASERTEKID AND mag.C_TANEVID = er.C_TANEVID AND mag.TOROLT = ''F''
        LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES magny ON magny.C_DICTIONARYITEMBASEID = er.C_MAGATARTASERTEKID AND magny.C_TANEVID = @tanevId AND magny.C_NYELVID = @idegenNyelvId AND magny.TOROLT = ''F''
        LEFT JOIN T_TANULOERTEKELESNYELV_OSSZES erny ON erny.C_TANULOERTEKELESID = er.ID AND erny.C_NYELVID = @idegenNyelvId AND erny.TOROLT = ''F'' 
      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
  
      UNION

      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
              ,szo.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
              ,szo.C_NAME
              ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMOSZTALYZATID, @tanevId)
            )
          )
        ) AS ErtekelesJegyzettel
        ,NULL AS Oraszam
        ,0 AS RENDEZ0
        ,-1 AS RENDEZ1           
        ,NULL AS RENDEZ2
        ,NULL AS RENDEZ3
        ,NULL AS RENDEZ4
        ,NULL AS RENDEZ5
        /*nemzetiségi törzslaphoz kell*/
        ,erny.C_ERTEKELESTEMA AS ErtekelesTema
        ,erny.C_ERTEKELESSZOVEG AS ErtekelesSzovegIdegenNyelven
        ,szgny.C_NAME
        ,szony.C_NAME
        ,er.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
        ,NULL AS Jeloles
        ,IIF(@idegenNyelvId = 507, ''Fleiss'', ''Szorgalom'') AS TantargyNevIdegenNyelven
        ,''Szorgalom'' AS TantargyNevMagyarul
        /**/
        ,-1 as TantargyId
      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 AND szo.TOROLT = ''F''
        LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES szony ON szony.C_DICTIONARYITEMBASEID = er.C_SZORGALOMOSZTALYZATID AND szony.C_TANEVID = @tanevId and szony.C_NYELVID = @idegenNyelvId AND szony.TOROLT = ''F''
        LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szg ON szg.ID = er.C_SZORGALOMERTEKID AND szg.C_TANEVID = er.C_TANEVID AND szg.TOROLT = ''F''
        LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES szgny ON szgny.C_DICTIONARYITEMBASEID = er.C_SZORGALOMERTEKID AND szgny.C_TANEVID = er.C_TANEVID AND szgny.C_NYELVID = @idegenNyelvId AND szgny.TOROLT = ''F''
        LEFT JOIN T_TANULOERTEKELESNYELV_OSSZES erny ON erny.C_TANULOERTEKELESID = er.ID AND erny.C_NYELVID = @idegenNyelvId AND erny.TOROLT = ''F'' 
      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

      UNION
      '
    END
    SET @sql += N'
       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
        ,CASE
          WHEN tgy.C_TARGYKATEGORIA = 7688 AND er.C_ERTEKELESOSZTALYZATID IS NOT NULL THEN           
            IIF(@nyomtatvanyNyelvEnum = 0
              ,szorgkatjegy.C_NAME
              ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, szorgkatjegy.ID, @tanevId)
            )
            + ''('' + CONVERT(nvarchar(max), jegy.C_VALUE) + '')''
          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)
              )
            )
          END AS Ertekeles
        ,jegy.C_VALUE AS ErtekelesValue
        ,CASE
          WHEN tgy.C_TARGYKATEGORIA = 7688 AND er.C_ERTEKELESOSZTALYZATID IS NOT NULL THEN           
            IIF(@nyomtatvanyNyelvEnum = 0
              ,szorgkatjegy.C_NAME
              ,[dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, szorgkatjegy.ID, @tanevId)
            )
            + ''('' + CONVERT(nvarchar(max), jegy.C_VALUE) + '')''
          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
        ,tgy.C_SORSZAM as RENDEZ0
        ,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
        /*nemzetiségi törzslaphoz kell*/
        ,erny.C_ERTEKELESTEMA AS ErtekelesTema
        ,erny.C_ERTEKELESSZOVEG AS ErtekelesSzovegIdegenNyelven
        ,NULL AS ErtekelesValueIdegenNyelven
        ,jegyny.C_NAME AS ErtekelesOsztalyzatIdegenNyelven
        ,er.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
        ,'''' AS Jeloles
        ,tnyelv.C_NEV AS TantargyNevIdegenNyelven
        ,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 TantargynevMagyarul   
        /**/
        ,er.C_TANTARGYID as TantargyId
      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''
        LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES jegyny ON jegyny.C_DICTIONARYITEMBASEID = er.C_ERTEKELESOSZTALYZATID
          AND jegyny.C_TANEVID = er.C_TANEVID
          AND jegyny.TOROLT = ''F''
          AND jegyny.C_NYELVID = @idegenNyelvId
        INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = er.C_TANTARGYID AND tgy.TOROLT = ''F''
        LEFT JOIN T_TANTARGYNYELV_OSSZES tnyelv ON tnyelv.C_TANTARGYID = tgy.ID AND tnyelv.TOROLT = ''F'' AND tnyelv.C_NYELVID = @idegenNyelvId
        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 T_DICTIONARYITEMBASE_OSSZES szorgkatjegy ON szorgkatjegy.C_VALUE = (jegy.C_VALUE - 1)
          AND szorgkatjegy.TOROLT = ''F''
          AND szorgkatjegy.C_TANEVID = jegy.C_TANEVID
          AND szorgkatjegy.C_DICTIONARYTYPEID = @szorgalomErtekelesTipusTypeID'
      IF @isMuveszetOktatasi = 0 BEGIN
        SET @sql += N'
        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)'
      END
      ELSE BEGIN
        IF @feladatKategoriaId = 7555 BEGIN
          SET @sql += N'
          INNER JOIN T_CSOPORT_OSSZES muvcsoport ON muvcsoport.ID = er.C_OSZTALYCSOPORTID AND muvcsoport.TOROLT = ''F'' AND muvcsoport.C_ALTANEVID = er.C_TANEVID
          INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = muvcsoport.C_TIPUSA AND muvcsoport.C_ALTANEVID = cst.C_ALTANEVID AND cst.TOROLT = ''F''
          '
        END
      END
      SET @sql += N'
        LEFT JOIN T_TANULOERTEKELESNYELV_OSSZES erny ON erny.C_TANULOERTEKELESID = er.ID AND erny.C_NYELVID = @idegenNyelvId AND erny.TOROLT = ''F'' 
      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 ('
      IF @isMuveszetOktatasi = 0 BEGIN
        SET @sql += 'cs.ID IS NOT NULL OR '
      END
      SET @sql += N'er.C_OSZTALYCSOPORTID = @osztalyId)     
    ) x'

  EXEC sp_executesql @sql
    ,N'@osztalyId int
    ,@tanevId int
    ,@ertekelesTipus int
    ,@isBizonyitvany int
    ,@nyomtatvanyNyelvEnum int
    ,@tanitasiHetekSzamaVegzos int
    ,@tanitasiHetekSzamaNemVegzos int
    ,@isAltantargyBeszamitasa bit
    ,@idegenNyelvId int
    ,@szorgalomErtekelesTipusTypeID int
    ,@feladatKategoriaId int'
    ,@osztalyId = @osztalyId
    ,@tanevId = @tanevId
    ,@ertekelesTipus = @ertekelesTipus
    ,@isBizonyitvany = @isBizonyitvany
    ,@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum
    ,@tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos
    ,@tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos
    ,@isAltantargyBeszamitasa = @isAltantargyBeszamitasa
    ,@idegenNyelvId = @idegenNyelvId
    ,@szorgalomErtekelesTipusTypeID = @szorgalomErtekelesTipusTypeID
    ,@feladatKategoriaId = @feladatKategoriaId

END
GO
