254 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			254 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS sp_AktivTanevValtasa
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE sp_AktivTanevValtasa
 | 
						|
	 @pintezmenyId		INT
 | 
						|
	,@pAktTanevId		INT
 | 
						|
	,@pKovTanevId		INT
 | 
						|
	,@pfelhasznaloId	INT
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
  DECLARE 
 | 
						|
     @rendszerbeallitasDate nvarchar(10)
 | 
						|
    ,@kovTanevOsz nvarchar(10)
 | 
						|
    ,@kovTanevTavasz nvarchar(10)
 | 
						|
 | 
						|
  UPDATE T_TANEV_OSSZES 
 | 
						|
  SET C_AKTIVALVA = GETDATE() 
 | 
						|
  WHERE ID = @pKovTanevId
 | 
						|
    
 | 
						|
  INSERT INTO T_FELHASZNALOBELEPES_OSSZES (
 | 
						|
     C_KOTELEZOVALTOZTATNI
 | 
						|
    ,C_MEGHIUSULTBELEPESEK
 | 
						|
    ,C_UTOLSOBELEPES
 | 
						|
    ,C_JELSZO
 | 
						|
    ,C_JELSZOVALTOZTATASIDEJE
 | 
						|
    ,C_SO
 | 
						|
    ,C_BEJELENTKEZESINEV
 | 
						|
    ,C_NEPTUNNAPLOJELSZO
 | 
						|
    ,C_FELHASZNALOID
 | 
						|
    ,C_GONDVISELOID
 | 
						|
    ,C_INTEZMENYID
 | 
						|
    ,C_TANEVID
 | 
						|
    ,C_GUID
 | 
						|
    ,TOROLT
 | 
						|
    ,SERIAL
 | 
						|
    ,LASTCHANGED
 | 
						|
    ,CREATED
 | 
						|
    ,MODIFIER
 | 
						|
    ,CREATOR
 | 
						|
    ,NNID
 | 
						|
  ) SELECT 
 | 
						|
     'T' AS C_KOTELEZOVALTOZTATNI  
 | 
						|
    ,0 AS C_MEGHIUSULTBELEPESEK  
 | 
						|
    ,NULL AS C_UTOLSOBELEPES  
 | 
						|
    ,C_JELSZO AS C_JELSZO      
 | 
						|
    ,NULL AS C_JELSZOVALTOZTATASIDEJE 
 | 
						|
    ,C_SO AS C_SO  
 | 
						|
    ,C_BEJELENTKEZESINEV AS C_BEJELENTKEZESINEV    
 | 
						|
    ,C_NEPTUNNAPLOJELSZO AS C_NEPTUNNAPLOJELSZO  
 | 
						|
    ,tmp.NewUserId  AS C_FELHASZNALOID      
 | 
						|
    ,NULL AS C_GONDVISELOID       
 | 
						|
    ,@pintezmenyId AS C_INTEZMENYID         
 | 
						|
    ,@pKovTanevId AS C_TANEVID  
 | 
						|
    ,f.C_GUID AS C_GUID
 | 
						|
    ,TOROLT AS TOROLT             
 | 
						|
    ,0 AS SERIAL  
 | 
						|
    ,GETDATE() AS LASTCHANGED     
 | 
						|
    ,GETDATE() AS CREATED         
 | 
						|
    ,@pfelhasznaloId AS MODIFIER             
 | 
						|
    ,@pfelhasznaloId AS CREATOR              
 | 
						|
    ,NULL AS NNID                  
 | 
						|
  FROM T_FELHASZNALOBELEPES_OSSZES f
 | 
						|
  INNER JOIN (
 | 
						|
    SELECT 
 | 
						|
       a.ID AS OldUserId
 | 
						|
      ,b.ID AS NewUserId
 | 
						|
    FROM T_FELHASZNALO_OSSZES a
 | 
						|
    INNER JOIN T_FELHASZNALO_OSSZES b ON b.C_SZULETESINEV = a.C_SZULETESINEV
 | 
						|
      AND b.C_ANYJANEVE = a.C_ANYJANEVE
 | 
						|
      AND b.C_SZULETESIDATUM = a.C_SZULETESIDATUM
 | 
						|
      AND b.C_SZULETESIHELY = a.C_SZULETESIHELY
 | 
						|
      AND b.ELOZOTANEVIREKORDID=a.ID
 | 
						|
    INNER JOIN T_ALKALMAZOTT_OSSZES alk ON alk.ID = a.ID AND alk.C_ALTANEVID=a.C_TANEVID
 | 
						|
    INNER JOIN T_ALKALMAZOTT_OSSZES alk0 ON alk0.ID = b.ID AND alk0.C_ALTANEVID=b.C_TANEVID
 | 
						|
    WHERE a.C_TANEVID = @pAktTanevId
 | 
						|
      AND b.C_TANEVID = @pKovTanevId
 | 
						|
      AND a.TOROLT = 'F'
 | 
						|
      AND b.TOROLT = 'F'
 | 
						|
  	  AND 0 = (SELECT COUNT(1) FROM T_FELHASZNALOBELEPES_OSSZES f2 WHERE f2.C_FELHASZNALOID = b.ID AND f2.TOROLT = 'F')
 | 
						|
  ) tmp ON tmp.OldUserId = f.C_FELHASZNALOID AND f.TOROLT='F'
 | 
						|
 | 
						|
  INSERT INTO T_FELHASZNALO_SZEREPKOR (C_FELHASZNALOID, C_SZEREPKORID)
 | 
						|
  SELECT DISTINCT
 | 
						|
     newF.ID
 | 
						|
    ,newSz.ID
 | 
						|
  FROM T_FELHASZNALO_OSSZES newF
 | 
						|
    INNER JOIN (
 | 
						|
      SELECT
 | 
						|
         f.C_SZULETESINEV
 | 
						|
        ,f.C_ANYJANEVE
 | 
						|
        ,f.C_SZULETESIDATUM
 | 
						|
        ,f.C_SZULETESIHELY
 | 
						|
        ,sz.C_SZEREPKORTIPUS
 | 
						|
      FROM T_FELHASZNALO_OSSZES f
 | 
						|
        INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = f.ID
 | 
						|
        INNER JOIN T_FELHASZNALO_SZEREPKOR fsz ON fsz.C_FELHASZNALOID = f.ID
 | 
						|
        INNER JOIN T_SZEREPKOR_OSSZES sz ON sz.ID = fsz.C_SZEREPKORID
 | 
						|
      WHERE f.C_UTONEV <> 'Adminisztrátor' AND f.C_UTONEV <> 'Fenntartó'
 | 
						|
        AND f.C_TANEVID = @pAktTanevId
 | 
						|
        AND f.C_INTEZMENYID = @pintezmenyId
 | 
						|
        AND f.TOROLT = 'F') oldF ON newF.C_SZULETESINEV = oldF.C_SZULETESINEV
 | 
						|
          AND newF.C_ANYJANEVE = oldF.C_ANYJANEVE
 | 
						|
          AND newF.C_SZULETESIDATUM = oldF.C_SZULETESIDATUM
 | 
						|
          AND newF.C_SZULETESIHELY = oldF.C_SZULETESIHELY
 | 
						|
    INNER JOIN T_SZEREPKOR_OSSZES newSz ON newSz.C_SZEREPKORTIPUS = oldF.C_SZEREPKORTIPUS
 | 
						|
      AND newSz.C_TANEVID = @pKovTanevId
 | 
						|
      AND newSz.C_INTEZMENYID = @pintezmenyId
 | 
						|
  WHERE newF.C_INTEZMENYID = @pintezmenyId
 | 
						|
    AND newF.C_TANEVID = @pKovTanevId
 | 
						|
    AND newF.ID NOT IN (select C_FELHASZNALOID from T_FElHASZNALO_SZEREPKOR)
 | 
						|
 | 
						|
 | 
						|
  UPDATE a SET
 | 
						|
     a.C_JELSZO = b.C_JELSZO
 | 
						|
    ,a.C_SO = b.C_SO
 | 
						|
  FROM T_FELHASZNALOBELEPES_OSSZES a
 | 
						|
	  INNER JOIN T_FELHASZNALOBELEPES_OSSZES b ON b.C_BEJELENTKEZESINEV = a.C_BEJELENTKEZESINEV
 | 
						|
  WHERE a.C_BEJELENTKEZESINEV = 'admin'
 | 
						|
	  AND a.C_TANEVID = @pKovTanevId
 | 
						|
	  AND b.C_TANEVID = @pAktTanevId
 | 
						|
 | 
						|
  UPDATE T_FELHASZNALOBELEPES_OSSZES SET 
 | 
						|
    TOROLT = 'T'
 | 
						|
  WHERE C_TANEVID = @pAktTanevId
 | 
						|
	  AND C_FELHASZNALOID <> @pfelhasznaloId;
 | 
						|
 | 
						|
  UPDATE T_TANEV_OSSZES SET 
 | 
						|
     C_AKTIV = 'F'
 | 
						|
  WHERE ID = @pAktTanevId
 | 
						|
    AND C_INTEZMENYID = @pintezmenyId
 | 
						|
    AND TOROLT = 'F'
 | 
						|
 | 
						|
  UPDATE T_TANEV_OSSZES SET
 | 
						|
     C_AKTIV = 'T'
 | 
						|
    ,C_KOVETKEZO = 'F'
 | 
						|
  WHERE ID = @pKovTanevId
 | 
						|
    AND C_INTEZMENYID = @pintezmenyId
 | 
						|
    AND TOROLT = 'F';
 | 
						|
 | 
						|
  UPDATE T_MOBILDBINFO_OSSZES SET
 | 
						|
		C_VERSION = C_VERSION + 1,
 | 
						|
		LASTCHANGED = GETDATE()
 | 
						|
	WHERE C_INTEZMENYID = @pintezmenyId
 | 
						|
		AND TOROLT = 'F';
 | 
						|
  
 | 
						|
  DELETE FROM T_RENDSZERBEALLITAS_OSSZES 
 | 
						|
  WHERE C_TANEVID = @pKovTanevId
 | 
						|
  
 | 
						|
  INSERT INTO T_RENDSZERBEALLITAS_OSSZES (
 | 
						|
     C_ALAPERTEK
 | 
						|
    ,C_BEALLITASTIPUS
 | 
						|
    ,C_ERTEK
 | 
						|
    ,C_ERTEKTIPUS
 | 
						|
    ,C_INTEZMENYID
 | 
						|
    ,C_TANEVID
 | 
						|
    ,TOROLT
 | 
						|
    ,SERIAL
 | 
						|
    ,LASTCHANGED
 | 
						|
    ,CREATED
 | 
						|
    ,MODIFIER
 | 
						|
    ,CREATOR
 | 
						|
    ,ELOZOTANEVIREKORDID
 | 
						|
    ,NNID
 | 
						|
  ) SELECT 
 | 
						|
     C_ALAPERTEK AS C_ALAPERTEK             -- C_ALAPERTEK - nvarchar(MAX)
 | 
						|
    ,C_BEALLITASTIPUS AS C_BEALLITASTIPUS       -- C_BEALLITASTIPUS - int
 | 
						|
    ,C_ERTEK AS C_ERTEK                -- C_ERTEK - nvarchar(MAX)
 | 
						|
    ,C_ERTEKTIPUS AS C_ERTEKTIPUS           -- C_ERTEKTIPUS - int
 | 
						|
    ,C_INTEZMENYID AS C_INTEZMENYID          -- C_INTEZMENYID - int
 | 
						|
    ,@pKovTanevId AS C_TANEVID              -- C_TANEVID - int
 | 
						|
    ,TOROLT AS TOROLT                 -- TOROLT - char(1)
 | 
						|
    ,0 AS SERIAL                 -- SERIAL - int
 | 
						|
    ,GETDATE() AS LASTCHANGED            -- LASTCHANGED - datetime
 | 
						|
    ,GETDATE() AS CREATED                -- CREATED - datetime
 | 
						|
    ,MODIFIER   AS MODIFIER                -- MODIFIER - int
 | 
						|
    ,CREATOR   AS CREATOR                 -- CREATOR - int
 | 
						|
    ,ID   AS ELOZOTANEVIREKORDID     -- ELOZOTANEVIREKORDID - int
 | 
						|
    ,NULL   AS NNID                    -- NNID - int
 | 
						|
  FROM T_RENDSZERBEALLITAS
 | 
						|
  WHERE C_TANEVID = @pAktTanevId
 | 
						|
  
 | 
						|
  
 | 
						|
  SELECT @kovTanevOsz = LEFT(C_NEV, 4), @kovTanevTavasz = RIGHT(C_NEV, 4) FROM T_TANEV_OSSZES WHERE ID = @pKovTanevId
 | 
						|
  
 | 
						|
  -- tanév első napja
 | 
						|
  SET @rendszerbeallitasDate = ISNULL((SELECT FORMAT(C_KEZDONAP, 'yyyy-MM-dd') FROM T_TANEV_OSSZES WHERE ID = @pKovTanevId), @kovTanevOsz + N'-09-01')   
 | 
						|
  UPDATE T_RENDSZERBEALLITAS -- tanév első napja
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate)         
 | 
						|
  WHERE C_BEALLITASTIPUS = 3076
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
  
 | 
						|
  UPDATE T_RENDSZERBEALLITAS -- tanév első napja
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 1687
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
 | 
						|
  UPDATE T_RENDSZERBEALLITAS -- tanév első napja
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 3082
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
    
 | 
						|
  -- tanév uccsó napja
 | 
						|
  SET @rendszerbeallitasDate = ISNULL((SELECT FORMAT(C_UTOLSONAP, 'yyyy-MM-dd') FROM T_TANEV_OSSZES WHERE ID = @pKovTanevId), @kovTanevTavasz + N'-08-31') 
 | 
						|
  UPDATE T_RENDSZERBEALLITAS -- tanév uccsó napja
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 7107
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
 
 | 
						|
  -- utolsó tanítási nap
 | 
						|
  SET @rendszerbeallitasDate = ISNULL((SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pKovTanevId AND C_NAPTIPUSA = 1395), @kovTanevTavasz + N'-06-15') 
 | 
						|
  UPDATE T_RENDSZERBEALLITAS -- utolsó tanítási nap
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 5439
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
   
 | 
						|
  -- utolsó tanítási nap + 1
 | 
						|
  SET @rendszerbeallitasDate = ISNULL((SELECT FORMAT(C_DATUM + 1, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pKovTanevId AND C_NAPTIPUSA = 1395), @kovTanevTavasz + N'-06-16')
 | 
						|
  UPDATE T_RENDSZERBEALLITAS -- utolsó tanítási nap + 1
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 7106
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
  
 | 
						|
  -- utolsó tanítási nap végzősöknek
 | 
						|
  SET @rendszerbeallitasDate = ISNULL((SELECT FORMAT(C_DATUM + 1, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pKovTanevId AND C_NAPTIPUSA = 1402), @kovTanevTavasz + N'-05-01')  
 | 
						|
  UPDATE T_RENDSZERBEALLITAS  -- utolsó tanítási nap végzősöknek
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 5440
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
    
 | 
						|
  -- Első félév vége
 | 
						|
  SET @rendszerbeallitasDate = ISNULL((SELECT FORMAT(C_DATUM + 1, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pKovTanevId AND C_NAPTIPUSA = 1400), @kovTanevTavasz + N'-01-27')   
 | 
						|
  UPDATE T_RENDSZERBEALLITAS
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 5438
 | 
						|
    AND C_TANEVID = @pKovTanevId   
 | 
						|
  
 | 
						|
  -- Május 2
 | 
						|
  SET @rendszerbeallitasDate = @kovTanevTavasz + N'-05-02'
 | 
						|
  UPDATE T_RENDSZERBEALLITAS
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 1690
 | 
						|
    AND C_TANEVID = @pKovTanevId    
 | 
						|
 | 
						|
  -- Április 2
 | 
						|
  SET @rendszerbeallitasDate = @kovTanevTavasz + N'-04-02'
 | 
						|
  UPDATE T_RENDSZERBEALLITAS
 | 
						|
    SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) 
 | 
						|
  WHERE C_BEALLITASTIPUS = 1691
 | 
						|
    AND C_TANEVID = @pKovTanevId
 | 
						|
 
 | 
						|
END
 | 
						|
GO
 |