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

272 lines
12 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanuloiAdatlapAdatok]
GO
CREATE PROCEDURE [dbo].[sp_GetTanuloiAdatlapAdatok]
@pOsztCsopID int
,@pTanevId int
,@pDatum date
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #JogviszonyVege (
TanuloId int
,BelepesDatum date
,KilepesDatum date)
INSERT INTO #JogviszonyVege
SELECT
x.TanuloId AS TanuloId
,x.BelepesDatum AS BelepesDatum
,x.KilepesDatum AS KilepesDatum
FROM
(SELECT
TanuloId AS TanuloId
,BelepesDatum AS BelepesDatum
,ROW_NUMBER() OVER (PARTITION BY TanuloId ORDER BY BelepesDatum DESC ) AS rownumber
,KilepesDatum AS KilepesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztCsopID, 'T') AS Tanulok
) AS x
WHERE x.rownumber = 1
DECLARE @DefaultFeladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztCsopID)
--Fejléc
SELECT
T_INTEZMENYADATOK_OSSZES.C_NEV AS IntezmenyNeve
,T_INTEZMENYADATOK_OSSZES.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) AS IntezmenyCime
,T_INTEZMENYADATOK_OSSZES.C_OMKOD AS OMKod
,T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM AS TELEFON
,T_INTEZMENYADATOK_OSSZES.C_EMAILCIM AS EMAILCIM
,T_TANEV_OSSZES.C_NEV AS TANEV
,o.C_OSZTALYFONOKID AS PartnerID
,f.C_NYOMTATASINEV AS OSZTALYFONOK
,ocs.C_NEV AS OSZTALYNEV
,@pOsztCsopID AS OsztalyId
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = @pOsztCsopID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID AND f.TOROLT = 'F'
WHERE
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @pTanevId
CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO #EmailCimTableTemp
SELECT
TanuloId AS TanuloId
,C_EMAILCIM AS C_EMAILCIM
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztCsopID, 'T') AS tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId AND email.C_GONDVISELOID IS NULL
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
CREATE TABLE #EmailCimTable (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO #EmailCimTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(Btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #EmailCimTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') AS Email
FROM #EmailCimTableTemp temp
CREATE TABLE #TelefonszamTableTemp (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
INSERT INTO #TelefonszamTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztCsopID, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId AND telefon.C_GONDVISELOID IS NULL
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(C_TELEFONSZAM) > 0
CREATE TABLE #TelefonszamTable (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
INSERT INTO #TelefonszamTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(Btemp.Telefonszam AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #TelefonszamTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') AS Telefonszam
FROM #TelefonszamTableTemp temp
CREATE TABLE #TanuloCimTable (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
INSERT INTO #TanuloCimTable
SELECT DISTINCT
TanuloId
,STUFF((
SELECT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @pTanevId, @pOsztCsopID, NULL, NULL) btemp
WHERE
temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') AS Cim
,temp.CimTipusa
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @pTanevId, @pOsztCsopID, NULL, NULL) temp
CREATE TABLE #GondviselokTableTemp (FelhasznaloId INT, Gondviselo NVARCHAR(MAX))
INSERT INTO #GondviselokTableTemp
SELECT
Gondviselo.TanuloId AS TanuloId
,Gondviselo.GondviseloNev + ISNULL('('+rokonsagiFoka.C_NAME+')', '') AS Gondviselo
FROM fnGetDokumentumGondviselok (@pOsztCsopID, @pTanevId, 'F', 'T') Gondviselo
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES rokonsagiFoka ON Gondviselo.RokonsagifokId = rokonsagiFoka.ID AND rokonsagiFoka.C_TANEVID = @pTanevId
CREATE TABLE #GondviselokTable (FelhasznaloId INT, Gondviselo NVARCHAR(MAX))
INSERT INTO #GondviselokTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT ', ' + btemp.Gondviselo
FROM #GondviselokTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') AS Gondviselo
FROM #GondviselokTableTemp temp
--Tanulók Adatai
SELECT DISTINCT
tta.C_BEIRASINAPLOSORSZAM
,tta.C_NAPLOSORSZAM AS NaploSorszam
,tta.C_TORZSLAPSZAM AS TorzslapSzam
,T_TANEV_OSSZES.C_NEV AS TANEV
,T_OSZTALYCSOPORT_OSSZES.C_NEV AS OSZTALYNEV
,munkarend.C_NAME AS Munkarend
,T_OSZTALYCSOPORT_OSSZES.C_KEPZESIFORMA AS Kepzesiforma
,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS NEV
,gondviselo.Gondviselo AS GONDVISELO
,T_FELHASZNALO_OSSZES.C_SZULETESINEV AS SZULETESINEV
,T_FELHASZNALO_OSSZES.C_ANYJANEVE ANYJANEVE
,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO
,T_FELHASZNALO_OSSZES.C_SZULETESIHELY
,T_FELHASZNALO_OSSZES.C_SZULETESIORSZAG AS Szuletesiorszag
,FORMAT(T_FELHASZNALO_OSSZES.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS C_SZULETESIDATUM
,T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA AS Allampolgarsag
,T_FELHASZNALO_OSSZES.C_ANYANYELVE AS Anyanyelv
,JogviszonyVege.BelepesDatum AS C_NYILVANTARTASKEZDETE
,tta.C_TANKOTELEZETT AS Tankotelezett
,tta.C_TANKOTELEZETTSEGVEGE
,tta.C_JOGVISZONYVARHATOBEFEJEZESE
,T_TANULO_OSSZES.C_DIAKIGAZOLVANYSZAM
,T_TANULO_OSSZES.C_DIAKIGAZOLVANYKELTE
,T_TANULO_OSSZES.C_BANKSZAMLASZAM
,AllandoLakcim.Cim
,TartozkodasiHely.CIM AS TartozkodasiHely
,telefon.Telefonszam AS C_TELEFONSZAM
,email.EmailCim AS C_EMAILCIM
,tta.C_BEJARO AS Bejaro
,tta.C_SZAKMAIGYAKORLATON AS Szakmaigyak
,tta.C_VENDEG AS Vendeg
,tta.C_JOGVISZONYATSZUNETELTETO AS Jogviszonyszunetelteto
,tta.C_MAGANTANULO AS Magantanulo
,maganTanuloOk.C_NAME AS C_MAGANTANULOSAGANAKOKA
,tta.C_MAGANTANULOSAGKEZDETE
,T_TANULO_OSSZES.C_SZAKKEPESITESSZAMA
,T_TANULO_OSSZES.C_TANULOIJOGVISZONYOSELTARTOTT
,T_TANULO_OSSZES.C_TOBBGYERMEKIGAZOLASSZAMA
,tta.C_EVISMETLO AS Evismetlo
,T_TANULO_OSSZES.C_SZOCIALISTAMOGATAS AS Szoctam
,T_TANULO_OSSZES.C_HATRANYOSHELYZETU
,T_TANULO_OSSZES.C_VESZELYEZTETETT AS Veszelyeztetett
,T_TANULO_OSSZES.C_HALMOZOTTANFOGYATEKOS AS Halmfogyatekos
,T_TANULO_OSSZES.C_ETKEZESIKEDVEZMENY
,tta.C_TERITESIDIJATFIZETO AS Teriteses
,tta.C_TANDIJATFIZETO AS Tandijas
,T_TANULO_OSSZES.C_INGYENESTANKONVYELLATASA
,tta.C_TANULOSZERZODESES AS Tanszerzodeses
,tta.C_POLGARISZERZODESES AS Polgszerzodeses
,T_TANULO_OSSZES.C_RENDSZERESGYERMEKVEDELMIKEDV
,T_TANULO_OSSZES.C_ALLAMIGONDOZOTT AS Allamigond
,T_TANULO_OSSZES.C_KOLLEGIUMIELLATASOS AS Kollegiumi
,T_TANULO_OSSZES.C_TARTOSGYOGYKEZELESSZAMA
,T_TANULO_OSSZES.C_SAJATOSNEVELESU AS Sajatosnevelesu
,T_TANULO_OSSZES.C_SNILETSZAMSULY
,T_TANULO_OSSZES.C_SNIKIALLITOINTEZMENY
,FORMAT(T_TANULO_OSSZES.C_SNIOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') AS C_SNIOKMANYERVENYESSEGKEZDETE
,T_TANULO_OSSZES.C_BTMPROBLEMAS AS Btmproblemas
,T_TANULO_OSSZES.C_BTMLETSZAMSULY
,T_TANULO_OSSZES.C_BTMHATAROZATOKMANYSZAM
,FORMAT(T_TANULO_OSSZES.C_BTMOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') AS C_BTMOKMANYERVENYESSEGKEZDETE
,T_TANULO_OSSZES.C_BTMKIALLITOINTEZMENY
,T_TANULO_OSSZES.C_ELSOINTEZMENYOMKOD
,T_FELHASZNALO_OSSZES.C_IGAZOLVANYSZAM
,igazolvanyTipusa.C_NAME AS IgazolvanyTipusa
,T_TANULO_OSSZES.ID AS TanuloId
,@pOsztCsopID AS OsztalyId
,JogviszonyVege.KilepesDatum AS JogviszonyVege
,STUFF((SELECT ', ' + Tartalom
FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztCsopID, null)
WHERE TanuloId = T_FELHASZNALO_OSSZES.ID
AND Tipusa = 1545 --KRETA2-3028
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Bejegyzes
,ISNULL(tta.C_ELOZOINTEZMENY, T_TANULO_OSSZES.C_ELOZOINTEZMENY) AS ElozoIntezmeny
FROM T_FELHASZNALO_OSSZES
INNER JOIN T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_TANULOID = T_FELHASZNALO_OSSZES.ID AND T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = @pOsztCsopID
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tanugy ON tanugy.C_TANULOCSOPORTID = T_TANULOCSOPORT_OSSZES.ID AND tanugy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkarend ON munkarend.ID = tanugy.C_TANTERVIJELLEGID AND munkarend.C_TANEVID = @pTanevId AND munkarend.TOROLT = 'F'
INNER JOIN T_TANULO_OSSZES on T_TANULO_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
INNER JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
LEFT JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai (@pOsztCsopID, @pDatum) tta ON tta.TanuloId=T_FELHASZNALO_OSSZES.ID
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
LEFT JOIN #TelefonszamTable telefon on telefon.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
LEFT JOIN #EmailCimTable email on email.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
LEFT JOIN #GondviselokTable gondviselo on gondviselo.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES igazolvanyTipusa ON T_FELHASZNALO_OSSZES.C_IGAZOLVANYTIPUSA = igazolvanyTipusa.ID AND igazolvanyTipusa.C_TANEVID = @pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES maganTanuloOk ON tta.C_MAGANTANULOSAGANAKOKAID = maganTanuloOk.ID AND maganTanuloOk.C_TANEVID = @pTanevId AND maganTanuloOk.TOROLT='F'
LEFT JOIN #TanuloCimTable AllandoLakcim ON AllandoLakcim.FelhasznaloId = T_FELHASZNALO_OSSZES.ID AND AllandoLakcim.Cimtipusa = 907
LEFT JOIN #TanuloCimTable TartozkodasiHely ON TartozkodasiHely.FelhasznaloId = T_FELHASZNALO_OSSZES.ID AND TartozkodasiHely.Cimtipusa = 909
INNER JOIN #JogviszonyVege JogviszonyVege ON JogviszonyVege.TanuloId = T_TANULOCSOPORT_OSSZES.C_TANULOID
WHERE
T_FELHASZNALO_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.TOROLT = 'F'
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
SELECT
o.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,o.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat
,o.C_SZAKMATIPUSID AS UjSzktSzakma
,o.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany
,o.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet
,o.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites
,o.C_SZAKIRANYNKTTIPUSID AS NktSzakirany
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALY_OSSZES AS o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
WHERE o.ID = @pOsztCsopID
END
GO