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 '
'+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