70 lines
2.9 KiB
Transact-SQL
70 lines
2.9 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetZaradekok
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetZaradekok
|
|
@tanevId int
|
|
,@intezmenyId int
|
|
,@tanuloCsoportId int
|
|
,@nemzetiDokumentumNyelvek nvarchar(max) = NULL
|
|
,@tanuloId int = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
DECLARE @feladatKategoriaId int = (SELECT ocs.C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.ID = @tanuloCsoportId)
|
|
CREATE TABLE #TempTorolhetoZaradekok (ID INT)
|
|
|
|
INSERT INTO #TempTorolhetoZaradekok
|
|
SELECT
|
|
z.ID
|
|
FROM T_ZARADEK_OSSZES z
|
|
INNER JOIN T_ZARADEK_OSSZES kiAtZaradek ON kiAtZaradek.C_TANULOCSOPORTID = z.C_TANULOCSOPORTID AND kiAtZaradek.TOROLT = 'F'
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = z.C_TANULOCSOPORTID
|
|
WHERE
|
|
kiAtZaradek.C_ISKIVAGYATSOROLASIZARADEK = 'T'
|
|
AND z.C_ISKIVAGYATSOROLASIZARADEK = 'T'
|
|
AND kiAtZaradek.TOROLT = 'F'
|
|
AND kiAtZaradek.ID <> z.ID
|
|
AND tcs.C_KILEPESDATUM IS NOT NULL
|
|
AND z.C_TANEVID = @tanevId
|
|
AND z.C_INTEZMENYID = @intezmenyId
|
|
AND (tcs.C_TANULOID = @tanuloId or tcs.ID = @tanuloCsoportId)
|
|
GROUP BY z.ID
|
|
|
|
SELECT
|
|
tcs.ID AS TanuloId
|
|
,tcs.ID AS TanuloCsoportId
|
|
,z.ID AS ID
|
|
,z.C_KELTEZESDATUMA AS KeltezesDatuma
|
|
,z.C_KELTEZESHELYE AS KeltezesHelye
|
|
,z.C_ROGZITESDATUMA AS RogzitesDatuma
|
|
,z.C_ROGZITOID AS RogzitoId
|
|
,z.C_SZOVEG AS Szoveg
|
|
,ocs.C_NEV AS OsztalyNev
|
|
,IIF(tcs.ID = @tanuloCsoportId, 'T', 'F') AS IsKapcsolodo
|
|
,z.C_SZOVEG + ISNULL(STUFF((
|
|
SELECT ' <br /> '+ISNULL(zny.C_SZOVEG,'')
|
|
FROM T_ZARADEKNYELV_OSSZES zny
|
|
INNER JOIN string_split(@nemzetiDokumentumNyelvek, ',') nyelvek ON nyelvek.value = zny.C_NYELVID
|
|
WHERE zny.C_ZARADEKID = z.ID AND zny.TOROLT = 'F'
|
|
FOR XML PATH('')),1,1,''),'') AS IdegenNyelvSzovegek
|
|
,z.C_ISKIVAGYATSOROLASIZARADEK AS IsKiVagyAtsorolasiZaradek
|
|
-- NOTE: akkor törölhető, ha nincs kisorolva az adott osztály/csoport-ból, vagy szerepel egy másik ki/átsorolási záradék
|
|
,IIF(torolhetoZ.ID IS NOT NULL OR tcs.C_KILEPESDATUM IS NULL,'T' ,'F') AS IsTorolheto
|
|
,IIF(oszt.ID IS NULL, 'F', 'T') AS IsOsztaly
|
|
FROM T_ZARADEK_OSSZES z
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = z.C_TANULOCSOPORTID
|
|
and tcs.C_TANEVID = z.C_TANEVID
|
|
and tcs.TOROLT = 'F'
|
|
-- NOTE: alábbi feltétel fontos ebben a sorrendben, ha van tanuloid csak arra kell szűrni, ha nincs, akkor a tanulocsoportId-ra
|
|
and (tcs.C_TANULOID = @tanuloId or tcs.ID = @tanuloCsoportId)
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
|
|
LEFT JOIN T_OSZTALY_OSSZES oszt ON oszt.ID = ocs.ID AND oszt.Torolt = 'F'
|
|
LEFT JOIN #TempTorolhetoZaradekok torolhetoZ ON torolhetoZ.ID = z.ID
|
|
WHERE z.TOROLT = 'F'
|
|
and z.C_TANEVID = @tanevId
|
|
and z.C_INTEZMENYID = @intezmenyId
|
|
and ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
|
|
|
|
DROP TABLE #TempTorolhetoZaradekok
|
|
END
|
|
GO
|