174 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDetailDataSet
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE uspGetTanuloErtekelesDetailDataSet
 | 
						|
   @pTanevId int
 | 
						|
  ,@pTanuloId int
 | 
						|
  ,@pTantargyId int = NULL
 | 
						|
  ,@pShowToroltElemek bit
 | 
						|
  ,@pTanarId int
 | 
						|
  ,@pErtekelesMegjelenesFajtaEnumTantargyId int
 | 
						|
  ,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId int
 | 
						|
  ,@pErtekelesMegjelenesFajtaId int
 | 
						|
  ,@pDatum date = NULL
 | 
						|
  ,@pAmiKategoriaId int
 | 
						|
  ,@pFeladatKategoriaId int = NULL
 | 
						|
  ,@pKiiratkozottNeJelenjenMeg bit = 1
 | 
						|
  ,@pOsztalyId int = NULL
 | 
						|
AS BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
 | 
						|
  DECLARE
 | 
						|
     @evfolyamTipusId int
 | 
						|
    ,@sql nvarchar (max)
 | 
						|
 | 
						|
  IF @pDatum IS NULL
 | 
						|
    SET @pDatum = CONVERT(date, GETDATE())
 | 
						|
	
 | 
						|
  IF @pOsztalyId IS NULL
 | 
						|
    SELECT TOP (1)
 | 
						|
      @evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
 | 
						|
    FROM fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, @pKiiratkozottNeJelenjenMeg) tanuloOsztaly
 | 
						|
    ORDER BY tanuloOsztaly.BelepesDatuma DESC
 | 
						|
  ELSE
 | 
						|
    SELECT
 | 
						|
       @pFeladatKategoriaId = o.C_FELADATKATEGORIAID
 | 
						|
      ,@evfolyamTipusId = o.C_EVFOLYAMTIPUSA
 | 
						|
    FROM T_OSZTALYCSOPORT_OSSZES o
 | 
						|
    WHERE ID = @pOsztalyId
 | 
						|
 | 
						|
  SET @sql = N'
 | 
						|
  SELECT DISTINCT
 | 
						|
     TanuloErtekeles.ID AS ID
 | 
						|
    ,TanuloErtekeles.C_DATUM AS Datum
 | 
						|
    ,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum
 | 
						|
    ,TanuloErtekeles.C_TIPUSID AS TipusId
 | 
						|
    ,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
 | 
						|
    ,TanuloErtekeles.C_TANORAID AS TanoraId
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESSZOVEG AS ErtekelesSzoveg
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV AS ErtekelesSzovegRovidNev
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESMODID AS ErtekelesModId
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESTEMA AS ErtekelesTema
 | 
						|
    ,TanuloErtekeles.C_MAGATARTASOSZTALYZATID AS MagatartasOsztalyzatId
 | 
						|
    ,TanuloErtekeles.C_MAGATARTASSZOVEG AS MagatartasSzoveg
 | 
						|
    ,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV AS MagatartasSzovegRovidNev
 | 
						|
    ,TanuloErtekeles.C_MAGATARTASERTEKID AS MagatartasErtekId
 | 
						|
    ,TanuloErtekeles.C_SZORGALOMOSZTALYZATID AS SzorgalomOsztalyzatId
 | 
						|
    ,TanuloErtekeles.C_SZORGALOMSZOVEG AS SzorgalomSzoveg
 | 
						|
    ,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV AS SzorgalomSzovegRovidNev
 | 
						|
    ,TanuloErtekeles.C_SZORGALOMERTEKID AS SzorgalomErtekId
 | 
						|
    ,TanuloErtekeles.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom
 | 
						|
    ,TanuloErtekeles.CREATED AS Created
 | 
						|
    ,TanuloErtekeles.TOROLT AS Torolt
 | 
						|
    ,TanuloErtekeles.C_TANULOID AS TanuloId
 | 
						|
    ,TanariAtlagSuly.C_SULY AS Suly
 | 
						|
    ,Felhasznalo.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
 | 
						|
    ,Tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
 | 
						|
    ,CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END AS Modosithato
 | 
						|
  FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
 | 
						|
  '
 | 
						|
 | 
						|
  IF @pFeladatKategoriaId IS NOT NULL
 | 
						|
  BEGIN
 | 
						|
    IF @pFeladatKategoriaId <> @pAmiKategoriaId
 | 
						|
    BEGIN
 | 
						|
       SET @sql += N'
 | 
						|
         INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND Osztaly.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
           AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
 | 
						|
           AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
 | 
						|
           AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
 | 
						|
         INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloErtekeles.C_TANEVID AND Tanev.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
         INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_OSZTALYCSOPORTID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND TanuloCsoport.C_TANULOID = @pTanuloId
 | 
						|
           AND TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID
 | 
						|
           AND	TanuloCsoport.C_BELEPESDATUM <= @pDatum
 | 
						|
           AND TanuloCsoport.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
       '
 | 
						|
      IF @pKiiratkozottNeJelenjenMeg = 1
 | 
						|
        SET @sql += N'
 | 
						|
          AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP)
 | 
						|
       '
 | 
						|
    END
 | 
						|
	ELSE
 | 
						|
    BEGIN
 | 
						|
       SET @sql += N'
 | 
						|
  	     INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID AND Osztaly.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
  	       AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
 | 
						|
  	       AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
 | 
						|
  	       AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
 | 
						|
       '
 | 
						|
    END
 | 
						|
  END
 | 
						|
 | 
						|
  SET @sql += N'
 | 
						|
    LEFT JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID AND Tantargy.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
      AND	Tantargy.ID = TanuloErtekeles.C_TANTARGYID
 | 
						|
    INNER JOIN T_FELHASZNALO_OSSZES AS Felhasznalo ON Felhasznalo.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND Felhasznalo.C_TANEVID = TanuloErtekeles.C_TANEVID
 | 
						|
      AND Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
 | 
						|
    LEFT JOIN T_TANARIATLAGSULY_OSSZES AS TanariAtlagSuly ON TanariAtlagSuly.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'') AND TanariAtlagSuly.C_TANEVID = TanuloErtekeles.C_TANEVID
 | 
						|
      AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
 | 
						|
      AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
 | 
						|
  WHERE TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
    AND TanuloErtekeles.C_TANEVID = @pTanevId
 | 
						|
    AND TanuloErtekeles.C_TANULOID = @pTanuloId'
 | 
						|
 | 
						|
  IF @pFeladatKategoriaId IS NOT NULL
 | 
						|
  BEGIN
 | 
						|
    IF @pFeladatKategoriaId <> @pAmiKategoriaId
 | 
						|
      SET @sql += N'
 | 
						|
    AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
 | 
						|
  '
 | 
						|
    ELSE
 | 
						|
      SET @sql += N'
 | 
						|
    AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
 | 
						|
  '
 | 
						|
  END
 | 
						|
 | 
						|
  SET @sql +=
 | 
						|
  CASE
 | 
						|
    WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId
 | 
						|
    THEN N'
 | 
						|
    AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId)
 | 
						|
  '
 | 
						|
      WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId
 | 
						|
      THEN N'
 | 
						|
    AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL)
 | 
						|
  '
 | 
						|
      ELSE N'
 | 
						|
    AND ((TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @pTantargyId IS NOT NULL)
 | 
						|
      OR (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))
 | 
						|
  '
 | 
						|
  END
 | 
						|
 | 
						|
  SET @sql += N'
 | 
						|
  ORDER BY
 | 
						|
     Datum DESC
 | 
						|
    ,RogzitesDatum DESC'
 | 
						|
 | 
						|
 | 
						|
  EXEC sp_executesql @sql, N'
 | 
						|
     @pTanevId int
 | 
						|
    ,@pTanuloId int
 | 
						|
    ,@pTantargyId int
 | 
						|
    ,@pShowToroltElemek bit
 | 
						|
    ,@pTanarId int
 | 
						|
    ,@evfolyamTipusId int
 | 
						|
    ,@pFeladatKategoriaId int
 | 
						|
    ,@pDatum date
 | 
						|
    '
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pTanuloId = @pTanuloId
 | 
						|
    ,@pTantargyId = @pTantargyId
 | 
						|
    ,@pShowToroltElemek = @pShowToroltElemek
 | 
						|
    ,@pTanarId = @pTanarId
 | 
						|
    ,@evfolyamTipusId = @evfolyamTipusId
 | 
						|
    ,@pFeladatKategoriaId= @pFeladatKategoriaId
 | 
						|
    ,@pDatum = @pDatum
 | 
						|
 | 
						|
END
 | 
						|
 | 
						|
 | 
						|
GO
 | 
						|
 |