﻿/*
EXEC dev.uspEnableModuls 
   @pModulNames = '' -- LEP,AMI,KOLI,EGYMI lehet csak, vesszővel elválasztva: 'LEP,AMI' 'KOLI' 'EGYMI, AMI'
  ,@pIntezmenyAzonositok = '' -- suli azonosítók vesszővel elválasztva: 'klik027261001, klik201286001, pecsi-teszt'

*/
DROP PROCEDURE IF EXISTS dev.uspEnableModules
GO

CREATE PROCEDURE dev.uspEnableModules 
   @pModulNames nvarchar(100) -- LEP,AMI,KOLI, EGYMI lehet csak, vesszővel elválasztva: 'LEP,AMI' 'KOLI' 'EGYMI, AMI'
  ,@pIntezmenyAzonositok nvarchar(max) -- suli azonosítók vesszővel elválasztva: 'klik027261001, klik201286001, pecsi-teszt'
AS
BEGIN
  CREATE TABLE #Intezmeny (Id int, Azonosito nvarchar(80))

  INSERT INTO #Intezmeny
  SELECT ID, C_AZONOSITO 
  FROM T_INTEZMENY i
  INNER JOIN STRING_SPLIT(@pIntezmenyAzonositok, ',') x ON LTRIM(RTRIM(x.value)) = i.C_AZONOSITO

  -- =======================
  -- AMI bekapcsolás
  -- =======================
  IF EXISTS (SELECT 1 FROM STRING_SPLIT(@pModulNames, ',') WHERE LTRIM(RTRIM(value)) = 'AMI') BEGIN
    UPDATE OktKat SET 
      OktKat.C_FELADATCSOPORTTANULOOSZTALYK  = 3
    FROM T_OKTNEVELESIKATEGORIA OktKat
      INNER JOIN #Intezmeny i ON i.Id = OktKat.C_ALINTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = OktKat.C_ALTANEVID AND tv.C_INTEZMENYID = OktKat.C_ALINTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE OktKat.ID = 7555

    UPDATE OktFel SET 
      OktFel.C_FELADATKATEGORIAID = 7555
    FROM T_OKTATASINEVELESIFELADAT OktFel
      INNER JOIN #Intezmeny i ON i.Id = OktFel.C_ALINTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = OktFel.C_ALTANEVID AND tv.C_INTEZMENYID = OktFel.C_ALINTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE OktFel.ID IN (1159,7664)
    PRINT 'AMI bekapcsolva'
  END

  -- =======================
  -- EGYMI bekapcsolás
  -- =======================
  IF EXISTS (SELECT 1 FROM STRING_SPLIT(@pModulNames, ',') WHERE LTRIM(RTRIM(value)) = 'EGYMI') BEGIN
    UPDATE OktKat SET 
      OktKat.C_FELADATCSOPORTTANULOOSZTALYK  = 3
    FROM T_OKTNEVELESIKATEGORIA OktKat
      INNER JOIN #Intezmeny i ON i.Id = OktKat.C_ALINTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = OktKat.C_ALTANEVID AND tv.C_INTEZMENYID = OktKat.C_ALINTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE OktKat.ID = 7717

    UPDATE OktFel SET 
      OktFel.C_FELADATKATEGORIAID = 7717
    FROM T_OKTATASINEVELESIFELADAT OktFel
      INNER JOIN #Intezmeny i ON i.Id = OktFel.C_ALINTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = OktFel.C_ALTANEVID AND tv.C_INTEZMENYID = OktFel.C_ALINTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE OktFel.ID = 6711

    PRINT 'EGYMI bekapcsolva'
  END

  -- =======================
  -- KOLI bekapcsolás
  -- =======================
  IF EXISTS (SELECT 1 FROM STRING_SPLIT(@pModulNames, ',') WHERE LTRIM(RTRIM(value)) = 'KOLI') BEGIN
    UPDATE OktKat SET 
      OktKat.C_FELADATCSOPORTTANULOOSZTALYK  = 3
    FROM T_OKTNEVELESIKATEGORIA OktKat
      INNER JOIN #Intezmeny i ON i.Id = OktKat.C_ALINTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = OktKat.C_ALTANEVID AND tv.C_INTEZMENYID = OktKat.C_ALINTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE OktKat.ID = 7556

    UPDATE OktFel SET 
      OktFel.C_FELADATKATEGORIAID = 7556
    FROM T_OKTATASINEVELESIFELADAT OktFel
      INNER JOIN #Intezmeny i ON i.Id = OktFel.C_ALINTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = OktFel.C_ALTANEVID AND tv.C_INTEZMENYID = OktFel.C_ALINTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE OktFel.ID IN (1165,1166)
    PRINT 'KOLI bekapcsolva'
  END

  -- =======================
  -- KOLI, EGYMI, AMI bekapcsolás
  -- =======================
  IF EXISTS (SELECT 1 FROM STRING_SPLIT(@pModulNames, ',') WHERE LTRIM(RTRIM(value)) IN ('KOLI', 'EGYMI', 'AMI')) BEGIN
    UPDATE d SET 
      d.C_VISIBLE = 'T'
    FROM T_DICTIONARYITEMBASE d
      INNER JOIN #Intezmeny i ON i.Id = d.C_INTEZMENYID
      INNER JOIN T_TANEV tv ON tv.ID = d.C_TANEVID AND tv.C_INTEZMENYID = d.C_INTEZMENYID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
    WHERE d.ID IN (7553,7554,7555,7556,7717,7655,7656,7657,7658,7659,7660,7665,7666,7667,7668,7669,7670,7671,7672)
      AND d.C_VISIBLE = 'F'

    UPDATE ocs SET 
      ocs.C_FELADATKATEGORIAID = oktnevfel.C_FELADATKATEGORIAID
    FROM T_OSZTALYCSOPORT ocs
      INNER JOIN T_FELADATELLATASIHELY fh ON fh.id = ocs.C_FELADATELLATASIHELYID
      INNER JOIN T_OKTATASINEVELESIFELADAT oktnevfel ON oktnevfel.id = fh.C_OKTATASINEVELESIFELADATTIPUS AND fh.C_TANEVID = oktnevfel.C_ALTANEVID
      INNER JOIN T_TANEV tv ON tv.ID = ocs.C_TANEVID AND (tv.C_AKTIV = 'T' OR tv.C_KOVETKEZO = 'T')
      INNER JOIN #Intezmeny i ON i.Id = ocs.C_INTEZMENYID  
    WHERE ocs.C_FELADATKATEGORIAID <> oktnevfel.C_FELADATKATEGORIAID
  END
  -- =======================
  -- LEP bekapcsolás
  -- =======================
  IF EXISTS (SELECT 1 FROM STRING_SPLIT(@pModulNames, ',') WHERE LTRIM(RTRIM(value)) = 'LEP') BEGIN
    UPDATE r SET
      C_ERTEK = '{"Id":"Lazar_Ervin_Program_kezelese","Value":"true"}'
    FROM T_RENDSZERBEALLITAS r
      INNER JOIN #Intezmeny i ON i.Id = r.C_INTEZMENYID
    WHERE C_BEALLITASTIPUS = 7746
    PRINT 'LEP bekapcsolva'
  END
END
GO
