kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetNemMegtartottOrakSzamaPerHet.sql
2024-03-13 00:33:46 +01:00

99 lines
No EOL
3.1 KiB
Transact-SQL

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