151 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByTantargy
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByTantargy
 | 
						|
   @pTanevId int
 | 
						|
  ,@pTanarId int
 | 
						|
  ,@pTantargyId int
 | 
						|
  ,@pOsztalyCsoportId int
 | 
						|
  ,@pDatum date = NULL
 | 
						|
  ,@pAmiKategoriaId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
 | 
						|
  IF @pDatum IS NULL
 | 
						|
    SET @pDatum = CONVERT(date, GETDATE())
 | 
						|
 | 
						|
  DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
 | 
						|
 | 
						|
  CREATE TABLE #TanuloOsztalyEvfolyamTipusIdList (
 | 
						|
     TanuloId int PRIMARY KEY
 | 
						|
    ,EvfolyamTipusId int
 | 
						|
  )
 | 
						|
 | 
						|
  CREATE TABLE #Mentessegek (
 | 
						|
     TanuloId int
 | 
						|
    ,C_MENTESSEGOKA nvarchar (max)
 | 
						|
    ,C_ERTEKELESMENTESITES char (1)
 | 
						|
    ,C_SZOVEGESENERTEKELHETO char (1)
 | 
						|
    ,RowNumber int
 | 
						|
  )
 | 
						|
 | 
						|
  IF @feladatKategoriaId <> @pAmiKategoriaId
 | 
						|
  BEGIN
 | 
						|
    INSERT INTO #TanuloOsztalyEvfolyamTipusIdList (
 | 
						|
       TanuloId
 | 
						|
      ,EvfolyamTipusId
 | 
						|
    )
 | 
						|
    SELECT
 | 
						|
       tanuloOsztalyList.C_TANULOID AS TanuloId
 | 
						|
      ,tanuloOsztalyList.C_EVFOLYAMTIPUSA AS EvfolyamTipusId
 | 
						|
    FROM fnGetOsztalyCsoportTanuloOsztalyList(@pTanevId, @pOsztalyCsoportId, @feladatKategoriaId, @pDatum) tanuloOsztalyList
 | 
						|
  END
 | 
						|
 | 
						|
  INSERT INTO #Mentessegek (
 | 
						|
     TanuloId
 | 
						|
    ,C_MENTESSEGOKA
 | 
						|
    ,C_ERTEKELESMENTESITES
 | 
						|
    ,C_SZOVEGESENERTEKELHETO
 | 
						|
    ,RowNumber
 | 
						|
  )
 | 
						|
  SELECT
 | 
						|
     TanuloMentesseg.C_TANULOID
 | 
						|
    ,TanuloMentesseg.C_MENTESSEGOKA
 | 
						|
    ,TanuloMentesseg.C_ERTEKELESMENTESITES
 | 
						|
    ,TanuloMentesseg.C_SZOVEGESENERTEKELHETO
 | 
						|
    ,ROW_NUMBER() OVER (PARTITION BY TanuloMentesseg.C_TANULOID ORDER BY TanuloMentesseg.C_KEZDETE DESC) RowNumber
 | 
						|
  FROM T_TANULOMENTESSEG_OSSZES TanuloMentesseg
 | 
						|
  WHERE TanuloMentesseg.C_TANEVID = @pTanevId
 | 
						|
    AND TanuloMentesseg.TOROLT = 'F'
 | 
						|
    AND TanuloMentesseg.C_TANTARGYID = @pTantargyId
 | 
						|
    AND ((TanuloMentesseg.C_KEZDETE IS NULL OR TanuloMentesseg.C_KEZDETE <= @pDatum) AND (TanuloMentesseg.C_VEGE IS NULL OR TanuloMentesseg.C_VEGE <= @pDatum))
 | 
						|
 | 
						|
  SELECT
 | 
						|
     FelhasznaloTanulo.ID AS TanuloId
 | 
						|
    ,@pTantargyId AS TantargyId
 | 
						|
    ,FelhasznaloTanulo.C_NYOMTATASINEV AS TanuloNev
 | 
						|
    ,IIF(FelhasznaloTanulo.C_NEVSORREND = 'T', FelhasznaloTanulo.C_UTONEV + ' ' + FelhasznaloTanulo.C_VEZETEKNEV, FelhasznaloTanulo.C_VEZETEKNEV + ' ' + FelhasznaloTanulo.C_UTONEV) AS TanuloNevElotagNelkul
 | 
						|
    ,FelhasznaloTanulo.C_ANYJANEVE AS AnyjaNeve
 | 
						|
    ,FelhasznaloTanulo.C_SZULETESIDATUM AS SzuletesiIdo
 | 
						|
    ,OsztalyCsoport.C_FELADATKATEGORIAID AS FeladatKategoriaId
 | 
						|
    ,OsztalyCsoport.C_NEV AS OsztalyNev
 | 
						|
    ,TanuloMentesseg.C_MENTESSEGOKA AS MentessegOka
 | 
						|
    ,TanuloMentesseg.C_ERTEKELESMENTESITES AS ErtkelesMentesseg
 | 
						|
    ,TanuloMentesseg.C_SZOVEGESENERTEKELHETO AS SzovegesenErtekelheto
 | 
						|
    ,TanuloErtekeles.ID AS ID
 | 
						|
    ,TanuloErtekeles.C_DATUM AS Datum
 | 
						|
    ,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum
 | 
						|
    ,TanuloErtekeles.C_TIPUSID AS TipusId
 | 
						|
    ,TanuloErtekeles.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
 | 
						|
    ,IIF(TanuloErtekeles.C_ERTEKELOID = @pTanarId,'T','F') AS Modosithato
 | 
						|
    ,TanuloErtekeles.C_ROGZITESDATUM AS Created
 | 
						|
    ,TanuloErtekeles.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom
 | 
						|
    ,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
 | 
						|
    ,TanuloErtekeles.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
 | 
						|
    ,TanariAtlagSuly.C_SULY AS Suly
 | 
						|
    ,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
 | 
						|
  FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
 | 
						|
    INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F'
 | 
						|
    INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloTanulo ON FelhasznaloTanulo.C_TANEVID = TanuloCsoport.C_TANEVID AND FelhasznaloTanulo.TOROLT = 'F'
 | 
						|
      AND FelhasznaloTanulo.ID = TanuloCsoport.C_TANULOID
 | 
						|
    INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID AND OsztalyCsoport.TOROLT = 'F'
 | 
						|
      AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
 | 
						|
    LEFT JOIN (
 | 
						|
      SELECT
 | 
						|
         TanuloErtekeles.*
 | 
						|
        ,FelhasznaloErtekelo.C_NYOMTATASINEV
 | 
						|
      FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
 | 
						|
        INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = 'F'
 | 
						|
          AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
 | 
						|
          AND Osztaly.C_FELADATKATEGORIAID = @feladatKategoriaId
 | 
						|
        INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = 'F'
 | 
						|
          AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
 | 
						|
      WHERE TanuloErtekeles.C_TANEVID = @pTanevId
 | 
						|
        AND TanuloErtekeles.TOROLT = 'F'
 | 
						|
        AND TanuloErtekeles.C_TANTARGYID = @pTantargyId
 | 
						|
        AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
 | 
						|
        AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
 | 
						|
 | 
						|
      UNION
 | 
						|
 | 
						|
      SELECT
 | 
						|
         TanuloErtekeles.*
 | 
						|
        ,FelhasznaloErtekelo.C_NYOMTATASINEV
 | 
						|
      FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
 | 
						|
        INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = 'F'
 | 
						|
          AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
          AND Osztaly.C_FELADATKATEGORIAID = @feladatKategoriaId
 | 
						|
        INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA
 | 
						|
        INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID AND TanuloCsoport.TOROLT = 'F'
 | 
						|
          AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
 | 
						|
          AND TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
 | 
						|
          AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
 | 
						|
        INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = 'F'
 | 
						|
          AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
 | 
						|
      WHERE TanuloErtekeles.C_TANEVID = @pTanevId
 | 
						|
        AND TanuloErtekeles.TOROLT = 'F'
 | 
						|
        AND TanuloErtekeles.C_TANTARGYID = @pTantargyId
 | 
						|
        AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
 | 
						|
        AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
 | 
						|
    ) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
 | 
						|
    LEFT JOIN T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON TanariAtlagSuly.C_TANEVID = TanuloCsoport.C_TANEVID AND TanariAtlagSuly.TOROLT = 'F'
 | 
						|
      AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
 | 
						|
      AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
 | 
						|
    LEFT JOIN #Mentessegek TanuloMentesseg ON TanuloMentesseg.TanuloId = FelhasznaloTanulo.ID AND TanuloMentesseg.RowNumber = 1
 | 
						|
  WHERE TanuloCsoport.C_TANEVID = @pTanevId
 | 
						|
    AND TanuloCsoport.TOROLT = 'F'
 | 
						|
    AND TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
 | 
						|
    AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
 | 
						|
    AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL)
 | 
						|
 | 
						|
END
 | 
						|
 | 
						|
 | 
						|
GO
 | 
						|
 |