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

52 lines
No EOL
2.6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetOsztalyTanulokGondviselok
GO
CREATE PROCEDURE uspGetOsztalyTanulokGondviselok
@pFelhasznaloId INT
,@pIntezmenyId INT = null
,@pTanevId INT = null
,@pDatum DATE
,@pOsztalyId INT = null
,@pEllatottKoznevelesiFeladatId INT = null
,@pIsSzuperOsztalyfonok CHAR(1)
,@pIsEvfolyamfelelos CHAR(1)
AS
BEGIN
SET NOCOUNT ON;
SELECT
gondviselo.ID Id
,tcs.C_TANULOID AS TanuloId
,tanulo.C_NYOMTATASINEV TanuloNeve
,ocs.ID OsztalyCsoportId
,ocs.C_NEV TanuloOsztalya
,gondviselo.C_NEV GondviseloNeve
,fb.C_BEJELENTKEZESINEV GondviseloBejelentkezesiNev
,rokfok.C_NAME RokonsagiFoka
,email.C_EMAILCIM Email
,email.C_ALAPERTELMEZETT IsAlapertelmezettEmail
,telefon.C_TELEFONSZAM TelefonSzam
,telefon.C_ALAPERTELMEZETT IsAlapertelmezettTelefonSzam
,gondviselo.C_ISTORVENYESKEPVISELO IsTorvenyesKepviselo
,IIF(gondviselo.C_ISCSOKKENTETTGONDVISELO = 'T', 'F', 'T') IsBovitettJogosultsag
,fb.C_UTOLSOBELEPES UtolsoBelepes
,fb.C_UTOLSOBELEPESMOBIL UtolsoBelepesMobil
FROM T_OSZTALY_OSSZES osztaly
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = osztaly.ID AND ocs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = osztaly.ID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = tcs.C_TANULOID AND tanulo.TOROLT = 'F'
INNER JOIN T_GONDVISELO_OSSZES gondviselo ON gondviselo.C_TANULOID = tanulo.ID AND gondviselo.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES rokfok ON rokfok.ID = gondviselo.C_ROKONSAGFOKA AND rokfok.C_TANEVID = gondviselo.C_TANEVID AND rokfok.TOROLT = 'F'
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_GONDVISELOID = gondviselo.ID AND fb.TOROLT = 'F'
OUTER APPLY (SELECT TOP 1 C_EMAILCIM, C_ALAPERTELMEZETT FROM T_EMAIL_OSSZES e WHERE e.C_GONDVISELOID = gondviselo.ID AND e.TOROLT = 'F' ORDER BY C_ALAPERTELMEZETT DESC, ID) email
OUTER APPLY (SELECT TOP 1 C_TELEFONSZAM, C_ALAPERTELMEZETT FROM T_TELEFON_OSSZES t WHERE t.C_GONDVISELOID = gondviselo.ID AND t.TOROLT = 'F' ORDER BY C_ALAPERTELMEZETT DESC, ID) telefon
WHERE
(osztaly.C_OSZTALYFONOKID = @pFelhasznaloId OR @pIsSzuperOsztalyfonok = 'T' OR @pIsEvfolyamfelelos ='T')
AND (@pOsztalyId IS NULL OR osztaly.ID = @pOsztalyId)
AND (@pEllatottKoznevelesiFeladatId IS NULL OR ocs.C_FELADATKATEGORIAID = @pEllatottKoznevelesiFeladatId)
AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
AND osztaly.C_ALTANEVID = @pTanevId
AND osztaly.C_ALINTEZMENYID = @pIntezmenyId
AND osztaly.TOROLT= 'F'
END
GO