397 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- Description: <Előszedjük a tanuló értékeléseket a megadott paraméterek alapján>
 | 
						|
-- =============================================
 | 
						|
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesListDataSet
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE uspGetTanuloErtekelesListDataSet
 | 
						|
   @pTanevId int
 | 
						|
  ,@pId int = NULL
 | 
						|
  ,@pTanuloIdsString nvarchar(max) = NULL
 | 
						|
  ,@pOsztalyCsoportId int = NULL
 | 
						|
  ,@pCsoportTipusId int = NULL
 | 
						|
  ,@pTantargyUidsString nvarchar(max) = NULL
 | 
						|
  ,@pErtekeloId int = NULL
 | 
						|
  ,@pOsztalyzatId int = NULL
 | 
						|
  ,@pErtekelesModId int = NULL
 | 
						|
  ,@pTipusId int = NULL
 | 
						|
  ,@pIsBizonyitvanyTipusuErtekelesekIncluded char = NULL
 | 
						|
  ,@pDatumTol datetime = NULL
 | 
						|
  ,@pDatumIg datetime = NULL
 | 
						|
  ,@pRogzitesDatumTol datetime = NULL
 | 
						|
  ,@pRogzitesDatumIg datetime = NULL
 | 
						|
  ,@pErtekelesSzoveg nvarchar(max) = NULL
 | 
						|
  ,@pErtekelesTema nvarchar(255) = NULL
 | 
						|
  ,@pKellKapcsolodoCsoportok char = 'F'
 | 
						|
  ,@pFeladatKategoriaId int = NULL
 | 
						|
  ,@pOktatasiNevelesiFeladatId int = NULL
 | 
						|
  ,@pFeladatEllatasiHelyId int = NULL
 | 
						|
  ,@pEgyszerAdhatoTanuloErtekelesTipusIdListString nvarchar(255) = NULL
 | 
						|
  ,@pSpecialisErtekelesOsztalyzatEnumId int = NULL
 | 
						|
  ,@pSpecialisErtekelesOsztalyzatSzoveg nvarchar(255) = NULL
 | 
						|
  ,@pSpecialisErtekelesOsztalyzatSzovegRovidNev nvarchar(3) = NULL
 | 
						|
  ,@pSpecialisErtekelesOsztalyzatId int = NULL
 | 
						|
  ,@pSpecialisErtekelesOsztalyzatTema nvarchar(255) = NULL
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
  SET NOCOUNT ON;
 | 
						|
 | 
						|
  DECLARE
 | 
						|
     @sql nvarchar(max)
 | 
						|
    ,@preSelectSql nvarchar(max) = ''
 | 
						|
    ,@selectSql nvarchar(max) = N''
 | 
						|
    ,@joinSql nvarchar(max)
 | 
						|
    ,@whereSql nvarchar(max)
 | 
						|
    ,@postSelectSql nvarchar(max) = ''
 | 
						|
  IF @pTanuloIdsString IS NOT NULL AND LEN(@pTanuloIdsString)>0
 | 
						|
  BEGIN
 | 
						|
    SET @selectSql += N'
 | 
						|
    CREATE TABLE #TanuloIds (
 | 
						|
      TanuloId int PRIMARY KEY
 | 
						|
    )
 | 
						|
 | 
						|
    INSERT INTO #TanuloIds(TanuloId)
 | 
						|
    SELECT value FROM STRING_SPLIT(@pTanuloIdsString, '','')'
 | 
						|
  END
 | 
						|
    
 | 
						|
  IF @pTantargyUidsString IS NOT NULL AND LEN(@pTantargyUidsString)>0
 | 
						|
  BEGIN
 | 
						|
    SET @selectSql += N'
 | 
						|
    CREATE TABLE #TantargyUids (
 | 
						|
      TantargyUid NVARCHAR(10)
 | 
						|
    )
 | 
						|
 | 
						|
    INSERT INTO #TantargyUids(TantargyUid)
 | 
						|
    SELECT value FROM STRING_SPLIT(@pTantargyUidsString, '','')
 | 
						|
    '
 | 
						|
  END
 | 
						|
  SET @selectSql += N'
 | 
						|
    --NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót!
 | 
						|
    SELECT DISTINCT
 | 
						|
       ert.ID AS ID
 | 
						|
      ,ert.C_DATUM AS Datum
 | 
						|
      ,ert.C_ROGZITESDATUM AS RogzitesDatum
 | 
						|
      ,ert.C_TIPUSID AS TipusId
 | 
						|
      ,ert.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
 | 
						|
      ,ert.C_ERTEKELESMODID AS ErtekelesModId
 | 
						|
      ,ert.C_ERTEKELESTEMA AS ErtekelesTema
 | 
						|
      ,ert.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
 | 
						|
      ,ert.C_ERTEKELESSZOVEG AS ErtekelesSzoveg
 | 
						|
      ,ert.C_ERTEKELESSZOVEGFORMAZOTT AS ErtekelesSzovegFormazott
 | 
						|
      ,ert.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
 | 
						|
      ,ert.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom
 | 
						|
      ,ert.C_MAGATARTASOSZTALYZATID AS MagatartasOsztalyzatId
 | 
						|
      ,ert.C_MAGATARTASSZOVEG AS MagatartasSzoveg
 | 
						|
      ,ert.C_MAGATARTASSZOVEGFORMAZOTT AS MagatartasSzovegFormazott
 | 
						|
      ,ert.C_MAGATARTASERTEKID AS MagatartasErtekId
 | 
						|
      ,ert.C_SZORGALOMOSZTALYZATID AS SzorgalomOsztalyzatId
 | 
						|
      ,ert.C_SZORGALOMSZOVEG AS SzorgalomSzoveg
 | 
						|
      ,ert.C_SZORGALOMSZOVEGFORMAZOTT AS SzorgalomSzovegFormazott
 | 
						|
      ,ert.C_SZORGALOMERTEKID AS SzorgalomErtekId
 | 
						|
      ,ert.CREATED AS Created
 | 
						|
      ,ert.C_OSZTALYCSOPORTID AS OsztalyCsoportId
 | 
						|
      ,ert.C_ERTEKELESSZOVEGROVIDNEV AS SzovegesErtekelesRovidNev
 | 
						|
      ,ISNULL(suly.C_SULY, 100) AS ErtekelesSuly
 | 
						|
      ,tantargy.ID AS TantargyId
 | 
						|
      ,ISNULL(tantargy.C_NEV, ''Magatartás/Szorgalom'') AS TantargyNev
 | 
						|
      ,tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
 | 
						|
      ,fotargy.ID AS FotargyId
 | 
						|
      ,fotargy.C_NEV AS FotargyNev
 | 
						|
      ,fotargy.C_TARGYKATEGORIA AS FotargyTantargyKategoriaId
 | 
						|
      ,tanulo.ID AS TanuloId
 | 
						|
      ,tanulo.C_NYOMTATASINEV AS TanuloNev
 | 
						|
      ,IIF(tanulo.C_NEVSORREND = ''T'',
 | 
						|
        tanulo.C_UTONEV + '' '' + tanulo.C_VEZETEKNEV,
 | 
						|
        tanulo.C_VEZETEKNEV + '' '' + tanulo.C_UTONEV
 | 
						|
      ) AS TanuloNevElotagNelkul
 | 
						|
      ,tanulo.C_OKTATASIAZONOSITO AS TanuloOktatasiAzonosito
 | 
						|
      ,tanulo.C_SZULETESIHELY AS TanuloSzuletesiHely
 | 
						|
      ,tanulo.C_SZULETESIDATUM AS TanuloSzuletesiIdo
 | 
						|
      ,tanulo.C_ANYJANEVE AS TanuloAnyjaNeve
 | 
						|
      ,tanar.ID AS ErtekeloId
 | 
						|
      ,tanar.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
 | 
						|
      ,IIF(tanar.C_NEVSORREND = ''T'',
 | 
						|
        tanar.C_UTONEV + '' '' + tanar.C_VEZETEKNEV,
 | 
						|
        tanar.C_VEZETEKNEV + '' '' + tanar.C_UTONEV
 | 
						|
      ) AS ErtekeloNyomtatasiNevElotagNelkul
 | 
						|
      ,ocs.C_NEV AS OsztalyCsoportNev
 | 
						|
      ,ocs.C_FELADATKATEGORIAID AS FeladatKategoriaId
 | 
						|
      ,rogziteskoriTanuloOsztaly.ID AS RogziteskoriTanuloOsztalyId
 | 
						|
      ,rogziteskoriTanuloOsztaly.C_NEV AS RogziteskoriTanuloOsztalyNev
 | 
						|
      ,rogziteskoriTanuloOsztaly.C_EVFOLYAMTIPUSA AS RogziteskoriTanuloOsztalyEvfolyamTipusId
 | 
						|
    FROM T_TANULOERTEKELES_OSSZES ert'
 | 
						|
 | 
						|
  SET @joinSql = N'
 | 
						|
      LEFT JOIN T_TANARIATLAGSULY_OSSZES suly ON suly.C_TANEVID = ert.C_TANEVID AND suly.TOROLT = ''F''
 | 
						|
        AND suly.C_ERTEKELESMODID = ert.C_ERTEKELESMODID
 | 
						|
      LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.C_TANEVID = ert.C_TANEVID AND tantargy.TOROLT = ''F''
 | 
						|
        AND tantargy.ID = ert.C_TANTARGYID
 | 
						|
      LEFT JOIN T_TANTARGY_OSSZES fotargy ON fotargy.C_TANEVID = ert.C_TANEVID AND fotargy.TOROLT = ''F''
 | 
						|
        AND fotargy.ID = tantargy.C_FOTARGYID
 | 
						|
      LEFT JOIN T_OSZTALYCSOPORT_OSSZES rogziteskoriTanuloOsztaly ON rogziteskoriTanuloOsztaly.C_TANEVID = ert.C_TANEVID AND rogziteskoriTanuloOsztaly.TOROLT = ''F''
 | 
						|
        AND rogziteskoriTanuloOsztaly.ID = ert.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
      INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.C_TANEVID = ert.C_TANEVID AND tanulo.TOROLT = ''F''
 | 
						|
        AND tanulo.ID = ert.C_TANULOID
 | 
						|
      INNER JOIN T_FELHASZNALO_OSSZES tanar ON tanar.C_TANEVID = ert.C_TANEVID AND tanar.TOROLT = ''F''
 | 
						|
        AND tanar.ID = ert.C_ERTEKELOID
 | 
						|
      INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = ert.C_TANEVID AND ocs.TOROLT = ''F''
 | 
						|
        AND ocs.ID = ert.C_OSZTALYCSOPORTID'
 | 
						|
 | 
						|
  SET @whereSql = N'
 | 
						|
    WHERE ert.C_TANEVID = @pTanevId
 | 
						|
      AND ert.TOROLT = ''F'''
 | 
						|
 | 
						|
  IF @pId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.ID = @pId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF (@pTanuloIdsString IS NOT NULL AND LEN(@pTanuloIdsString) > 0) BEGIN
 | 
						|
    SET @joinSql += N'
 | 
						|
      INNER JOIN #TanuloIds tanuloIds ON tanuloids.TanuloId = ert.C_TANULOID'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pOsztalyCsoportId IS NOT NULL BEGIN
 | 
						|
 | 
						|
  SET @preSelectSql += N'
 | 
						|
    CREATE TABLE #OsztalyCsoportIdList(
 | 
						|
      ID int PRIMARY KEY
 | 
						|
    )
 | 
						|
    INSERT INTO #OsztalyCsoportIdList (ID)'
 | 
						|
 | 
						|
  IF(@pKellKapcsolodoCsoportok = 'T') BEGIN
 | 
						|
 | 
						|
    SET @preSelectSql += N'
 | 
						|
      SELECT ID
 | 
						|
      FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId)'
 | 
						|
  END
 | 
						|
  ELSE BEGIN
 | 
						|
    SET @preSelectSql += N'
 | 
						|
      VALUES (@pOsztalyCsoportId)'
 | 
						|
  END
 | 
						|
  
 | 
						|
  SET @joinSql += N'
 | 
						|
    LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANEVID = ert.C_TANEVID AND tcs.TOROLT = ''F''
 | 
						|
      AND tcs.C_TANULOID = tanulo.ID
 | 
						|
      AND tcs.C_BELEPESDATUM <= GETDATE()
 | 
						|
      AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= GETDATE())'
 | 
						|
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_OSZTALYCSOPORTID IN (SELECT ID FROM #OsztalyCsoportIdList)
 | 
						|
      AND EXISTS (
 | 
						|
        SELECT 1
 | 
						|
        FROM
 | 
						|
          T_TANULOCSOPORT_OSSZES tcs
 | 
						|
        WHERE tcs.C_TANEVID = ert.C_TANEVID
 | 
						|
          AND tcs.TOROLT = ''F''
 | 
						|
          AND tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
 | 
						|
          AND tcs.C_TANULOID = ert.C_TANULOID
 | 
						|
      )'
 | 
						|
 | 
						|
    SET @postSelectSql += N'
 | 
						|
      DROP TABLE IF EXISTS #OsztalyCsoportIdList'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pCsoportTipusId IS NOT NULL BEGIN
 | 
						|
    SET @joinSql += N'
 | 
						|
      LEFT JOIN T_CSOPORT_OSSZES csoport ON csoport.C_ALTANEVID = ert.C_TANEVID AND csoport.TOROLT = ''F''
 | 
						|
        AND csoport.ID = ocs.ID'
 | 
						|
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND csoport.C_TIPUSA = @pCsoportTipusId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF (@pTantargyUidsString IS NOT NULL AND LEN(@pTantargyUidsString) > 0) BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ((CONVERT(NVARCHAR(MAX), tantargy.ID) IN (SELECT TantargyUid FROM #TantargyUids)
 | 
						|
        OR (ert.C_TANTARGYID IS NULL 
 | 
						|
          AND (
 | 
						|
            EXISTS(
 | 
						|
              SELECT 1 FROM #TantargyUids WHERE TantargyUid = ''Magatartas'' 
 | 
						|
                AND (ert.C_MAGATARTASERTEKID IS NOT NULL 
 | 
						|
                  OR ert.C_MAGATARTASOSZTALYZATID IS NOT NULL 
 | 
						|
                  OR ert.C_MAGATARTASSZOVEG IS NOT NULL 
 | 
						|
                  OR ert.C_MAGATARTASSZOVEGFORMAZOTT IS NOT NULL)
 | 
						|
            ) 
 | 
						|
            OR EXISTS(
 | 
						|
              SELECT 1 FROM #TantargyUids WHERE TantargyUid = ''Szorgalom'') 
 | 
						|
                AND (ert.C_SZORGALOMERTEKID IS NOT NULL 
 | 
						|
                  OR ert.C_SZORGALOMOSZTALYZATID IS NOT NULL 
 | 
						|
                  OR ert.C_SZORGALOMSZOVEG IS NOT NULL 
 | 
						|
                  OR ert.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL)
 | 
						|
            )
 | 
						|
          )
 | 
						|
        )
 | 
						|
      )'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pErtekeloId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND tanar.ID = @pErtekeloId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pOsztalyzatId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND (ert.C_ERTEKELESOSZTALYZATID = @pOsztalyzatId OR
 | 
						|
        ert.C_MAGATARTASOSZTALYZATID = @pOsztalyzatId OR
 | 
						|
        ert.C_SZORGALOMOSZTALYZATID = @pOsztalyzatId)'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pErtekelesModId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_ERTEKELESMODID = @pErtekelesModId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pTipusId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_TIPUSID = @pTipusId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF (@pIsBizonyitvanyTipusuErtekelesekIncluded = 'F') BEGIN
 | 
						|
	SET @whereSql += N' 
 | 
						|
	  AND ert.C_TIPUSID NOT IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ')'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pDatumTol IS NOT NULL BEGIN
 | 
						|
    --NOTE: Ide az adott nap 00:00:00 időponttal fog bejönni.
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_DATUM >= @pDatumTol'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pDatumIg IS NOT NULL BEGIN
 | 
						|
    --NOTE: Ide az adott nap 23:59:59 időponttal fog bejönni.
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_DATUM <= @pDatumIg'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pRogzitesDatumTol IS NOT NULL
 | 
						|
  BEGIN
 | 
						|
    --NOTE: Ide az adott nap 00:00:00 időponttal fog bejönni.
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_ROGZITESDATUM >= @pRogzitesDatumTol'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pRogzitesDatumIg IS NOT NULL BEGIN
 | 
						|
    --NOTE: Ide az adott nap 23:59:59 időponttal fog bejönni.
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_ROGZITESDATUM <= @pRogzitesDatumIg'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pErtekelesSzoveg IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND (ert.C_ERTEKELESSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'' OR
 | 
						|
        ert.C_MAGATARTASSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'' OR
 | 
						|
        ert.C_SZORGALOMSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'')'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pErtekelesTema IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ert.C_ERTEKELESTEMA LIKE ''%'' + @pErtekelesTema + ''%'''
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pFeladatKategoriaId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pOktatasiNevelesiFeladatId IS NOT NULL BEGIN
 | 
						|
 | 
						|
    SET @joinSql += N'
 | 
						|
      INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.C_TANEVID = ert.C_TANEVID 
 | 
						|
        AND feh.ID = ocs.C_FELADATELLATASIHELYID
 | 
						|
        AND feh.TOROLT = ''F'''
 | 
						|
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND feh.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pFeladatEllatasiHelyId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
      AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF (@pSpecialisErtekelesOsztalyzatEnumId) IS NOT NULL BEGIN
 | 
						|
    IF (@pSpecialisErtekelesOsztalyzatEnumId = 1/*NOTE: NemIrt*/) BEGIN
 | 
						|
      SET @whereSql += N'
 | 
						|
        --NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
 | 
						|
        --      Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
 | 
						|
        AND (ert.C_TIPUSID NOT IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ') AND
 | 
						|
            LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEG),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzoveg) AND
 | 
						|
            LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEGROVIDNEV),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzovegRovidNev))'
 | 
						|
    END
 | 
						|
 | 
						|
    IF (@pSpecialisErtekelesOsztalyzatEnumId = 2/*NOTE: Dicseret*/ OR
 | 
						|
        @pSpecialisErtekelesOsztalyzatEnumId = 3/*NOTE: Kituno*/) BEGIN
 | 
						|
      SET @whereSql += N'
 | 
						|
        --NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
 | 
						|
        --      Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
 | 
						|
        AND (ert.C_TIPUSID IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ') AND
 | 
						|
            ert.C_ERTEKELESOSZTALYZATID = @pSpecialisErtekelesOsztalyzatId AND
 | 
						|
            LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESTEMA),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatTema))'
 | 
						|
    END
 | 
						|
 | 
						|
    IF (@pSpecialisErtekelesOsztalyzatEnumId = 4/*NOTE: Mentesitve*/) BEGIN
 | 
						|
      SET @whereSql += N'
 | 
						|
        --NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
 | 
						|
        --      Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
 | 
						|
        AND (ert.C_TIPUSID IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ') AND
 | 
						|
            LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEG),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzoveg) AND
 | 
						|
            LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEGROVIDNEV),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzovegRovidNev))'
 | 
						|
    END
 | 
						|
  END
 | 
						|
 | 
						|
  SET @sql = @preSelectSql + @selectSql + @joinSql + @whereSql + @postSelectSql
 | 
						|
 | 
						|
  EXEC sp_executesql @sql, N'
 | 
						|
     @pTanevId int
 | 
						|
    ,@pId int = NULL
 | 
						|
    ,@pTanuloIdsString nvarchar(MAX) = NULL
 | 
						|
    ,@pOsztalyCsoportId int = NULL
 | 
						|
    ,@pCsoportTipusId int = NULL
 | 
						|
    ,@pTantargyUidsString nvarchar(MAX) = NULL
 | 
						|
    ,@pErtekeloId int = NULL
 | 
						|
    ,@pOsztalyzatId int = NULL
 | 
						|
    ,@pErtekelesModId int = NULL
 | 
						|
	,@pTipusId int = NULL
 | 
						|
    ,@pIsBizonyitvanyTipusuErtekelesekIncluded char = NULL
 | 
						|
    ,@pDatumTol datetime = NULL
 | 
						|
    ,@pDatumIg datetime = NULL
 | 
						|
    ,@pRogzitesDatumTol datetime = NULL
 | 
						|
    ,@pRogzitesDatumIg datetime = NULL
 | 
						|
    ,@pErtekelesSzoveg nvarchar(max) = NULL
 | 
						|
    ,@pErtekelesTema nvarchar(255) = NULL
 | 
						|
    ,@pFeladatKategoriaId int = NULL
 | 
						|
    ,@pOktatasiNevelesiFeladatId int = NULL
 | 
						|
    ,@pFeladatEllatasiHelyId int = NULL
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatSzoveg nvarchar(255) = NULL
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatSzovegRovidNev nvarchar(3) = NULL
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatId int = NULL
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatTema nvarchar(255) = NULL'
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pId = @pId
 | 
						|
    ,@pTanuloIdsString = @pTanuloIdsString
 | 
						|
    ,@pOsztalyCsoportId = @pOsztalyCsoportId
 | 
						|
    ,@pCsoportTipusId = @pCsoportTipusId
 | 
						|
    ,@pTantargyUidsString = @pTantargyUidsString
 | 
						|
    ,@pErtekeloId = @pErtekeloId
 | 
						|
    ,@pOsztalyzatId = @pOsztalyzatId
 | 
						|
    ,@pErtekelesModId = @pErtekelesModId
 | 
						|
	,@pTipusId = @pTipusId
 | 
						|
    ,@pIsBizonyitvanyTipusuErtekelesekIncluded = @pIsBizonyitvanyTipusuErtekelesekIncluded
 | 
						|
    ,@pDatumTol = @pDatumTol
 | 
						|
    ,@pDatumIg = @pDatumIg
 | 
						|
    ,@pRogzitesDatumTol = @pRogzitesDatumTol
 | 
						|
    ,@pRogzitesDatumIg = @pRogzitesDatumIg
 | 
						|
    ,@pErtekelesSzoveg = @pErtekelesSzoveg
 | 
						|
    ,@pErtekelesTema = @pErtekelesTema
 | 
						|
    ,@pFeladatKategoriaId = @pFeladatKategoriaId
 | 
						|
    ,@pOktatasiNevelesiFeladatId = @pOktatasiNevelesiFeladatId
 | 
						|
    ,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatSzoveg = @pSpecialisErtekelesOsztalyzatSzoveg
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatSzovegRovidNev = @pSpecialisErtekelesOsztalyzatSzovegRovidNev
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatId = @pSpecialisErtekelesOsztalyzatId
 | 
						|
    ,@pSpecialisErtekelesOsztalyzatTema = @pSpecialisErtekelesOsztalyzatTema
 | 
						|
 | 
						|
END
 | 
						|
GO |