SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS sp_GetDokumentumHelyettesitesekByDateInterval GO CREATE PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval @tanevId INT ,@intezmenyId INT ,@helyettesitesListaFormatumId INT = 0 --0 helyettesitett, 1 helyettesito ,@idoszakKezdete DATE ,@idoszakVege DATE AS BEGIN SET NOCOUNT ON; CREATE TABLE #OrarendAdatok ( 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 ) INSERT INTO #OrarendAdatok ( 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 ) EXEC dbo.sp_GetOrarend @pIntezmenyId = @IntezmenyId ,@pTanevId = @TanevId ,@pIdoszakKezdete = @IdoszakKezdete ,@pIdoszakVege = @IdoszakVege ,@pTanarId = NULL ,@pIsHelyettesitesNelkul = 0 ,@pOsztalyCsoportId = NULL ,@pTanuloId = NULL ,@pTantargyId = NULL ,@pTeremId = NULL ,@pCsakOrarendiOrak = 0 ,@pIsNapirend = NULL SELECT hely.HelyettesitoTanarID AS HelyettesitoId ,hely.TanarID AS HelyettesitettId ,dbo.fnGetDokumentumDatumFormatum(hely.Datum) AS HetNapja ,IIF(hely.Oraszam IS NOT NULL,CONVERT(NVARCHAR(5), hely.Oraszam) + '.', CONCAT(CONVERT(NVARCHAR(5), hely.OraKezdete, 108), '-', CONVERT(NVARCHAR(5), hely.OraVege, 108))) AS Oraszam ,IIF(hely.HelyettesitoTanarNev IS NULL , 'Elmaradt óra' ,hely.HelyettesitoTanarNev) AS HelyettesitoNeve ,hely.TanarNev AS HelyettesitettNeve ,hely.OsztalyNev AS OsztalyCsoportNev ,tantargy.C_NEV AS TantargyNev ,hely.TeremNev AS TeremNev ,HelyettesitesTipusa.C_NAME AS HelyettesitesTipusa ,helyettesito.C_OKTATASIAZONOSITO AS HelyettesitoOktatasiAzon ,helyettesitesett.C_OKTATASIAZONOSITO AS HelyettesitettOktatasiAzon ,Rendez = CASE ISNUMERIC(hely.Oraszam) WHEN 1 THEN CAST(hely.Oraszam AS INT) ELSE 999999999999999 END INTO #adatok FROM #OrarendAdatok hely LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = hely.TantargyId AND tantargy.TOROLT = 'F' LEFT JOIN T_HELYETTESITESIIDOSZAK hi ON hi.ID = hely.HelyettesitesId and hi.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = hely.HelyettesitoTanarID AND helyettesito.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES helyettesitesett ON helyettesitesett.ID = hely.TanarID AND helyettesitesett.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HelyettesitesTipusa ON HelyettesitesTipusa.ID = hi.C_HELYETTESITESTIPUS AND HelyettesitesTipusa.C_TANEVID = @TanevId WHERE hely.HelyettesitoTanarID IS NOT NULL OR hely.Megtartott = 'F' ORDER BY hely.HetNapja, hely.Oraszam SELECT DISTINCT HetNapja FROM #adatok IF @helyettesitesListaFormatumId = 0 BEGIN SELECT DISTINCT HelyettesitettId PedagogusId, HelyettesitettNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitettNeve SELECT * FROM #adatok ORDER BY HetNapja, Rendez, Oraszam END ELSE BEGIN SELECT DISTINCT HelyettesitoId PedagogusId, HelyettesitoNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitoNeve SELECT * FROM #adatok ORDER BY HetNapja, Rendez, Oraszam END END GO