135 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
IF OBJECT_ID('dbo.sp_GetNemNaplozottOrarendiOrak') IS NOT NULL BEGIN
 | 
						||
  DROP PROCEDURE dbo.sp_GetNemNaplozottOrarendiOrak
 | 
						||
END
 | 
						||
GO
 | 
						||
 | 
						||
CREATE PROCEDURE [dbo].[sp_GetNemNaplozottOrarendiOrak]
 | 
						||
	@IntezmenyId int,
 | 
						||
	@TanevId int,
 | 
						||
	@IdoszakKezdete datetime,
 | 
						||
	@IdoszakVege datetime,
 | 
						||
	@TanarId int,
 | 
						||
	@OsztalyCsoportId int,
 | 
						||
	@TantargyId int
 | 
						||
AS
 | 
						||
BEGIN
 | 
						||
	SET NOCOUNT ON;
 | 
						||
	
 | 
						||
	DECLARE @CsakOrarendiOrak bit = 0;
 | 
						||
	DECLARE @OrarendTable TABLE  (
 | 
						||
		Id int
 | 
						||
		,ORARENDIID INT
 | 
						||
        ,Datum datetime
 | 
						||
		,Bontott char(1)
 | 
						||
		,Hetirend int
 | 
						||
		,HetNapja int
 | 
						||
		,ErvenyessegKezdete datetime
 | 
						||
		,ErvenyessegVege datetime
 | 
						||
		,OraKezdete datetime
 | 
						||
		,OraVege datetime
 | 
						||
		,Oraszam int
 | 
						||
		,TargyNev nvarchar(300)
 | 
						||
		,TargyNevForMobile nvarchar(300)
 | 
						||
		,TargykategoriaID int
 | 
						||
		,Megtartott char(1)
 | 
						||
		,CsengetesiRendOraID 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
 | 
						||
		,HelyettesitesId int
 | 
						||
		,AdminAltalKiirt  char(1)
 | 
						||
		,GroupId int
 | 
						||
		,Tema nvarchar(max)
 | 
						||
		,TantargyId int
 | 
						||
		,OsztCsopId int
 | 
						||
   )
 | 
						||
 | 
						||
	insert into @OrarendTable (
 | 
						||
		Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
 | 
						||
		TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
 | 
						||
		MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId)
 | 
						||
	exec sp_GetOrarend @IntezmenyId,@TanevId,@IdoszakKezdete,@IdoszakVege,@TanarId,@OsztalyCsoportId,null,@CsakOrarendiOrak,0
 | 
						||
	
 | 
						||
	insert into @OrarendTable (
 | 
						||
		Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
 | 
						||
		TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
 | 
						||
		MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId)
 | 
						||
	exec sp_GetOrarend @IntezmenyId,@TanevId,@IdoszakKezdete,@IdoszakVege,@TanarId,@OsztalyCsoportId,null,@CsakOrarendiOrak,1
 | 
						||
	
 | 
						||
	declare  @tanevrendTable table (TrId int, Datum datetime, NapTipus int, OsszesOsztaly char(1), OrarendiNap char(1))
 | 
						||
	insert into @tanevrendTable
 | 
						||
		select
 | 
						||
			tr.ID, tr.C_DATUM, tr.C_NAPTIPUSA, tr.C_OSSZESCSOPORTRAVONATKOZIK, case when tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' then tr.C_ORARENDINAP else nap.C_ORARENDINAP end
 | 
						||
		from T_TANEVRENDJE_OSSZES tr
 | 
						||
		join T_NAPTARINAP nap on nap.C_NAPDATUMA = tr.C_DATUM and nap.C_TANEVID = tr.C_TANEVID and nap.C_INTEZMENYID = tr.C_INTEZMENYID
 | 
						||
		where
 | 
						||
			tr.C_INTEZMENYID =  @IntezmenyId and tr.C_TANEVID = @TanevId and C_DATUM between @IdoszakKezdete and @IdoszakVege and tr.TOROLT = 'F' and tr.C_AKTIV = 'T'
 | 
						||
 | 
						||
