262 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			262 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS [dbo].[uspGetHaladasiNaploAdatok]
 | 
						|
GO
 | 
						|
CREATE PROCEDURE [dbo].[uspGetHaladasiNaploAdatok]
 | 
						|
  @tanevID int,
 | 
						|
  @osztalyID int = null,
 | 
						|
  @tanarID int = null,
 | 
						|
  @feladatKategoriaId int = null
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
DECLARE @cTantargyId  INT = 0
 | 
						|
DECLARE @cOsztalyCsoportId INT = 0
 | 
						|
DECLARE @cTanarId INT = 0
 | 
						|
DECLARE @foglalkozasNev VARCHAR(255)
 | 
						|
 
 | 
						|
  SET NOCOUNT ON;
 | 
						|
  CREATE TABLE #Foglalkozasok (
 | 
						|
     Nev nvarchar(511) COLLATE Hungarian_CI_AI
 | 
						|
    ,C_TANTARGYID int
 | 
						|
    ,C_OSZTALYCSOPORTID int
 | 
						|
    ,C_INTEZMENYID int
 | 
						|
    ,C_TANARID int
 | 
						|
    ,VanTTF char(1)
 | 
						|
  )
 | 
						|
 | 
						|
  INSERT INTO #Foglalkozasok
 | 
						|
  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
 | 
						|
  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 = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
 | 
						|
    INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = tn.C_TANTARGYID and tt.TOROLT = 'F'
 | 
						|
    LEFT JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyID, @tanevID, 0)) kocs ON kocs.ID = ocs.ID AND @osztalyID IS NOT NULL
 | 
						|
  WHERE tn.TOROLT = 'F'
 | 
						|
    AND tn.C_TANEVID = @tanevID
 | 
						|
    AND (
 | 
						|
    ((@osztalyID IS NOT NULL) AND (kocs.ID IS NOT NULL))
 | 
						|
    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 AS Nev
 | 
						|
    ,fog.VanTTF AS 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 CAST(s.evesOraszam AS nvarchar(max))
 | 
						|
        ELSE '-'
 | 
						|
       END AS OraSorszam
 | 
						|
      ,fh.C_NYOMTATASINEV AS TanarNev
 | 
						|
      ,fh.C_OKTATASIAZONOSITO AS TanarOktAzon
 | 
						|
      ,tn.C_TEMA AS Tema
 | 
						|
      ,IIF(tn.C_HELYETTESITOTANARID IS NOT NULL, 'T', 'F') AS Helyettesitett
 | 
						|
      ,FORMAT(tn.C_DATUM, 'yyyy.MM.dd.') AS Datum
 | 
						|
      ,tn.C_ORASZAM AS OraSzam
 | 
						|
      ,tn.C_MEGJEGYZES AS Megjegyzes
 | 
						|
      ,ISNULL(tn.C_HAZIFELADAT,hf.C_FELADATSZOVEGE) AS HaziFeladat
 | 
						|
      ,tn.C_TULORA AS TulOra
 | 
						|
      ,tn.C_TAMOPORA AS TamopOra
 | 
						|
      ,tn.C_NEMSZAKRENDSZERUORA AS NemszakrendszeruOra
 | 
						|
      ,tn.C_IKTTANORA AS IktOra
 | 
						|
      ,tn.C_NEMZETISEGIORA AS NemzetisegiOra
 | 
						|
      ,tn.C_ISFELNOTTOKTATASISZERZODES AS IsFelnottoktatasiSzerzodes
 | 
						|
      ,tn.C_MINDENNAPOSTESTNEVELES AS TestnevelesOra
 | 
						|
      ,tn.C_IPRTANORA AS IprOra
 | 
						|
      ,tn.C_DIFFERENCIALT AS DifferencialtOra
 | 
						|
      ,tn.C_KOOPERATIV AS KooperativOra
 | 
						|
      ,tn.C_MERES AS MeresOra
 | 
						|
      ,tn.C_DRAMA AS DramaOra
 | 
						|
      ,tn.C_PARHUZAMOSORA AS ParhuzamosOra
 | 
						|
      ,tn.C_TIOP12 AS TiopOra
 | 
						|
      ,tn.C_VEKOP73317 AS VEKOP73317
 | 
						|
      ,tn.C_KAPORA AS KAPOra
 | 
						|
      ,tn.C_BONTOTT AS Bontott
 | 
						|
      ,tn.C_MULTIKULTURALISORA AS Multikulturalis
 | 
						|
      ,tn.C_EFOP32317 AS EFOP32317
 | 
						|
      ,tn.C_GINOP623 AS GINOP623
 | 
						|
      ,tn.C_EFOP31716 AS EFOP31716
 | 
						|
      ,tn.C_EFOP33717 AS EFOP33717
 | 
						|
      ,tn.C_TIOP1111212012001 AS TIOP1111212012001
 | 
						|
      ,tn.C_EFOP23517 AS EFOP23517
 | 
						|
      -- Komplex alapprogram adatok
 | 
						|
      ,tn.C_ISDFHTORA AS DFHTora
 | 
						|
      ,tn.C_ISDFHTKIPORA AS DFHTKIPora
 | 
						|
      ,tn.C_KIPORA KIPOra
 | 
						|
      ,tn.C_ISTEORAD AS TEorad
 | 
						|
      ,tn.C_ISRAHANGOLODAS AS Rahangolodas
 | 
						|
      ,tn.C_KOMPLEXORA AS Komplexora
 | 
						|
      ,tn.C_ISDIGITALISALAPUALPROGRAM AS DigitalisAlapuAlprogram
 | 
						|
      ,tn.C_ISTESTMOZGASALAPUALPROGRAM AS TestmozgasAlapuAlprogram
 | 
						|
      ,tn.C_ISELETGYAKORLATALAPUALPROGRA AS EletGyakorlatAlapuAlprogram
 | 
						|
      ,tn.C_ISMUVESZETALAPUALPROGRAM AS MuveszetAlapuAlprogram
 | 
						|
      ,tn.C_ISLOGIKAALAPUALPROGRAM AS LogikaiAlapuAlprogram
 | 
						|
    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_OSSZES hf ON hf.C_TANITASIORAID = tn.ID AND hf.TOROLT = 'F'
 | 
						|
    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 Datum
 | 
						|
    
 | 
						|
    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 nvarchar(max)
 | 
						|
      ,TanarNev nvarchar(1)
 | 
						|
      ,TanarOktAzon nvarchar(1)
 | 
						|
      ,Tema nvarchar(1)
 | 
						|
      ,Helyettesitett nvarchar(1)
 | 
						|
      ,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
 | 
						|
      ,VEKOP73317 char
 | 
						|
      ,KAPOra char
 | 
						|
      ,Bontott char
 | 
						|
      ,Multikulturalis char
 | 
						|
      ,EFOP32317 char
 | 
						|
      ,GINOP623 char
 | 
						|
      ,EFOP31716 char
 | 
						|
      ,EFOP33717 char
 | 
						|
      ,TIOP1111212012001 char
 | 
						|
      ,EFOP23517 char
 | 
						|
      -- Komplex alapprogram adatok
 | 
						|
      ,DFHTora char
 | 
						|
      ,DFHTKIPora char
 | 
						|
      ,KIPOra char
 | 
						|
      ,TEorad char
 | 
						|
      ,Rahangolodas char
 | 
						|
      ,Komplexora char
 | 
						|
      ,DigitalisAlapuAlprogram char
 | 
						|
      ,TestmozgasAlapuAlprogram char
 | 
						|
      ,EletGyakorlatAlapuAlprogram char
 | 
						|
      ,MuveszetAlapuAlprogram char
 | 
						|
      ,LogikaiAlapuAlprogram 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 AS EvfolyamTipusa
 | 
						|
        ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
 | 
						|
        ,o.C_TANTERVID AS TantervId
 | 
						|
        ,ocs.C_KEPZESIFORMA AS KepzesiForma
 | 
						|
        ,o.C_AGAZAT AS Agazat
 | 
						|
        ,o.C_SZAKMACSOPORT AS SzakmaCsoport
 | 
						|
        ,o.C_SZAKKEPESITES AS Szakkepesites
 | 
						|
        ,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
 | 
						|
        ,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
 | 
						|
        ,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
 | 
						|
        ,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
 | 
						|
        ,o.C_NEMZETISEGI AS OJNemzetisegi
 | 
						|
        ,o.C_KETTANNYELVU AS OJKettannyelvu
 | 
						|
        ,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
 | 
						|
        ,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
 | 
						|
        ,o.C_SPORT AS OJSportOsztaly
 | 
						|
        ,o.C_AJPROGRAM AS OJAranyJanosProgram
 | 
						|
      FROM T_OSZTALYCSOPORT_OSSZES 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 AS FeladatEllatasiHelyId
 | 
						|
        ,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
 | 
						|
        ,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
 | 
						|
      FROM T_OSZTALYCSOPORT_OSSZES AS ocs
 | 
						|
      INNER JOIN T_CSOPORT_OSSZES 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 fogl
 | 
						|
    INNER JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = fogl.C_TANARID
 | 
						|
  END
 | 
						|
 | 
						|
  DROP TABLE #Foglalkozasok
 | 
						|
END 
 | 
						|
 | 
						|
GO |