﻿DROP PROCEDURE IF EXISTS uspDeleteEgyediNapOsztalycsoport
GO

CREATE PROCEDURE uspDeleteEgyediNapOsztalycsoport
   @pTanevRendjeId INT
  ,@pOsztalycsoportId INT
  ,@pIsKapcsolodoCsoportokIs CHAR(1)
  ,@pModifierId INT
AS BEGIN
  SET NOCOUNT ON

  DECLARE @napDatuma DATETIME, @osszesOsztalyraVonatkozik CHAR(1);
  SELECT @napDatuma = C_DATUM, @osszesOsztalyraVonatkozik = C_OSSZESCSOPORTRAVONATKOZIK FROM T_TANEVRENDJE_OSSZES WHERE ID = @pTanevRendjeId

  DECLARE @sql NVARCHAR(MAX) = '';

  SET @sql += N'
  UPDATE oo
    SET
       oo.TOROLT = ''T''
      ,LASTCHANGED = GETDATE()
      ,MODIFIER = @pModifierId
    FROM T_ORARENDIORA_OSSZES AS oo
    LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE AS ocstr ON ocstr.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
    WHERE
      oo.C_EGYEDINAP = ''T'' AND oo.C_ORAERVENYESSEGKEZDETE = @napDatuma AND oo.C_ORAERVENYESSEGVEGE = @napDatuma
      AND oo.TOROLT = ''F''
  '

  IF(@pIsKapcsolodoCsoportokIs = 'T')
    BEGIN
      SET @sql += N'
        AND oo.C_OSZTALYCSOPORTID IN (
          SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalycsoportId AND TOROLT = ''F''
          UNION
          SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @pOsztalycsoportId AND TOROLT = ''F'')
        '
    END
  ELSE
    BEGIN
      SET @sql += N'
        AND oo.C_OSZTALYCSOPORTID = @pOsztalycsoportId 
      '
    END

	EXEC sp_executesql @sql, N'
     @napDatuma datetime
    ,@pOsztalycsoportId INT'
    ,@napDatuma = @napDatuma
    ,@pOsztalycsoportId = @pOsztalycsoportId

END