106 lines
3.2 KiB
Transact-SQL
106 lines
3.2 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS sp_GetOraEvesSorszama
|
|
GO
|
|
|
|
CREATE PROCEDURE sp_GetOraEvesSorszama
|
|
@tantargyId int,
|
|
@osztalyCsoportId int,
|
|
@datum datetime,
|
|
@oraTulajdonosId int,
|
|
@intezmenyId int,
|
|
@tanevId int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
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 COUNT(1) AS cnt
|
|
FROM T_TANITASIORA_OSSZES t
|
|
WHERE t.C_MEGTARTOTT = 'T'
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_TANTARGYID = @tantargyId
|
|
AND t.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND t.C_TANARID = @oraTulajdonosId
|
|
AND t.C_ORAKEZDETE <= @datum
|
|
AND t.C_TANEVID = @tanevId
|
|
AND t.TOROLT = 'F'
|
|
END
|
|
ELSE BEGIN
|
|
SELECT COUNT(1) AS cnt
|
|
FROM T_TANITASIORA_OSSZES t
|
|
WHERE t.C_MEGTARTOTT = 'T'
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_TANTARGYID = @tantargyId
|
|
AND t.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND t.C_ORAKEZDETE <= @datum
|
|
AND t.C_TANEVID = @tanevId
|
|
AND t.TOROLT = 'F'
|
|
END
|
|
END
|
|
ELSE BEGIN
|
|
IF @tanarSzamit = 1 BEGIN
|
|
SELECT COUNT(1) AS cnt
|
|
FROM T_TANITASIORA_OSSZES t
|
|
WHERE t.C_TANTARGYID = @tantargyId
|
|
AND t.C_OSZTALYCSOPORTID IN (
|
|
SELECT cs.ID
|
|
FROM T_CSOPORT cs
|
|
WHERE cs.C_OSZTALYBONTASID = (SELECT scs.C_OSZTALYBONTASID FROM T_CSOPORT scs WHERE scs.ID = @osztalyCsoportId)
|
|
UNION
|
|
SELECT cs.C_OSZTALYBONTASID
|
|
FROM T_CSOPORT cs
|
|
WHERE cs.ID = @osztalyCsoportId
|
|
UNION
|
|
SELECT cs.ID
|
|
FROM T_CSOPORT cs
|
|
WHERE cs.C_OSZTALYBONTASID = @osztalyCsoportId
|
|
UNION
|
|
SELECT @osztalyCsoportId
|
|
)
|
|
AND t.C_TANARID = @oraTulajdonosId
|
|
AND t.C_ORAKEZDETE <= @datum
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_MEGTARTOTT = 'T'
|
|
AND t.C_TANEVID = @tanevId
|
|
AND t.TOROLT = 'F'
|
|
END
|
|
ELSE BEGIN
|
|
SELECT COUNT(1) AS cnt
|
|
FROM T_TANITASIORA_OSSZES t
|
|
WHERE t.C_TANTARGYID = @tantargyId
|
|
AND t.C_OSZTALYCSOPORTID IN (
|
|
SELECT cs.ID
|
|
FROM T_CSOPORT cs
|
|
WHERE cs.C_OSZTALYBONTASID = (SELECT scs.C_OSZTALYBONTASID FROM T_CSOPORT scs WHERE scs.ID = @osztalyCsoportId)
|
|
UNION
|
|
SELECT cs.C_OSZTALYBONTASID
|
|
FROM T_CSOPORT cs
|
|
WHERE cs.ID = @osztalyCsoportId
|
|
UNION
|
|
SELECT cs.ID
|
|
FROM T_CSOPORT cs
|
|
WHERE cs.C_OSZTALYBONTASID = @osztalyCsoportId
|
|
UNION
|
|
SELECT @osztalyCsoportId
|
|
)
|
|
AND t.C_ORAKEZDETE <= @datum
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_MEGTARTOTT = 'T'
|
|
AND t.C_TANEVID = @tanevId
|
|
AND t.TOROLT = 'F'
|
|
END
|
|
END
|
|
END
|
|
GO
|
|
|