kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_UpdateTantargyfelosztasVisszamenoleges.sql
2024-03-13 00:33:46 +01:00

98 lines
No EOL
3.2 KiB
Transact-SQL

-- =============================================
-- Description: <A tantárgyfelosztás módosításával az órarendi órák, a tanítási órák és az értékelések átállítása is történjen meg>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_UpdateTantargyfelosztasVisszamenoleges]
GO
CREATE PROCEDURE [dbo].[sp_UpdateTantargyfelosztasVisszamenoleges]
@pIntezmenyId int
,@pTanevId int
,@pUserId int
,@pEredetiTanarId int
,@pModosultTanarId int
,@pEredetiTantargyId int
,@pModosultTantargyId int
,@pEredetiOsztalyCsoportId int
,@pModosultOsztalyCsoportId int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRANSACTION
CREATE TABLE #OldEErtekelesek (
OldErtekelesId int)
INSERT INTO #OldEErtekelesek (
OldErtekelesId)
EXEC [dbo].[uspGetEgyszerAdhatoErtekelesekTantargyfelosztasModositasAlapjan]
@pTanevId = @pTanevId
,@pOldTantargyId = @pEredetiTantargyId
,@pNewTantargyId = @pModosultTantargyId
,@pOldOsztalyCsoportId = @pEredetiOsztalyCsoportId
UPDATE T_TANITASIORA_OSSZES SET
C_TANTARGYID = @pModosultTantargyId
,C_OSZTALYCSOPORTID = @pModosultOsztalyCsoportId
,C_TANARID = @pModosultTanarId
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANITASIORA_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_TANTARGYID = @pEredetiTantargyId
AND C_OSZTALYCSOPORTID = @pEredetiOsztalyCsoportId
AND C_TANARID = @pEredetiTanarId
AND TOROLT = 'F'
UPDATE T_TANULOERTEKELES_OSSZES SET
C_TANTARGYID = @pModosultTantargyId
,C_OSZTALYCSOPORTID = @pModosultOsztalyCsoportId
,C_ROGZITESKORITANULOOSZTALYID =
IIF(EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = @pModosultOsztalyCsoportId AND TOROLT = 'F'), @pModosultOsztalyCsoportId, C_ROGZITESKORITANULOOSZTALYID)
,C_ERTEKELOID = @pModosultTanarId
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANULOERTEKELES_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_TANTARGYID = @pEredetiTantargyId
AND C_OSZTALYCSOPORTID = @pEredetiOsztalyCsoportId
AND C_ERTEKELOID = @pEredetiTanarId
AND NOT EXISTS (SELECT 1 FROM #OldEErtekelesek WHERE OldErtekelesId = ID)
UPDATE T_TANMENET_OSSZES SET
C_TANTARGYID = @pModosultTantargyId
,C_OSZTALYCSOPORTID = @pModosultOsztalyCsoportId
,C_FELTOLTOID = @pModosultTanarId
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANMENET_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_TANTARGYID = @pEredetiTantargyId
AND C_OSZTALYCSOPORTID = @pEredetiOsztalyCsoportId
AND C_FELTOLTOID = @pEredetiTanarId
AND TOROLT = 'F'
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRAN;
THROW
END CATCH
END
GO