SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('sp_GetErtesitesAltEsMulAdatok') IS NOT NULL BEGIN DROP PROCEDURE sp_GetErtesitesAltEsMulAdatok END GO CREATE PROCEDURE sp_GetErtesitesAltEsMulAdatok @pOsztalyId INT, @pTanevId INT, @pTankoteles BIT, @pIskolaErdekuSzamit BIT 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 ) INSERT INTO @Mulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyID = @pOsztalyId, @tanevId = @pTanevId, @elmeletGyakorlat = 0, @kesesTipus = 1499, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 45, @ertekelesTipus = 1520, --évvégi @iskolaErdekuSzamit = @pIskolaErdekuSzamit SELECT TanuloId Id ,TanuloCsoportId ,BelepesDatum ,ISNULL(KilepesDatum, GETDATE()) KilepesDatum INTO #students FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT, RokonsagiFokId INT, GondviseloNev NVARCHAR(MAX)) INSERT INTO @Gondviselok SELECT TanuloId ,GondviseloId ,RokonsagifokId ,GondviseloNev FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT) INSERT INTO @TanuloCimTable SELECT DISTINCT TanuloId ,STUFF(( SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) btemp WHERE temp.TanuloId = btemp.TanuloId AND temp.CimTipusa = btemp.CimTipusa FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,temp.CimTipusa FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) temp DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT) INSERT INTO @GondViseloCimTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) btemp WHERE temp.GondviseloId = btemp.GondviseloId AND temp.CimTipusa = btemp.CimTipusa FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,temp.CimTipusa FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) temp DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT) INSERT INTO @EmailCimTableTemp SELECT TanuloId ,C_EMAILCIM ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId WHERE email.TOROLT = 'F' AND email.C_TANEVID = @pTanevId AND LEN(C_EMAILCIM) > 0 UNION SELECT TanuloId ,C_EMAILCIM ,GondviseloId FROM @Gondviselok INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId WHERE email.TOROLT = 'F' AND email.C_TANEVID = @pTanevId AND LEN(C_EMAILCIM) > 0 DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX)) INSERT INTO @EmailCimTanuloTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @EmailCimTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND btemp.GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM @EmailCimTableTemp temp WHERE GondviseloId IS NULL DECLARE @EmailCimGondviseloTable TABLE (FelhasznaloId INT, GondviseloId INT, EmailCim NVARCHAR(MAX)) INSERT INTO @EmailCimGondviseloTable SELECT DISTINCT FelhasznaloId ,GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @EmailCimTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND btemp.GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM @EmailCimTableTemp temp WHERE GondviseloId IS NOT NULL DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT) INSERT INTO @TelefonTableTemp SELECT TanuloId ,C_TELEFONSZAM ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @pTanevId AND LEN(telefon.C_TELEFONSZAM) > 0 UNION SELECT TanuloId ,C_TELEFONSZAM ,GondviseloId FROM @Gondviselok gondviselo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @pTanevId AND LEN(telefon.C_TELEFONSZAM) > 0 DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX)) INSERT INTO @TanuloTelefonTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM @TelefonTableTemp temp WHERE GondviseloId IS NULL DECLARE @GondviseloTelefonTable TABLE (FelhasznaloID INT, GondviseloId INT, Telefon NVARCHAR(MAX)) INSERT INTO @GondviseloTelefonTable SELECT DISTINCT FelhasznaloId ,GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId and temp.GondviseloId = btemp.GondviseloId AND GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM @TelefonTableTemp temp WHERE GondviseloId IS NOT NULL 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 LEFT JOIN @GondViseloCimTable GondviseloCim ON GondviseloCim.GondviseloId = Gondviselok.GondviseloId LEFT JOIN @GondviseloTelefonTable GondviseloTelefon ON GondviseloTelefon.GondviseloId = Gondviselok.GondviseloId ORDER BY TanuloId --Tanulói adatok SELECT DISTINCT TanuloAdatok.ID ,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 ,GondviseloAdatok.GondviseloNev ,GondviseloAdatok.GondviseloAllandoCim ,GondviseloAdatok.GondviseloTelefon ,GondviseloRokonsagiFoka ,TanuloAllandoCimTable.CIM TanuloAllandoCim ,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim 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' 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 #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = OsztalyTanuloi.ID 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 WHERE Tanulo.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T') ORDER BY TanuloAdatok.C_NYOMTATASINEV --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 WHERE Igazolt = 'F' --Iktatási adatok DECLARE @IktatasAdatok TABLE (OsztalyId INT, Evfolyam INT, FeladatEllatasiHelyId INT, KepzesiForma INT, OsztalyFonokId INT, TantervId INT, SzakmaCsoport INT, Agazat INT, Szakkepesites INT, Reszszakkepesites INT, OJCSJKeresztfeleves CHAR, OJTechnikaiOsztaly CHAR, OJNemzetisegi CHAR, OJKettannyelvu CHAR, OJNyelviElokeszito CHAR, OJLogopediai CHAR, OJSportOsztaly CHAR, OJAranyJanosProgram CHAR, OJGyogypedagogiai CHAR) INSERT INTO @IktatasAdatok SELECT @pOsztalyId, ocs.C_EVFOLYAMTIPUSA, ocs.C_FELADATELLATASIHELYID, o.C_KEPZESIFORMA, o.C_OSZTALYFONOKID, o.C_TANTERVID, o.C_SZAKMACSOPORT, o.C_AGAZAT, o.C_SZAKKEPESITES, o.C_RESZSZAKKEPESITES, ocs.C_KERESZTFELEVES, o.C_TECHNIKAIOSZTALY, o.C_NEMZETISEGI, o.C_KETTANNYELVU, o.C_NYELVIELOKESZITO, o.C_LOGOPEDIAI, o.C_SPORT, o.C_AJPROGRAM, o.C_GYOGYPEDAGOGIAI FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY o ON o.ID = ocs.ID WHERE ocs.ID = @pOsztalyId AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = @pTanevId; SELECT * from @IktatasAdatok; DROP TABLE #GondviseloAdatok END GO