DROP PROCEDURE IF EXISTS uspGetNemMegtartottOrakSzamaPerHet GO CREATE PROCEDURE [uspGetNemMegtartottOrakSzamaPerHet] @pFeladatKategoriaId int = NULL, @pOsztalyId int, @pFeladatEllatasiHelyId int = NULL, @pIntezmenyId int, @pTanevId int, @pFelhasznaloId int AS BEGIN SET NOCOUNT ON; DECLARE @pCsakOrarendiOrak BIT = 0 DECLARE @pIdoszakKezdete DATETIME = (SELECT MIN(C_HETKEZDONAPJA) FROM T_NAPTARIHET nh WHERE nh.C_INTEZMENYID = @pIntezmenyId AND nh.C_TANEVID = @pTanevId AND nh.TOROLT = 'F') DECLARE @pIdoszakVege DATETIME = GETDATE() CREATE TABLE #OrarendTable ( Id int ,HetSorszam int ,OraVege datetime ,OraTipus nvarchar(200) ,OsztCsopId int ) INSERT INTO #OrarendTable ( Id ,HetSorszam ,OraVege ,OraTipus ,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 ,@pOszlopok = N'Id,HetSorszam,OraVege,OraTipus,OsztCsopId' SELECT nh.C_HETSORSZAMA AS HetSorszam ,ISNULL(nemBeirt.NemNaplozottOrakSzama, 0) AS NemNaplozottOrakSzama ,@pOsztalyId AS OsztalyID ,ISNULL(@pFeladatKategoriaId, '') AS feladatKategoriaId ,ISNULL(@pFeladatEllatasiHelyId, '') AS feladatEllatasiHelyId ,ell.EllenorzesId ,ISNULL(ell.EllenorzesDatuma, GETDATE()) AS EllenorzesDatuma ,ISNULL(ell.EllenorizteId, @pFelhasznaloId) AS EllenorizteId ,ISNULL(ell.Ellenorizte, lekerdezo.C_NYOMTATASINEV) AS Ellenorizte ,ell.EllenorzesMegjegyzes FROM T_NAPTARIHET nh LEFT JOIN ( SELECT tmp.HetSorszam AS HetSorszam ,count(tmp.Id) AS NemNaplozottOrakSzama FROM #OrarendTable tmp INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tmp.OsztCsopId = ocs.ID WHERE tmp.OraTipus = 'OrarendiOra' AND tmp.OraVege < GETDATE() AND (@pFeladatKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId) AND (@pFeladatEllatasiHelyId IS NULL OR ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId) GROUP BY tmp.HetSorszam ) nemBeirt ON nemBeirt.HetSorszam = nh.C_HETSORSZAMA LEFT JOIN ( SELECT ne.ID AS EllenorzesId ,ne.C_ELLENORZESDATUMA AS EllenorzesDatuma ,ne.C_ELLENORZOSZEMELYID AS EllenorizteId ,f.C_NYOMTATASINEV AS Ellenorizte ,ne.C_ESZREVETEL AS EllenorzesMegjegyzes ,ne.C_HETSORSZAMA FROM T_NAPLOELLENORZES_OSSZES ne LEFT JOIN T_FELHASZNALO f ON f.ID = ne.C_ELLENORZOSZEMELYID AND f.TOROLT = 'F' WHERE ne.C_TANEVID = @pTanevId AND ne.C_OSZTALYID = @pOsztalyId AND ne.TOROLT = 'F' ) ell ON ell.C_HETSORSZAMA = nh.C_HETSORSZAMA LEFT JOIN T_FELHASZNALO lekerdezo ON lekerdezo.ID = @pFelhasznaloId AND lekerdezo.TOROLT = 'F' WHERE nh.C_HETIREND IS NOT NULL AND nh.TOROLT = 'F' AND nh.C_TANEVID = @pTanevId AND nh.C_HETKEZDONAPJA < GETDATE() ORDER BY nh.C_HETSORSZAMA END GO