98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			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
 | 
						|
 | 
						|
	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 |