﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetTanuloJegyeiHaviBontasban]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [dbo].[sp_GetTanuloJegyeiHaviBontasban]
END  
GO

-- =============================================
-- Description:	<Tanuló jegyei tantárgyanként, adott hónapban>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloJegyeiHaviBontasban]
	@pTanuloId INT,
	@pTantargyId INT,
	@pHonap INT,
	@pNaptipus INT,
	@pFelevi INT,
	@pEvvegi INT,
	@pTanarId INT
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @felevVege DATETIME

	SELECT 
		@felevVege = tanevRendje.C_DATUM 
	FROM 
		T_TANEVRENDJE_OSSZES tanevRendje
			INNER JOIN T_TANEV_OSSZES tanev
				ON tanev.ID = tanevRendje.C_TANEVID
	WHERE 
		tanevRendje.TOROLT = 'F' AND
		tanevRendje.C_NAPTIPUSA = @pNaptipus AND
		tanev.TOROLT = 'F' AND
		tanev.C_AKTIV = 'T'

	IF @felevVege IS NULL
		BEGIN
			SELECT @felevVege = CAST(CAST(YEAR(GETDATE()) AS NVARCHAR) + '0115' AS DATETIME) 
		END

	IF @pHonap = 1
		BEGIN
			SELECT  
				tanuloErtekeles.ID						ErtekelesId,
				tanuloErtekeles.C_TANULOID				TanuloId,
				tanuloErtekeles.C_TANTARGYID			TantargyId,
				tanuloErtekeles.C_ERTEKELESSZOVEG		ErtekelesSzoveg,
				tanuloErtekeles.C_ERTEKELESDATUM		Datum,
				tanuloErtekeles.C_OSZTALYZAT			Osztalyzat,
				tanuloErtekeles.C_ERTEKELESTIPUSA		ErtekelesTipusa,
				osztalyzatErtekeles.C_ERTEKELESMODJA	ErtekelesModja,
				osztalyzatErtekeles.C_SZAZALEK			Szazalek,
				osztalyzatErtekeles.C_TEMA				Tema,
				tanariAtlagSuly.C_SULY					Suly,
				felhasznalo.C_NYOMTATASINEV				ErtekeloNyomtatasiNev,
				CASE
					WHEN tanuloErtekeles.CREATOR = @pTanarId
						THEN 'T' 
						ELSE 'F' 
				END										Modosithato		
			FROM 
				T_TANULOERTEKELES_OSSZES tanuloErtekeles
					LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES osztalyzatErtekeles
						ON osztalyzatErtekeles.ID = tanuloErtekeles.ID
					LEFT JOIN T_TANARIATLAGSULY_OSSZES tanariAtlagSuly
						ON tanariAtlagSuly.C_ERTEKELESMODJA = osztalyzatErtekeles.C_ERTEKELESMODJA
					LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo
						ON felhasznalo.ID = tanuloErtekeles.C_ERTEKELOID
			WHERE 
				tanuloErtekeles.TOROLT = 'F' AND
				tanuloErtekeles.C_ERTEKELESTIPUSA <> @pFelevi AND tanuloErtekeles.C_ERTEKELESTIPUSA <> @pEvvegi AND
				tanuloErtekeles.C_TANULOID = @pTanuloId AND
				tanuloErtekeles.C_TANTARGYID = @pTantargyId AND
				MONTH(tanuloErtekeles.C_ERTEKELESDATUM) = MONTH(@felevVege) AND
				DAY(tanuloErtekeles.C_ERTEKELESDATUM) <= DAY(@felevVege) AND
				osztalyzatErtekeles.TOROLT = 'F'
			ORDER BY 
				tanuloErtekeles.C_TANULOID,
				tanuloErtekeles.C_ERTEKELESDATUM
		END
	ELSE IF @pHonap = 13
		BEGIN
			SELECT  
				tanuloErtekeles.ID						ErtekelesId,
				tanuloErtekeles.C_TANULOID				TanuloId,
				tanuloErtekeles.C_TANTARGYID			TantargyId,
				tanuloErtekeles.C_ERTEKELESSZOVEG		ErtekelesSzoveg,
				tanuloErtekeles.C_ERTEKELESDATUM		Datum,
				tanuloErtekeles.C_OSZTALYZAT			Osztalyzat,
				tanuloErtekeles.C_ERTEKELESTIPUSA		ErtekelesTipusa,
				osztalyzatErtekeles.C_ERTEKELESMODJA	ErtekelesModja,
				osztalyzatErtekeles.C_SZAZALEK			Szazalek,
				osztalyzatErtekeles.C_TEMA				Tema,
				tanariAtlagSuly.C_SULY					Suly,
				felhasznalo.C_NYOMTATASINEV				ErtekeloNyomtatasiNev,
				CASE
					WHEN tanuloErtekeles.CREATOR = @pTanarId
						THEN 'T' 
						ELSE 'F' 
				END										Modosithato		
			FROM 
				T_TANULOERTEKELES_OSSZES tanuloErtekeles
					LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES osztalyzatErtekeles
						ON osztalyzatErtekeles.ID = tanuloErtekeles.ID
					LEFT JOIN T_TANARIATLAGSULY_OSSZES tanariAtlagSuly
						ON tanariAtlagSuly.C_ERTEKELESMODJA = osztalyzatErtekeles.C_ERTEKELESMODJA
					LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo
						ON felhasznalo.ID = tanuloErtekeles.C_ERTEKELOID
			WHERE 
				tanuloErtekeles.TOROLT = 'F' AND
				tanuloErtekeles.C_ERTEKELESTIPUSA <> @pFelevi AND tanuloErtekeles.C_ERTEKELESTIPUSA <> @pEvvegi AND
				tanuloErtekeles.C_TANULOID = @pTanuloId AND
				tanuloErtekeles.C_TANTARGYID = @pTantargyId AND
				MONTH(tanuloErtekeles.C_ERTEKELESDATUM) = MONTH(@felevVege) AND
				DAY(tanuloErtekeles.C_ERTEKELESDATUM) > DAY(@felevVege) AND
				osztalyzatErtekeles.TOROLT = 'F'
			ORDER BY 
				tanuloErtekeles.C_TANULOID,
				tanuloErtekeles.C_ERTEKELESDATUM
		END
	ELSE
		BEGIN
			SELECT  
				tanuloErtekeles.ID						ErtekelesId,
				tanuloErtekeles.C_TANULOID				TanuloId,
				tanuloErtekeles.C_TANTARGYID			TantargyId,
				tanuloErtekeles.C_ERTEKELESSZOVEG		ErtekelesSzoveg,
				tanuloErtekeles.C_ERTEKELESDATUM		Datum,
				tanuloErtekeles.C_OSZTALYZAT			Osztalyzat,
				tanuloErtekeles.C_ERTEKELESTIPUSA		ErtekelesTipusa,
				osztalyzatErtekeles.C_ERTEKELESMODJA	ErtekelesModja,
				osztalyzatErtekeles.C_SZAZALEK			Szazalek,
				osztalyzatErtekeles.C_TEMA				Tema,
				tanariAtlagSuly.C_SULY					Suly,
				felhasznalo.C_NYOMTATASINEV				ErtekeloNyomtatasiNev,
				CASE
					WHEN tanuloErtekeles.CREATOR = @pTanarId
						THEN 'T' 
						ELSE 'F' 
				END										Modosithato		
			FROM 
				T_TANULOERTEKELES_OSSZES tanuloErtekeles
					LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES osztalyzatErtekeles
						ON osztalyzatErtekeles.ID = tanuloErtekeles.ID
					LEFT JOIN T_TANARIATLAGSULY_OSSZES tanariAtlagSuly
						ON tanariAtlagSuly.C_ERTEKELESMODJA = osztalyzatErtekeles.C_ERTEKELESMODJA
					LEFT JOIN T_FELHASZNALO_OSSZES felhasznalo
						ON felhasznalo.ID = tanuloErtekeles.C_ERTEKELOID
			WHERE 
				tanuloErtekeles.TOROLT = 'F' AND
				tanuloErtekeles.C_ERTEKELESTIPUSA <> @pFelevi AND tanuloErtekeles.C_ERTEKELESTIPUSA <> @pEvvegi AND
				tanuloErtekeles.C_TANULOID = @pTanuloId AND
				tanuloErtekeles.C_TANTARGYID = @pTantargyId AND
				MONTH(tanuloErtekeles.C_ERTEKELESDATUM) = @pHonap AND
				osztalyzatErtekeles.TOROLT = 'F'
			ORDER BY 
				tanuloErtekeles.C_TANULOID,
				tanuloErtekeles.C_ERTEKELESDATUM
		END

END