322 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
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 |