﻿-- =============================================
-- Author:    Kecskeméthy Zsolt
-- Create date: 2016.05.09
-- Description:  Intézményhez tartozó adatok.
-- =============================================
DROP PROCEDURE IF EXISTS [dev].[uspIntezmenyLetrehozas]
GO

CREATE PROCEDURE [dev].[uspIntezmenyLetrehozas]
  @fenntartoAzonosito nvarchar(20),
  @intezmenyAzonosito nvarchar(30),
  @tanevNeve nvarchar(200),
  @kovetkezoTanevNeve nvarchar(200),
  @intezmenyNeve nvarchar(255),
  @intezmenyIranyitoSzam nvarchar(20),
  @intezmenyVaros nvarchar(255),
  @intezmenyKozteruletNev nvarchar(40),
  @intezmenyKozteruletJellegNev nvarchar(100),
  @intezmenyHazszam nvarchar(30),
  @intezmenyEmelet nvarchar(40),
  @intezmenyAjto nvarchar(30),
  @intezmenyOMKod nvarchar(20),
  @intezmenyIgazgato nvarchar(255),
  @intezmenyTagkod nvarchar(50),
  @intezmenyEmail nvarchar(255),
  @adminJelszo nvarchar(8),
  @kellABHet bit,
  @teljesKreta bit,
  @dbJelszo nvarchar(50),
  @isKovTanevKivalaszthato bit = 1
