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_OSSZES 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_OSSZES -- tanév első napja SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) WHERE C_BEALLITASTIPUS = 3076 AND C_TANEVID = @pKovTanevId UPDATE T_RENDSZERBEALLITAS_OSSZES -- tanév első napja SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) WHERE C_BEALLITASTIPUS = 1687 AND C_TANEVID = @pKovTanevId UPDATE T_RENDSZERBEALLITAS_OSSZES -- 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_OSSZES -- 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 AND TOROLT = 'F'), @kovTanevTavasz + N'-06-15') UPDATE T_RENDSZERBEALLITAS_OSSZES -- 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 AND TOROLT = 'F'), @kovTanevTavasz + N'-06-16') UPDATE T_RENDSZERBEALLITAS_OSSZES -- 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 AND TOROLT = 'F'), @kovTanevTavasz + N'-05-01') UPDATE T_RENDSZERBEALLITAS_OSSZES -- 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 AND TOROLT = 'F'), @kovTanevTavasz + N'-01-27') UPDATE T_RENDSZERBEALLITAS_OSSZES 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_OSSZES 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_OSSZES SET C_ERTEK = JSON_MODIFY(C_ERTEK, '$.Date', @rendszerbeallitasDate) WHERE C_BEALLITASTIPUS = 1691 AND C_TANEVID = @pKovTanevId END GO