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 = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/ 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 ORDER BY VanTTF DESC, Nev ASC 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(Nev) 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 -- Iktatás adatok IF @tanarID IS NOT NULL BEGIN SELECT f.ID AS PedagogusId ,f.C_OKTATASIAZONOSITO AS PedagogusOktAzon ,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId FROM T_FELHASZNALO_OSSZES AS f LEFT JOIN T_MUNKAUGYIADATOK_OSSZES AS mua ON mua.C_ALKALMAZOTTID = f.ID WHERE f.ID = @tanarID AND f.C_TANEVID = @tanevID END IF @osztalyID IS NOT NULL BEGIN DECLARE @isCsoport INT = (SELECT COUNT(ID) FROM T_CSOPORT_OSSZES WHERE ID = @osztalyID) IF @isCsoport = 0 BEGIN SELECT ocs.ID AS OsztalyId ,o.C_OSZTALYFONOKID AS OsztalyfonokId ,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa ,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId ,o.C_TANTERVID TantervId ,o.C_KEPZESIFORMA KepzesiForma ,o.C_AGAZAT Agazat ,o.C_SZAKMACSOPORT SzakmaCsoport ,o.C_SZAKKEPESITES Szakkepesites ,o.C_RESZSZAKKEPESITES 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_OSZTALYCSOPORT_OSSZES AS ocs INNER JOIN T_OSZTALY_OSSZES AS o ON ocs.id = o.ID WHERE ocs.TOROLT='F' AND ocs.ID = @osztalyId AND ocs.C_TANEVID = @tanevId END ELSE BEGIN SELECT ocs.ID AS CsoportId ,cs.C_CSOPORTVEZETOID AS CsoportvezetoId ,cs.C_TIPUSA AS CsoportTipusa ,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na ,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId ,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves ,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu FROM T_OSZTALYCSOPORT_OSSZES AS ocs INNER JOIN T_CSOPORT_OSSZES AS cs ON cs.ID = ocs.ID WHERE ocs.TOROLT = 'F' AND ocs.ID = @osztalyID AND ocs.C_TANEVID = @tanevID END SELECT DISTINCT felh.ID AS TanarId ,felh.C_OKTATASIAZONOSITO AS TanarOktAzon FROM #Foglalkozasok AS fogl INNER JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = fogl.C_TANARID END DROP TABLE #Foglalkozasok END GO