199 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
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,
 | 
						|
	@iskolaErdekuSzamit		BIT
 | 
						|
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
	
 | 
						|
    -- Fejléc
 | 
						|
 	SELECT T_INTEZMENYADATOK_OSSZES.C_NEV			IntezmenyNeve,
 | 
						|
		   T_INTEZMENYADATOK_OSSZES.C_VAROS			IntezmenyVaros,
 | 
						|
		   dbo.fnGetDokumentumIntezmenyCime(@tanevId) 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 
 | 
						|
		tanulok.TanuloId 
 | 
						|
		,felhasznalo.C_NYOMTATASINEV
 | 
						|
		,felhasznalo.C_OKTATASIAZONOSITO
 | 
						|
		,felhasznalo.C_NYILVANTARTASISZAM
 | 
						|
	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulok
 | 
						|
		INNER JOIN T_FELHASZNALO_OSSZES	felhasznalo on felhasznalo.Id=tanulok.TanuloId
 | 
						|
 | 
						|
	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,
 | 
						|
		@iskolaErdekuSzamit = @iskolaErdekuSzamit
 | 
						|
	
 | 
						|
	SELECT 
 | 
						|
		TanuloId 
 | 
						|
		,Igazolt 
 | 
						|
		,Igazolatlan 
 | 
						|
		,ElmeletIgazolt 
 | 
						|
		,ElmeletIgazolatlan 
 | 
						|
		,GyakorlatIgazolt 
 | 
						|
		,GyakorlatIgazolatlan 
 | 
						|
		,Osszes	
 | 
						|
	FROM @Mulasztasok
 | 
						|
	
 | 
						|
	-- TANTÁRGYI MENTESSÉGEK
 | 
						|
	SELECT Tanulok.TanuloId				TANULOID
 | 
						|
			, mentesseg.tantargyNev		TARGYNEV
 | 
						|
			, '(' + ISNULL(IIF(mentesseg = '', '', LEFT(mentesseg, LEN(mentesseg)- 1)),' ') + ') ' + mentesseg.mentessegOka	MENTESSEGOKA
 | 
						|
	FROM @Tanulok Tanulok
 | 
						|
	INNER 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('(' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ', '') + ISNULL(FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')', 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 @Tanulok Tanulok ON Tanulok.TanuloId = mentesseg.C_TANULOID 
 | 
						|
				WHERE 
 | 
						|
					mentesseg.TOROLT='F' 
 | 
						|
					AND mentesseg.C_TANEVID=@tanevId
 | 
						|
				) mentesseg ON Tanulok.TanuloId	= mentesseg.TANULOID
 | 
						|
 | 
						|
	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
 | 
						|
						) 
 | 
						|
 | 
						|
	--Bejegyzések
 | 
						|
	SELECT 
 | 
						|
		bejegyzes.TanuloId		TanuloId
 | 
						|
		,Tartalom				Bejegyzes 
 | 
						|
	FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bejegyzes
 | 
						|
	WHERE
 | 
						|
		Tipusa IN (1546, @EsemenyTipus)
 | 
						|
 | 
						|
	UNION
 | 
						|
 | 
						|
	-- Határozatok
 | 
						|
	SELECT DISTINCT
 | 
						|
		C_TANULOID			TanuloId
 | 
						|
		,tcs.C_ZARADEK		Bejegyzes
 | 
						|
	FROM T_TANULOCSOPORT_OSSZES tcs
 | 
						|
	WHERE 
 | 
						|
		tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok)
 | 
						|
		AND TOROLT = 'F'
 | 
						|
		AND C_ZARADEK IS NOT NULL 
 | 
						|
		AND LEN(C_ZARADEK) > 0
 | 
						|
		AND C_TANEVID = @tanevId
 | 
						|
		AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F')
 | 
						|
		AND @ertekelesTipus = 1520
 | 
						|
 | 
						|
	UNION
 | 
						|
 | 
						|
	SELECT DISTINCT
 | 
						|
		C_TANULOID				TanuloId
 | 
						|
		,tcs.C_VEGZARADEK		Bejegyzes
 | 
						|
	FROM T_TANULOCSOPORT_OSSZES tcs
 | 
						|
	WHERE 
 | 
						|
		tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok)
 | 
						|
		AND TOROLT = 'F'
 | 
						|
		AND C_VEGZARADEK IS NOT NULL 
 | 
						|
		AND LEN(C_VEGZARADEK) > 0
 | 
						|
		AND C_TANEVID = @tanevId
 | 
						|
		AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F')
 | 
						|
		AND @ertekelesTipus = 1520
 | 
						|
 | 
						|
 | 
						|
END
 | 
						|
 | 
						|
GO |