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 [dbo].[sp_GetErtesitesAltEsMulAdatok] @pOsztalyId INT, @pTanevId INT, @pTankoteles BIT, @pIskolaErdekuSzamit BIT AS BEGIN SET NOCOUNT ON; --Mulasztasok DECLARE @Mulasztasok TABLE ( TanuloId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,Osszes INT ) INSERT INTO @Mulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyID = @pOsztalyId, @tanevId = @pTanevId, @elmeletGyakorlat = 0, @kesesTipus = 1499, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 60, @ertekelesTipus = 1520, --évvégi @iskolaErdekuSzamit = @pIskolaErdekuSzamit CREATE TABLE #students (ID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE) INSERT INTO #students SELECT t.TanuloId ,BelepesDatum ,ISNULL(KilepesDatum, GETDATE()) FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') t DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT) INSERT INTO @Gondviselok SELECT TanuloId ,gondviselo.Id FROM T_GONDVISELO_OSSZES gondviselo INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo ON tanulo.TanuloId = gondviselo.C_TANULOID AND gondviselo.TOROLT = 'F' DECLARE @CimTableTemp TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), CimTipus INT, GondviseloId INT) INSERT INTO @CimTableTemp SELECT TanuloId ,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM ,C_CIMTIPUSA ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo 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 UNION SELECT TanuloId ,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM ,C_CIMTIPUSA ,GondviseloId FROM @Gondviselok gonviselo INNER JOIN T_CIM_OSSZES cim ON cim.C_GONDVISELOID = GondviseloId 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 DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT) INSERT INTO @TanuloCimTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @CimTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND temp.CimTipus = btemp.CimTipus AND GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,CimTipus FROM @CimTableTemp temp WHERE GondviseloId IS NULL DECLARE @GondViseloCimTable TABLE (FelhasznaloId INT, GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT) INSERT INTO @GondViseloCimTable SELECT DISTINCT FelhasznaloId ,GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @CimTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND temp.CimTipus = btemp.CimTipus AND GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,CimTipus FROM @CimTableTemp temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus WHERE GondviseloId IS NOT NULL AND CimTipus = 907 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 ,GondviseloAdatok.C_NEV GondviseloNev ,Cim GondviseloAllandoCim ,Telefon GondviseloTelefon INTO #GondviseloAdatok FROM @Gondviselok Gondviselok INNER JOIN T_GONDVISELO_OSSZES GondviseloAdatok ON GondviseloAdatok.Id = Gondviselok.GondviseloId 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 ,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 ,OsztalyCsoport.C_NEV OSZTALYCSOPORT_NEV ,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV ,ISNULL(Mulasztas.Igazolt,0) IGAZOLT ,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN ,GondviseloAdatok.GondviseloNev ,GondviseloAdatok.GondviseloAllandoCim ,GondviseloAdatok.GondviseloTelefon ,TanuloAllandoCimTable.CIM TanuloAllandoCim ,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim FROM T_TANULOCSOPORT_OSSZES TanuloCsoport INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = TanuloCsoport.C_TANULOID AND TanuloAdatok.TOROLT = 'F' INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND OsztalyCsoport.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloCsoport.C_TANEVID AND IntezmenyAdatok.TOROLT = 'F' LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID 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 LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = TanuloCsoport.C_TANULOID LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = TanuloCsoport.C_TANULOID AND TanuloAllandoCimTable.Cimtipusa = 907 LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = TanuloCsoport.C_TANULOID AND TanuloTartozkodasiCimTable.Cimtipusa = 908 WHERE TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyId AND TanuloCsoport.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F')) AND TanuloCsoport.TOROLT = 'F' AND Tanulo.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T') AND TanuloCsoport.C_TANEVID = @pTanevId ORDER BY TanuloAdatok.C_NYOMTATASINEV --Mulasztások részletezése SELECT Mulasztasok.TanuloId ,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) Mulasztasok LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa AND MulasztasTipus.C_TANEVID = @pTanevId WHERE Igazolt = 'F' END DROP TABLE #GondviseloAdatok GO