136 lines
No EOL
5 KiB
Transact-SQL
136 lines
No EOL
5 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.
|
|
|
|
|
|
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
|
|
,@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
|
|
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
|
|
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 csoport.ID
|
|
FROM T_CSOPORT csoport
|
|
WHERE csoport.C_OSZTALYBONTASID = (SELECT subCsoport.C_OSZTALYBONTASID FROM T_CSOPORT subCsoport WHERE subCsoport.ID = @osztalyCsoportId)
|
|
UNION
|
|
SELECT csoport.C_OSZTALYBONTASID
|
|
FROM T_CSOPORT csoport
|
|
WHERE csoport.ID = @osztalyCsoportId
|
|
UNION
|
|
SELECT csoport.ID
|
|
FROM T_CSOPORT csoport
|
|
WHERE csoport.C_OSZTALYBONTASID = @osztalyCsoportId
|
|
UNION
|
|
SELECT @osztalyCsoportId
|
|
)
|
|
AND tanora.C_TANARID = @tanarId
|
|
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 csoport.ID
|
|
FROM T_CSOPORT csoport
|
|
WHERE csoport.C_OSZTALYBONTASID = (SELECT subCsoport.C_OSZTALYBONTASID FROM T_CSOPORT subCsoport WHERE subCsoport.ID = @osztalyCsoportId)
|
|
UNION
|
|
SELECT csoport.C_OSZTALYBONTASID
|
|
FROM T_CSOPORT csoport
|
|
WHERE csoport.ID = @osztalyCsoportId
|
|
UNION
|
|
SELECT csoport.ID
|
|
FROM T_CSOPORT csoport
|
|
WHERE csoport.C_OSZTALYBONTASID = @osztalyCsoportId
|
|
UNION
|
|
SELECT @osztalyCsoportId
|
|
)
|
|
AND tanora.TOROLT = 'F'
|
|
AND tanora.C_MEGTARTOTT = 'T'
|
|
ORDER BY tanora.C_ORAKEZDETE DESC
|
|
END
|
|
END
|
|
|
|
END
|
|
GO |