86 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.7 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)
 | 
						|
   )
 | 
						|
AS BEGIN
 | 
						|
 | 
						|
    DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
 | 
						|
 | 
						|
    INSERT INTO @result
 | 
						|
    SELECT
 | 
						|
	   C_ORATANULOIID AS TanuloId
 | 
						|
	  ,TanuloCsoport.ID AS TanuloCsoportId
 | 
						|
	  ,TanitasiOra.C_OSZTALYCSOPORTID AS OsztalyCsoportId
 | 
						|
	  ,OsztalyCsoport.C_NEV AS OsztalyCsoportNev
 | 
						|
	  ,C_TIPUS AS Tipusa
 | 
						|
	  ,C_IGAZOLT AS Igazolt
 | 
						|
	  ,C_IGAZOLASTIPUSA AS IgazolasTipusa
 | 
						|
	  ,C_KESESPERCBEN AS KesesPercben
 | 
						|
	  ,C_DATUM AS Datum
 | 
						|
	  ,IIF(C_CSENGETESIRENDORAID IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), C_ORAKEZDETE, 108), @tanevId), TanitasiOra.C_ORASZAM) AS Oraszam
 | 
						|
	  ,IIF(C_CSENGETESIRENDORAID IS NULL, CONCAT(CONVERT(NVARCHAR(5), TanitasiOra.C_ORAKEZDETE, 108), '-',
 | 
						|
      CONVERT(NVARCHAR(5), TanitasiOra.C_ORAVEGE, 108)), CAST(TanitasiOra.C_ORASZAM AS NVARCHAR)) AS OraszamWithOrakezdeteVege
 | 
						|
	  ,C_TANTARGYID AS TantargyId
 | 
						|
	  ,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) AS TantargyNev
 | 
						|
	  ,C_HETSORSZAMA AS HetSorszama
 | 
						|
	  ,C_GYAKORLATI AS Gyakorlati
 | 
						|
    ,IIF(o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL, 'T', 'F') AS Tanorai
 | 
						|
  FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
 | 
						|
	  INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = TanuloMulasztas.C_TANITASIORAKID
 | 
						|
      AND TanitasiOra.TOROLT='F'
 | 
						|
	  INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = TanuloMulasztas.C_ORATANULOIID
 | 
						|
			AND TanuloCsoport.TOROLT = 'F'
 | 
						|
			AND TanitasiOra.C_DATUM >= TanuloCsoport.C_BELEPESDATUM
 | 
						|
      AND TanitasiOra.C_DATUM < ISNULL(TanuloCsoport.C_KILEPESDATUM, GETDATE())
 | 
						|
      AND TanuloCsoport.C_OSZTALYCSOPORTID=@osztalyCsoportId
 | 
						|
	  INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID
 | 
						|
		  AND OsztalyCsoport.C_FELADATKATEGORIAID = @kategoriaId
 | 
						|
	  INNER JOIN T_TANTARGY_OSSZES t ON t.ID = TanitasiOra.C_TANTARGYID
 | 
						|
	  LEFT JOIN (
 | 
						|
      SELECT
 | 
						|
         tanorai.ID AS tanoraiId
 | 
						|
        ,cs.ID AS CsoportId
 | 
						|
      FROM T_CSOPORT_OSSZES cs
 | 
						|
        INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
 | 
						|
    ) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
 | 
						|
    LEFT JOIN T_OSZTALY_OSSZES o ON o.ID=TanitasiOra.C_OSZTALYCSOPORTID
 | 
						|
  WHERE TanuloMulasztas.C_TIPUS IN (1499, 1500) AND TanuloMulasztas.C_INTEZMENYID=TanitasiOra.C_INTEZMENYID
 | 
						|
    AND (@csakTanoraiCelu = 0 OR (o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL))
 | 
						|
	  AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533))
 | 
						|
	  AND TanuloMulasztas.TOROLT = 'F'
 | 
						|
	  AND (@atsoroltTanuloMulasztas = 1 OR (TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, @csakTanoraiCelu))))
 | 
						|
	  AND (@csakKivlasztottOsztalyCsoport = 0 OR TanitasiOra.C_OSZTALYCSOPORTID = @osztalyCsoportId)
 | 
						|
	  AND (@idoszakEleje IS NULL OR C_DATUM >= @idoszakEleje)
 | 
						|
	  AND (@idoszakVege IS NULL OR  C_DATUM <= @idoszakVege)
 | 
						|
 | 
						|
    RETURN
 | 
						|
END
 | 
						|
GO
 |