AS
BEGIN
  DECLARE @intezmenyID int = (SELECT TOP 1 ID FROM T_INTEZMENY WHERE T_INTEZMENY.C_AZONOSITO = @intezmenyAzonosito);

  -- Létezik-e az intézmény
  IF(@intezmenyID IS NULL) BEGIN
    -- Intézmény létrehozása
    INSERT INTO [dbo].[T_INTEZMENY] (
       [C_AZONOSITO]
      ,[C_POSZEIDONBEJELENTKEZESINEV]
      ,[C_IKTATOSZERVEZETAZONOSITO]
      ,[C_FENNTARTOAZONOSITO]
      ,[C_FENNTARTOID]
      ,[TOROLT]
      ,[SERIAL]
      ,[LASTCHANGED]
      ,[CREATED]
      ,[MODIFIER]
      ,[CREATOR])
    VALUES (
       @intezmenyAzonosito
      ,@intezmenyAzonosito
      ,@intezmenyAzonosito
      ,@fenntartoAzonosito
      ,0
      ,'F'
      ,0
      ,getdate()
      ,getdate()
      ,null
      ,NULL
    )
    
    SET @intezmenyID = SCOPE_IDENTITY();

    DECLARE @EnvironmentName nvarchar(1000)
    SET @EnvironmentName = (SELECT TOP 1 [Value] FROM dev.EnvironmentInfo WHERE [Key] = 'Kornyezet')

    DECLARE @eslUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN 'https://esl-ema.e-kreta.hu/sso'
      WHEN 'HOI' THEN 'https://esl-hoi.e-kreta.hu/sso' 
      WHEN 'KK' THEN 'https://esl-kk.e-kreta.hu/sso'
      WHEN 'NSZFH' THEN 'https://esl-nszfh.e-kreta.hu/sso'
      WHEN 'NSZFH-EMA' THEN 'https://esl-nszfh-ema.e-kreta.hu/sso'
    END

    DECLARE @fokuszUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN 'https://fokusz-ema.e-kreta.hu/sso'
      WHEN 'HOI' THEN 'https://fokusz-hoi.e-kreta.hu/sso' 
      WHEN 'KK' THEN 'https://fokusz-kk.e-kreta.hu/sso'
      WHEN 'NSZFH' THEN 'https://fokusz-nszfh.e-kreta.hu/sso'
      WHEN 'NSZFH-EMA' THEN 'https://fokusz-nszfh-ema.e-kreta.hu/sso'
    END

    DECLARE @leltarUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN 'https://leltar-ema.e-kreta.hu/sso'
      WHEN 'HOI' THEN 'https://leltar-hoi.e-kreta.hu/sso' 
      WHEN 'KK' THEN 'https://leltar-kk.e-kreta.hu/sso'
      WHEN 'NSZFH' THEN 'https://leltar-nszfh.e-kreta.hu/sso'
      WHEN 'NSZFH-EMA' THEN 'https://leltar-nszfh-ema.e-kreta.hu/sso'
    END

    DECLARE @konyvtarUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN 'https://konyvtar-ema.e-kreta.hu/sso'
      WHEN 'HOI' THEN 'https://konyvtar-hoi.e-kreta.hu/sso' 
      WHEN 'KK' THEN 'https://konyvtar-kk.e-kreta.hu/sso'
      WHEN 'NSZFH' THEN 'https://konyvtar-nszfh.e-kreta.hu/sso'
      WHEN 'NSZFH-EMA' THEN 'https://konyvtar-nszfh-ema.e-kreta.hu/sso'
    END

    DECLARE @eugyintezesUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN 'https://eugyintezes.e-kreta.hu/kreta/kerelmek'
      WHEN 'HOI' THEN 'https://eugyintezes.e-kreta.hu/kreta/kerelmek' 
      WHEN 'KK' THEN 'https://eugyintezes.e-kreta.hu/kreta/kerelmek'
      WHEN 'NSZFH' THEN 'https://eugyintezes.e-kreta.hu/kreta/kerelmek'
      WHEN 'NSZFH-EMA' THEN 'https://eugyintezes.e-kreta.hu/kreta/kerelmek'
    END

    DECLARE @uzenetModulUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN 'https://eugyintezes.e-kreta.hu/kreta/uzenetek'
      WHEN 'HOI' THEN 'https://eugyintezes.e-kreta.hu/kreta/uzenetek' 
      WHEN 'KK' THEN 'https://eugyintezes.e-kreta.hu/kreta/uzenetek'
      WHEN 'NSZFH' THEN 'https://eugyintezes.e-kreta.hu/kreta/uzenetek'
      WHEN 'NSZFH-EMA' THEN 'https://eugyintezes.e-kreta.hu/kreta/uzenetek'
    END
    
    DECLARE @eJelentkezesUrl nvarchar(255) = CASE @EnvironmentName
      WHEN 'AZURE' THEN ''
      WHEN 'HOI' THEN '' 
      WHEN 'KK' THEN ''
      WHEN 'NSZFH' THEN 'https://kretaadmin.e-kreta.hu/sso'
      WHEN 'NSZFH-EMA' THEN ''
    END

    DECLARE @eslIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('AZURE','HOI','KK','NSZFH','NSZFH-EMA') THEN 'true' ELSE 'false' END
    DECLARE @fokuszIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('HOI','KK','NSZFH') THEN 'true' ELSE 'false' END
    DECLARE @hrModulIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('KK') THEN 'true' ELSE 'false' END
    DECLARE @eugyintezesIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('AZURE','HOI','KK','NSZFH','NSZFH-EMA') THEN 'true' ELSE 'false' END
    DECLARE @uzenetModulIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('AZURE','HOI','KK','NSZFH','NSZFH-EMA') THEN 'true' ELSE 'false' END
    DECLARE @eJelentkezesIsEnabled nvarchar(255) = 'false'
    DECLARE @BeiratkozasIsEnabled nvarchar(255) = 'false'
    DECLARE @PedIgHelyettKiallIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('HOI','NSZFH','NSZFH-EMA') THEN 'true' ELSE 'false' END
    DECLARE @KozmuAdatszolgaltatasIsEnabled nvarchar(255) = 'false'
    DECLARE @leltarIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('AZURE','HOI','KK','NSZFH','NSZFH-EMA') THEN 'true' ELSE 'false' END
    DECLARE @konyvtarIsEnabled nvarchar(255) = CASE WHEN @EnvironmentName IN ('AZURE','HOI','KK','NSZFH','NSZFH-EMA') THEN 'true' ELSE 'false' END
    DECLARE @ApaczaiIsEnabled nvarchar(255) = 'false'
    DECLARE @PalyavalasztasIsEnabled nvarchar(255) = 'false'
    ​DECLARE @PalyavalasztasUrl nvarchar(255) = ''
    DECLARE @SzirStatAdatszolgBekuldeseIsEnabled nvarchar(255) = 'false'
    DECLARE @isKlebelsberg nvarchar(255) = CASE WHEN @EnvironmentName IN ('KK') THEN 'true' ELSE 'false' END
    DECLARE @eszkozKezelesEnabled nvarchar(255) = 'false'
    DECLARE @gondviseloSzemelyesAdatokSzerkeszteseEnabled nvarchar(255) = 'false'
    DECLARE @feltarAlkalmazottEnabled nvarchar(255) = 'false'
    DECLARE @feltarASZFUrl nvarchar(255) = 'https://tudasbazis.ekreta.hu/download/attachments/75104744/Eszkozigenyles_Pedagogus_ASZF.docx?api=v2'
    DECLARE @okosmeresEnabled nvarchar(255) = 'false'
    DECLARE @eszkozUgyintezesUrl nvarchar(255) = 'https://tudasbazis.ekreta.hu/'
    DECLARE @feltarASZFGondviseloUrl nvarchar(255) = 'https://tudasbazis.ekreta.hu/download/attachments/75104744/Eszkozigenyles_Gondviselo_ASZF.docx?api=v2'
    DECLARE @dualisKepzesEnabled nvarchar(255) = 'false'

    INSERT INTO T_INTEZMENYCONFIG ([C_CONFIGTIPUSID], [C_INTEZMENYID], [TOROLT], [SERIAL], [LASTCHANGED], [CREATED], [MODIFIER], [CREATOR], [C_ERTEK])
    VALUES
       (1 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eslIsEnabled)
      ,(2 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eslUrl)
      ,(3 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @fokuszIsEnabled)
      ,(4 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @fokuszUrl)
      ,(5 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @hrModulIsEnabled)
      ,(6 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eugyintezesIsEnabled)
      ,(7 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eugyintezesUrl)
      ,(8 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @uzenetModulIsEnabled)
      ,(9 , @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @uzenetModulUrl)
      ,(10, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eJelentkezesIsEnabled)
      ,(11, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eJelentkezesUrl)
      ,(12, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @BeiratkozasIsEnabled)
      ,(13, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @PedIgHelyettKiallIsEnabled)
      ,(14, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @KozmuAdatszolgaltatasIsEnabled)
      ,(15, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @leltarIsEnabled)
      ,(16, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @leltarUrl)
      ,(17, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @konyvtarIsEnabled)
      ,(18, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @konyvtarUrl)
      ,(19, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @ApaczaiIsEnabled)
      ,(20, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @PalyavalasztasIsEnabled)
      ,(21, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @PalyavalasztasUrl)
      ,(22, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @SzirStatAdatszolgBekuldeseIsEnabled)
      ,(23, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @isKlebelsberg)
      ,(24, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eszkozKezelesEnabled)
      ,(25, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @gondviseloSzemelyesAdatokSzerkeszteseEnabled)
      ,(26, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @feltarAlkalmazottEnabled)
      ,(28, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @feltarASZFUrl)
      ,(29, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @okosmeresEnabled)
      ,(30, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @eszkozUgyintezesUrl)
      ,(31, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @feltarASZFGondviseloUrl)
      ,(32, @intezmenyID, 'F', 0, GETDATE(), GETDATE(), 0, 0, @dualisKepzesEnabled)

    PRINT CONCAT('Intézmény létrehozása sikeres! (ID: ', @intezmenyID, ')');
  END
  ELSE BEGIN
    PRINT CONCAT('Már létezik az intézmény! (ID: ', @intezmenyID, ')');
    --PRINT 'Kilépés';
    RETURN 1;
  END

  EXEC [dev].[uspGenerateTanevAdatok]  
     @intezmenyId = @intezmenyID
    ,@intezmenyAzonosito = @intezmenyAzonosito
    ,@tanevNeve = @tanevNeve
    ,@kovetkezoTanev = 0
    ,@intezmenyNeve = @intezmenyNeve
    ,@intezmenyIranyitoSzam = @intezmenyIranyitoSzam
    ,@intezmenyVaros = @intezmenyVaros
    ,@intezmenyKozteruletNev = @intezmenyKozteruletNev
    ,@intezmenyKozteruletJellegNev = @intezmenyKozteruletJellegNev
    ,@intezmenyHazszam = @intezmenyHazszam
    ,@intezmenyEmelet = @intezmenyEmelet
    ,@intezmenyAjto = @intezmenyAjto
    ,@intezmenyOMKod = @intezmenyOMKod
    ,@intezmenyIgazgato = @intezmenyIgazgato
    ,@intezmenyTagkod = @intezmenyTagkod
    ,@intezmenyEmail = @intezmenyEmail
    ,@adminJelszo = @adminJelszo
    ,@kellABHet = @kellABHet
    ,@teljesKreta = @teljesKreta
    ,@dbJelszo = @dbJelszo

  -- Következő tanév létrehozása, ha szükséges
  IF @kovetkezoTanevNeve IS NOT NULL AND @kovetkezoTanevNeve <> '' BEGIN
    IF @isKovTanevKivalaszthato = 1 BEGIN

      EXEC dev.uspGenerateTanevAdatokFromExistingTanev
         @intezmenyId = @intezmenyID -- int
        ,@tanevNeveNew = @kovetkezoTanevNeve -- nvarchar(20)
        ,@tanevNeveSource = @tanevNeve -- nvarchar(20)
        ,@kovetkezoTanev = 1 -- bit
    
    END
    ELSE BEGIN

      DECLARE 
         @elsoTanitasiNap datetime = LEFT(@kovetkezoTanevNeve, 4) + '0901'
        ,@utolsoTanitasiNap datetime = RIGHT(@kovetkezoTanevNeve, 4) + '0615'

      EXEC dev.uspGenerateNemKivalaszthatoTanev
         @tanevNev = @kovetkezoTanevNeve -- nvarchar(10)
        ,@intezmenyId = @intezmenyID -- int
        ,@elsoTanitasiNap = @elsoTanitasiNap-- nvarchar(4)
        ,@utolsoTanitasiNap = @utolsoTanitasiNap -- nvarchar(4)
      
    END
  END

  DECLARE @maxTanevSorszam int = (SELECT MAX(tv.C_SORSZAM) FROM T_TANEV tv WHERE tv.C_INTEZMENYID = @intezmenyID)

  INSERT INTO T_TANEV (
     C_AKTIV
    ,C_ELSOTANITASINAP
    ,C_KEZDONAP
    ,C_KOVETKEZO
    ,C_NEV
    ,C_SORSZAM
    ,C_UTOLSONAP
    ,C_UTOLSOTANITASINAP
    ,C_AKTIVALVA
    ,C_INTEZMENYID
    ,TOROLT
    ,SERIAL
    ,LASTCHANGED
    ,CREATED
    ,MODIFIER
    ,CREATOR
    ,ELOZOTANEVIREKORDID
    ,C_ISKIVALASZTHATO
  ) SELECT
     'F' AS C_AKTIV
    ,LEFT(x.Nev, 4) + '0901' AS C_ELSOTANITASINAP
    ,LEFT(x.Nev, 4) + '0901' AS C_KEZDONAP
    ,'F' C_KOVETKEZO
    ,x.Nev AS C_NEV
    ,x.Sorszam C_SORSZAM
    ,RIGHT(x.Nev, 4) + '0831' AS C_UTOLSONAP
    ,RIGHT(x.Nev, 4) + '0615'AS C_UTOLSOTANITASINAP
    ,NULL C_AKTIVALVA
    ,@intezmenyID C_INTEZMENYID
    ,'F' TOROLT
    ,0 SERIAL
    ,GETDATE() LASTCHANGED
    ,GETDATE() CREATED
    ,NULL MODIFIER
    ,NULL CREATOR
    ,NULL ELOZOTANEVIREKORDID
    ,'F' C_ISKIVALASZTHATO
  FROM ( VALUES 
     ('2022/2023', 44)
    ,('2023/2024', 46)
    ,('2024/2025', 48)
    ,('2025/2026', 50)
    ,('2026/2027', 52)
    ,('2027/2028', 54)
    ,('2028/2029', 56)
    ,('2029/2030', 58)
    ,('2030/2031', 60)
  ) x (Nev, Sorszam)
  WHERE Sorszam > @maxTanevSorszam

  EXECUTE dkt.usp_ToolsRefreshDKTDictionary

END
GO