/*<EFBFBD>sszes <20>rarendi<64>ra*/
 | 
						||
		select distinct
 | 
						||
			Id, ORARENDIID, Bontott, Hetirend, HetNapja, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege, Oraszam, TargyNev, TargyNevForMobile,
 | 
						||
				TargykategoriaID, Megtartott, CsengetesiRendOraID, MaxNapiOraszam, OsztalyNev, MegjelenesOka, TanarNev, TeremNev,
 | 
						||
				OraTipus, Hianyzas, Keses, Ures, HelyettesitoTanarID, HelyettesitoTanarNev, TanarID, HelyettesitesId, AdminAltalKiirt, GroupId, Tema, TantargyId,
 | 
						||
				OsztCsopId, case when tmp.HelyettesitoTanarID is not null then tmp.TanarNev else null end as HelyettesitettPedagogusNev
 | 
						||
			from @OrarendTable tmp
 | 
						||
			where
 | 
						||
				tmp.OraTipus = 'OrarendiOra' and (@TantargyId is null or tmp.TantargyId = @TantargyId)
 | 
						||
				and cast(tmp.OraKezdete as date) between tmp.ErvenyessegKezdete and tmp.ErvenyessegVege
 | 
						||
except /*Glob<EFBFBD>l tilt<6C>s*/
 | 
						||
		select distinct
 | 
						||
			Id,ORARENDIID ,Bontott,Hetirend ,HetNapja ,ErvenyessegKezdete ,ErvenyessegVege ,OraKezdete ,OraVege ,Oraszam ,TargyNev ,TargyNevForMobile ,
 | 
						||
			TargykategoriaID ,Megtartott ,CsengetesiRendOraID ,MaxNapiOraszam ,OsztalyNev  ,MegjelenesOka ,TanarNev ,TeremNev ,
 | 
						||
			OraTipus ,Hianyzas ,Keses ,Ures ,HelyettesitoTanarID ,HelyettesitoTanarNev ,TanarID ,HelyettesitesId ,AdminAltalKiirt ,GroupId ,Tema ,TantargyId ,
 | 
						||
			OsztCsopId, case when tmp.HelyettesitoTanarID is not null then tmp.TanarNev else null end as HelyettesitettPedagogusNev
 | 
						||
		from @OrarendTable tmp
 | 
						||
		join @tanevrendTable tr on tr.Datum = cast(tmp.OraKezdete as date) and tr.OsszesOsztaly = 'T' and tr.OrarendiNap = 'F'
 | 
						||
		where
 | 
						||
			tmp.OraTipus = 'OrarendiOra' and (@TantargyId is null or tmp.TantargyId = @TantargyId)
 | 
						||
			and cast(tmp.OraKezdete as date) between tmp.ErvenyessegKezdete and tmp.ErvenyessegVege
 | 
						||
union /*Glob<EFBFBD>l enged<65>lyez<65>s*/
 | 
						||
		select distinct
 | 
						||
			Id,ORARENDIID ,Bontott,Hetirend ,HetNapja ,ErvenyessegKezdete ,ErvenyessegVege ,OraKezdete ,OraVege ,Oraszam ,TargyNev ,TargyNevForMobile ,
 | 
						||
			TargykategoriaID ,Megtartott ,CsengetesiRendOraID ,MaxNapiOraszam ,OsztalyNev  ,MegjelenesOka ,TanarNev ,TeremNev ,
 | 
						||
			OraTipus ,Hianyzas ,Keses ,Ures ,HelyettesitoTanarID ,HelyettesitoTanarNev ,TanarID ,HelyettesitesId ,AdminAltalKiirt ,GroupId ,Tema ,TantargyId ,
 | 
						||
			OsztCsopId, case when tmp.HelyettesitoTanarID is not null then tmp.TanarNev else null end as HelyettesitettPedagogusNev
 | 
						||
		from @OrarendTable tmp
 | 
						||
		join @tanevrendTable tr on tr.Datum = cast(tmp.OraKezdete as date) and tr.OsszesOsztaly = 'T' and tr.OrarendiNap = 'T'
 | 
						||
		where
 | 
						||
			tmp.OraTipus = 'OrarendiOra' and (@TantargyId is null or tmp.TantargyId = @TantargyId)
 | 
						||
			and cast(tmp.OraKezdete as date) between tmp.ErvenyessegKezdete and tmp.ErvenyessegVege
 | 
						||
