DROP PROCEDURE IF EXISTS uspGetErtesitesAltEsMulAdatok GO CREATE PROCEDURE uspGetErtesitesAltEsMulAdatok @pOsztalyId int ,@pTanevId int ,@pTankoteles bit ,@pIskolaErdekuSzamit bit ,@pIsSzulonek bit = 1 ,@pIgazolatlanOrakSzama int ,@negyedevreSzamoltMulasztasok bit = 1 ,@pKiiratkozottanulokMegjelenitese bit = 0 ,@pIsMuveszetOktatasi bit = 0 ,@pGondviseloIsTorvenyes bit = 0 AS BEGIN SET NOCOUNT ON; --Mulasztasok DECLARE @Mulasztasok TABLE ( TanuloId INT ,TanuloCsoportId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,ElmeletOsszes INT ,GyakorlatOsszes INT ,Osszes INT ) DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT, RokonsagiFokId INT, GondviseloNev NVARCHAR(MAX)) DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT) DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT) DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT, Alapertelmezett CHAR(1)) DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX)) DECLARE @EmailCimGondviseloTable TABLE (FelhasznaloId INT, GondviseloId INT, EmailCim NVARCHAR(MAX)) DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, Alapertelmezett CHAR(1)) DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX)) DECLARE @GondviseloTelefonTable TABLE (FelhasznaloID INT, GondviseloId INT, Telefon NVARCHAR(MAX)) DECLARE @IktatasAdatok TABLE ( OsztalyId INT ,Evfolyam INT ,FeladatEllatasiHelyId INT ,KepzesiForma INT ,OsztalyFonokId INT ,TantervId INT ,SzakmaCsoport INT ,Agazat INT ,Szakkepesites INT ,Reszszakkepesites INT ,UjSzktAgazat int ,UjSzktSzakma int ,UjSzktSzakmairany int ,NktTanulmanyiTerulet int ,NktSzakkepesites int ,NktSzakirany int ,OJCSJKeresztfeleves CHAR ,OJTechnikaiOsztaly CHAR ,OJNemzetisegi CHAR ,OJKettannyelvu CHAR ,OJNyelviElokeszito CHAR ,OJIsGyogypedagogiaiLogopediai CHAR ,OJSportOsztaly CHAR ,OJAranyJanosProgram CHAR ) CREATE TABLE #tanuloiAdatok ( TanuloId int ,TanuloCsoportId int ,TANULONEV nvarchar(510) ,ANYJANEVE nvarchar(128) ,SZULETESIHELY nvarchar(100) ,SZULETESIDATUM datetime ,TorzslapSzam nvarchar(100) ,INT_IGAZGATO_NEV nvarchar(510) ,INT_NEV nvarchar(510) ,INT_OMKOD nvarchar(40) ,INT_VAROS nvarchar(510) ,INT_CIM nvarchar(MAX) ,OSZTALYCSOPORT_NEV nvarchar(510) ,OSZTFO_NEV nvarchar(510) ,IGAZOLT int ,IGAZOLATLAN int ,OsszesMulasztas int ,OsszesIgazolt int ,OsszesIgazolatlan int ,TanuloAllandoCim nvarchar(MAX) ,TanuloTartozkodasiCim nvarchar(MAX) ,TanuloOktAzon nvarchar(40) ,HozottIgazolt int ,HozottIgazolatlan int ,HozottIgazoltKeses int ,HozottIgazolatlanKeses int ,BelepesDatum datetime ,TanevNeve nvarchar(10) ) INSERT INTO @Mulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyID = @pOsztalyId ,@tanevId = @pTanevId ,@elmeletiOraPercben = 45 ,@gyakorlatiOraPercben = 45 ,@ertekelesTipus = 1520 --évvégi ,@iskolaErdekuSzamit = @pIskolaErdekuSzamit ,@negyedevreSzamoltMulasztasok = @negyedevreSzamoltMulasztasok ,@isMuveszetOktatasi = @pIsMuveszetOktatasi SELECT TanuloId Id ,TanuloCsoportId ,BelepesDatum ,ISNULL(KilepesDatum, GETDATE()) KilepesDatum INTO #students FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') WHERE (@pKiiratkozottanulokMegjelenitese = 1 OR KilepesDatum IS NULL) INSERT INTO @Gondviselok SELECT TanuloId ,GondviseloId ,RokonsagifokId ,GondviseloNev FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') INSERT INTO @TanuloCimTable SELECT DISTINCT TanuloId ,STUFF(( SELECT DISTINCT CHAR(13) + CHAR(10) + CAST(btemp.Cim AS NVARCHAR(MAX)) FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId, NULL, NULL) btemp WHERE temp.TanuloId = btemp.TanuloId AND temp.CimTipusa = btemp.CimTipusa FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') ,temp.CimTipusa FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId, NULL, NULL) temp INSERT INTO @GondViseloCimTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CHAR(13) + CHAR(10) + CAST(btemp.Cim AS NVARCHAR(MAX)) FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId, NULL, 1) btemp WHERE temp.GondviseloId = btemp.GondviseloId AND temp.CimTipusa = btemp.CimTipusa FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') ,temp.CimTipusa FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId, NULL, 1) temp INSERT INTO @EmailCimTableTemp SELECT tanulo.Id TanuloId ,C_EMAILCIM ,C_GONDVISELOID ,C_ALAPERTELMEZETT FROM #students tanulo INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = tanulo.Id WHERE email.TOROLT = 'F' AND email.C_TANEVID = @pTanevId AND LEN(C_EMAILCIM) > 0 INSERT INTO @EmailCimTanuloTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CHAR(13) + CHAR(10) + CAST(btemp.EmailCim AS NVARCHAR(MAX)) FROM @EmailCimTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND btemp.GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') Email FROM @EmailCimTableTemp temp WHERE GondviseloId IS NULL INSERT INTO @EmailCimGondviseloTable SELECT DISTINCT FelhasznaloId ,GondviseloId ,STUFF(( SELECT DISTINCT CHAR(13) + CHAR(10) + CAST(btemp.EmailCim AS NVARCHAR(MAX)) FROM @EmailCimTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND btemp.GondviseloId IS NOT NULL AND btemp.Alapertelmezett = 'T' FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') Email FROM @EmailCimTableTemp temp WHERE GondviseloId IS NOT NULL AND Alapertelmezett = 'T' INSERT INTO @TelefonTableTemp SELECT tanulo.Id TanuloId ,C_TELEFONSZAM ,C_GONDVISELOID ,C_ALAPERTELMEZETT FROM #students tanulo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = tanulo.Id WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @pTanevId AND LEN(telefon.C_TELEFONSZAM) > 0 INSERT INTO @TanuloTelefonTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CHAR(13) + CHAR(10) + CAST(btemp.Telefon AS NVARCHAR(MAX)) FROM @TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND btemp.GondviseloId IS NULL FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,2,'') FROM @TelefonTableTemp temp WHERE GondviseloId IS NULL INSERT INTO @GondviseloTelefonTable SELECT DISTINCT FelhasznaloId ,GondviseloId ,STUFF(( SELECT DISTINCT CHAR(13) + CHAR(10) + CAST(btemp.Telefon AS NVARCHAR(MAX)) FROM @TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND temp.GondviseloId = btemp.GondviseloId AND btemp.GondviseloId IS NOT NULL AND btemp.Alapertelmezett = 'T' FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,2,'') FROM @TelefonTableTemp temp WHERE GondviseloId IS NOT NULL AND Alapertelmezett = 'T' SELECT TanuloId ,Gondviselok.GondviseloId ,Gondviselok.GondviseloNev GondviseloNev ,Cim GondviseloAllandoCim ,Telefon GondviseloTelefon ,RokonsagiFok.C_NAME GondviseloRokonsagiFoka INTO #GondviseloAdatok FROM @Gondviselok Gondviselok INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.Id = Gondviselok.RokonsagiFokId AND RokonsagiFok.C_TANEVID = @pTanevId AND RokonsagiFok.TOROLT = 'F' LEFT JOIN @GondViseloCimTable GondviseloCim ON GondviseloCim.GondviseloId = Gondviselok.GondviseloId LEFT JOIN @GondviseloTelefonTable GondviseloTelefon ON GondviseloTelefon.GondviseloId = Gondviselok.GondviseloId ORDER BY TanuloId --Tanulói adatok INSERT INTO #tanuloiAdatok SELECT TanuloAdatok.ID AS TanuloId ,OsztalyTanuloi.TanuloCsoportId ,TanuloAdatok.C_NYOMTATASINEV TANULONEV ,TanuloAdatok.C_ANYJANEVE ANYJANEVE ,TanuloAdatok.C_SZULETESIHELY SZULETESIHELY ,TanuloAdatok.C_SZULETESIDATUM SZULETESIDATUM ,TanuloAdatok.C_NYILVANTARTASISZAM TorzslapSzam ,IntezmenyAdatok.C_IGAZGATONEVE INT_IGAZGATO_NEV ,IntezmenyAdatok.C_NEV INT_NEV ,IntezmenyAdatok.C_OMKOD INT_OMKOD ,IntezmenyAdatok.C_VAROS INT_VAROS ,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) INT_CIM ,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) OSZTALYCSOPORT_NEV ,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV ,ISNULL(Mulasztas.Igazolt,0) IGAZOLT ,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN ,ISNULL(Mulasztas.Igazolt,0) + ISNULL(Mulasztas.Igazolatlan,0) OsszesMulasztas ,ISNULL(Mulasztas.Igazolt,0) OsszesIgazolt ,ISNULL(Mulasztas.Igazolatlan,0) OsszesIgazolatlan ,TanuloAllandoCimTable.CIM TanuloAllandoCim ,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim ,TanuloAdatok.C_OKTATASIAZONOSITO AS TanuloOktAzon ,TanugyiAdatok.C_HOZOTTIGAZOLTHIANYZAS AS HozottIgazolt ,TanugyiAdatok.C_HOZOTTIGAZOLATLANHIANYZAS AS HozottIgazolatlan ,TanugyiAdatok.C_HOZOTTIGAZOLTKESESPERCBEN AS HozottIgazoltKeses ,TanugyiAdatok.C_HOZOTTIGAZOLATLANKESESPERCBE AS HozottIgazolatlanKeses ,OsztalyTanuloi.BelepesDatum AS BelepesDatum ,tv.C_NEV AS TanevNeve FROM #students OsztalyTanuloi INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = OsztalyTanuloi.ID AND TanuloAdatok.TOROLT = 'F' INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloAdatok.C_TANEVID AND IntezmenyAdatok.TOROLT = 'F' INNER JOIN T_TANULOTANUGYIADATOK_OSSZES AS TanugyiAdatok ON TanugyiAdatok.C_TANULOCSOPORTID = OsztalyTanuloi.TanuloCsoportId LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId AND Osztaly.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES Osztalyfonok ON Osztalyfonok.ID = Osztaly.C_OSZTALYFONOKID AND Osztalyfonok.TOROLT = 'F' LEFT JOIN @Mulasztasok Mulasztas ON Mulasztas.TanuloId = TanuloAdatok.ID AND Mulasztas.TanuloCsoportId = OsztalyTanuloi.TanuloCsoportId LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloAllandoCimTable.Cimtipusa = 907 LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloTartozkodasiCimTable.Cimtipusa = 909 INNER JOIN T_TANEV_OSSZES tv on tv.ID = TanuloAdatok.C_TANEVID AND tv.TOROLT = 'F' WHERE TanugyiAdatok.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T') ORDER BY TanuloAdatok.C_NYOMTATASINEV IF @pIsSzulonek = 1 BEGIN SELECT DISTINCT ta.* ,GondviseloAdatok.GondviseloNev ,GondviseloAdatok.GondviseloAllandoCim ,GondviseloAdatok.GondviseloTelefon ,GondviseloRokonsagiFoka FROM #tanuloiAdatok AS ta LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = ta.TanuloId WHERE ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama AND (@pGondviseloIsTorvenyes = 0 OR EXISTS(SELECT * FROM #GondviseloAdatok g WHERE g.TanuloId = ta.TanuloId)) ORDER BY TANULONEV END ELSE BEGIN SELECT DISTINCT ta.* FROM #tanuloiAdatok AS ta WHERE ta.Igazolatlan >= @pIgazolatlanOrakSzama ORDER BY TANULONEV END --Mulasztások részletezése SELECT Mulasztasok.TanuloId ,Mulasztasok.TanuloCsoportId ,Mulasztasok.OsztalyCsoportId ,Mulasztasok.OsztalyCsoportNev ,MulasztasTipus.C_NAME Tipusa ,Mulasztasok.Igazolt ,Mulasztasok.IgazolasTipusa ,Mulasztasok.KesesPercben ,Mulasztasok.Datum ,Mulasztasok.Oraszam ,Mulasztasok.TantargyId ,Mulasztasok.TantargyNev FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) Mulasztasok LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa AND MulasztasTipus.C_TANEVID = @pTanevId INNER JOIN #tanuloiAdatok AS ta ON ta.TanuloId = Mulasztasok.TanuloId AND ta.TanuloCsoportId = Mulasztasok.TanuloCsoportId AND ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama WHERE Mulasztasok.Igazolt = 'F' --Gondviselo adatok SELECT * from #GondviseloAdatok AS Gondviselok LEFT JOIN @Mulasztasok Mulasztasok ON Mulasztasok.TanuloId = Gondviselok.TanuloId INNER JOIN #tanuloiAdatok AS ta ON ta.TanuloId = Mulasztasok.TanuloId AND ta.TanuloCsoportId = Mulasztasok.TanuloCsoportId AND ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama --Iktatási adatok INSERT INTO @IktatasAdatok SELECT @pOsztalyId ,ocs.C_EVFOLYAMTIPUSA ,ocs.C_FELADATELLATASIHELYID ,ocs.C_KEPZESIFORMA ,o.C_OSZTALYFONOKID ,o.C_TANTERVID ,o.C_SZAKMACSOPORT ,o.C_AGAZAT ,o.C_SZAKKEPESITES ,o.C_RESZSZAKKEPESITES ,o.C_AGAZATUJSZKTTIPUSID ,o.C_SZAKMATIPUSID ,o.C_SZAKMAIRANYTIPUSID ,o.C_TANULMANYITERULETNKTTIPUSID ,o.C_SZAKKEPESITESNKTTIPUSID ,o.C_SZAKIRANYNKTTIPUSID ,ocs.C_KERESZTFELEVES ,ocs.C_ISTECHNIKAI as C_TECHNIKAIOSZTALY ,o.C_NEMZETISEGI ,o.C_KETTANNYELVU ,o.C_NYELVIELOKESZITO ,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI ,o.C_SPORT ,o.C_AJPROGRAM FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID WHERE ocs.ID = @pOsztalyId AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = @pTanevId; SELECT * from @IktatasAdatok; SELECT mh.C_NEV Nev ,C_IRANYITOSZAM + ' ' + C_VAROS + ISNULL( ', ' + C_KOZTERULETNEV + ' ', '') + ISNULL(C_KOZTERULETJELLEGENEV + ' ','') + ISNULL(C_HAZSZAM, '') + ISNULL(', ' + C_EMELET + '. emelet', '') + ISNULL(', ' + C_AJTO + '. ajtó', '') TeljesCim ,mh.C_VAROS Varos FROM T_MUKODESIHELY_OSSZES mh INNER JOIN T_FELADATELLATASIHELY_OSSZES fel ON fel.C_MUKODESIHELYID = mh.ID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_FELADATELLATASIHELYID = fel.ID WHERE mh.TOROLT = 'F' AND ocs.ID = @pOsztalyId DROP TABLE #GondviseloAdatok DROP TABLE #tanuloiAdatok DROP TABLE #students END GO