230 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			230 lines
		
	
	
		
			5.5 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;
 | 
						|
		
 | 
						|
		DECLARE @HaziFeladatok TABLE (
 | 
						|
				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)
 | 
						|
				,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 
 | 
						|
				,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
 | 
						|
				  ,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
 | 
						|
 | 
						|
		DECLARE @orarendiOrakTanorak TABLE (
 | 
						|
				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)
 | 
						|
				,TanarID int
 | 
						|
				,AdminAltalKiirt char(1)
 | 
						|
				,GroupId int
 | 
						|
				,Tema nvarchar(max)
 | 
						|
				,TantargyId int
 | 
						|
				,OsztCsopId int  
 | 
						|
	)
 | 
						|
		BEGIN
 | 
						|
			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 
 | 
						|
				,TanarID 
 | 
						|
				,AdminAltalKiirt 
 | 
						|
				,GroupId 
 | 
						|
				,Tema 
 | 
						|
				,TantargyId 
 | 
						|
				,OsztCsopId 
 | 
						|
			) EXEC dbo.sp_GetOrarend @IntezmenyId, @TanevId, @IdoszakKezdete, @IdoszakVege, @TanarId, null, null, 0, 0 --utolsó paraméter: egyelőre csak órarendi (csengetési rendhez kötött) órák
 | 
						|
		END
 | 
						|
 | 
						|
	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 |