143 lines
3.5 KiB
Transact-SQL
143 lines
3.5 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetEvesOraszamForTantargyAndOsztaly
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetEvesOraszamForTantargyAndOsztaly
|
|
@pTanevId int
|
|
,@pIntezmenyId int
|
|
,@pOsztalyCsoportId int
|
|
,@pTantargyId int
|
|
,@pBeallitasTanarSzamit int
|
|
,@pBeallitasOsztalybontasEgybe int
|
|
AS BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@pTanarSzamit bit
|
|
,@pOsztalybontasEgybe bit
|
|
,@pOsztalybontasCsoport bit
|
|
|
|
SET @pTanarSzamit = dbo.fnGetRendszerbeallitasEnumBool(@pBeallitasTanarSzamit, @pIntezmenyId, @pTanevId)
|
|
SET @pOsztalybontasEgybe = dbo.fnGetRendszerbeallitasEnumBool(@pBeallitasOsztalybontasEgybe, @pIntezmenyId, @pTanevId)
|
|
|
|
IF EXISTS (SELECT 1
|
|
FROM T_CSOPORT_OSSZES cs
|
|
WHERE cs.TOROLT = 'F'
|
|
AND cs.C_ALTANEVID = @pTanevId
|
|
AND ((cs.ID = @pOsztalyCsoportId AND cs.C_OSZTALYBONTASID IS NOT NULL) OR cs.C_OSZTALYBONTASID = @pOsztalyCsoportId))
|
|
BEGIN
|
|
SET @pOsztalybontasCsoport = 1
|
|
END
|
|
|
|
IF @pOsztalybontasEgybe = 0 OR @pOsztalybontasCsoport = 0
|
|
BEGIN
|
|
IF @pTanarSzamit = 1
|
|
BEGIN
|
|
|
|
SELECT
|
|
COUNT(t.ID) AS EvesOraszam
|
|
FROM T_TANITASIORA_OSSZES t
|
|
WHERE t.C_MEGTARTOTT = 'T'
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_TANTARGYID = @pTantargyId
|
|
AND t.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
|
AND t.C_TANEVID = @pTanevId
|
|
AND t.TOROLT = 'F'
|
|
GROUP BY t.C_TANARID
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
SELECT
|
|
COUNT(t.ID) AS EvesOraszam
|
|
FROM T_TANITASIORA_OSSZES t
|
|
WHERE t.C_MEGTARTOTT = 'T'
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_TANTARGYID = @pTantargyId
|
|
AND t.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
|
AND t.C_TANEVID = @pTanevId
|
|
AND t.TOROLT = 'F'
|
|
|
|
END
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
CREATE TABLE #KapcsolodoOsztalyCsoportok (
|
|
ID int
|
|
,PRIMARY KEY (ID)
|
|
)
|
|
|
|
INSERT INTO #KapcsolodoOsztalyCsoportok (
|
|
ID
|
|
)
|
|
(
|
|
SELECT cs.ID AS ID
|
|
FROM T_CSOPORT_OSSZES cs
|
|
WHERE cs.TOROLT = 'F'
|
|
AND cs.C_ALTANEVID = @pTanevId
|
|
AND cs.C_OSZTALYBONTASID =
|
|
(
|
|
SELECT scs.C_OSZTALYBONTASID
|
|
FROM T_CSOPORT_OSSZES scs
|
|
WHERE scs.TOROLT = 'F'
|
|
AND scs.C_ALTANEVID = @pTanevId
|
|
AND scs.ID = @pOsztalyCsoportId
|
|
AND scs.C_OSZTALYBONTASID IS NOT NULL
|
|
)
|
|
|
|
UNION
|
|
|
|
SELECT cs.C_OSZTALYBONTASID AS ID
|
|
FROM T_CSOPORT_OSSZES cs
|
|
WHERE cs.TOROLT = 'F'
|
|
AND cs.C_ALTANEVID = @pTanevId
|
|
AND cs.ID = @pOsztalyCsoportId
|
|
AND cs.C_OSZTALYBONTASID IS NOT NULL
|
|
|
|
UNION
|
|
|
|
SELECT cs.ID AS ID
|
|
FROM T_CSOPORT_OSSZES cs
|
|
WHERE cs.TOROLT = 'F'
|
|
AND cs.C_ALTANEVID = @pTanevId
|
|
AND cs.C_OSZTALYBONTASID = @pOsztalyCsoportId
|
|
|
|
UNION
|
|
|
|
SELECT @pOsztalyCsoportId AS ID
|
|
)
|
|
|
|
IF @pTanarSzamit = 1
|
|
BEGIN
|
|
|
|
SELECT
|
|
COUNT(t.ID) AS EvesOraszam
|
|
FROM T_TANITASIORA_OSSZES t
|
|
INNER JOIN #KapcsolodoOsztalyCsoportok k ON k.ID = t.C_OSZTALYCSOPORTID
|
|
WHERE t.C_MEGTARTOTT = 'T'
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_TANTARGYID = @pTantargyId
|
|
AND t.C_TANEVID = @pTanevId
|
|
AND t.TOROLT = 'F'
|
|
GROUP BY t.C_TANARID
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
SELECT
|
|
COUNT(t.ID) AS EvesOraszam
|
|
FROM T_TANITASIORA_OSSZES t
|
|
INNER JOIN #KapcsolodoOsztalyCsoportok k ON k.ID = t.C_OSZTALYCSOPORTID
|
|
WHERE t.C_MEGTARTOTT = 'T'
|
|
AND t.C_SORSZAMOZANDO = 'T'
|
|
AND t.C_TANTARGYID = @pTantargyId
|
|
AND t.C_TANEVID = @pTanevId
|
|
AND t.TOROLT = 'F'
|
|
|
|
END
|
|
END
|
|
END
|
|
|
|
GO
|