﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('sp_GetOsztalyokEvesOraszama') IS NOT NULL BEGIN
  DROP PROCEDURE sp_GetOsztalyokEvesOraszama
END
GO

CREATE PROCEDURE sp_GetOsztalyokEvesOraszama
	@tanevID int,
	@tanitasiHetekSzamaVegzos		INT = 32,
	@tanitasiHetekSzamaNemVegzos	INT = 36
AS
BEGIN
	DECLARE kurzor CURSOR FOR 
	SELECT OsztalyId FROM fnGetDokumentumOsztalyokTanevenkent(@tanevID)  
		LEFT JOIN (
					SELECT 
						COUNT(T_TANULOCSOPORT_OSSZES.C_TANULOID) tanuloCount, 
						T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID 
					FROM 
						T_TANULOCSOPORT_OSSZES
					INNER JOIN 
						T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
					WHERE 
						T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND 
						T_TANULOCSOPORT_OSSZES.C_TANEVID = @tanevID 
					GROUP BY T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID
					) tanuloSzam ON tanuloSzam.C_OSZTALYCSOPORTID = OsztalyId
	WHERE 
		tanuloCount > 0

	DECLARE @OsztalyId int

	OPEN kurzor
	FETCH NEXT FROM kurzor INTO @OsztalyId

	WHILE @@FETCH_STATUS = 0 BEGIN

		SELECT DISTINCT
			tanulo.C_NYOMTATASINEV	TanuloNev
			,tantargy.C_NEV		TantargyNev
			,oraszamok.Oraszam		EvesOraszam
			,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @OsztalyId) OsztalyNev
		FROM fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet(@tanevID, @OsztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos) oraszamok
			INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = oraszamok.TanuloId
			INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = oraszamok.TantargyID 
  
	FETCH NEXT FROM kurzor INTO @OsztalyId
	END

	CLOSE kurzor
	DEALLOCATE kurzor
END 

GO