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

90 lines
3.3 KiB
Transact-SQL

/* Megszámolja, hogy az egyes típusú értesítésekbõl hány darab volt, az elmúlt 24 órában*/
DROP PROCEDURE IF EXISTS uspGetNapiOsszefoglaloErtesites
GO
CREATE PROCEDURE [dbo].[uspGetNapiOsszefoglaloErtesites]
@pTanuloId int = null
,@pTanuloIdp uniqueIdentifier = null
AS BEGIN
SET NOCOUNT ON;
DECLARE @DATUM DATETIME
SET @DATUM = DATEADD(dd, -1, GETDATE())
IF (@pTanuloId is null) BEGIN
SELECT @pTanuloId = ID FROM T_Felhasznalo WHERE C_IDPEgyediAzonosito = @pTanuloIdp
END
CREATE TABLE #NapiErtesitesek (
ErtesitesTipusa nvarchar(100)
,ErtesitesekSzama int
);
INSERT INTO #NapiErtesitesek
SELECT 'Ertekelesek', COUNT(1)
FROM T_TANULOERTEKELES te
WHERE te.TOROLT = 'F'
AND te.CREATED >= @DATUM
AND te.C_TANULOID = @pTanuloId
INSERT INTO #NapiErtesitesek
SELECT 'Mulasztasok', COUNT(1)
FROM T_TANULOMULASZTAS mul
WHERE mul.TOROLT = 'F'
AND mul.C_TIPUS IN (1499, 1500)
AND mul.C_ORATANULOIID = @pTanuloId
AND mul.CREATED >= @DATUM
INSERT INTO #NapiErtesitesek
SELECT 'Feljegyzesek', COUNT(1)
FROM T_TANULOESEMENY tes
INNER JOIN T_TANULO_TANULOESEMENY ttes ON tes.ID = ttes.C_TANULOESEMENYID
WHERE tes.C_TIPUS != 5483
AND (tes.C_MEGJEGYZES <> 'Rendszerüzenet' OR tes.C_MEGJEGYZES is NULL)
AND tes.TOROLT = 'F'
AND ttes.C_TANULOID = @pTanuloId
AND tes.CREATED >= @DATUM
INSERT INTO #NapiErtesitesek
SELECT 'HaziFeladatok', COUNT(1)
FROM T_DKT_FELADAT hf
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = hf.C_OSZTALYCSOPORTID
AND ((tcs.C_BELEPESDATUM <= hf.C_BEADASHATARIDO
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > hf.C_BEADASHATARIDO)) OR hf.C_BEADASHATARIDO IS NULL)
AND tcs.C_BELEPESDATUM < GETDATE() AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND tcs.TOROLT = 'F'
WHERE hf.TOROLT = 'F'
AND tcs.C_TANULOID = @pTanuloId
AND (hf.C_LATHATOSAGIDOPONT IS NOT NULL
AND CAST(hf.C_LATHATOSAGIDOPONT AS DATE) <= DATEADD(hh, -7, GETDATE()))
AND hf.CREATED >= @DATUM
INSERT INTO #NapiErtesitesek
SELECT 'Uzenetek', count(1)
FROM T_TANULOESEMENY tes
INNER JOIN T_FELHASZNALO fh ON fh.ID = tes.C_FELJEGYZOID AND fh.TOROLT = 'F'
INNER JOIN T_TANULO_TANULOESEMENY tte ON tte.C_TANULOESEMENYID = tes.ID
WHERE fh.C_NYOMTATASINEV = 'Rendszerüzenet'
AND tes.C_TIPUS = 5482
AND tes.TOROLT = 'F'
AND EXISTS (SELECT 1 FROM T_TANULO_TANULOESEMENY ttes WHERE tes.ID = ttes.C_TANULOESEMENYID)
AND GETDATE() BETWEEN tes.C_KEZDETE AND tes.C_VEGE AND tes.CREATED >= @DATUM
AND tte.C_TANULOID = @pTanuloId
INSERT INTO #NapiErtesitesek
SELECT 'BejelentettSzamonkeresek',COUNT(*)
FROM T_SZAMONKERESELOREJELZES szk
INNER JOIN T_ORARENDIORA oo ON oo.C_ORARENDIORAGROUPID = szk.C_ORARENDIORAGROUPID
AND szk.C_SZAMONKERESDATUMA >= oo.C_ORAERVENYESSEGKEZDETE AND szk.C_SZAMONKERESDATUMA < oo.C_ORAERVENYESSEGVEGE
AND oo.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
AND (tcs.C_BELEPESDATUM <= szk.C_SZAMONKERESDATUMA AND (tcs.C_KILEPESDATUM > szk.C_SZAMONKERESDATUMA OR tcs.C_KILEPESDATUM IS NULL))
AND tcs.TOROLT = 'F'
WHERE tcs.C_TANULOID = @pTanuloId
AND szk.TOROLT = 'F'
AND szk.CREATED >= @DATUM
SELECT * FROM #NapiErtesitesek
END
GO