kreta/Kreta.DataAccess.Migrations/DBScripts/Dashboard/InsertRendszeruzenetFaliujsag_Popup_20201126_1.sql
2024-03-13 00:33:46 +01:00

214 lines
9.3 KiB
Transact-SQL

--NOTE: Ezt az sql-t kell lefuttatni ahhoz, hogy megjelenjen egy általunk felvett faliújság bejegyzés a tanulók és gondviselők felületén, illetve a push notification küldést.
-- Amiket át kell írni:
-- - @ervKezdete(opcionális): Az érvényesség kezdete, hogy mikortól jelenjen meg a faliújságbejegyzés. Alapból az aktuális dátum, de lehet későbbre is időzíteni.
-- - @ervVege: Az érvényesség kezdete, hogy meddig jelenjen meg a faliújságbejegyzés.
-- - @ertesitesKuldve: Ha 'F', akkor fogunk küldeni push notification-t. Ha 'T', akkor nem fogunk küldeni push notification-t.
-- - @targy: A faliújság bejegyzés tárgya.
-- - @tartalom: Az üzenet tartalma. Ide html tag-ek nélkül kell, mivel ezt a mobil jeleníti meg. A mobil megjeleníti szépen az entereket, úgyhogy a bekezdések elválasztásához azokat használjuk.
-- - @tartalomWeb: Az üzenet tartalma. Ide html tak-ekkel kell, mivel ezt web-es felület jeleníti meg. Az alábbi tegeket használjuk formázásra:
-- - <br />: Sortörés
-- - <a style="color: blue;" href="{url}" target="_blank">{az url helyett megjelenő szöveg}</a>
CREATE TABLE #tanuloLista (
C_INTEZMENYAZONOSITO nvarchar(30) NOT NULL
,C_OKTATASIAZONOSITO nvarchar(20) NOT NULL
,C_IDPGUID uniqueidentifier NOT NULL
)
-- teszt miatt:
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','75807254221','C1D42E62-C815-4E06-8747-026AEC182811')
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','76316223145','8FD884EF-B9EA-46A2-BE38-71DAD02A01A6')
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','75255108774','B35D049A-E76D-4FFB-A1CA-8C89C63338A4')
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','71525113303','A9D05940-0828-426A-979C-EC13D7BFF47A')
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','73643841888','0861B36A-891E-4A62-A774-C564F7D3A298')
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','78014233403','BD31349A-6831-443B-A786-B4B5BDDE1A07')
INSERT INTO #tanuloLista(C_INTEZMENYAZONOSITO, C_OKTATASIAZONOSITO, C_IDPGUID) VALUES ('demolive','76683500716','222C5266-42DE-4BB2-8F0C-31A230DCE544')
GO
/* FaliUjsag */
DECLARE
@rendszeruzenetId int
,@faliujsagUzenedId int
,@intezmenyId int
,@tanevid int
,@targy nvarchar(max)
,@tartalom nvarchar(max)
,@ervKezdete datetime
,@ervVege datetime
,@ertesitesKuldve char(1)
,@tartalomWeb nvarchar(max)
SET @ervKezdete = '20201126 10:00'
SET @ervVege = '20201211 23:59:59'
SET @ertesitesKuldve = 'F'
SET @targy = 'Miniszterelnöki köszöntő levél szakképzési ösztöndíjasok részére'
SET @tartalom = N'
Tisztelt Szakképzős Tanuló!
Kérjük, olvassa el Orbán Viktor miniszterelnök úr köszöntő levelét, amelyet a https://tudasbazis.ekreta.hu/download/attachments/2424949/DM_szakk%C3%A9pz%C5%91s%20tanul%C3%B3k%202020.11..pdf?api=v2 linkre kattintva tölthet le!
'
SET @tartalomWeb = N'
<p>Tisztelt Szakképzős Tanuló!</p>
<p style="text-align: justify;">Kérjük, olvassa el Orbán Viktor miniszterelnök úr köszöntő levelét, amelyet <a style="color: blue;" href="https://tudasbazis.ekreta.hu/download/attachments/2424949/DM_szakk%C3%A9pz%C5%91s%20tanul%C3%B3k%202020.11..pdf?api=v2" target="_blank"><strong>IDE</strong></a> kattintva tölthet le!</p>
'
DECLARE IntCursor CURSOR LOCAL FOR
SELECT i.ID , tv.ID, MIN(fh.ID)
FROM T_INTEZMENY i
INNER JOIN T_TANEV tv On tv.C_INTEZMENYID = i.ID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
INNER JOIN T_FELHASZNALO fh ON fh.C_TANEVID = tv.ID AND fh.TOROLT = 'F' AND fh.C_NYOMTATASINEV = N'Rendszerüzenet'
WHERE i.TOROLT = 'F'
AND i.C_AZONOSITO IN (select distinct C_INTEZMENYAZONOSITO COLLATE Hungarian_CI_AI from #tanuloLista)
GROUP BY i.ID , tv.ID
OPEN IntCursor
FETCH NEXT FROM IntCursor INTO @intezmenyId, @tanevid, @rendszeruzenetId
WHILE @@FETCH_STATUS = 0 BEGIN
IF NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY WHERE C_TANEVID = @tanevid AND C_TARGY = @targy AND TOROLT = 'F' AND C_FELJEGYZOID = @rendszeruzenetId) BEGIN
INSERT INTO T_TANULOESEMENY (
C_KEZDETE
,C_MEGJEGYZES
,C_TARTALOM
,C_TARTALOMWEB
,C_TIPUS
,C_TARGY
,C_FALIUJSAGMEGJELENES
,C_MINDENKINEK
,C_VEGE
,C_ROGZITESDATUMA
,C_ISERTESITESELKULDVE
,C_FELJEGYZOID
,C_TANTARGYID
,C_TANITASIORAID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
) SELECT
@ervKezdete AS C_KEZDETE -- datetime
,'Rendszerüzenet' AS C_MEGJEGYZES -- nvarchar(255)
,@tartalom AS C_TARTALOM -- * nvarchar(max)
,@tartalomWeb AS C_TARTALOMWEB -- nvarchar(max)
,5482 AS C_TIPUS -- * int
,@targy AS C_TARGY -- * nvarchar(255)
,'T' AS C_FALIUJSAGMEGJELENES -- char(1)
,'T' AS C_MINDENKINEK -- char(1)
,@ervVege AS C_VEGE -- datetime
,GETDATE() AS C_ROGZITESDATUMA -- * datetime
,@ertesitesKuldve AS C_ISERTESITESELKULDVE -- * char(1)
,@RendszeruzenetId AS C_FELJEGYZOID -- * int
,NULL AS C_TANTARGYID -- int
,NULL AS C_TANITASIORAID -- int
,@intezmenyId AS C_INTEZMENYID -- * int
,@tanevid AS C_TANEVID -- * int
,'F' AS TOROLT -- * char(1)
,0 AS SERIAL -- * int
,GETDATE() AS LASTCHANGED -- * datetime
,GETDATE() AS CREATED -- * datetime
,NULL AS MODIFIER -- int
,NULL AS CREATOR -- int
,NULL AS ELOZOTANEVIREKORDID -- int
SET @faliujsagUzenedId = SCOPE_IDENTITY()
--INSERT INTO T_OSZTALYCSOPORT_TANULOESEMENY (C_OSZTALYCSOPORTID, C_TANULOESEMENYID)
--SELECT ID, @faliujsagUzenedId
--FROM T_OSZTALY WHERE TOROLT = 'F' AND C_ALTANEVID = @tanevid
INSERT INTO T_TANULO_TANULOESEMENY (C_TANULOID, C_TANULOESEMENYID)
SELECT t.ID, @faliujsagUzenedId
FROM T_TANULO t
INNER JOIN T_FELHASZNALO f ON f.ID = t.ID AND f.TOROLT = 'F'
INNER JOIN T_INTEZMENY i ON i.ID = @intezmenyId AND i.TOROLT = 'F'
INNER JOIN #tanuloLista tl ON tl.C_INTEZMENYAZONOSITO COLLATE Hungarian_CI_AI = i.C_AZONOSITO COLLATE Hungarian_CI_AI
AND tl.C_IDPGUID = f.C_IDPEGYEDIAZONOSITO
--AND tl.C_OKTATASIAZONOSITO COLLATE Hungarian_CI_AI = f.C_OKTATASIAZONOSITO COLLATE Hungarian_CI_AI
WHERE t.TOROLT = 'F' AND t.C_ALTANEVID = @tanevid
END
--OPEN IntCursor
FETCH NEXT FROM IntCursor INTO @intezmenyId, @tanevid, @rendszeruzenetId
END -- while
GO
/* END FaliUjsag */
/* Popup */
IF NOT EXISTS (SELECT 1 FROM [dbo].[T_DASHBOARDUZENET] WHERE C_EGYEDIAZONOSITO = 'POPUP_SZAKK_OSZTONDIJ_1126')
BEGIN
INSERT INTO [dbo].[T_DASHBOARDUZENET] (C_CIM, C_EGYEDIAZONOSITO, C_ERVENYESSEGKEZDETE, C_ERVENYESSEGVEGE, C_KIEMELTIDOSZAKVEGE, C_SORREND, C_TARTALOM, C_DASHBOARDUZENETKATEGORIAID, C_ISPOPUP)
VALUES (N'Miniszterelnöki köszöntő levél szakképzési ösztöndíjasok részére',N'POPUP_SZAKK_OSZTONDIJ_1126','2020-11-26 10:00','2020-12-04 23:59:59',NULL,0
,N'<div>
<p>Tisztelt Szakképzős Tanuló!</p>
<p style="text-align: justify;">Kérjük, olvassa el Orbán Viktor miniszterelnök úr köszöntő levelét, amelyet <a href="https://tudasbazis.ekreta.hu/download/attachments/2424949/DM_szakk%C3%A9pz%C5%91s%20tanul%C3%B3k%202020.11..pdf?api=v2" target="_blank"><strong>IDE</strong></a> kattintva tölthet le!</p>
</div>'
,10,'T')
END
-- Tanulók
INSERT INTO T_DASHBOARDUZENETFELHASZNALO (
C_MEGJELENITESEKSZAMA
,C_UTOLSOMEGTEKINTESIDEJE
,C_EGYEDIMUVELET
,C_DASHBOARDUZENETID
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,C_GONDVISELOID
) SELECT
1 AS C_MEGJELENITESEKSZAMA -- * int
,NULL AS C_UTOLSOMEGTEKINTESIDEJE -- datetime
,NULL AS C_EGYEDIMUVELET -- nvarchar(255)
,d.ID AS C_DASHBOARDUZENETID -- * int
,t.ID AS C_FELHASZNALOID -- * int
,t.C_ALINTEZMENYID AS C_INTEZMENYID -- * int
,t.C_ALTANEVID AS C_TANEVID -- * int
,'F' AS TOROLT -- * char(1)
,0 AS SERIAL -- * int
,GETDATE() AS LASTCHANGED -- * datetime
,GETDATE() AS CREATED -- * datetime
,NULL AS MODIFIER -- int
,NULL AS CREATOR -- int
,NULL AS ELOZOTANEVIREKORDID -- int
,NULL AS C_GONDVISELOID -- int
FROM T_TANULO t
INNER JOIN T_FELHASZNALO f ON f.ID = t.ID AND f.TOROLT = 'F'
INNER JOIN T_INTEZMENY i ON i.ID = t.C_ALINTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV tv ON tv.ID = t.C_ALTANEVID AND tv.C_INTEZMENYID = i.ID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
INNER JOIN #tanuloLista tl ON tl.C_INTEZMENYAZONOSITO COLLATE Hungarian_CI_AI = i.C_AZONOSITO COLLATE Hungarian_CI_AI
AND tl.C_IDPGUID = f.C_IDPEGYEDIAZONOSITO
--AND tl.C_OKTATASIAZONOSITO COLLATE Hungarian_CI_AI = f.C_OKTATASIAZONOSITO COLLATE Hungarian_CI_AI
INNER JOIN T_DASHBOARDUZENET d ON d.C_EGYEDIAZONOSITO = 'POPUP_SZAKK_OSZTONDIJ_1126'
WHERE
t.TOROLT = 'F'
AND NOT EXISTS(
SELECT du.ID, du.C_DASHBOARDUZENETID, du.C_FELHASZNALOID FROM T_DASHBOARDUZENETFELHASZNALO du
WHERE du.C_INTEZMENYID = i.ID
AND du.C_TANEVID = tv.ID
AND du.C_DASHBOARDUZENETID = d.ID
AND du.C_FELHASZNALOID = t.ID
AND du.C_GONDVISELOID is null
)
GO
/* END Popup */
DROP TABLE #tanuloLista
GO