SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetTanuloiErtesito]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetTanuloiErtesito] END GO CREATE PROCEDURE [dbo].[sp_GetTanuloiErtesito] @pIntezmenyId INT, @pTanevId INT, @pOsztalyId INT, @pTanuloId INT, @pIskolaErdekuSzamit BIT AS BEGIN SET NOCOUNT ON; DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@pTanevId AND TOROLT = 'F') DECLARE @NaploSorszam TABLE ( TanuloId INT ,Sorszam INT ) INSERT INTO @NaploSorszam EXEC [sp_GetDokumentumTanuloNaploSorszam] @osztalyId = @pOsztalyId CREATE TABLE #students (ID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE, NaploSorszam INT) INSERT INTO #students SELECT t.TanuloId ,BelepesDatum ,ISNULL(KilepesDatum, GETDATE()) ,nsz.Sorszam FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F') t INNER JOIN @NaploSorszam nsz ON nsz.TanuloId = t.TanuloId WHERE t.TanuloId = @pTanuloId /*FEJLEC*/ SELECT DISTINCT osztalyCsop.C_NEV OsztalyNeve ,ofo.C_NYOMTATASINEV Osztalyfonok ,INTEZMENY.C_NEV IntezmenyNeve ,INTEZMENY.C_IGAZGATONEVE IgazgatoNeve ,dbo.fnGetDokumentumIntezmenyCime (@pTanevId) IntezmenyCime ,INTEZMENY.C_TELEFONSZAM IntezmenyTelefonszam ,INTEZMENY.C_EMAILCIM IntezmenyEmail ,INTEZMENY.C_OMKOD IntezmenyOMKod ,TANEV.C_NEV Tanev FROM T_TANEV_osszes TANEV INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsop ON TANEV.C_INTEZMENYID = osztalyCsop.C_INTEZMENYID INNER JOIN T_OSZTALY_OSSZES o ON osztalyCsop.ID = o.ID AND o.torolt='F' LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID INNER JOIN T_INTEZMENYADATOK_OSSZES INTEZMENY on INTEZMENY.C_INTEZMENYID=osztalyCsop.C_INTEZMENYID AND INTEZMENY.C_TANEVID = osztalyCsop.C_TANEVID AND INTEZMENY.Torolt = 'F' WHERE osztalyCsop.ID = @pOsztalyId AND TANEV.ID = @pTanevId /*TANULÓ adatai*/ SELECT DISTINCT tanuloID ,sorszam ,torzslapSzam ,oktAzon ,tajSzam ,anyjaNeve ,szulHely ,dbo.fnGetDokumentumDatumFormatum(szulIdo) szulIdo ,IIF(socAdat = '', '', LEFT(socAdat, len(socAdat)- 1)) socAdat ,kepzes ,tanuloNeve ,allampolgarsaga ,diakIgazolvanySzam ,dbo.fnGetDokumentumDatumFormatum(kilepesDatum) kilepesDatum ,beirasiNaploSorszam INTO #TanuloAlapAdatok FROM ( SELECT t.ID tanuloID ,naploSorszam.Sorszam sorszam ,f.C_NYILVANTARTASISZAM torzslapSzam ,f.C_OKTATASIAZONOSITO oktAzon ,f.C_TAJSZAM tajSzam ,f.C_ANYJANEVE anyjaNeve ,f.C_SZULETESIHELY szulHely ,f.C_SZULETESIDATUM szulIdo ,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') + IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') + IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') + IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') + IIF(t.C_SAJATOSNEVELESU = 'T', 'Sajátos nevelési igényű, ', '') + IIF(t.C_BEJARO = 'T', 'Bejáró, ', '') socAdat ,tt.C_NEV kepzes ,f.C_NYOMTATASINEV tanuloNeve ,d.C_NAME allampolgarsaga ,t.C_DIAKIGAZOLVANYSZAM diakIgazolvanySzam ,MAX(cs.C_KILEPESDATUM) kilepesDatum ,t.C_BEIRASINAPLOSORSZAM beirasiNaploSorszam FROM T_TANULO_OSSZES t INNER JOIN #students s ON s.ID = t.ID INNER JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId=s.ID INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.ID INNER JOIN T_TANULOCSOPORT_OSSZES cs ON s.ID = cs.C_TANULOID AND cs.C_OSZTALYCSOPORTID = @pOsztalyId AND cs.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID GROUP BY s.ID, t.ID, naploSorszam.Sorszam, f.C_NYILVANTARTASISZAM, f.C_OKTATASIAZONOSITO, f.C_TAJSZAM, f.C_ANYJANEVE, f.C_SZULETESIHELY, f.C_SZULETESIDATUM, t.C_MAGANTANULO, t.C_JOGVISZONYATSZUNETELTETO, t.C_SZAKMAIGYAKORLATON, C_SAJATOSNEVELESU, t.C_BEJARO, t.C_SZOCIALISTAMOGATAS, tt.C_NEV, f.C_NYOMTATASINEV, d.C_NAME, t.C_DIAKIGAZOLVANYSZAM, t.C_BEIRASINAPLOSORSZAM ) tbl SELECT * FROM #TanuloAlapAdatok ORDER BY sorszam /*TANULÓ elérhetőségei */ SELECT tanulo.TanuloId tanuloID ,Gondviselo.C_NEV + IIF(Gondviselo.C_ISTORVENYESKEPVISELO = 'T', ' (törvényes)', '') GondviseloNeve ,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM CimText FROM T_GONDVISELO_OSSZES Gondviselo INNER JOIN #students TanulokId ON Gondviselo.C_TANULOID = TanulokId.Id INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F') tanulo ON tanulo.TanuloId = Gondviselo.C_TANULOID AND Gondviselo.TOROLT = 'F' INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId WHERE cim.TOROLT = 'F' AND cim.C_TANEVID = @pTanevId ORDER BY (SELECT 1) --AND Gondviselo.C_ISTORVENYESKEPVISELO = 'T' /*TANTARGY ERTEKELESEK*/ SELECT DISTINCT tanulo.Id tanuloID ,TARGY.C_NEV TargyNev ,Tanar.C_NYOMTATASINEV TanarNev ,JEGY.C_NAME Ertekeles FROM T_TANULOCSOPORT_OSSZES TANULOCSOPORT INNER JOIN T_TANULOERTEKELES_OSSZES ERTEKELES ON ERTEKELES.C_TANULOID = TANULOCSOPORT.C_TANULOID INNER JOIN #students tanulo ON ERTEKELES.C_TANULOID = tanulo.Id INNER JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON ERTEKELES.C_OSZTALYZAT = JEGY.ID INNER JOIN T_TANTARGY_OSSZES TARGY ON ERTEKELES.C_TANTARGYID = TARGY.ID INNER JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.Id = ERTEKELES.C_ERTEKELOID WHERE ERTEKELES.C_ERTEKELESTIPUSA = 1519 AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId /*MULASZTAS ÖSSZESEN*/ SELECT DATEPART(MONTH, Datum) Honap ,TantargyId Id ,Igazolt IgazoltE ,TanuloId TanuloId ,IgazolasTipusa IgazolasTipus ,Datum Datum ,Tipusa Tipus ,KesesPercben KesesPercben ,HetSorszama HetSorszama ,Oraszam Oraszam ,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat ,C_GYAKORLATI isGyakorlat INTO #mulasztasTmp FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit) TanulokMulasztasai INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_OSZTALYCSOPORTID = TanulokMulasztasai.OsztalyCsoportId AND TanuloCsoport.C_TANULOID = TanulokMulasztasai.TanuloId AND TanuloCsoport.C_BELEPESDATUM <= TanulokMulasztasai.Datum AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= TanulokMulasztasai.Datum) AND TanuloCsoport.TOROLT = 'F' SELECT [9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, TanuloId, ElmeletGyakorlat FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv )ni on ni.TanuloId=s.Id LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id /*IGAZOLATLAN MULASZTAS*/ SELECT [9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.Id LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id /*TANULO FELMENTESEI*/ SELECT ISNULL(mentesseg.tantargyNev, '-') Tantargy ,ISNULL(mentesseg.mentessegOka, '') MentessegOka ,ISNULL(IIF(mentesseg = '', '' ,LEFT(mentesseg, LEN(mentesseg)- 1)),' ') Mentesseg FROM #students s LEFT JOIN (SELECT DISTINCT mentesseg.C_TANULOID tanuloId , IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev , mentesseg.C_MENTESSEGOKA + ' ' + ISNULL('(' + dbo.fnGetDokumentumDatumFormatum(C_KEZDETE) + ' - ', '') + ISNULL(dbo.fnGetDokumentumDatumFormatum(C_VEGE) + ')', IIF(C_KEZDETE IS NULL, '', ')' )) mentessegOka , IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg FROM T_TANULOMENTESSEG_OSSZES mentesseg INNER JOIN T_TANTARGY_OSSZES t on t.ID=mentesseg.C_TANTARGYID INNER JOIN #students s ON s.ID = mentesseg.C_TANULOID WHERE mentesseg.TOROLT='F' AND mentesseg.C_TANEVID=@pTanevId ) mentesseg ON s.ID=mentesseg.TANULOID /*TANTESTÜLET ZÁRADÉKA*/ SELECT DISTINCT ISNULL(C_ZARADEK, '-') Feljegyzes FROM T_TANULOCSOPORT_OSSZES WHERE C_TANULOID = @pTanuloId END GO