DROP FUNCTION IF EXISTS fnGetDokumentumKozossegiSzolgalatOsztalyonkent GO CREATE FUNCTION fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@tanevId int, @osztalyId int, @idegenNyelvId int) RETURNS TABLE RETURN ( SELECT tk.ID AS KozossegiSzolgalatId ,tk.C_TANEVID AS KozossegiSzolgalatTanevId ,currentTanulo.TanuloNev AS TanuloNev ,currentTanulo.TanuloId AS TanuloId ,currentTanulo.TanuloCsoportId AS TanuloCsoportId ,currentTanulo.OktatasiAzonosito AS TanuloOktAzon ,FORMAT(C_INTERVALLUMKEZDETE, 'yyyy. MM. dd') + ' -' + char(13) + char(10) + FORMAT(C_INTERVALLUMVEGE, 'yyyy. MM. dd') AS Datum ,tk.C_MEGJEGYZES AS Megjegyzes ,tkny.C_MEGJEGYZES AS MegjegyzesIdegenNyelven ,tk.C_ORASZAM AS Oraszam ,tk.C_TELJESITESIHELYE AS TeljesitesHelye ,feljegyzo.C_NYOMTATASINEV AS FeljegyzoNeve ,tipus.C_NAME AS Tipus ,tk.C_INTERVALLUMKEZDETE AS IntervallumKezdete ,tk.C_INTERVALLUMVEGE AS IntervallumVege ,tipusNy.C_NAME AS TipusIdegenNyelven ,tkny.C_TELJESITESIHELYE AS TeljesitesHelyeIdegenNyelven ,feljegyzo.C_ELOTAG AS FeljegyzoNevElotag ,feljegyzo.C_VEZETEKNEV AS FeljegyzoNevVezeteknev ,feljegyzo.C_UTONEV AS FeljegyzoNevUtonev FROM T_FELHASZNALO_OSSZES tanulo INNER JOIN ( SELECT f.C_OKTATASIAZONOSITO as OktatasiAzonosito ,f.ID as TanuloId ,f.C_NYOMTATASINEV as TanuloNev ,tanulocsoport.ID as TanuloCsoportId ,CASE WHEN (SELECT C_AKTIV FROM T_TANEV_OSSZES WHERE ID = tanulocsoport.C_TANEVID AND TOROLT = 'F') = 'T' THEN 1 ELSE (SELECT C_SORSZAM FROM T_TANEV_OSSZES WHERE ID = tanulocsoport.C_TANEVID AND TOROLT = 'F') END as IsAktivTanevOrTanevSorszama FROM T_FELHASZNALO_OSSZES f CROSS APPLY ( SELECT TOP 1 ID ,C_TANEVID FROM T_TANULOCSOPORT_OSSZES subTanuloCsoport WHERE subTanuloCsoport.TOROLT = 'F' AND subTanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId AND subTanuloCsoport.C_TANULOID = f.ID ORDER BY ISNULL(subTanuloCsoport.C_KILEPESDATUM, '22000101') DESC ) tanulocsoport WHERE f.TOROLT = 'F' ) currentTanulo ON tanulo.C_OKTATASIAZONOSITO = currentTanulo.OktatasiAzonosito INNER JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES tk ON tk.C_TANULOID = Tanulo.ID AND tk.TOROLT = 'F' AND (currentTanulo.IsAktivTanevOrTanevSorszama = 1 OR tk.C_TANEVID IN (SELECT ID FROM T_TANEV_OSSZES WHERE C_SORSZAM <= IsAktivTanevOrTanevSorszama AND C_INTEZMENYID = tk.C_INTEZMENYID AND TOROLT = 'F')) LEFT JOIN T_TANULOKOZOSSEGISZOLGALATNYEL_OSSZES tkny ON tkny.C_TANULOKOZOSSEGISZOLGALATID = tk.ID AND tkny.C_NYELVID = @idegenNyelvId AND tkny.TOROLT = 'F' AND tkny.C_TANEVID = @tanevId LEFT JOIN T_FELHASZNALO_OSSZES feljegyzo ON feljegyzo.ID = tk.C_FELJEGYZOID AND feljegyzo.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tipus ON tipus.Id = tk.C_KOZOSSEGISZOLGALATTIPUSA AND tipus.C_TANEVID = tk.C_TANEVID LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES tipusNy ON tipusNy.ID = tk.C_KOZOSSEGISZOLGALATTIPUSA AND tipusNy.C_NYELVID = @idegenNyelvId AND tipusNy.C_TANEVID = @tanevId AND tipusNy.TOROLT = 'F' WHERE tanulo.TOROLT = 'F' )