﻿DROP PROCEDURE IF EXISTS [dbo].[sp_GetHaladasiNaploAdatok]
GO
CREATE PROCEDURE [dbo].[sp_GetHaladasiNaploAdatok]
	@tanevID int,
	@osztalyID int = null,
	@tanarID int = null
AS
BEGIN
DECLARE @cTantargyId  INT = 0
DECLARE @cOsztalyCsoportId INT = 0
DECLARE @cTanarId INT = 0
DECLARE @foglalkozasNev VARCHAR(255)
 
	SET NOCOUNT ON;
	SELECT DISTINCT
	 ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
    ,tn.C_TANTARGYID
    ,tn.C_OSZTALYCSOPORTID
    ,tn.C_INTEZMENYID
    ,tn.C_TANARID AS C_TANARID
    ,IIF(f.ID IS NULL,'F','T') AS VanTTF
	INTO #Foglalkozasok
	FROM T_TANITASIORA_OSSZES tn
    LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = tn.C_TANTARGYID AND f.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND f.C_TANARID = tn.C_TANARID AND f.TOROLT = 'F'
    INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = tn.C_OSZTALYCSOPORTID and OCS.TOROLT = 'F' AND OCS.C_FELADATKATEGORIAID = (SELECT t.C_DEFAULTFELADATKATEGORIAID FROM T_TANEV_OSSZES t WHERE t.ID = OCS.C_TANEVID)
	  LEFT  JOIN T_CSOPORTOK_OSZTALYOK cso on cso.C_CSOPORTOKID = ocs.ID
	  INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = tn.C_TANTARGYID and tt.TOROLT = 'F' 
	WHERE tn.TOROLT = 'F'
	  AND tn.C_TANEVID = @tanevID
	  AND (
		((@osztalyID IS NOT NULL) AND (ocs.ID = @osztalyID OR cso.C_OSZTALYOKID = @osztalyID))
		OR
		((@tanarID IS NOT NULL) AND tn.C_TANARID = @tanarID)
		)
  ORDER BY VanTTF DESC, Nev ASC
	SELECT 
		  IIF(fog.VanTTF = 'F','Egyedi-','')+Nev+' - '+felh.C_NYOMTATASINEV Nev,
      fog.VanTTF 
	FROM #Foglalkozasok fog
		INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID=felh.ID
  ORDER BY fog.VanTTF DESC, Nev ASC
  
  DECLARE @sorszamTable TABLE (
     tanitasiOraId int-- PRIMARY KEY
    ,evesOraszam int
    ,foglalkozasId int
  )  
  
  INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam)
  SELECT s.Id, s.EvesSorszam FROM #Foglalkozasok f
  CROSS APPLY dbo.fnGetEvesOraszamLista(
     f.C_TANTARGYID
    ,f.C_OSZTALYCSOPORTID
    ,f.C_TANARID
    ,GETDATE()
    ,f.C_INTEZMENYID
    ,@tanevID
  ) s


  DECLARE foglalkozasCursor CURSOR FOR 
  SELECT C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANARID FROM #Foglalkozasok 
      
  OPEN foglalkozasCursor
  FETCH NEXT FROM foglalkozasCursor into @cTantargyId, @cOsztalyCsoportId, @cTanarId
  
  WHILE @@FETCH_STATUS = 0 BEGIN 
		SELECT DISTINCT
			CASE
			  WHEN tn.C_MEGTARTOTT = 'T' THEN s.evesOraszam  -- tn.C_ORAEVESSORSZAM
			  ELSE '-'
			 END AS OraSorszam
			,fh.C_NYOMTATASINEV TanarNev
			,tn.C_TEMA Tema
			,CASE
			  WHEN tn.C_HELYETTESITOTANARID IS NULL THEN ''
			  ELSE 'H'
			 END AS Helyettesites
			,FORMAT(tn.C_DATUM, 'yyyy.MM.dd.') Datum
			,tn.C_ORASZAM OraSzam
			,tn.C_MEGJEGYZES Megjegyzes
			,ISNULL(tn.C_HAZIFELADAT,hf.C_FELADATSZOVEGE) HaziFeladat
			,tn.C_TULORA TulOra
			,tn.C_TAMOPORA TamopOra
			,tn.C_NEMSZAKRENDSZERUORA NemszakrendszeruOra
			,tn.C_IKTTANORA IktOra
			,tn.C_NEMZETISEGIORA NemzetisegiOra
			,tn.C_MINDENNAPOSTESTNEVELES TestnevelesOra
			,tn.C_IPRTANORA IprOra
			,tn.C_DIFFERENCIALT DifferencialtOra
			,tn.C_KOOPERATIV KooperativOra
			,tn.C_MERES MeresOra
			,tn.C_DRAMA DramaOra
			,tn.C_PARHUZAMOSORA ParhuzamosOra
			,tn.C_TIOP12 TiopOra
			,tn.C_KIPORA KIPOra
			,tn.C_VEKOP73317 VEKOP73317
			,tn.C_KAPORA KAPOra
			,tn.C_BONTOTT Bontott
			,tn.C_MULTIKULTURALISORA Multikulturalis
			,tn.C_EFOP32317 EFOP32317
			,tn.C_KOMPLEXORA Komplexora
			,tn.C_GINOP623 GINOP623
			,tn.C_EFOP31716 EFOP31716
			,tn.C_EFOP33717 EFOP33717
			,tn.C_TIOP1111212012001 TIOP1111212012001
		FROM T_TANITASIORA_OSSZES tn
      INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = tn.C_TANARID
      LEFT  JOIN @sorszamTable s ON s.tanitasiOraId = tn.ID
	  LEFT JOIN T_HAZIFELADATOK hf ON hf.C_TANITASIORAID = tn.ID
    WHERE tn.TOROLT = 'F'
			AND tn.C_TANEVID = @tanevID
      AND tn.C_TANARID = @cTanarId
      AND tn.C_TANTARGYID = @cTantargyId
      AND tn.C_OSZTALYCSOPORTID = @cOsztalyCsoportId
	ORDER BY FORMAT(tn.C_DATUM, 'yyyy.MM.dd.')	
    
    FETCH NEXT FROM foglalkozasCursor 
    INTO @cTantargyId, @cOsztalyCsoportId, @cTanarId
  END
  
  CLOSE foglalkozasCursor
  DEALLOCATE foglalkozasCursor
  
  IF (SELECT COUNT(ID) FROM #Foglalkozasok) = 0 BEGIN 
    DECLARE @nincsAdat TABLE (
	    OraSorszam int,
    	TanarNev nvarchar(1),
	    Tema nvarchar(1),
	    Helyettesites int,
	    Datum datetime,
	    OraSzam int,
	    Megjegyzes nvarchar(1),
	    HaziFeladat nvarchar(1),
	    TulOra char,
	    TamopOra char,
	    NemszakrendszeruOra char,
    	IktOra char,
	    NemzetisegiOra char,
	    TestnevelesOra char,
	    IprOra char,
	    DifferencialtOra char,
	    KooperativOra char,
	    MeresOra char,
	    DramaOra char,
	    ParhuzamosOra char,
	    TiopOra char,
		KIPOra char,
		VEKOP73317 char,
		KAPOra char
      )
      SELECT * FROM @nincsAdat;
  END

  DROP TABLE #Foglalkozasok
END 

GO