kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20200122182728_KRETA2_2521/sp_UpdateTantargyfelosztasVisszamenoleges.sql
2024-03-13 00:33:46 +01:00

99 lines
No EOL
2.7 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
,@pNewOsztalyCsoportId = @pModosultOsztalyCsoportId
UPDATE T_TANITASIORA SET
C_TANTARGYID = @pModosultTantargyId
,C_OSZTALYCSOPORTID = @pModosultOsztalyCsoportId
,C_TANARID = @pModosultTanarId
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANITASIORA
WHERE
C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_TANTARGYID = @pEredetiTantargyId
AND C_OSZTALYCSOPORTID = @pEredetiOsztalyCsoportId
AND C_TANARID = @pEredetiTanarId
UPDATE T_TANULOERTEKELES SET
C_TANTARGYID = @pModosultTantargyId
,C_OSZTALYCSOPORTID = @pModosultOsztalyCsoportId
,C_ERTEKELOID = @pModosultTanarId
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANULOERTEKELES
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 SET
C_TANTARGYID = @pModosultTantargyId
,C_OSZTALYCSOPORTID = @pModosultOsztalyCsoportId
,C_FELTOLTOID = @pModosultTanarId
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM
T_TANMENET
WHERE
C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_TANTARGYID = @pEredetiTantargyId
AND C_OSZTALYCSOPORTID = @pEredetiOsztalyCsoportId
AND C_FELTOLTOID = @pEredetiTanarId
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRAN;
THROW
END CATCH
END
GO