SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetErtesitoNyomtatvany]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany] END GO -- ===================================================================== -- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...) -- ===================================================================== CREATE PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany] @osztalyId int, @tanevId int, @ertekelesTipus int, @elmeletGyakorlat bit=0, @kesesTipus int = 1499, @elmeletiOraPercben int = 45, @gyakorlatiOraPercben int = 60, @isBizonyitvany int = 0 AS BEGIN SET NOCOUNT ON; -- Fejléc SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve, T_INTEZMENYADATOK_OSSZES.C_IRANYITOSZAM IntezmenyIranyitoszam, T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros, T_INTEZMENYADATOK_OSSZES.C_CIME IntezmenyCime, T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod, T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON, T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM, T_TANEV_OSSZES.C_NEV TANEV, (SELECT OFO.C_NYOMTATASINEV FROM T_OSZTALY_OSSZES INNER JOIN T_FELHASZNALO_OSSZES OFO ON OFO.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID WHERE T_OSZTALY_OSSZES.ID=@osztalyId AND T_OSZTALY_OSSZES.TOROLT = 'F') OSZTALYFONOK, (SELECT to2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES to2 WHERE ID = @osztalyId AND TOROLT = 'F') OSZTALYNEV, GETDATE() Datum FROM T_INTEZMENYADATOK_OSSZES INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F' WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F' AND T_TANEV_OSSZES.ID = @TanevId -- TANULÓK DECLARE @Tanulok TABLE (TANULOID INT, TANULONEV NVARCHAR(MAX), OKTATASIAZONOSITO NVARCHAR(MAX), TORZSLAPSZAM NVARCHAR(MAX)) INSERT INTO @Tanulok SELECT T_FELHASZNALO_OSSZES.ID TANULOID, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV, T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO, T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM TorzslapSzam FROM T_FELHASZNALO_OSSZES INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE() AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID WHERE T_FELHASZNALO_OSSZES.TOROLT='F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @TanevId ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV SELECT * FROM @Tanulok ORDER BY TANULONEV -- ÉRTÉKELÉSEK DECLARE @Ertekelesek TABLE ( TanuloId INT ,Targy NVARCHAR(MAX) ,Ertekeles NVARCHAR(MAX) ,Jegyzet NVARCHAR(MAX) ,ErtekelesJegyzettel NVARCHAR(MAX) ,SzovegesErtekeles NVARCHAR(MAX) ,Oraszam INT ,RENDEZ INT ) INSERT INTO @Ertekelesek EXEC sp_GetDokumentumErtekelesek @osztalyId = @osztalyId, @tanevId = @tanevId, @ertekelesTipus = @ertekelesTipus SELECT TanuloId , Targy , Ertekeles , Jegyzet , ErtekelesJegyzettel , SzovegesErtekeles , Oraszam , RENDEZ FROM @Ertekelesek -- MULASZTÁSOK 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 = @osztalyId, @tanevId = @tanevId, @elmeletGyakorlat = @elmeletGyakorlat, @kesesTipus = @kesesTipus, @elmeletiOraPercben = @elmeletiOraPercben, @gyakorlatiOraPercben = @gyakorlatiOraPercben, @ertekelesTipus = @ertekelesTipus SELECT TanuloId ,Igazolt ,Igazolatlan ,ElmeletIgazolt ,ElmeletIgazolatlan ,GyakorlatIgazolt ,GyakorlatIgazolatlan ,Osszes FROM @Mulasztasok -- TANTÁRGYI MENTESSÉGEK SELECT DISTINCT MENTESSEG.C_TANULOID TANULOID, TARGY.TARGYNEV, MENTESSEG.C_MENTESSEGOKA MENTESSEGOKA FROM T_TANULOMENTESSEG_OSSZES MENTESSEG INNER JOIN (SELECT ID, C_NEV TARGYNEV FROM T_TANTARGY_OSSZES WHERE TOROLT='F') TARGY ON TARGY.ID = MENTESSEG.C_TANTARGYID INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE() AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT ON TANCSOPORT.C_TANULOID = MENTESSEG.C_TANULOID WHERE MENTESSEG.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId ORDER BY MENTESSEG.C_TANULOID, TARGY.TARGYNEV -- BEJEGYZÉSEK DECLARE @EsemenyTipus INT SET @EsemenyTipus = (SELECT CASE WHEN @ertekelesTipus = 1519 THEN 1547 --félévi WHEN @ertekelesTipus = 1520 THEN 1548 --év végi WHEN @ertekelesTipus = 1522 THEN 1549 --I. negyedévi WHEN @ertekelesTipus = 1523 then 1551 --III. negyedévi END ) SELECT T_TANULOESEMENY_OSSZES.C_TANULOID TANULOID, C_TARTALOM BEJEGYZES, C_TIPUS TIPUS FROM T_TANULOESEMENY_OSSZES INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE() AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT ON TANCSOPORT.C_TANULOID = T_TANULOESEMENY_OSSZES.C_TANULOID WHERE T_TANULOESEMENY_OSSZES.TOROLT='F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND T_TANULOESEMENY_OSSZES.C_TIPUS = @EsemenyTipus ORDER BY T_TANULOESEMENY_OSSZES.C_TANULOID END GO