SET NOCOUNT ON;
DECLARE @Now DATETIME = GETDATE();

SELECT
  Te.Id AS C_TANEVID
  ,Te.C_Intezmenyid AS C_INTEZMENYID
INTO
  #T_Affected
FROM
  T_Naptipus AS Nt
  INNER JOIN T_Tanev AS Te ON (Te.Torolt = 'F' AND Te.Id = Nt.C_Altanevid)
  INNER JOIN T_Tanevrendje AS Tr ON (Te.Torolt = 'F' AND Tr.C_Tanevid = Nt.C_Altanevid)
WHERE
  Nt.Torolt = 'F'
  AND Nt.Id = 1385
  AND Te.C_Aktiv = 'T'
  AND Te.Created > '2021-01-01';

IF EXISTS(SELECT 1 FROM #T_Affected)
BEGIN
  UPDATE Tr
  SET
    C_Hetnapja = 1409
    ,Modifier = NULL
    ,Lastchanged = @Now
    ,Serial += 1
  FROM
    T_Tanevrendje AS Tr
    INNER JOIN #T_Affected AS aff ON (Tr.C_Tanevid = aff.C_Tanevid AND Tr.C_Intezmenyid = aff.C_Intezmenyid)
  WHERE
    tr.Torolt = 'F'
    AND tr.C_Naptipusa = 1394;
  
  UPDATE nt
  SET
    C_Istanorai = 'T'
    ,C_Issorszamozando = 'T'
    ,C_Istanorankivuli = 'T'
    ,C_Islenemkotottmunkaido = 'T'
    ,Modifier = NULL
    ,Lastchanged = @Now
    ,Serial += 1
  FROM
    T_Naptipus AS nt
    INNER JOIN #T_Affected AS aff ON (nt.C_Altanevid = aff.C_Tanevid AND nt.C_Alintezmenyid = aff.C_Intezmenyid)
  WHERE
    nt.Torolt = 'F'
    AND nt.Id IN (
      1385, --Tanítási nap
      1384, --Na
      1389, --Egész napos kirándulás
      1393, --Rövidített órákat tartalmazó tanítási nap
      1394, --Elsõ tanítási nap
      1395, --Utolsó tanítási nap
      1400, --Elsõ félév vége
      1401, --Vizsganap
      1402, --Utolsó tanítási nap a végzõs évfolyamokon
      1403, --I. negyedév vége
      1404, --III. negyedév vége
      1406, --Rendkívüli tanítási nap
      1649, --Nyílt nap
      7600, --Utolsó tanítási nap a végzõs évfolyamokon (rendészeti iskolákban)
      7601, --Utolsó tanítási nap a végzõs évfolyamokon (honvédelmi iskolákban)
      7602, --Utolsó tanítási nap a végzõs évfolyamokon (keresztféléves képzésben)
      7603, --Utolsó tanítási nap a végzõs évfolyamokon (részszakképesítéses oktatásban)
      7604, --Elsõ tanítási nap (keresztféléves képzésben)
      7605 --Elsõ félév vége (keresztféléves képzésben)
    );
  
  UPDATE nt
  SET
    C_Istanorai = 'T'
    ,C_Istanorankivuli = 'T'
    ,C_Islenemkotottmunkaido = 'T'
    ,Modifier = NULL
    ,Lastchanged = @Now
    ,Serial += 1
  FROM
    T_Naptipus AS nt
    INNER JOIN #T_Affected AS aff ON (nt.C_Altanevid = aff.C_Tanevid AND nt.C_Alintezmenyid = aff.C_Intezmenyid)
  WHERE
    nt.Torolt = 'F'
    AND nt.Id = 1405; --Egybefüggõ szakmai gyakorlati nap)
  
  UPDATE nt
  SET
    C_Islenemkotottmunkaido = 'T'
    ,Modifier = NULL
    ,Lastchanged = @Now
    ,Serial += 1
  FROM
    T_Naptipus AS nt
    INNER JOIN #T_Affected AS aff ON (nt.C_Altanevid = aff.C_Tanevid AND nt.C_Alintezmenyid = aff.C_Intezmenyid)
  WHERE
    nt.Torolt = 'F'
    AND nt.Id IN (
      1387, --Tanítás nélküli munkanap
      1388, --Szülõi értekezlet (tanítás nélkül)
      1390  --Fogadónap (tanítás nélküli)
    );
  
  DECLARE cAffectedIntezmeny 
  CURSOR LOCAL FOR 
    SELECT 
      C_TANEVID, 
      C_INTEZMENYID
    FROM #T_Affected;
  
  DECLARE @curTanevId INT;
  DECLARE @curIntezmenyId INT;
  
  OPEN cAffectedIntezmeny;
  
  FETCH NEXT FROM cAffectedIntezmeny INTO @curTanevId, @curIntezmenyId;
  WHILE @@FETCH_STATUS = 0
  BEGIN
      EXEC dbo.sp_GenerateNaptariNapok @curIntezmenyId, @curTanevId;
      EXEC dbo.uspGenerateOrarend @curIntezmenyId, @curTanevId;
      FETCH NEXT FROM cAffectedIntezmeny INTO @curTanevId, @curIntezmenyId;
  END;
      
  CLOSE cAffectedIntezmeny;
  DEALLOCATE cAffectedIntezmeny;
END;