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

119 lines
6.5 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetEszkozIgenylesGondviseloRiportExportData
GO
CREATE PROCEDURE uspGetEszkozIgenylesGondviseloRiportExportData
@pTanevId int
,@pIntezmenyId int
,@pEvfolyamtipusIds nvarchar (max)
,@pGondviseloLetezik char(1) = null
,@pGondviseloBelepesLetezik char(1) = null
,@pGondviseloTorvenyesKepviselo char(1) = null
,@pGondviseloEszkozIgenylesElfogadottASZF char(1) = null
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #EvfolyamtipusIds (EvfolyamtipusId int)
CREATE TABLE #TanuloNyersAdatok (
Tanulo nvarchar (255)
,TanuloOktatasiAzonositoja nvarchar (20)
,Osztaly nvarchar (255)
,TanuloOsztalyanakEvfolyama nvarchar (250)
,GondviseloLetezik char (1)
,GondviseloBelepesLetezik char (1)
,GondviseloTorvenyesKepviselo char (1)
,GondviseloEszkozIgenylesElfogadottASZF char (1)
)
IF @pEvfolyamtipusIds IS NOT NULL
BEGIN
INSERT INTO #EvfolyamtipusIds(EvfolyamtipusId)
SELECT value FROM STRING_SPLIT(@pEvfolyamtipusIds,',')
END
INSERT INTO #TanuloNyersAdatok
SELECT
felhasznalo.C_NYOMTATASINEV AS Tanulo
,felhasznalo.C_OKTATASIAZONOSITO AS TanuloOktatasiAzonositoja
,osztalyCsoport.C_NEV AS Osztaly
,evfolyamtipusDic.C_NAME_1 AS TanuloOsztalyanakEvfolyama
,IIF(gondviselo.ID IS NULL, 'F', 'T') AS GondviseloLetezik
,IIF(gondviseloBelepes.ID IS NULL, 'F', 'T') AS GondviseloBelepesLetezik
,IIF(gondviselo.C_ISTORVENYESKEPVISELO = 'T', 'T', 'F') AS GondviseloTorvenyesKepviselo
,IIF(eszkozIgenyles.C_ISELFOGADOTTASZF = 'T', 'T', 'F') AS GondviseloEszkozIgenylesElfogadottASZF
FROM
T_TANULO_OSSZES tanulo
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON
felhasznalo.ID = tanulo.ID
AND felhasznalo.TOROLT = 'F'
AND felhasznalo.C_INTEZMENYID = tanulo.C_ALINTEZMENYID
AND felhasznalo.C_TANEVID = tanulo.C_ALTANEVID
INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport ON
tanuloCsoport.C_TANULOID = tanulo.ID
AND tanuloCsoport.TOROLT = 'F'
AND tanuloCsoport.C_INTEZMENYID = tanulo.C_ALINTEZMENYID
AND tanuloCsoport.C_TANEVID = tanulo.C_ALTANEVID
AND tanuloCsoport.C_TANULOID = tanulo.ID
AND tanuloCsoport.C_BELEPESDATUM <= GETDATE()
AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM > GETDATE())
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
osztalyCsoport.ID = tanuloCsoport.C_OSZTALYCSOPORTID
AND osztalyCsoport.TOROLT = 'F'
AND osztalyCsoport.C_TANEVID = tanuloCsoport.C_TANEVID
AND osztalyCsoport.C_INTEZMENYID = tanuloCsoport.C_INTEZMENYID
INNER JOIN T_OSZTALY osztaly ON
osztaly.ID = osztalyCsoport.ID
AND osztaly.TOROLT = 'F'
AND osztaly.C_ALTANEVID = osztalyCsoport.C_TANEVID
AND osztaly.C_ALINTEZMENYID = osztalyCsoport.C_INTEZMENYID
INNER JOIN T_EVFOLYAMTIPUS_OSSZES evfolyamtipus ON
evfolyamtipus.ID = osztalyCsoport.C_EVFOLYAMTIPUSA
AND evfolyamtipus.TOROLT = 'F'
AND evfolyamtipus.C_ALINTEZMENYID = osztalyCsoport.C_INTEZMENYID
AND evfolyamtipus.C_ALTANEVID = osztalyCsoport.C_TANEVID
INNER JOIN #EvfolyamtipusIds validEvfolyamok ON
validEvfolyamok.EvfolyamtipusId = evfolyamtipus.ID
INNER JOIN T_DICTIONARYITEMBASE evfolyamtipusDic ON
evfolyamtipusDic.ID = evfolyamtipus.ID
AND evfolyamtipusDic.TOROLT = 'F'
AND evfolyamtipusDic.C_TANEVID = evfolyamtipus.C_ALTANEVID
AND evfolyamtipusDic.C_INTEZMENYID = evfolyamtipus.C_ALINTEZMENYID
LEFT JOIN T_GONDVISELO_OSSZES gondviselo ON
gondviselo.C_TANULOID = tanulo.ID
AND gondviselo.C_TANEVID = tanulo.C_ALTANEVID
AND gondviselo.C_INTEZMENYID = tanulo.C_ALINTEZMENYID
AND gondviselo.TOROLT = 'F'
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES gondviseloBelepes ON
gondviseloBelepes.C_GONDVISELOID = gondviselo.ID
AND gondviseloBelepes.TOROLT = 'F'
AND gondviseloBelepes.C_INTEZMENYID = gondviselo.C_INTEZMENYID
AND gondviseloBelepes.C_TANEVID = gondviselo.C_TANEVID
AND gondviseloBelepes.C_BEJELENTKEZESINEV IS NOT NULL
LEFT JOIN T_ESZKOZIGENYLES_OSSZES eszkozIgenyles ON
eszkozIgenyles.C_GONDVISELOID = gondviselo.ID
AND eszkozIgenyles.C_INTEZMENYID = gondviselo.C_INTEZMENYID
AND eszkozIgenyles.C_TANEVID = gondviselo.C_TANEVID
AND eszkozIgenyles.TOROLT = 'F'
WHERE tanulo.C_ALINTEZMENYID = @pIntezmenyId
AND tanulo.C_ALTANEVID = @pTanevId
SELECT
Tanulo
,TanuloOktatasiAzonositoja
,Osztaly
,TanuloOsztalyanakEvfolyama
FROM #TanuloNyersAdatok
GROUP BY Tanulo
,TanuloOktatasiAzonositoja
,Osztaly
,TanuloOsztalyanakEvfolyama
HAVING (@pGondviseloLetezik IS NULL OR @pGondviseloLetezik = MAX(GondviseloLetezik))
AND (@pGondviseloBelepesLetezik IS NULL OR @pGondviseloBelepesLetezik = MAX(GondviseloBelepesLetezik))
AND (@pGondviseloTorvenyesKepviselo IS NULL OR @pGondviseloTorvenyesKepviselo = MAX(GondviseloTorvenyesKepviselo))
AND (@pGondviseloEszkozIgenylesElfogadottASZF IS NULL OR @pGondviseloEszkozIgenylesElfogadottASZF = MAX(GondviseloEszkozIgenylesElfogadottASZF))
DROP TABLE #EvfolyamtipusIds
DROP TABLE #TanuloNyersAdatok
END
GO