91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS uspFollowUpTanuloFelmentes
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE uspFollowUpTanuloFelmentes
 | 
						|
   @intezmenyId int
 | 
						|
  ,@aktTanevId int
 | 
						|
  ,@kovetkezoTanevId int
 | 
						|
  ,@felmentesId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
  DECLARE @kovFelmentesId int = (SELECT ID FROM T_TANULOMENTESSEG_OSSZES WHERE ELOZOTANEVIREKORDID=@felmentesId AND TOROLT='F')
 | 
						|
  DECLARE @elsoNap datetime = (select C_KEZDONAP from T_TANEV_OSSZES WHERE ID = @kovetkezoTanevId)
 | 
						|
	DECLARE 
 | 
						|
     @selectColList nvarchar(max)
 | 
						|
    ,@insertColList nvarchar(max)
 | 
						|
    ,@updateColList nvarchar(max)
 | 
						|
    ,@sql nvarchar(max)
 | 
						|
 | 
						|
  CREATE TABLE #ColumnMapping (
 | 
						|
     selectColName nvarchar(128)
 | 
						|
    ,insertColName nvarchar(128)
 | 
						|
    ,updateColName nvarchar(128)
 | 
						|
  )
 | 
						|
  INSERT INTO #ColumnMapping (
 | 
						|
     selectColName
 | 
						|
    ,insertColName
 | 
						|
    ,updateColName
 | 
						|
  ) SELECT
 | 
						|
     selectColName
 | 
						|
    ,insertColName
 | 
						|
    ,updateColName
 | 
						|
  FROM fnGetFollowUpColumnMapping (NULL,'T_TANULOMENTESSEG')
 | 
						|
 | 
						|
  IF (SELECT TOROLT FROM T_TANULOMENTESSEG_OSSZES WHERE ID = @felmentesId)='T' BEGIN
 | 
						|
  	RETURN
 | 
						|
  END
 | 
						|
  
 | 
						|
  IF @kovFelmentesId IS NULL
 | 
						|
  BEGIN
 | 
						|
    SELECT @insertColList = ISNULL(@insertColList+','+insertColname,insertColname) FROM #columnMapping
 | 
						|
    SELECT @selectColList = ISNULL(@selectColList+','+selectColName,selectColName) FROM #columnMapping
 | 
						|
    SET @sql = N'
 | 
						|
    INSERT INTO T_TANULOMENTESSEG_OSSZES (
 | 
						|
      '+@insertColList+'
 | 
						|
    ) SELECT
 | 
						|
      '+@selectColList+'
 | 
						|
    FROM T_TANULOMENTESSEG_OSSZES s
 | 
						|
  		INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = s.C_TANULOID
 | 
						|
  		INNER JOIN T_FELHASZNALO_OSSZES tKov ON tKov.C_OKTATASIAZONOSITO = t.C_OKTATASIAZONOSITO AND tKov.C_TANEVID = @kovetkezoTanevId AND tKov.TOROLT=''F''
 | 
						|
  		INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=s.C_TANTARGYID AND tgy.TOROLT=''F''
 | 
						|
    WHERE s.ID=@felmentesId AND ISNULL(s.C_VEGE,''2200-01-01'')>@elsoNap'
 | 
						|
    END
 | 
						|
  ELSE BEGIN
 | 
						|
    IF (SELECT C_VEGE FROM T_TANULOMENTESSEG_OSSZES WHERE ID = @felmentesId)<=@elsoNap BEGIN
 | 
						|
    	UPDATE T_TANULOMENTESSEG_OSSZES SET 
 | 
						|
    		 TOROLT='T' 
 | 
						|
    	WHERE ELOZOTANEVIREKORDID=@felmentesId AND TOROLT='F'
 | 
						|
    END
 | 
						|
    ELSE BEGIN
 | 
						|
      SELECT 
 | 
						|
        @updateColList = ISNULL(@updateColList+','+insertColName+' = '+updateColname,insertColName+' = '+updateColname)
 | 
						|
      FROM #columnMapping WHERE updateColName IS NOT NULL
 | 
						|
    END
 | 
						|
      SET @sql = N'
 | 
						|
    	UPDATE t SET
 | 
						|
    	  '+@updateColList+'
 | 
						|
    	FROM T_TANULOMENTESSEG_OSSZES t
 | 
						|
    		INNER JOIN T_TANULOMENTESSEG_OSSZES s ON s.ID=t.ELOZOTANEVIREKORDID AND s.TOROLT=''F'' AND s.ID=@felmentesId
 | 
						|
    		INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=s.C_TANTARGYID AND tgy.TOROLT=''F'''
 | 
						|
  END
 | 
						|
 | 
						|
  --PRINT @sql
 | 
						|
  exec sp_executesql 
 | 
						|
     @sql,N'
 | 
						|
     @intezmenyId int
 | 
						|
    ,@aktTanevId int
 | 
						|
    ,@kovetkezoTanevId int
 | 
						|
    ,@felmentesId int
 | 
						|
    ,@kovFelmentesId int
 | 
						|
    ,@elsoNap datetime'
 | 
						|
    ,@intezmenyId = @intezmenyId 
 | 
						|
    ,@aktTanevId = @aktTanevId 
 | 
						|
    ,@kovetkezoTanevId = @kovetkezoTanevId 
 | 
						|
    ,@felmentesId = @felmentesId 
 | 
						|
    ,@kovFelmentesId = @kovFelmentesId
 | 
						|
    ,@elsoNap = @elsoNap
 | 
						|
 | 
						|
END
 | 
						|
GO
 |