119 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP FUNCTION IF EXISTS fnGetDokumentumMulasztasokOsztalyonkentReszletes
 | 
						|
GO
 | 
						|
 | 
						|
CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (
 | 
						|
    @tanevId int
 | 
						|
   ,@osztalyCsoportId int
 | 
						|
   ,@iskolaErdekuSzamit bit
 | 
						|
   ,@csakKivlasztottOsztalyCsoport bit = 0
 | 
						|
   ,@atsoroltTanuloMulasztas bit = 1
 | 
						|
   ,@idoszakEleje date = NULL
 | 
						|
   ,@idoszakVege date = NULL
 | 
						|
   ,@csakTanoraiCelu int = 1
 | 
						|
  )
 | 
						|
  RETURNS @result TABLE (
 | 
						|
     TanuloId int
 | 
						|
    ,TanuloCsoportId int
 | 
						|
    ,OsztalyCsoportId int
 | 
						|
    ,OsztalyCsoportNev nvarchar (255)
 | 
						|
    ,Tipusa int
 | 
						|
    ,Igazolt char (1)
 | 
						|
    ,IgazolasTipusa int
 | 
						|
    ,KesesPercben int null
 | 
						|
    ,Datum datetime
 | 
						|
    ,Oraszam nvarchar (255)
 | 
						|
    ,OraszamWithOrakezdeteVege nvarchar (255)
 | 
						|
    ,TantargyId int
 | 
						|
    ,TantargyNev nvarchar (255)
 | 
						|
    ,HetSorszama int
 | 
						|
    ,Gyakorlati char(1)
 | 
						|
    ,Tanorai char(1)
 | 
						|
    ,RENDEZ1 int
 | 
						|
    ,RENDEZ2 nvarchar(255)
 | 
						|
    ,RENDEZ3 int
 | 
						|
    ,RENDEZ4 int
 | 
						|
    ,RENDEZ5 nvarchar(255)
 | 
						|
  )
 | 
						|
