﻿-- Osztály tanulóinak szakképzéses adatinak frissítése, paraméterektől függően
-- Szekeres András, Telek Ákos
-- 2017.05.11.

DROP PROCEDURE IF EXISTS dbo.sp_UpdateOsztalyTanuloiSzakkepzesesAdatok
GO

CREATE PROCEDURE dbo.sp_UpdateOsztalyTanuloiSzakkepzesesAdatok
   @osztalyId int
  ,@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 
    SET '

  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

  SET @sql += @setList + '
  FROM T_TANULOCSOPORT_OSSZES tcs
  INNER JOIN T_TANULO_OSSZES t on tcs.C_TANULOID = t.id
  WHERE tcs.C_OSZTALYCSOPORTID = @osztalyId
    AND tcs.TOROLT = ''F''
    AND t.TOROLT = ''F''
    AND tcs.C_BELEPESDATUM < GETDATE() 
    AND tcs.C_KILEPESDATUM IS NULL
  '

  EXEC sp_executesql @sql, N'@osztalyId int, @szakmacsoport int, @agazat int, @szakkepesites int, @reszSzakkepesites int', @osztalyId, @szakmacsoport, @agazat, @szakkepesites, @reszSzakkepesites
END
GO