--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
