﻿DECLARE @tanevId int, @intezmenyId int, @hetNapjaTipusTypeId int = 40

DECLARE IntCur CURSOR FAST_FORWARD READ_ONLY FOR 
SELECT tv.ID, i.ID FROM T_INTEZMENY i
  INNER JOIN T_TANEV tv ON tv.C_INTEZMENYID = i.ID AND tv.C_KOVETKEZO = 'T'
WHERE tv.C_NEV = '2021/2022'
  AND i.TOROLT = 'F'
  AND tv.TOROLT = 'F'

OPEN IntCur

FETCH NEXT FROM IntCur 
INTO @tanevId, @intezmenyId

WHILE @@FETCH_STATUS = 0 BEGIN
  -- Töröljük, ha a suli már vett fel tanév rendjét. mi csak az első és az utol tanítási napot adtuk mg csak meg.
  DELETE FROM T_TANEVRENDJE WHERE C_DATUM NOT IN ('20210901', '20220615') AND C_TANEVID = @tanevId
    
  -- Insert tanév rendje
  INSERT  dbo.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
  ) VALUES
	-- Okt. 23., Nov. 1. (1396-Ünnepnap; 1386-Munkaszüneti nap)
      ('T', '20211023', 1554, dbo.fnGetHetNapja('20211023', @hetNapjaTipusTypeId), N'', 1396, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211101', 1554, dbo.fnGetHetNapja('20211101', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Őszi szünet (1399-Őszi szünet)                                              
    ,('T', '20211025', 1554, dbo.fnGetHetNapja('20211025', @hetNapjaTipusTypeId), N'', 1399, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211026', 1554, dbo.fnGetHetNapja('20211026', @hetNapjaTipusTypeId), N'', 1399, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211027', 1554, dbo.fnGetHetNapja('20211027', @hetNapjaTipusTypeId), N'', 1399, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211028', 1554, dbo.fnGetHetNapja('20211028', @hetNapjaTipusTypeId), N'', 1399, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211029', 1554, dbo.fnGetHetNapja('20211029', @hetNapjaTipusTypeId), N'', 1399, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Téli szünet (1397-Téli szünet)                                                        
    ,('T', '20211222', 1554, dbo.fnGetHetNapja('20211222', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211223', 1554, dbo.fnGetHetNapja('20211223', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211227', 1554, dbo.fnGetHetNapja('20211227', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211228', 1554, dbo.fnGetHetNapja('20211228', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211229', 1554, dbo.fnGetHetNapja('20211229', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211230', 1554, dbo.fnGetHetNapja('20211230', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211231', 1554, dbo.fnGetHetNapja('20211231', @hetNapjaTipusTypeId), N'', 1397, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Karacsony, újév (6833-Pihenőnap; 1386-Munkaszüneti nap)
    ,('T', '20211224', 1554, dbo.fnGetHetNapja('20211224', @hetNapjaTipusTypeId), N'', 6833, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211225', 1554, dbo.fnGetHetNapja('20211225', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20211226', 1554, dbo.fnGetHetNapja('20211226', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20220101', 1554, dbo.fnGetHetNapja('20220101', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Első félév vége (1400-Első félév vége)	
    ,('T', '20220121', 1554, dbo.fnGetHetNapja('20220121', @hetNapjaTipusTypeId), N'', 1400, 'T', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Márc. 15. (6833-Pihenőnap; 1396-Ünnepnap)
    ,('T', '20220314', 1554, dbo.fnGetHetNapja('20220314', @hetNapjaTipusTypeId), N'', 6833, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20220315', 1554, dbo.fnGetHetNapja('20220315', @hetNapjaTipusTypeId), N'', 1396, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Tavaszi szünet (1398-Tavaszi szünet)
    ,('T', '20220414', 1554, dbo.fnGetHetNapja('20220414', @hetNapjaTipusTypeId), N'', 1398, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20220419', 1554, dbo.fnGetHetNapja('20220419', @hetNapjaTipusTypeId), N'', 1398, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Húsvét (1386-Munkaszüneti nap)
    ,('T', '20220415', 1554, dbo.fnGetHetNapja('20220415', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20220417', 1554, dbo.fnGetHetNapja('20220417', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    ,('T', '20220418', 1554, dbo.fnGetHetNapja('20220418', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Május 1. (1386-Munkaszüneti nap)
    ,('T', '20220501', 1554, dbo.fnGetHetNapja('20220501', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Pünkösdhétfő (1386-Munkaszüneti nap)
    ,('T', '20220606', 1554, dbo.fnGetHetNapja('20220606', @hetNapjaTipusTypeId), N'', 1386, 'F', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)
    -- Utcsó tanítási nap - végzős (1402-Utolsó tanítási nap a végzős évfolyamokon)
    ,('T', '20220429', 1554, dbo.fnGetHetNapja('20220429', @hetNapjaTipusTypeId), N'', 1402, 'T', 'T', NULL, @intezmenyId, @tanevId, 'F', 0, GETDATE(), GETDATE(), NULL, 0)



    -- Legeneráljuk a naptári napokat az új tanévrendje események alapján
    EXEC sp_GenerateNaptariNapok
       @intezmenyId = @intezmenyId -- int
      ,@tanevId = @tanevId -- int

    FETCH NEXT FROM IntCur 
    INTO @tanevId, @intezmenyId
END

CLOSE IntCur
DEALLOCATE IntCur
GO
