128 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- Az elõzõ óra adati tantárgy, osztálycsoport és tanár alapján
 | 
						|
-- SZEKERES ANDRÁS (based on Telek Ákos fn_GetOraEvesSorszamLista)
 | 
						|
-- 2017.05.08.
 | 
						|
--Modifed by: Zalán Máriusz
 | 
						|
--Date: 2018 10 03
 | 
						|
 | 
						|
IF OBJECT_ID('dbo.sp_GetElozoOraAdatai') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE dbo.sp_GetElozoOraAdatai
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE dbo.sp_GetElozoOraAdatai 
 | 
						|
   @tantargyId int
 | 
						|
  ,@osztalycsoportId int
 | 
						|
  ,@tanarId int
 | 
						|
  ,@oraKezdeteDatum datetime
 | 
						|
  ,@intezmenyId int
 | 
						|
  ,@tanevId int
 | 
						|
AS 
 | 
						|
BEGIN
 | 
						|
  DECLARE 
 | 
						|
    @tanarSzamit bit,
 | 
						|
    @osztalybontasEgybe bit,
 | 
						|
    @osztalybontasCsoport bit
 | 
						|
    
 | 
						|
  SET @tanarSzamit = dbo.fnGetRendszerbeallitasEnumBool(3075, @intezmenyId, @tanevId)  
 | 
						|
  SET @osztalybontasEgybe = dbo.fnGetRendszerbeallitasEnumBool(3078, @intezmenyId, @tanevId)
 | 
						|
  SET @osztalybontasCsoport = 0
 | 
						|
  
 | 
						|
  IF EXISTS (SELECT 1 FROM T_CSOPORT WHERE (ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL) OR C_OSZTALYBONTASID = @osztalyCsoportId) BEGIN
 | 
						|
    SET @osztalybontasCsoport = 1
 | 
						|
  END  
 | 
						|
  
 | 
						|
  IF @osztalybontasEgybe = 0 OR @osztalybontasCsoport = 0 BEGIN
 | 
						|
    IF @tanarSzamit = 1 BEGIN
 | 
						|
      SELECT TOP 1
 | 
						|
         tanora.ID AS Id
 | 
						|
		,tanora.C_TEMA AS Tema
 | 
						|
		,tanora.C_DATUM AS Datum
 | 
						|
		,felhasznalo.C_NYOMTATASINEV AS HelyettesNev
 | 
						|
        ,IIF(tanora.C_SORSZAMOZANDO = 'T', ROW_NUMBER() OVER (PARTITION BY tanora.C_SORSZAMOZANDO ORDER BY tanora.C_ORAKEZDETE), NULL) AS EvesSorszam
 | 
						|
      FROM T_TANITASIORA_OSSZES tanora
 | 
						|
		LEFT JOIN T_FELHASZNALO felhasznalo ON felhasznalo.ID = tanora.C_HELYETTESITOTANARID
 | 
						|
      WHERE tanora.C_TANEVID = @tanevId 
 | 
						|
        AND tanora.C_INTEZMENYID = @intezmenyId
 | 
						|
        AND tanora.C_MEGTARTOTT = 'T' 
 | 
						|
		AND tanora.TOROLT = 'F'
 | 
						|
        AND tanora.C_TANTARGYID = @tantargyId
 | 
						|
        AND tanora.C_OSZTALYCSOPORTID = @osztalyCsoportId
 | 
						|
        AND tanora.C_TANARID = @tanarId
 | 
						|
        AND tanora.C_ORAKEZDETE <= @oraKezdeteDatum
 | 
						|
	  ORDER BY tanora.C_ORAKEZDETE DESC
 | 
						|
    END
 | 
						|
    ELSE BEGIN
 | 
						|
      SELECT TOP 1
 | 
						|
         tanora.ID AS Id
 | 
						|
		,tanora.C_TEMA AS Tema
 | 
						|
		,tanora.C_DATUM AS Datum
 | 
						|
		,felhasznalo.C_NYOMTATASINEV AS HelyettesNev
 | 
						|
        ,IIF(tanora.C_SORSZAMOZANDO = 'T', ROW_NUMBER() OVER (PARTITION BY tanora.C_SORSZAMOZANDO ORDER BY tanora.C_ORAKEZDETE), NULL) AS EvesSorszam
 | 
						|
      FROM T_TANITASIORA_OSSZES tanora
 | 
						|
	    LEFT JOIN T_FELHASZNALO felhasznalo ON felhasznalo.ID = tanora.C_HELYETTESITOTANARID
 | 
						|
      WHERE tanora.C_TANEVID = @tanevId
 | 
						|
        AND tanora.C_INTEZMENYID = @intezmenyId
 | 
						|
        AND tanora.C_MEGTARTOTT = 'T' 
 | 
						|
        AND tanora.TOROLT = 'F'
 | 
						|
        AND tanora.C_TANTARGYID = @tantargyId
 | 
						|
        AND tanora.C_OSZTALYCSOPORTID = @osztalyCsoportId
 | 
						|
        AND tanora.C_ORAKEZDETE <= @oraKezdeteDatum
 | 
						|
	  ORDER BY tanora.C_ORAKEZDETE DESC
 | 
						|
    END
 | 
						|
  END 
 | 
						|
  ELSE BEGIN
 | 
						|
    IF @tanarSzamit = 1 BEGIN  
 | 
						|
      SELECT TOP 1
 | 
						|
         tanora.ID AS Id
 | 
						|
		,tanora.C_TEMA AS Tema
 | 
						|
		,tanora.C_DATUM AS Datum
 | 
						|
		,felhasznalo.C_NYOMTATASINEV AS HelyettesNev
 | 
						|
        ,IIF(tanora.C_SORSZAMOZANDO = 'T', ROW_NUMBER() OVER (PARTITION BY tanora.C_SORSZAMOZANDO ORDER BY tanora.C_ORAKEZDETE), NULL) AS EvesSorszam
 | 
						|
      FROM T_TANITASIORA_OSSZES tanora
 | 
						|
		LEFT JOIN T_FELHASZNALO felhasznalo ON felhasznalo.ID = tanora.C_HELYETTESITOTANARID
 | 
						|
      WHERE tanora.C_TANEVID = @tanevId 
 | 
						|
        AND tanora.C_INTEZMENYID = @intezmenyId
 | 
						|
        AND tanora.C_TANTARGYID = @tantargyId
 | 
						|
        AND tanora.C_OSZTALYCSOPORTID IN (
 | 
						|
		  SELECT cs.ID FROM T_CSOPORT cs
 | 
						|
          WHERE NOT(cs.ID <> @osztalyCSoportID AND cs.C_OSZTALYBONTASID<>@osztalyCSoportID AND NOT EXISTS(SELECT 1 FROM T_CSOPORT cs2 WHERE cs2.C_OSZTALYBONTASID=cs.C_OSZTALYBONTASID AND cs2.ID=@osztalyCSoportID))
 | 
						|
          UNION 
 | 
						|
          SELECT C_OSZTALYBONTASID FROM T_CSOPORT WHERE ID=@osztalyCSoportID
 | 
						|
		  UNION
 | 
						|
		  SELECT @osztalyCSoportID
 | 
						|
        )
 | 
						|
        AND tanora.C_TANARID = @tanarId
 | 
						|
        AND tanora.C_ORAKEZDETE <= @oraKezdeteDatum
 | 
						|
        AND tanora.TOROLT = 'F'
 | 
						|
        AND tanora.C_MEGTARTOTT = 'T'
 | 
						|
	  ORDER BY tanora.C_ORAKEZDETE DESC
 | 
						|
    END
 | 
						|
    ELSE BEGIN
 | 
						|
      SELECT TOP 1
 | 
						|
         tanora.ID AS Id
 | 
						|
		,tanora.C_TEMA AS Tema
 | 
						|
		,tanora.C_DATUM AS Datum
 | 
						|
		,felhasznalo.C_NYOMTATASINEV AS HelyettesNev
 | 
						|
        ,IIF(tanora.C_SORSZAMOZANDO = 'T', ROW_NUMBER() OVER (PARTITION BY tanora.C_SORSZAMOZANDO ORDER BY tanora.C_ORAKEZDETE), NULL) AS EvesSorszam
 | 
						|
      FROM T_TANITASIORA_OSSZES tanora
 | 
						|
	    LEFT JOIN T_FELHASZNALO felhasznalo ON felhasznalo.ID = tanora.C_HELYETTESITOTANARID
 | 
						|
      WHERE tanora.C_TANEVID = @tanevId 
 | 
						|
        AND tanora.C_INTEZMENYID = @intezmenyId
 | 
						|
        AND tanora.C_TANTARGYID = @tantargyId
 | 
						|
        AND tanora.C_OSZTALYCSOPORTID IN (
 | 
						|
          SELECT cs.ID FROM T_CSOPORT cs
 | 
						|
          WHERE NOT(cs.ID <> @osztalyCSoportID AND cs.C_OSZTALYBONTASID<>@osztalyCSoportID AND NOT EXISTS(SELECT 1 FROM T_CSOPORT cs2 WHERE cs2.C_OSZTALYBONTASID=cs.C_OSZTALYBONTASID AND cs2.ID=@osztalyCSoportID))
 | 
						|
          UNION 
 | 
						|
          SELECT C_OSZTALYBONTASID FROM T_CSOPORT WHERE ID=@osztalyCSoportID
 | 
						|
		  UNION
 | 
						|
		  SELECT @osztalyCSoportID
 | 
						|
        )
 | 
						|
        AND tanora.C_ORAKEZDETE <= @oraKezdeteDatum
 | 
						|
        AND tanora.TOROLT = 'F'
 | 
						|
        AND tanora.C_MEGTARTOTT = 'T'
 | 
						|
	  ORDER BY tanora.C_ORAKEZDETE DESC
 | 
						|
    END
 | 
						|
  END
 | 
						|
 
 | 
						|
END
 | 
						|
GO |