261 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			261 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- Author:		Dőrr Tamás
 | 
						|
-- Create date: 2017.12.14.
 | 
						|
-- Description:	-
 | 
						|
-- =============================================
 | 
						|
IF OBJECT_ID('dbo.sp_GetHazifeladatOrarend') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE dbo.sp_GetHazifeladatOrarend
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_GetHazifeladatOrarend]
 | 
						|
	@IntezmenyId int,
 | 
						|
	@TanevId int,
 | 
						|
	@IdoszakKezdete datetime,
 | 
						|
	@IdoszakVege datetime,
 | 
						|
	@TanarId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
		
 | 
						|
  CREATE TABLE #HaziFeladatok (
 | 
						|
		 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)
 | 
						|
		,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
 | 
						|
		,HaziFeladatSzoveg nvarchar(max)
 | 
						|
	)
 | 
						|
	
 | 
						|
  INSERT INTO #HaziFeladatok (
 | 
						|
     Id 
 | 
						|
    ,ORARENDIID 
 | 
						|
    ,Datum 
 | 
						|
    ,Bontott 
 | 
						|
    ,Hetirend 
 | 
						|
    ,HetNapja 
 | 
						|
    ,HetSorszam 
 | 
						|
    ,ErvenyessegKezdete 
 | 
						|
    ,ErvenyessegVege 
 | 
						|
    ,OraKezdete 
 | 
						|
    ,OraVege 
 | 
						|
    ,Oraszam 
 | 
						|
    ,TargyNev 
 | 
						|
    ,TargyNevForMobile 
 | 
						|
    ,TargykategoriaID 
 | 
						|
    ,Megtartott 
 | 
						|
    ,CsengetesiRendOraID 
 | 
						|
    ,CsengetesiRendID 
 | 
						|
    ,MaxNapiOraszam 
 | 
						|
    ,OsztalyNev 
 | 
						|
    ,TanevRendOsztalyCsoportId 
 | 
						|
    ,MegjelenesOka 
 | 
						|
    ,TanarNev 
 | 
						|
    ,TeremNev 
 | 
						|
    ,OraTipus 
 | 
						|
    ,Hianyzas 
 | 
						|
    ,Keses 
 | 
						|
    ,Ures 
 | 
						|
    ,HelyettesitoTanarID 
 | 
						|
    ,HelyettesitoTanarNev
 | 
						|
	,HelyettesitesId
 | 
						|
    ,TanarID 
 | 
						|
    ,AdminAltalKiirt 
 | 
						|
    ,GroupId 
 | 
						|
    ,Tema 
 | 
						|
    ,TantargyId 
 | 
						|
    ,OsztCsopId
 | 
						|
    ,HaziFeladatSzoveg
 | 
						|
	) SELECT h.ID Id
 | 
						|
    ,null ORARENDIID
 | 
						|
    ,h.C_FELADASDATUMA Datum
 | 
						|
    ,'F' Bontott
 | 
						|
    ,null Hetirend --minden héten?
 | 
						|
    ,null HetNapja
 | 
						|
    ,NULL HetSorszam
 | 
						|
    ,h.C_FELADASDATUMA ErvenyessegKezdete
 | 
						|
    ,h.C_HATARIDO ErvenyessegVege
 | 
						|
    ,h.C_FELADASDATUMA OraKezdete
 | 
						|
    ,h.C_FELADASDATUMA OraVege
 | 
						|
    ,h.C_ORASZAM Oraszam
 | 
						|
    ,ISNULL(t.C_ROVIDNEV, t.C_NEV) TargyNev
 | 
						|
    ,COALESCE(t.C_ROVIDNEV, t.C_NEV) TargyNevForMobile
 | 
						|
    ,NULL TargykategoriaID
 | 
						|
    ,NULL Megtartott
 | 
						|
    ,NULL CsengetesiRendOraID
 | 
						|
    ,NULL CsengetesiRendID
 | 
						|
    ,NULL MaxNapiOraszam
 | 
						|
    ,ocs.C_NEV OsztalyNev
 | 
						|
    ,NULL TanevRendOsztalyCsoportId
 | 
						|
    ,NULL MegjelenesOka
 | 
						|
    ,f.C_NYOMTATASINEV TanarNev
 | 
						|
    ,NULL TeremNev
 | 
						|
    ,'HaziFeladat' OraTipus
 | 
						|
    ,NULL Hianyzas
 | 
						|
    ,NULL Keses
 | 
						|
    ,NULL Ures
 | 
						|
    ,NULL HelyettesitoTanarID
 | 
						|
    ,NULL HelyettesitoTanarNev
 | 
						|
	,NULL HelyettesitesId
 | 
						|
    ,f.ID TanarID
 | 
						|
    ,NULL AdminAltalKiirt
 | 
						|
    ,NULL GroupId
 | 
						|
    ,NULL Tema
 | 
						|
    ,h.C_TANTARGYID TantargyId
 | 
						|
    ,h.C_OSZTALYCSOPORTID OsztCsopId
 | 
						|
    ,h.C_FELADATSZOVEGE HaziFeladatSzoveg
 | 
						|
  FROM T_HAZIFELADATOK h
 | 
						|
    INNER JOIN T_TANTARGY t ON t.id = h.C_TANTARGYID
 | 
						|
    INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.id = h.C_OSZTALYCSOPORTID
 | 
						|
    INNER JOIN T_FELHASZNALO f ON f.id = h.C_ROGZITOID
 | 
						|
  WHERE f.id = @TanarId
 | 
						|
 | 
						|
  CREATE TABLE #OrarendiOrakTanorak (
 | 
						|
		 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)
 | 
						|
    ,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)
 | 
						|
    ,KozpontiOraGroupId uniqueidentifier NULL
 | 
						|
	,KozpontilagToroltOraGroupId uniqueidentifier NULL
 | 
						|
	)		
 | 
						|
	
 | 
						|
  INSERT INTO #orarendiOrakTanorak (
 | 
						|
     Id 
 | 
						|
    ,ORARENDIID 
 | 
						|
    ,Datum 
 | 
						|
    ,Bontott 
 | 
						|
    ,Hetirend 
 | 
						|
    ,HetNapja 
 | 
						|
    ,HetSorszam 
 | 
						|
    ,ErvenyessegKezdete 
 | 
						|
    ,ErvenyessegVege 
 | 
						|
    ,OraKezdete 
 | 
						|
    ,OraVege 
 | 
						|
    ,Oraszam 
 | 
						|
    ,TargyNev 
 | 
						|
    ,TargyNevForMobile 
 | 
						|
    ,TargykategoriaID 
 | 
						|
    ,Megtartott 
 | 
						|
    ,CsengetesiRendOraID 
 | 
						|
    ,CsengetesiRendID 
 | 
						|
    ,MaxNapiOraszam 
 | 
						|
    ,OsztalyNev 
 | 
						|
    ,TanevRendOsztalyCsoportId 
 | 
						|
    ,MegjelenesOka 
 | 
						|
    ,TanarNev 
 | 
						|
    ,TeremNev 
 | 
						|
    ,OraTipus 
 | 
						|
    ,Hianyzas 
 | 
						|
    ,Keses 
 | 
						|
    ,Ures 
 | 
						|
    ,HelyettesitoTanarID 
 | 
						|
    ,HelyettesitoTanarNev
 | 
						|
	,HelyettesitesId
 | 
						|
    ,TanarID 
 | 
						|
    ,AdminAltalKiirt 
 | 
						|
    ,GroupId 
 | 
						|
    ,Tema 
 | 
						|
    ,TantargyId 
 | 
						|
    ,OsztCsopId 
 | 
						|
    ,IsEgyediNap
 | 
						|
    ,TeremTobbOratLehetTartani
 | 
						|
    ,KozpontiOraGroupId
 | 
						|
    ,KozpontilagToroltOraGroupId
 | 
						|
  )
 | 
						|
  
 | 
						|
  EXEC dbo.sp_GetOrarend
 | 
						|
     @pIntezmenyId = @IntezmenyId
 | 
						|
    ,@pTanevId = @TanevId
 | 
						|
    ,@pIdoszakKezdete = @IdoszakKezdete
 | 
						|
    ,@pIdoszakVege = @IdoszakVege
 | 
						|
    ,@pTanarId = @TanarId
 | 
						|
    ,@pIsHelyettesitesNelkul  = 0
 | 
						|
    ,@pOsztalyCsoportId = NULL
 | 
						|
    ,@pTanuloId = NULL
 | 
						|
    ,@pTantargyId = NULL
 | 
						|
    ,@pTeremId = NULL
 | 
						|
    ,@pCsakOrarendiOrak  = 0
 | 
						|
    ,@pIsNapirend = 0  --utolsó paraméter: egyelőre csak órarendi (csengetési rendhez kötött) órák
 | 
						|
 | 
						|
	INSERT INTO #HaziFeladatok
 | 
						|
  SELECT * ,NULL HaziFeladatSzoveg
 | 
						|
  FROM #orarendiOrakTanorak oot
 | 
						|
  WHERE NOT EXISTS (
 | 
						|
    SELECT 1 
 | 
						|
    FROM #HaziFeladatok h 
 | 
						|
    WHERE h.TanarID = oot.TanarID 
 | 
						|
      AND h.TantargyId = oot.TantargyId 
 | 
						|
      AND h.OsztCsopId = oot.OsztCsopId
 | 
						|
			AND h.Oraszam = oot.Oraszam)
 | 
						|
                               
 | 
						|
                               
 | 
						|
	
 | 
						|
	SELECT * FROM #HaziFeladatok
 | 
						|
END |