This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,60 @@
/*
Minden olyan esetben amikor egy osztályhoz tartozó csoportokat kell meghatározni,
akkor az alábbi módon kell ezeket megadni:
a. Egy osztályhoz tartozik minden olyan csoport, amelynek tagja az osztály bármelyik tanulója.
Tehát ha egy osztályból akár egyetlen tanuló is tagja egy csoportnak, akkor az az osztályhoz is kapcsolódik.
b. Továbbá egy osztályhoz mindig kapcsolódnak az osztálybontásosnak jelölt csoportjaik is,
függetlenül attól, hogy abban van-e tanuló!
*/
IF OBJECT_ID('fnGetKapcsolodoOsztalycsoportok') IS NOT NULL BEGIN
DROP FUNCTION fnGetKapcsolodoOsztalycsoportok
END
GO
CREATE FUNCTION [dbo].[fnGetKapcsolodoOsztalycsoportok] (@osztalyCsoportId int)
RETURNS TABLE
RETURN (
SELECT @osztalyCsoportId AS ID, 'OsztalycsoportOraja' AS OKA
UNION
SELECT ID, 'OsztalybontottOra' AS OKA FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND TOROLT = 'F'
UNION
SELECT DISTINCT tcs.C_OSZTALYCSOPORTID, 'TanuloMasOra' AS OKA FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.TOROLT = 'F' AND tcs.C_TANULOID IN (
SELECT x.C_TANULOID FROM T_TANULOCSOPORT_OSSZES x
WHERE x.C_OSZTALYCSOPORTID = @osztalyCsoportId AND x.TOROLT = 'F'
AND (x.C_BELEPESDATUM <= GETDATE() AND (x.C_KILEPESDATUM > GETDATE() OR x.C_KILEPESDATUM IS NULL))
)
AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.C_OSZTALYCSOPORTID <> @osztalyCsoportId
AND tcs.C_OSZTALYCSOPORTID NOT IN (
SELECT ID FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND TOROLT = 'F'
)
AND tcs.C_OSZTALYCSOPORTID NOT IN (
SELECT C_OSZTALYBONTASID AS ID FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId
AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F'
)
AND tcs.C_OSZTALYCSOPORTID NOT IN (
SELECT ID
FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID IN (
SELECT C_OSZTALYBONTASID
FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId AND TOROLT = 'F'
) AND TOROLT = 'F'
)
UNION
SELECT C_OSZTALYBONTASID AS ID, 'OsztalybontottOra' AS OKA FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId
AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F'
UNION
SELECT ID, 'OsztalybontottOra' AS OKA FROM T_CSOPORT_OSSZES
WHERE C_OSZTALYBONTASID IN (
SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES
WHERE ID = @osztalyCsoportId AND TOROLT = 'F'
)
AND ID <> @osztalyCsoportId AND TOROLT = 'F'
)