154 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS sp_GetNemMegtartottOrakSzamaByHet
 | 
						|
 | 
						|
GO
 | 
						|
CREATE PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
 | 
						|
	@pFeladatKategoriaId	INT = NULL,
 | 
						|
	@pIntezmenyId			INT,
 | 
						|
	@pTanevId				INT,
 | 
						|
	@pOsztalyId				INT,
 | 
						|
	@pHetSorszam			INT,
 | 
						|
	@pFeladatEllatasiHelyId	INT = NULL
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
	DECLARE @pCsakOrarendiOrak bit = 0;
 | 
						|
	DECLARE @pIdoszakKezdete datetime;
 | 
						|
	DECLARE @pIdoszakVege datetime;
 | 
						|
	
 | 
						|
    DECLARE 
 | 
						|
     @sql nvarchar(max)
 | 
						|
    ,@OrarendSql nvarchar(max)
 | 
						|
    ,@selectSql nvarchar(max)
 | 
						|
    ,@whereSql nvarchar(max)
 | 
						|
    ,@orderSql nvarchar(max) = ''
 | 
						|
	
 | 
						|
  SET @OrarendSql = N'
 | 
						|
  CREATE TABLE #OrarendTable (
 | 
						|
     Id int
 | 
						|
    ,ORARENDIID int
 | 
						|
    ,Datum datetime
 | 
						|
    ,Bontott char(1)
 | 
						|
    ,Hetirend int
 | 
						|
    ,HetNapja int
 | 
						|
    ,HetSorszam int
 | 
						|
    ,ErvenyessegKezdete datetime
 | 
						|
    ,ErvenyessegVege datetime
 | 
						|
    ,OraKezdete datetime
 | 
						|
    ,OraVege datetime
 | 
						|
    ,Oraszam int
 | 
						|
    ,TargyNev nvarchar(300)
 | 
						|
    ,TargyNevForMobile nvarchar(300)
 | 
						|
    ,TargykategoriaID int
 | 
						|
    ,Megtartott char(1)
 | 
						|
    ,CsengetesiRendOraID int
 | 
						|
    ,CsengetesiRendID int
 | 
						|
    ,MaxNapiOraszam int
 | 
						|
    ,OsztalyNev nvarchar(255)
 | 
						|
    ,TanevRendOsztalyCsoportId int
 | 
						|
    ,MegjelenesOka nvarchar(300)
 | 
						|
    ,TanarNev nvarchar(255)
 | 
						|
    ,TeremNev nvarchar(255)
 | 
						|
	,TeremId int
 | 
						|
    ,OraTipus nvarchar(200)
 | 
						|
    ,Hianyzas char(1)
 | 
						|
    ,Keses char(1)
 | 
						|
    ,Ures char(1)
 | 
						|
    ,HelyettesitoTanarID int
 | 
						|
    ,HelyettesitoTanarNev nvarchar(255)
 | 
						|
	,HelyettesitesId int
 | 
						|
    ,TanarID int
 | 
						|
    ,AdminAltalKiirt  char(1)
 | 
						|
    ,GroupId int
 | 
						|
    ,Tema nvarchar(max)
 | 
						|
    ,TantargyId int
 | 
						|
    ,OsztCsopId int
 | 
						|
    ,IsEgyediNap char(1)
 | 
						|
    ,TeremTobbOratLehetTartani char(1)
 | 
						|
  )
 | 
						|
	
 | 
						|
	SELECT
 | 
						|
		 @pIdoszakKezdete = nh.C_HETKEZDONAPJA
 | 
						|
		,@pIdoszakVege = nh.C_HETUTOLSONAPJA
 | 
						|
	FROM T_NAPTARIHET nh
 | 
						|
	WHERE nh.C_INTEZMENYID = @pIntezmenyId 
 | 
						|
    AND nh.C_TANEVID = @pTanevId 
 | 
						|
    AND nh.TOROLT = ''F''
 | 
						|
		AND nh.C_HETSORSZAMA = @pHetSorszam
 | 
						|
	
 | 
						|
	INSERT INTO #OrarendTable (
 | 
						|
		Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,HetSorszam,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
 | 
						|
		TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,CsengetesiRendID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
 | 
						|
		MegjelenesOka,TanarNev,TeremNev,TeremId,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,HelyettesitesId,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId,IsEgyediNap,TeremTobbOratLehetTartani)
 | 
						|
	EXEC sp_GetOrarend
 | 
						|
     @pIntezmenyId = @pIntezmenyId
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pIdoszakKezdete = @pIdoszakKezdete
 | 
						|
    ,@pIdoszakVege = @pIdoszakVege
 | 
						|
    ,@pTanarId = NULL
 | 
						|
    ,@pIsHelyettesitesNelkul  = 0
 | 
						|
    ,@pOsztalyCsoportId  =  @pOsztalyId
 | 
						|
    ,@pTanuloId = NULL
 | 
						|
    ,@pTantargyId  = NULL
 | 
						|
    ,@pTeremId = NULL
 | 
						|
    ,@pCsakOrarendiOrak  = @pCsakOrarendiOrak
 | 
						|
    ,@pIsNapirend = NULL'  
 | 
						|
 | 
						|
  SET @selectSql = N'
 | 
						|
	SELECT DISTINCT
 | 
						|
		 tmp.Id AS Id
 | 
						|
		,tmp.HetSorszam AS HetSzama
 | 
						|
		,tmp.Datum AS Datum
 | 
						|
		,tmp.HetNapja AS HetNapja
 | 
						|
		,tmp.Oraszam AS Oraszam
 | 
						|
		,tmp.OsztalyNev AS OsztalyNev
 | 
						|
		,tmp.TargyNev AS TargyNev
 | 
						|
		,ISNULL(tmp.HelyettesitoTanarNev, tmp.TanarNev) AS TanarNev
 | 
						|
		,tmp.OraKezdete AS OraKezdete
 | 
						|
		,tmp.OraVege AS OraVege
 | 
						|
		,tmp.CsengetesiRendID AS CsengetesiRend
 | 
						|
		,tmp.IsEgyediNap as IsEgyediNap
 | 
						|
	FROM #OrarendTable tmp
 | 
						|
  INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tmp.OsztCsopId = ocs.ID'
 | 
						|
 | 
						|
  SET @whereSql = N'
 | 
						|
  WHERE tmp.OraTipus = ''OrarendiOra''
 | 
						|
		AND tmp.HetSorszam = @pHetSorszam
 | 
						|
		AND tmp.OraVege < GETDATE()'
 | 
						|
 | 
						|
  IF @pFeladatKategoriaId IS NOT NULL BEGIN
 | 
						|
	  SET @whereSql += N'
 | 
						|
        AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
 | 
						|
  END
 | 
						|
 | 
						|
  IF @pFeladatEllatasiHelyId IS NOT NULL BEGIN
 | 
						|
    SET @whereSql += N'
 | 
						|
        AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId'
 | 
						|
  END
 | 
						|
 | 
						|
  SET @orderSql = N'
 | 
						|
    ORDER BY tmp.Datum ASC,tmp.Oraszam ASC'
 | 
						|
 | 
						|
 | 
						|
  SET @sql = @OrarendSql + @selectSql + @whereSql + @orderSql
 | 
						|
 | 
						|
  EXEC sp_executesql @sql, N'
 | 
						|
     @pIntezmenyId INT
 | 
						|
    ,@pTanevId INT 
 | 
						|
    ,@pIdoszakKezdete DATETIME
 | 
						|
    ,@pIdoszakVege DATETIME 
 | 
						|
    ,@pOsztalyId  INT 
 | 
						|
    ,@pCsakOrarendiOrak  BIT
 | 
						|
    ,@pHetSorszam INT
 | 
						|
    ,@pFeladatKategoriaId INT 
 | 
						|
    ,@pFeladatEllatasiHelyId INT'
 | 
						|
    ,@pIntezmenyId = @pIntezmenyId
 | 
						|
    ,@pTanevId = @pTanevId
 | 
						|
    ,@pIdoszakKezdete = @pIdoszakKezdete
 | 
						|
    ,@pIdoszakVege = @pIdoszakVege
 | 
						|
    ,@pOsztalyId  =  @pOsztalyId
 | 
						|
    ,@pCsakOrarendiOrak  = @pCsakOrarendiOrak
 | 
						|
    ,@pHetSorszam = @pHetSorszam
 | 
						|
    ,@pFeladatKategoriaId = @pFeladatKategoriaId
 | 
						|
    ,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
 | 
						|
END
 | 
						|
GO |