325 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			9.3 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]
 | 
						|
	@pOsztalyId				INT,
 | 
						|
	@pTanevId				INT,
 | 
						|
	@pErtekelesTipus		INT,
 | 
						|
	@pElmeletGyakorlat		BIT = 0,
 | 
						|
	@pKesesTipus			INT = 1499,
 | 
						|
	@pElmeletiOraPercben	INT = 45,
 | 
						|
	@pGyakorlatiOraPercben	INT = 45,
 | 
						|
	@pIskolaErdekuSzamit	BIT,
 | 
						|
	@pIsKozossegiSzolgalat	BIT, 
 | 
						|
	@pTanuloId				INT	= NULL,
 | 
						|
	@pIsMuveszetOktatasi	BIT = 0,
 | 
						|
	@pIsShowTanuloiAtlag	BIT = 0
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
	
 | 
						|
	DECLARE @EsemenyTipus INT
 | 
						|
	SET @EsemenyTipus = (SELECT 
 | 
						|
						CASE 
 | 
						|
							WHEN @pErtekelesTipus = 1519 THEN 1547 --félévi
 | 
						|
							WHEN @pErtekelesTipus = 1520 THEN 1548 --év végi
 | 
						|
							WHEN @pErtekelesTipus = 1522 THEN 1549 --I. negyedévi
 | 
						|
							WHEN @pErtekelesTipus = 1524 THEN 1550 --II. negyedévi
 | 
						|
							WHEN @pErtekelesTipus = 1523 THEN 1551 --III. negyedévi
 | 
						|
						END
 | 
						|
						) 
 | 
						|
	 
 | 
						|
	DECLARE @IdoszakVegeTanevRendje INT
 | 
						|
	SET @IdoszakVegeTanevRendje = 
 | 
						|
    CASE @pErtekelesTipus
 | 
						|
      WHEN 1519 THEN 1400 --félévi
 | 
						|
      WHEN 1520 THEN 1395 --év végi
 | 
						|
      WHEN 1522 THEN 1403 --I. negyedévi
 | 
						|
	  WHEN 1524	THEN 1400 --II. negyedévi
 | 
						|
      WHEN 1523 THEN 1404 --III. negyedévi
 | 
						|
    END
 | 
						|
 | 
						|
	DECLARE @IdoszakVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = @IdoszakVegeTanevRendje AND C_TANEVID = @pTanevId AND TOROLT = 'F')
 | 
						|
	
 | 
						|
     -- Fejléc
 | 
						|
 	SELECT T_INTEZMENYADATOK_OSSZES.C_NEV					IntezmenyNeve,
 | 
						|
		   T_INTEZMENYADATOK_OSSZES.C_VAROS					IntezmenyVaros,
 | 
						|
		   dbo.fnGetDokumentumIntezmenyCime(@pTanevId)		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,
 | 
						|
		   T_INTEZMENYADATOK_OSSZES.C_VAROS					VAROS,
 | 
						|
		   (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=@pOsztalyId 
 | 
						|
				  AND T_OSZTALY_OSSZES.TOROLT = 'F')													OSZTALYFONOK,
 | 
						|
		   (SELECT to2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES to2 WHERE ID = @pOsztalyId 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 = @pTanevId
 | 
						|
	
 | 
						|
	-- TANULÓK
 | 
						|
  DECLARE @Tanulok TABLE 
 | 
						|
  (
 | 
						|
	  TANULOID INT
 | 
						|
	  ,TanuloCsoportId INT
 | 
						|
	  ,BelepesDatum DATE
 | 
						|
	  ,KilepesDatum DATE
 | 
						|
	  ,TANULONEV NVARCHAR(MAX)
 | 
						|
	  ,OKTATASIAZONOSITO NVARCHAR(MAX)
 | 
						|
	  ,TORZSLAPSZAM NVARCHAR(MAX)
 | 
						|
	  ,SZULHELY NVARCHAR(MAX), SZULIDO NVARCHAR(MAX)
 | 
						|
	  ,ANYJANEVE NVARCHAR(MAX)
 | 
						|
  )
 | 
						|
 | 
						|
	IF @pTanuloId IS NOT NULL BEGIN 
 | 
						|
    INSERT INTO @Tanulok
 | 
						|
  	SELECT 
 | 
						|
  		 tanulok.TanuloId 
 | 
						|
		,TanuloCsoportId
 | 
						|
		,BelepesDatum
 | 
						|
		,KilepesDatum
 | 
						|
  		,felhasznalo.C_NYOMTATASINEV
 | 
						|
  		,felhasznalo.C_OKTATASIAZONOSITO
 | 
						|
  		,felhasznalo.C_NYILVANTARTASISZAM
 | 
						|
		,felhasznalo.C_SZULETESIHELY          
 | 
						|
		,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)         
 | 
						|
		,felhasznalo.C_ANYJANEVE             
 | 
						|
  	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
 | 
						|
  		INNER JOIN T_FELHASZNALO_OSSZES	felhasznalo on felhasznalo.Id=tanulok.TanuloId
 | 
						|
	WHERE 
 | 
						|
		tanulok.TanuloId = @pTanuloId
 | 
						|
 | 
						|
  	SELECT
 | 
						|
		TANULOID
 | 
						|
		,TanuloCsoportId
 | 
						|
		,BelepesDatum
 | 
						|
		,KilepesDatum
 | 
						|
		,TANULONEV
 | 
						|
		,OKTATASIAZONOSITO
 | 
						|
		,TORZSLAPSZAM
 | 
						|
		,SZULHELY
 | 
						|
		,SZULIDO
 | 
						|
		,ANYJANEVE 
 | 
						|
	FROM @Tanulok 
 | 
						|
	ORDER BY TANULONEV
 | 
						|
  
 | 
						|
  END
 | 
						|
  ELSE BEGIN 
 | 
						|
  
 | 
						|
    INSERT INTO @Tanulok
 | 
						|
  	SELECT 
 | 
						|
  		tanulok.TanuloId 
 | 
						|
		,TanuloCsoportId
 | 
						|
		,BelepesDatum
 | 
						|
		,KilepesDatum
 | 
						|
  		,felhasznalo.C_NYOMTATASINEV
 | 
						|
  		,felhasznalo.C_OKTATASIAZONOSITO
 | 
						|
  		,felhasznalo.C_NYILVANTARTASISZAM
 | 
						|
		,felhasznalo.C_SZULETESIHELY          
 | 
						|
		,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)         
 | 
						|
		,felhasznalo.C_ANYJANEVE             
 | 
						|
  	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
 | 
						|
  		INNER JOIN T_FELHASZNALO_OSSZES	felhasznalo on felhasznalo.Id=tanulok.TanuloId
 | 
						|
 | 
						|
  	  SELECT
 | 
						|
		 TANULOID
 | 
						|
		,TanuloCsoportId
 | 
						|
		,BelepesDatum
 | 
						|
		,KilepesDatum
 | 
						|
		,TANULONEV
 | 
						|
		,OKTATASIAZONOSITO
 | 
						|
		,TORZSLAPSZAM
 | 
						|
		,SZULHELY
 | 
						|
		,SZULIDO
 | 
						|
		,ANYJANEVE 
 | 
						|
	FROM @Tanulok 
 | 
						|
	ORDER BY TANULONEV
 | 
						|
  
 | 
						|
  END
 | 
						|
	
 | 
						|
	-- ÉRTÉKELÉSEK
 | 
						|
	DECLARE @Ertekelesek TABLE (
 | 
						|
		TanuloId				INT
 | 
						|
		,TanuloCsoportId		INT
 | 
						|
		,Targy					NVARCHAR(MAX)
 | 
						|
		,Jegyzet				NVARCHAR(MAX)
 | 
						|
		,Ertekeles				NVARCHAR(MAX)
 | 
						|
		,ErtekelesValue			FLOAT	
 | 
						|
		,ErtekelesJegyzettel	NVARCHAR(MAX)	
 | 
						|
		,Oraszam				INT
 | 
						|
		,RENDEZ1				INT
 | 
						|
		,RENDEZ2				NVARCHAR(MAX)
 | 
						|
		,RENDEZ3				INT
 | 
						|
		,RENDEZ4				INT
 | 
						|
		,RENDEZ5				NVARCHAR(MAX)
 | 
						|
	)
 | 
						|
	
 | 
						|
	INSERT INTO @Ertekelesek
 | 
						|
	EXEC sp_GetDokumentumErtekelesek
 | 
						|
		@osztalyId = @pOsztalyId,
 | 
						|
		@tanevId = @pTanevId,
 | 
						|
		@ertekelesTipus = @pErtekelesTipus,
 | 
						|
		@isMuveszetOktatasi = @pIsMuveszetOktatasi
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		 ertekeles.TanuloId		
 | 
						|
		,ertekeles.TanuloCsoportId	
 | 
						|
		,Targy			
 | 
						|
		,Jegyzet
 | 
						|
		,Ertekeles
 | 
						|
		,ErtekelesValue
 | 
						|
		,ErtekelesJegyzettel				
 | 
						|
		,Oraszam		
 | 
						|
		,RENDEZ1
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
		,'' TanarNev
 | 
						|
	FROM @Ertekelesek ertekeles
 | 
						|
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = ertekeles.TanuloId AND Tanulok.TanuloCsoportId = ertekeles.TanuloCsoportId
 | 
						|
	ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
 | 
						|
	
 | 
						|
	IF(@pIsShowTanuloiAtlag = 1) BEGIN
 | 
						|
		--Tanuló Átlaga
 | 
						|
		SELECT
 | 
						|
			TanuloId					TanuloId
 | 
						|
			,TanuloCsoportId
 | 
						|
			,AVG(ErtekelesValue)		ErtekelesAtlag
 | 
						|
		FROM @Ertekelesek 
 | 
						|
		GROUP BY TanuloId, TanuloCsoportId
 | 
						|
	END
 | 
						|
 
 | 
						|
  
 | 
						|
	-- MULASZTÁSOK
 | 
						|
	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 = @pElmeletGyakorlat,
 | 
						|
		@kesesTipus = @pKesesTipus,
 | 
						|
		@elmeletiOraPercben = @pElmeletiOraPercben,
 | 
						|
		@gyakorlatiOraPercben = @pGyakorlatiOraPercben,
 | 
						|
		@ertekelesTipus = @pErtekelesTipus,
 | 
						|
		@iskolaErdekuSzamit = @pIskolaErdekuSzamit,
 | 
						|
		@isMuveszetOktatasi = @pIsMuveszetOktatasi
 | 
						|
	
 | 
						|
	SELECT 
 | 
						|
		 mulasztasok.TanuloId 
 | 
						|
		,mulasztasok.TanuloCsoportId
 | 
						|
		,Igazolt 
 | 
						|
		,Igazolatlan 
 | 
						|
		,ElmeletIgazolt 
 | 
						|
		,ElmeletIgazolatlan 
 | 
						|
		,GyakorlatIgazolt 
 | 
						|
		,GyakorlatIgazolatlan 
 | 
						|
		,ElmeletOsszes
 | 
						|
		,GyakorlatOsszes
 | 
						|
		,Osszes	
 | 
						|
	FROM @Mulasztasok mulasztasok
 | 
						|
		INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = mulasztasok.TanuloId AND Tanulok.TanuloCsoportId = mulasztasok.TanuloCsoportId
 | 
						|
	
 | 
						|
	-- TANTÁRGYI MENTESSÉGEK
 | 
						|
	SELECT 
 | 
						|
		TanuloId	
 | 
						|
		,TanuloCsoportId
 | 
						|
		,TantargyNev
 | 
						|
		,MentessegOka
 | 
						|
	FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId)
 | 
						|
 | 
						|
	--Bejegyzések
 | 
						|
	SELECT 
 | 
						|
		 TanuloTable.TanuloId
 | 
						|
		,TanuloTable.TanuloCsoportId
 | 
						|
		,'A félév során ' + CAST(SUM(Oraszam) AS NVARCHAR(MAX)) + ' óra közösségi szolgálatot teljesített.'	Bejegyzes
 | 
						|
	FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@pTanevId, @pOsztalyId) bejegyzes
 | 
						|
		INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId AND bejegyzes.TanuloCsoportId = TanuloTable.TanuloCsoportId
 | 
						|
	WHERE
 | 
						|
		@pIsKozossegiSzolgalat = 1
 | 
						|
		AND Datum <= @IdoszakVege
 | 
						|
	GROUP BY TanuloTable.TanuloId, TanuloTable.TanuloCsoportId
 | 
						|
 | 
						|
	UNION
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		 bejegyzes.TanuloId		TanuloId
 | 
						|
		 ,TanuloCsoportId
 | 
						|
		,Tartalom				Bejegyzes 
 | 
						|
	FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId) bejegyzes
 | 
						|
		INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
 | 
						|
	WHERE
 | 
						|
		Tipusa IN (1546, @EsemenyTipus)
 | 
						|
		AND BelepesDatum <= Datum
 | 
						|
		AND (KilepesDatum IS NULL OR KilepesDatum >= Datum) 
 | 
						|
 | 
						|
	UNION
 | 
						|
 | 
						|
	-- Határozatok
 | 
						|
	SELECT 
 | 
						|
		 TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,Bejegyzes			Zaradek
 | 
						|
	FROM fnGetDokumentumTanuloZaradekai(@pOsztalyId, @pTanevId)
 | 
						|
	WHERE
 | 
						|
		@pErtekelesTipus = 1520
 | 
						|
 | 
						|
  --TANULÓ elérhetőségei 
 | 
						|
	SELECT DISTINCT
 | 
						|
		tanulo.TanuloId					tanuloID
 | 
						|
		,Gondviselo.C_NEV				GondviseloNeve
 | 
						|
	FROM T_GONDVISELO_OSSZES Gondviselo
 | 
						|
		INNER JOIN @Tanulok TanuloTable ON Gondviselo.C_TANULOID = TanuloTable.TanuloId
 | 
						|
		INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F') tanulo ON tanulo.TanuloId = Gondviselo.C_TANULOID
 | 
						|
	WHERE
 | 
						|
		Gondviselo.TOROLT = 'F'
 | 
						|
		AND Gondviselo.C_ISTORVENYESKEPVISELO = 'T'
 | 
						|
 | 
						|
 | 
						|
	SELECT DISTINCT
 | 
						|
		 TanuloTable.TanuloId																				tanuloID 
 | 
						|
		,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM	CimText
 | 
						|
		,cimTipus.C_NAME																					CimTipusa
 | 
						|
	FROM @Tanulok TanuloTable 
 | 
						|
		INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloTable.TanuloId
 | 
						|
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
 | 
						|
		INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID AND cimTipus.C_TANEVID = @pTanevId
 | 
						|
	WHERE
 | 
						|
		cim.TOROLT = 'F'
 | 
						|
		AND	cim.C_ALAPERTELMEZETT = 'T'
 | 
						|
		AND cim.C_GONDVISELOID IS NULL
 | 
						|
		AND cim.C_TANEVID = @pTanevId
 | 
						|
 | 
						|
END
 | 
						|
 | 
						|
GO |