kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Functions/fnGetDokumentumKozossegiSzolgalatOsztalyonkent.sql
2024-03-13 00:33:46 +01:00

57 lines
No EOL
3.2 KiB
Transact-SQL

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