AS BEGIN
 | 
						|
 | 
						|
  DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
 | 
						|
  DECLARE @defaultCsengetesiRendId int
 | 
						|
 | 
						|
  DECLARE @tanoraiCsoportok TABLE( 
 | 
						|
     OsztalyCsoportId int
 | 
						|
  )
 | 
						|
 | 
						|
  SELECT @defaultCsengetesiRendId = ID 
 | 
						|
  FROM T_CSENGETESIREND_OSSZES csr
 | 
						|
  WHERE csr.TOROLT='F' 
 | 
						|
    AND csr.C_AKTIV = 'T' 
 | 
						|
    AND csr.C_TANEVID = @tanevId
 | 
						|
 | 
						|
  INSERT INTO @tanoraiCsoportok(OsztalyCsoportId)
 | 
						|
  SELECT
 | 
						|
    ID
 | 
						|
  FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)
 | 
						|
 | 
						|
  INSERT INTO @result
 | 
						|
  SELECT
 | 
						|
     tm.C_ORATANULOIID AS TanuloId
 | 
						|
    ,tcs.ID AS TanuloCsoportId
 | 
						|
    ,tao.C_OSZTALYCSOPORTID AS OsztalyCsoportId
 | 
						|
    ,ocs.C_NEV AS OsztalyCsoportNev
 | 
						|
    ,tm.C_TIPUS AS Tipusa
 | 
						|
    ,tm.C_IGAZOLT AS Igazolt
 | 
						|
    ,tm.C_IGAZOLASTIPUSA AS IgazolasTipusa
 | 
						|
    ,tm.C_KESESPERCBEN AS KesesPercben
 | 
						|
    ,tao.C_DATUM AS Datum
 | 
						|
    ,IIF(tao.C_CSENGETESIRENDORAID IS NULL,
 | 
						|
      (SELECT 
 | 
						|
	       ISNULL(MAX(csro.C_ORASZAM), 0)  
 | 
						|
       FROM T_CSENGETESIRENDORA_OSSZES csro
 | 
						|
       WHERE csro.TOROLT = 'F'
 | 
						|
	       AND csro.C_CSENGETESIRENDID = @defaultCsengetesiRendId
 | 
						|
	       AND CONVERT(nvarchar(5), C_KEZDETE, 108) <= CONVERT(nvarchar(5), C_ORAKEZDETE, 108)
 | 
						|
      ),tao.C_ORASZAM) as Oraszam
 | 
						|
    ,IIF(tao.C_CSENGETESIRENDORAID IS NULL, CONCAT(CONVERT(nvarchar(5), tao.C_ORAKEZDETE, 108), '-',
 | 
						|
      CONVERT(nvarchar(5), tao.C_ORAVEGE, 108)), CAST(tao.C_ORASZAM AS nvarchar(5))) AS OraszamWithOrakezdeteVege
 | 
						|
    ,tao.C_TANTARGYID AS TantargyId
 | 
						|
    ,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TantargyNev
 | 
						|
    ,tao.C_HETSORSZAMA AS HetSorszama
 | 
						|
    ,tgy.C_GYAKORLATI AS Gyakorlati
 | 
						|
    ,IIF(tanorai.OsztalyCsoportId IS NULL, 'F', 'T') AS Tanorai
 | 
						|
    ,IIF(tgy.C_FOTARGYID IS NULL,ISNULL(dibtgykat.C_ORDER, 10000),ISNULL(dibftgykat.C_ORDER, 10000)) AS RENDEZ1
 | 
						|
    ,COALESCE(ftgy.C_NEVNYOMTATVANYBAN, ftgy.C_NEV, tgy.C_NEV) AS RENDEZ2
 | 
						|
    ,ISNULL(tgy.C_FOTARGYID, tgy.ID) AS RENDEZ3
 | 
						|
    ,tgy.C_FOTARGYID AS RENDEZ4
 | 
						|
    ,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS RENDEZ5
 | 
						|
  FROM T_TANULOMULASZTAS_OSSZES tm
 | 
						|
	  INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
 | 
						|
      AND tao.TOROLT='F'
 | 
						|
	  INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID
 | 
						|
			AND tcs.TOROLT = 'F'
 | 
						|
			AND tao.C_DATUM >= tcs.C_BELEPESDATUM
 | 
						|
      AND tao.C_DATUM <= ISNULL(tcs.C_KILEPESDATUM, GETDATE())
 | 
						|
      AND tcs.C_OSZTALYCSOPORTID=@osztalyCsoportId
 | 
						|
	  INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID
 | 
						|
		  AND ocs.C_FELADATKATEGORIAID = @kategoriaId
 | 
						|
	  INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID
 | 
						|
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibtgykat ON dibtgykat.Id = tgy.C_TARGYKATEGORIA
 | 
						|
	    AND dibtgykat.TOROLT = 'F'
 | 
						|
	    AND dibtgykat.C_TANEVID = @tanevId
 | 
						|
    LEFT JOIN T_TANTARGY_OSSZES ftgy ON tgy.C_FOTARGYID = ftgy.ID
 | 
						|
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibftgykat ON dibftgykat.ID = ftgy.C_TARGYKATEGORIA
 | 
						|
	    AND dibftgykat.TOROLT = 'F'
 | 
						|
	    AND dibftgykat.C_TANEVID = ftgy.C_TANEVID
 | 
						|
	  LEFT JOIN @tanoraiCsoportok tanorai ON tanorai.OsztalyCsoportId = ocs.ID
 | 
						|
  WHERE tm.C_TIPUS BETWEEN 1499 AND 1500
 | 
						|
    AND tm.TOROLT = 'F'
 | 
						|
    AND (@csakTanoraiCelu = 0 OR tanorai.OsztalyCsoportId IS NOT NULL)
 | 
						|
	  AND (@iskolaErdekuSzamit = 1 OR (tm.C_IGAZOLASTIPUSA IS NULL OR tm.C_IGAZOLASTIPUSA <> 1533))
 | 
						|
	  AND (@atsoroltTanuloMulasztas = 1 OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, @csakTanoraiCelu))))
 | 
						|
	  AND (@csakKivlasztottOsztalyCsoport = 0 OR tao.C_OSZTALYCSOPORTID = @osztalyCsoportId)
 | 
						|
	  AND (@idoszakEleje IS NULL OR tao.C_DATUM >= @idoszakEleje)
 | 
						|
	  AND (@idoszakVege IS NULL OR tao.C_DATUM <= @idoszakVege)
 | 
						|
 | 
						|
  RETURN
 | 
						|
END
 | 
						|
GO
 |