141 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS [dbo].[sp_HelyettesitesekKeresese]
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_HelyettesitesekKeresese]
 | 
						|
  @IntezmenyId int,
 | 
						|
  @TanevId int,
 | 
						|
  @pHelyettesitettTanarId int,
 | 
						|
  @pHelyettesitesKezdete datetime,
 | 
						|
  @pHelyettesitesVege datetime
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
SET NOCOUNT ON;
 | 
						|
  
 | 
						|
  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)
 | 
						|
    ,INDEX IX01 CLUSTERED (OraTipus, OraKezdete, OraVege)
 | 
						|
  )
 | 
						|
  
 | 
						|
  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 = @IntezmenyId
 | 
						|
    ,@pTanevId = @TanevId
 | 
						|
    ,@pIdoszakKezdete = @pHelyettesitesKezdete
 | 
						|
    ,@pIdoszakVege = @pHelyettesitesVege
 | 
						|
    ,@pTanarId = @pHelyettesitettTanarId
 | 
						|
    ,@pIsHelyettesitesNelkul  = 0
 | 
						|
    ,@pOsztalyCsoportId  =  NULL
 | 
						|
    ,@pTanuloId = NULL
 | 
						|
    ,@pTantargyId  = NULL
 | 
						|
    ,@pTeremId = NULL
 | 
						|
    ,@pCsakOrarendiOrak  = 0
 | 
						|
    ,@pIsNapirend = NULL
 | 
						|
    
 | 
						|
  SELECT
 | 
						|
     NEWID() as ID
 | 
						|
    ,Datum as HelyettesitettDatum
 | 
						|
    ,ORARENDIID as HelyettesitettOrarendiOraId
 | 
						|
    ,IIF(Oraszam = 0 AND CsengetesiRendOraID IS NULL, NULL, Oraszam) as HelyettesitettOraszam
 | 
						|
    ,CsengetesiRendOraID as HelyettesitettCsengetesiRendOraId
 | 
						|
    ,TantargyId as HelyettesitettTantargyID
 | 
						|
    ,Datum + CAST(CAST(OraKezdete AS time) AS datetime) AS HelyettesitettOraKezdete
 | 
						|
    ,Datum + CAST(CAST(OraVege AS time) AS datetime) AS HelyettesitettOraVege
 | 
						|
    ,TargyNev as HelyettesitettTantargy
 | 
						|
    ,ocs.C_NEV as HelyettesitettOsztaly
 | 
						|
    ,OsztCsopId as HelyettesitettOsztalyId
 | 
						|
    ,ocs.C_EVFOLYAMTIPUSA as HelyettesitettEvFolyamId
 | 
						|
    ,TeremNev as HelyettesitettTerem  
 | 
						|
    ,TeremId as HelyettesitettTeremId
 | 
						|
    ,HelyettesitesId as HelyettesitesId
 | 
						|
    ,IIF(Megtartott = 'F' AND ot.Id != ot.ORARENDIID, 'Elmaradt óra', HelyettesitoTanarNev) as HelyettesitoTanarNev
 | 
						|
    ,Megtartott as IsMegtartott
 | 
						|
    ,hi.C_HELYETTESITESTIPUS as HelyettesitesTipusId
 | 
						|
    ,IIF (ot.Id != ot.ORARENDIID, ot.Id, NULL) AS TanoraId
 | 
						|
  FROM #OrarendTable ot
 | 
						|
    JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = OsztCsopId AND ocs.TOROLT = 'F'
 | 
						|
    LEFT JOIN T_HELYETTESITESIIDOSZAK hi ON hi.ID = HelyettesitesId AND hi.TOROLT = 'F'
 | 
						|
  WHERE ot.Id = ot.ORARENDIID OR (ot.Megtartott ='F' AND ot.Id != ot.ORARENDIID)
 | 
						|
  ORDER BY HelyettesitettDatum, HelyettesitettOraszam
 | 
						|
  
 | 
						|
  DROP TABLE #OrarendTable
 | 
						|
 | 
						|
END
 |