﻿-- Tanulók szakképzéses adatinak frissítése, paraméterektől függően
-- Szekeres András, Telek Ákos
-- 2017.05.12.

DROP PROCEDURE IF EXISTS dbo.uspUpdateTanulokNKTesSZKTSzakkepzesesAdatok
GO

CREATE PROCEDURE dbo.uspUpdateTanulokNKTesSZKTSzakkepzesesAdatok 
  @tanulokIdString varchar(max)
  ,@isSzakkepzesesUpdate bit = 1
  ,@isNKTSzakkepzesesUpdate bit = 0
  ,@SzakiranyNKTTipusId int = NULL
  ,@SzakkepesitesNKTTipusId int = NULL
  ,@TanulmanyiTeruletNKTTipusId int = NULL
  ,@szakmacsoport int = NULL
  ,@agazat int = NULL
  ,@szakkepesites int = NULL
  ,@reszSzakkepesites int = NULL
AS
BEGIN
  SET NOCOUNT ON;
  DECLARE @sql NVARCHAR(MAX), @setList NVARCHAR(MAX)

  SET @sql = N'UPDATE T_TANULO_OSSZES
    SET '

  IF @isSzakkepzesesUpdate is not null and @isSzakkepzesesUpdate = 1
  BEGIN
    IF @szakmacsoport is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_SZAKMACSOPORT = @szakmacsoport'
    END
    IF @agazat is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_AGAZAT = @agazat'
    END
    IF @szakkepesites is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_SZAKKEPESITES = @szakkepesites'
    END
    IF @reszSzakkepesites is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_RESZSZAKKEPESITES = @reszSzakkepesites'
    END
  END
  IF @isNKTSzakkepzesesUpdate is not null and @isNKTSzakkepzesesUpdate = 1
  BEGIN
    IF @SzakiranyNKTTipusId is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_SZAKIRANYNKTTIPUSID = @SzakiranyNKTTipusId'
    END
    IF @SzakkepesitesNKTTipusId is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_SZAKKEPESITESNKTTIPUSID = @SzakkepesitesNKTTipusId'
    END
    IF @TanulmanyiTeruletNKTTipusId is not null BEGIN
      SET @setList = ISNULL(@setList + ', ', '') + N'C_TANULMANYITERULETNKTTIPUSID = @TanulmanyiTeruletNKTTipusId'
    END
  END

  SET @sql += @setList + '
  WHERE ID IN ('+ @tanulokIdString +')
    AND TOROLT = ''F''
  '

  EXEC sp_executesql @sql, 
  N'@szakmacsoport int, @agazat int, @szakkepesites int, @reszSzakkepesites int, @SzakiranyNKTTipusId int, @SzakkepesitesNKTTipusId int, @TanulmanyiTeruletNKTTipusId int', 
  @szakmacsoport, @agazat, @szakkepesites, @reszSzakkepesites, @SzakiranyNKTTipusId, @SzakkepesitesNKTTipusId, @TanulmanyiTeruletNKTTipusId
END
GO
