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 f.id ,ocs.C_NEV + ' - ' + tt.C_NEV AS Nev ,f.C_TANTARGYID ,f.C_OSZTALYCSOPORTID ,f.C_INTEZMENYID ,f.C_TANARID AS C_TANARID INTO #Foglalkozasok FROM T_FOGLALKOZAS_OSSZES f INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = f.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 = f.C_TANTARGYID and tt.TOROLT = 'F' WHERE f.TOROLT = 'F' AND f.C_TANEVID = @tanevID AND ( ((@osztalyID IS NOT NULL) AND (ocs.ID = @osztalyID OR cso.C_OSZTALYOKID = @osztalyID)) OR ((@tanarID IS NOT NULL) AND f.C_TANARID = @tanarID) ) SELECT fog.ID , Nev+' - '+felh.C_NYOMTATASINEV Nev FROM #Foglalkozasok fog INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID=felh.ID DECLARE @sorszamTable TABLE ( tanitasiOraId int-- PRIMARY KEY ,evesOraszam int ,foglalkozasId int ) INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam, foglalkozasId) SELECT s.Id, s.EvesSorszam, f.ID 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