﻿--Migration
CREATE TABLE #TanevRendje (
   Datum datetime
  ,Esemeny nvarchar(300) COLLATE HUNGARIAN_CI_AI
  ,IsTanitasinap char(4) COLLATE HUNGARIAN_CI_AI
  ,Nap nvarchar(10) COLLATE HUNGARIAN_CI_AI
)

INSERT INTO #TanevRendje VALUES ('20180903', 'Első tanítási nap', 'Igen', 'Hétfő')
INSERT INTO #TanevRendje VALUES ('20181013', 'Tanítási nap', 'Igen', 'Hétfő')
INSERT INTO #TanevRendje VALUES ('20181022', 'Pihenőnap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181023', 'Ünnepnap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181029', 'Őszi szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181030', 'Őszi szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181031', 'Őszi szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181101', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181102', 'Pihenőnap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181110', 'Tanítási nap', 'Igen', 'Péntek')
INSERT INTO #TanevRendje VALUES ('20181201', 'Tanítási nap', 'Igen', 'Hétfő')
INSERT INTO #TanevRendje VALUES ('20181215', 'Tanítási nap', 'Igen', 'Hétfő')
INSERT INTO #TanevRendje VALUES ('20181224', 'Pihenőnap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181225', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181226', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181227', 'Téli szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20181228', 'Téli szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20171231', 'Pihenőnap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190101', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190102', 'Téli szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190125', 'Első félév vége', 'Igen', 'Péntek')
INSERT INTO #TanevRendje VALUES ('20190315', 'Ünnepnap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190418', 'Tavaszi szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190419', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190422', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190423', 'Tavaszi szünet', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190501', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190502', 'Utolsó tanítási nap a végzős évfolyamokon', 'Igen', 'Csütörtök')
INSERT INTO #TanevRendje VALUES ('20190610', 'Munkaszüneti nap', 'Nem', '')
INSERT INTO #TanevRendje VALUES ('20190614', 'Utolsó tanítási nap', 'Igen', 'Péntek')


INSERT INTO T_TANEVRENDJE (
   C_AKTIV
  ,C_DATUM
  ,C_HETIREND
  ,C_HETNAPJA
  ,C_MEGJEGYZES
  ,C_NAPTIPUSA
  ,C_ORARENDINAP
  ,C_OSSZESCSOPORTRAVONATKOZIK
  ,C_CSENGETESIRENDID
  ,C_INTEZMENYID
  ,C_TANEVID
  ,TOROLT
  ,SERIAL
  ,LASTCHANGED
  ,CREATED
  ,MODIFIER
  ,CREATOR
  ,ELOZOTANEVIREKORDID
  ,NNID
  ,CSOP
) SELECT 
   'T' AS C_AKTIV                -- C_AKTIV - char(1)
  ,tr.Datum AS C_DATUM           -- C_DATUM - datetime
  ,1554   AS C_HETIREND              -- C_HETIREND - int
  ,nap.ID AS C_HETNAPJA             -- C_HETNAPJA - int
  ,'' AS C_MEGJEGYZES           -- C_MEGJEGYZES - nvarchar(255)
  ,ISNULL(esemeny.ID, 1384)   AS C_NAPTIPUSA             -- C_NAPTIPUSA - int
  ,IIF(tr.IsTanitasinap = 'Igen', 'T', 'F') AS C_ORARENDINAP          -- C_ORARENDINAP - char(1)
  ,'T' AS C_OSSZESCSOPORTRAVONATKOZIK -- C_OSSZESCSOPORTRAVONATKOZIK - char(1)
  ,NULL AS C_CSENGETESIRENDID     -- C_CSENGETESIRENDID - int
  ,tanev.C_INTEZMENYID   AS C_INTEZMENYID           -- C_INTEZMENYID - int
  ,tanev.ID   AS C_TANEVID               -- C_TANEVID - int
  ,'F'  AS TOROLT                  -- TOROLT - char(1)
  ,0   AS SERIAL                  -- SERIAL - int
  ,GETDATE() AS LASTCHANGED       -- LASTCHANGED - datetime
  ,GETDATE() AS CREATED           -- CREATED - datetime
  ,NULL AS MODIFIER               -- MODIFIER - int
  ,NULL AS CREATOR                -- CREATOR - int
  ,NULL AS ELOZOTANEVIREKORDID    -- ELOZOTANEVIREKORDID - int
  ,NULL AS NNID                   -- NNID - int
  ,NULL AS CSOP                   -- CSOP - char(1)
-- SELECT *
FROM #TanevRendje tr
CROSS JOIN (SELECT ID, C_INTEZMENYID FROM T_TANEV WHERE C_NEV = '2018/2019' AND TOROLT = 'F') tanev
  INNER JOIN T_INTEZMENY i ON i.ID = tanev.C_INTEZMENYID AND i.TOROLT = 'F'
  LEFT JOIN T_DICTIONARYITEMBASE nap ON nap.C_TANEVID = tanev.ID AND nap.C_NAME = tr.Nap AND nap.C_TYPE = 'HetNapjaTipus'
  LEFT JOIN T_DICTIONARYITEMBASE esemeny ON esemeny.C_TANEVID = tanev.ID AND esemeny.C_NAME = tr.Esemeny AND esemeny.C_TYPE = 'NapTipus'
WHERE NOT EXISTS (
    SELECT 1 FROM T_TANEVRENDJE trVan 
    WHERE trVan.C_DATUM = tr.Datum 
      AND trVan.C_TANEVID = tanev.ID
      AND trVan.C_INTEZMENYID = tanev.C_INTEZMENYID
      AND trVan.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
  )

UPDATE nn SET
   nn.C_HETNAPJA = ISNULL(tr.C_HETNAPJA, nn.C_HETNAPJA)
  ,nn.C_NAPTIPUSA = tr.C_NAPTIPUSA
  ,nn.C_ORARENDINAP = tr.C_ORARENDINAP
  ,nn.C_ALAPHETNAPJA = ISNULL(tr.C_HETNAPJA, nn.C_ALAPHETNAPJA)
  ,nn.C_ALAPNAPTIPUSA = tr.C_NAPTIPUSA
  ,nn.C_ALAPORARENDINAP = tr.C_ORARENDINAP
FROM T_NAPTARINAP nn
  INNER JOIN T_TANEVRENDJE tr ON nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND nn.C_NAPDATUMA = tr.C_DATUM AND tr.TOROLT = 'F'
  INNER JOIN T_TANEV te ON te.ID = nn.C_TANEVID AND te.C_NEV = '2018/2019' AND te.TOROLT = 'F'
WHERE tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND nn.TOROLT = 'F'
GO
