DROP PROCEDURE IF EXISTS sp_GetNemMegtartottOrakSzamaPerHet GO CREATE PROCEDURE sp_GetNemMegtartottOrakSzamaPerHet @pFeladatKategoriaId INT = NULL, @pOsztalyId INT, @pFeladatEllatasiHelyId INT = NULL, @pIntezmenyId INT, @pTanevId INT AS BEGIN SET NOCOUNT ON; DECLARE @pCsakOrarendiOrak BIT = 0; DECLARE @pIdoszakKezdete DATETIME; DECLARE @pIdoszakVege DATETIME = GETDATE() DECLARE @sql nvarchar(max) ,@OrarendSql nvarchar(max) ,@selectSql nvarchar(max) ,@whereSql nvarchar(max) ,@orderSql nvarchar(max) = '' SET @OrarendSql = N' 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 ) SELECT @pIdoszakKezdete = nh.C_HETKEZDONAPJA FROM T_NAPTARIHET nh WHERE nh.C_INTEZMENYID = @pIntezmenyId AND nh.C_TANEVID = @pTanevId AND nh.TOROLT = ''F'' AND nh.C_HETSORSZAMA = 1 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) EXEC sp_GetOrarend @pIntezmenyId = @pIntezmenyId ,@pTanevId = @pTanevId ,@pIdoszakKezdete = @pIdoszakKezdete ,@pIdoszakVege = @pIdoszakVege ,@pTanarId = NULL ,@pIsHelyettesitesNelkul = 0 ,@pOsztalyCsoportId = @pOsztalyId ,@pTanuloId = NULL ,@pTantargyId = NULL ,@pTeremId = NULL ,@pCsakOrarendiOrak = @pCsakOrarendiOrak ,@pIsNapirend = NULL' SET @selectSql = N' SELECT DISTINCT tmp.HetSorszam AS HetSorszam ,COUNT(tmp.id) AS NemNaplozottOrakSzama ,@pOsztalyId AS OsztalyID ,ISNULL(@pFeladatKategoriaId, '''') as feladatKategoriaId ,ISNULL(@pFeladatEllatasiHelyId, '''') as feladatEllatasiHelyId FROM #OrarendTable tmp INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tmp.OsztCsopId = ocs.ID' SET @whereSql = N' WHERE tmp.OraTipus = ''OrarendiOra'' AND tmp.OraVege < GETDATE()' IF @pFeladatKategoriaId IS NOT NULL BEGIN SET @whereSql += N' AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId' END IF @pFeladatEllatasiHelyId IS NOT NULL BEGIN SET @whereSql += N' AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId' END SET @orderSql = N' GROUP BY tmp.HetSorszam ORDER BY tmp.HetSorszam' SET @sql = @OrarendSql + @selectSql + @whereSql + @orderSql EXEC sp_executesql @sql, N' @pIntezmenyId INT ,@pTanevId INT ,@pIdoszakKezdete DATETIME ,@pIdoszakVege DATETIME ,@pOsztalyId INT ,@pCsakOrarendiOrak BIT ,@pFeladatKategoriaId INT ,@pFeladatEllatasiHelyId INT' ,@pIntezmenyId = @pIntezmenyId ,@pTanevId = @pTanevId ,@pIdoszakKezdete = @pIdoszakKezdete ,@pIdoszakVege = @pIdoszakVege ,@pOsztalyId = @pOsztalyId ,@pCsakOrarendiOrak = @pCsakOrarendiOrak ,@pFeladatKategoriaId = @pFeladatKategoriaId ,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId END GO