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