﻿DROP PROCEDURE IF EXISTS sp_FollowUpTanuloFelmentes
GO

CREATE PROCEDURE sp_FollowUpTanuloFelmentes
  @intezmenyId int,
  @aktTanevId int,
  @kovTanevId int,
  @felmentesId int
AS
BEGIN
  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 = @kovTanevId)
	
IF (SELECT TOROLT FROM T_TANULOMENTESSEG_OSSZES WHERE ID = @felmentesId)='T' BEGIN
	RETURN
END

IF @kovFelmentesId IS NULL
BEGIN
    INSERT INTO T_TANULOMENTESSEG_OSSZES (
       C_ERTEKELESMENTESITES
      ,C_KEZDETE
      ,C_MENTESSEGOKA
      ,C_ORAMENTESITES
      ,C_VEGE
      ,C_SZOVEGESENERTEKELHETO
      ,C_TANTARGYID
      ,C_TANULOID
      ,C_INTEZMENYID
      ,C_TANEVID
      ,SERIAL
      ,LASTCHANGED
      ,CREATED
      ,MODIFIER
      ,CREATOR
      ,ELOZOTANEVIREKORDID
    ) SELECT
       C_ERTEKELESMENTESITES
      ,C_KEZDETE
      ,C_MENTESSEGOKA
      ,C_ORAMENTESITES
      ,C_VEGE
      ,C_SZOVEGESENERTEKELHETO
      ,tgy.ID
      ,tKov.ID
      ,tm.C_INTEZMENYID
      ,@kovTanevId
      ,0
      ,tm.LASTCHANGED
      ,tm.LASTCHANGED
      ,tm.MODIFIER
      ,tm.MODIFIER
      ,tm.ID
    FROM T_TANULOMENTESSEG_OSSZES tm
		INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = tm.C_TANULOID
		INNER JOIN T_FELHASZNALO_OSSZES tKov ON tKov.C_OKTATASIAZONOSITO = t.C_OKTATASIAZONOSITO AND tKov.C_TANEVID = @kovTanevId AND tKov.TOROLT='F'
		INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=tm.C_TANTARGYID AND tgy.TOROLT='F'
    WHERE tm.ID=@felmentesId AND ISNULL(tm.C_VEGE,'2200-01-01')>@elsoNap
  END
ELSE
	BEGIN
		IF (SELECT C_VEGE FROM T_TANULOMENTESSEG_OSSZES WHERE ID = @felmentesId)<=@elsoNap
			UPDATE T_TANULOMENTESSEG_OSSZES SET 
				 TOROLT='T' 
			WHERE ELOZOTANEVIREKORDID=@felmentesId AND TOROLT='F'
		ELSE
		BEGIN
			UPDATE kovetkezo SET
			   C_ERTEKELESMENTESITES = regi.C_ERTEKELESMENTESITES
			  ,C_KEZDETE = regi.C_KEZDETE
			  ,C_MENTESSEGOKA = regi.C_MENTESSEGOKA
			  ,C_ORAMENTESITES = regi.C_ORAMENTESITES
			  ,C_VEGE = regi.C_VEGE
			  ,C_SZOVEGESENERTEKELHETO = regi.C_SZOVEGESENERTEKELHETO
			  ,C_TANTARGYID = tgy.ID
			  ,SERIAL += 1
			  ,LASTCHANGED = regi.LASTCHANGED
			  ,MODIFIER = regi.MODIFIER
			FROM T_TANULOMENTESSEG_OSSZES kovetkezo
				INNER JOIN T_TANULOMENTESSEG_OSSZES regi ON regi.ID=kovetkezo.ELOZOTANEVIREKORDID AND regi.TOROLT='F' AND regi.ID=@felmentesId
				INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=regi.C_TANTARGYID AND tgy.TOROLT='F'
		END
	END
END
GO
