﻿DROP PROCEDURE IF EXISTS dev.uspSetModulSzakkepzo
GO

CREATE PROCEDURE dev.uspSetModulSzakkepzo 
   @pIsSzakkepzo char(1) 
  ,@pTanevIds nvarchar(max) -- tanévIdk vesszővel elválasztva: '29,64'
AS
BEGIN
  DECLARE @EnvironmentName nvarchar(1000) = (SELECT [Value] FROM dev.EnvironmentInfo WHERE [Key] = 'Dictionary')
  IF (@EnvironmentName IS NULL OR @EnvironmentName NOT IN ('KK','NSZFH','HOI','AZURE')) BEGIN 
    RAISERROR('Nincs Dictionary ertek a dev.EnvironmentInfo tablaban', 16, 1, @EnvironmentName)
    RETURN;
  END 

  -- =======================
  -- T_INTEZMENYADATOK-ban szakképző ki-bekapcsolás
  -- =======================
  UPDATE ia SET 
    ia.C_ISSZAKKEPZO = @pIsSzakkepzo
    FROM T_INTEZMENYADATOK_OSSZES ia
    INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON t.value = ia.C_TANEVID

  -- =======================
  -- T_ALKALMAZOTT-ban szakképző kikapcsolás esetén C_ISDUALISKEPZOHELYIOKTATO is 'F'
  -- =======================
  IF(@pIsSzakkepzo = 'F')
  BEGIN
    UPDATE alkalmazott SET
      alkalmazott.C_ISDUALISKEPZOHELYIOKTATO = @pIsSzakkepzo
    FROM T_ALKALMAZOTT_OSSZES alkalmazott
    INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON t.value = alkalmazott.C_ALTANEVID
    WHERE alkalmazott.TOROLT = 'F'
  END

  -- =======================
  -- TanterviJellegek beállítása @pIsSzakkepzo
  -- =======================
  UPDATE dib SET
     dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 8827

  UPDATE dib SET
     dib.TOROLT = IIF(@pIsSzakkepzo = 'T','T','F')
    FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1095

  DROP TABLE IF EXISTS tmpForSwitchDictionaryItemBase 
  CREATE TABLE tmpForSwitchDictionaryItemBase(RegiID int, UjID int, TanevID int, C_NAME nvarchar(500), C_TYPE nvarchar(64), Torolni char(1))
  INSERT INTO tmpForSwitchDictionaryItemBase(RegiID, UjID, TanevID, C_NAME, C_TYPE, Torolni)
  SELECT
     IIF(@pIsSzakkepzo = 'T',1095,8827)
    ,IIF(@pIsSzakkepzo = 'T',8827,1095)
    ,value
    ,N'Felnőttképzési jogviszony munkarend nélkül'
    ,'TanterviJelleg'
    ,'F'
  FROM STRING_SPLIT(@pTanevIds,',')
  EXEC [dev].uspSwitchDictionaryItemBaseFromTmp;
  
  UPDATE dib SET
    dib.C_NAME = IIF(@pIsSzakkepzo = 'T' OR @EnvironmentName NOT IN ('NSZFH','HOI'), N'Nappali rendszerű iskolai oktatás',N'Nappali rendszerű iskolai oktatás (*)')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1096

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1097

  UPDATE dib SET
    dib.C_NAME = IIF(@pIsSzakkepzo = 'T',N'Kollégiumi nevelés',IIF(@EnvironmentName IN ('NSZFH'),N'Kollégiumi nevelés (*)',N'Bentlakásos intézményi ellátás'))
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1099

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1103

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1101

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1102

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1104

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 5448

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1100

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 1105

  UPDATE dib SET
     dib.C_NAME = IIF(@pIsSzakkepzo = 'T',N'Felnőttoktatás esti rendszerű OKJ vagy köznevelés',IIF(@EnvironmentName IN ('NSZFH','HOI'),N'Felnőttoktatás esti rendszerű (*)',N'Felnőttoktatás esti rendszerű'))
    ,dib.C_NAME_1 = IIF(@pIsSzakkepzo = 'T',N'Felnőttoktatás esti rendszerű OKJ vagy köznevelés',IIF(@EnvironmentName IN ('NSZFH','HOI'),N'Felnőttoktatás esti rendszerű (*)',N'Felnőttoktatás esti rendszerű'))
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 5446

  UPDATE dib SET
     dib.C_NAME = IIF(@pIsSzakkepzo = 'T',N'Felnőttoktatás levelező rendszerű OKJ vagy köznevelés',IIF(@EnvironmentName IN ('NSZFH','HOI'),N'Felnőttoktatás levelező rendszerű (*)',N'Felnőttoktatás levelező rendszerű'))
    ,dib.C_NAME_1 = IIF(@pIsSzakkepzo = 'T',N'Felnőttoktatás levelező rendszerű OKJ vagy köznevelés',IIF(@EnvironmentName IN ('NSZFH','HOI'),N'Felnőttoktatás levelező rendszerű (*)',N'Felnőttoktatás levelező rendszerű'))
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 5447

  UPDATE dib SET
     dib.C_NAME = IIF(@pIsSzakkepzo = 'T',N'Felnőttoktatás nappali rendszerű OKJ vagy köznevelés',IIF(@EnvironmentName IN ('NSZFH','HOI'),N'Felnőttoktatás nappali rendszerű (*)',N'Felnőttoktatás nappali rendszerű'))
    ,dib.C_NAME_1 = IIF(@pIsSzakkepzo = 'T',N'Felnőttoktatás nappali rendszerű OKJ vagy köznevelés',IIF(@EnvironmentName IN ('NSZFH','HOI'),N'Felnőttoktatás nappali rendszerű (*)',N'Felnőttoktatás nappali rendszerű'))
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 5445

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 8831

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.C_DICTIONARYTYPEID IN (180,181)

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID IN(8999,9000)

  DELETE fhszk    
  FROM T_FELHASZNALO_SZEREPKOR fhszk
  INNER JOIN T_SZEREPKOR_OSSZES szk ON szk.ID = fhszk.C_SZEREPKORID AND szk.TOROLT = 'F' AND szk.C_SZEREPKORTIPUS = 9001

  UPDATE T_SZEREPKOR_OSSZES SET
  TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  WHERE C_SZEREPKORTIPUS = 9001

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID = 9001

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID BETWEEN 9072 AND 9076

  UPDATE dib SET
    dib.TOROLT = IIF(@pIsSzakkepzo = 'T','F','T')
  FROM T_DICTIONARYITEMBASE_OSSZES dib
  INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON CAST(t.value AS INT) = dib.C_TANEVID
  WHERE dib.ID IN (9078 ,9079)

  -- =======================
  -- T_OSZTALYCSOPORT C_KEPZESIFORMA mező értékeinek másolása a megfelelő T_TANULOTANUGYIADATOK C_TANTERVIJELLEGID mezőkbe
  -- =======================

  IF(@pIsSzakkepzo = 'T')
  BEGIN
    UPDATE tta SET 
      tta.C_TANTERVIJELLEGID = IIF(ocs.C_KEPZESIFORMA IN (1103,1101,1102,1104,5448,1100,1105), 8827, ocs.C_KEPZESIFORMA)
    FROM T_TANULOTANUGYIADATOK tta
      INNER JOIN T_TANULOCSOPORT tcs ON tcs.ID = tta.C_TANULOCSOPORTID
      INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
      INNER JOIN STRING_SPLIT(@pTanevIds,',') t ON t.value = tta.C_TANEVID
    WHERE tta.TOROLT = 'F'
  END

END
GO