except /*Oszt<EFBFBD>ly tilt<6C>s*/
 | 
						||
		select distinct
 | 
						||
			Id,ORARENDIID ,Bontott,Hetirend ,HetNapja ,ErvenyessegKezdete ,ErvenyessegVege ,OraKezdete ,OraVege ,Oraszam ,TargyNev ,TargyNevForMobile ,
 | 
						||
			TargykategoriaID ,Megtartott ,CsengetesiRendOraID ,MaxNapiOraszam ,OsztalyNev ,MegjelenesOka ,TanarNev ,TeremNev ,
 | 
						||
			OraTipus ,Hianyzas ,Keses ,Ures ,HelyettesitoTanarID ,HelyettesitoTanarNev ,TanarID ,HelyettesitesId ,AdminAltalKiirt ,GroupId ,Tema ,TantargyId ,
 | 
						||
			OsztCsopId, case when tmp.HelyettesitoTanarID is not null then tmp.TanarNev else null end as HelyettesitettPedagogusNev
 | 
						||
		from @OrarendTable tmp
 | 
						||
		join @tanevrendTable tr on tr.Datum = cast(tmp.OraKezdete as date) and tr.OsszesOsztaly = 'F' and tr.OrarendiNap = 'F'
 | 
						||
		join T_OSZTALYCSOPORT_TANEVRENDJE ocstr on ocstr.C_OSZTALYCSOPORTID = tmp.OsztCsopId and ocstr.C_TANEVRENDJEID = tr.TrId
 | 
						||
		where
 | 
						||
			tmp.OraTipus = 'OrarendiOra' and (@TantargyId is null or tmp.TantargyId = @TantargyId)
 | 
						||
			and cast(tmp.OraKezdete as date) between tmp.ErvenyessegKezdete and tmp.ErvenyessegVege
 | 
						||
union /*Oszt<EFBFBD>ly enged<65>lyez<65>s*/
 | 
						||
		select distinct
 | 
						||
			Id,ORARENDIID ,Bontott,Hetirend ,HetNapja ,ErvenyessegKezdete ,ErvenyessegVege ,OraKezdete ,OraVege ,Oraszam ,TargyNev ,TargyNevForMobile ,
 | 
						||
			TargykategoriaID ,Megtartott ,CsengetesiRendOraID ,MaxNapiOraszam ,OsztalyNev  ,MegjelenesOka ,TanarNev ,TeremNev ,
 | 
						||
			OraTipus ,Hianyzas ,Keses ,Ures ,HelyettesitoTanarID ,HelyettesitoTanarNev ,TanarID ,HelyettesitesId ,AdminAltalKiirt ,GroupId ,Tema ,TantargyId ,
 | 
						||
			OsztCsopId, case when tmp.HelyettesitoTanarID is not null then tmp.TanarNev else null end as HelyettesitettPedagogusNev
 | 
						||
		from @OrarendTable tmp
 | 
						||
		join @tanevrendTable tr on tr.Datum = cast(tmp.OraKezdete as date) and tr.OsszesOsztaly = 'F' and tr.OrarendiNap = 'T'
 | 
						||
		join T_OSZTALYCSOPORT_TANEVRENDJE ocstr on ocstr.C_OSZTALYCSOPORTID = tmp.OsztCsopId and ocstr.C_TANEVRENDJEID = tr.TrId
 | 
						||
		where
 | 
						||
			tmp.OraTipus = 'OrarendiOra' and (@TantargyId is null or tmp.TantargyId = @TantargyId)
 | 
						||
			and cast(tmp.OraKezdete as date) between tmp.ErvenyessegKezdete and tmp.ErvenyessegVege
 | 
						||
 | 
						||
END |