SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokTantargyMulasztasokReszletezese
GO

CREATE PROCEDURE [dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]
	@pOsztalyId				INT,
	@pTanevId				INT,
	@pIskolaErdekuSzamit	BIT
  
AS
BEGIN
	SET NOCOUNT ON;

/*FEJLEC*/
SELECT
  IntezmenyAdat.C_NEV																IntezmenyNeve
  ,IntezmenyAdat.C_OMKOD															IntezmenyOMKod
  ,IntezmenyAdat.C_IGAZGATONEVE														IntezmenyVezeto
  ,dbo.fnGetDokumentumIntezmenyCime(@pTanevId)										IntezmenyCime
  ,IntezmenyAdat.C_VAROS															IntezmenyVaros
  ,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)               OsztalyCsoportNev
  ,o.ID AS OsztalyId
  ,ofo.C_NYOMTATASINEV OsztalyfonokNev
FROM T_INTEZMENYADATOK_OSSZES IntezmenyAdat
  LEFT JOIN T_OSZTALY_OSSZES AS o ON o.ID = @pOsztalyId
  LEFT JOIN T_FELHASZNALO_OSSZES AS ofo ON ofo.ID = o.C_OSZTALYFONOKID
WHERE 
  INTEZMENYADAT.C_TANEVID = @pTanevId

/*TANULOK*/
SELECT
    TanuloId
    ,Felhasznalo.C_NYOMTATASINEV                AS TanuloNev
    ,@pOsztalyId AS OsztalyCsoportId
    ,Felhasznalo.C_OKTATASIAZONOSITO    AS TanuloOktAzon
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') Tanulok
  INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulok.TanuloId
ORDER BY Felhasznalo.C_NYOMTATASINEV 

/*MULASZTOTT TANTARGY*/
SELECT DISTINCT
  TanuloId
  ,TargyakRendezes.C_ORDER
  ,TantargyId
  ,TantargyNev                AS  TantargyNev
  ,COUNT(1)                   AS  COUNT                    
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) MulasztasokOsztalyonkent
  INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.ID = MulasztasokOsztalyonkent.TantargyId
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyakRendezes ON Tantargy.C_TARGYKATEGORIA = TargyakRendezes.ID AND TargyakRendezes.TOROLT = 'F' AND TargyakRendezes.C_TANEVID = @pTanevId
GROUP BY TanuloId, TantargyId, TantargyNev, TargyakRendezes.C_ORDER
ORDER BY TargyakRendezes.C_ORDER

SELECT
  TanuloId
	,OsztalyCsoportId
	,OsztalyCsoportNev                OsztalyCsoportNev
	,IIF(Igazolt = 'T', 'Igen', IIF(Igazolt = 'F', 'Nem', '')) Igazolt
	,MulasztasTipus.C_NAME            Tipusa
	,IgazolasTipus.C_NAME             IgazolasTipusa
	,KesesPercben                     Keses
	,Datum                            Datum
	,OraszamWithOrakezdeteVege        Oraszam
	,TantargyId
  ,Felhasznalo.C_NYOMTATASINEV      OsztalyfonokNev
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) MulasztasokOsztalyonkent
  INNER JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasokOsztalyonkent.Tipusa = MulasztasTipus.ID AND MulasztasTipus.C_TANEVID = @pTanevId
  LEFT JOIN T_DICTIONARYITEMBASE_OSSZES IgazolasTipus ON MulasztasokOsztalyonkent.IgazolasTipusa = IgazolasTipus.ID AND IgazolasTipus.C_TANEVID = @pTanevId
  LEFT JOIN T_OSZTALY_OSSZES Osztaly ON MulasztasokOsztalyonkent.OsztalyCsoportId = Osztaly.ID 
  LEFT JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Osztaly.C_OSZTALYFONOKID = Felhasznalo.ID
ORDER BY Datum
   
  SELECT
    o.ID AS OsztalyId
    ,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
    ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
    ,o.C_KEPZESIFORMA AS KepzesiForma
    ,o.C_OSZTALYFONOKID AS OsztalyfonokId
    ,o.C_TANTERVID AS TantervId
    ,o.C_SZAKMACSOPORT AS SzakmaCsoport
    ,o.C_AGAZAT AS Agazat
    ,o.C_SZAKKEPESITES AS Szakkepesites
    ,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
	  ,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
	  ,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
	  ,o.C_TECHNIKAIOSZTALY	OJTechnikaiOsztaly
	  ,o.C_NEMZETISEGI		OJNemzetisegi
	  ,o.C_KETTANNYELVU		OJKettannyelvu
	  ,o.C_NYELVIELOKESZITO	OJNyelviElokeszito
	  ,o.C_LOGOPEDIAI			OJLogopediai
	  ,o.C_SPORT				OJSportOsztaly
	  ,o.C_AJPROGRAM			OJAranyJanosProgram
	  ,o.C_GYOGYPEDAGOGIAI	OJGyogypedagogiai
  FROM T_OSZTALY_OSSZES AS o
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
  WHERE o.ID = @pOsztalyId
END