﻿DROP PROCEDURE IF EXISTS uspDeleteEgyediNap
GO

CREATE PROCEDURE uspDeleteEgyediNap
   @pTanevRendjeId INT
  ,@pIsKezzelRogzitesTorles 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

  IF(@pIsKezzelRogzitesTorles = 'T')
    BEGIN
      IF(@osszesOsztalyraVonatkozik= 'T')
        BEGIN
          UPDATE T_ORARENDIORA
          SET
             TOROLT = 'T'
            ,LASTCHANGED = GETDATE()
            ,MODIFIER = @pModifierId
          WHERE
            C_EGYEDINAP = 'T' AND C_ORAERVENYESSEGKEZDETE = @napDatuma AND C_ORAERVENYESSEGVEGE = @napDatuma
        END
      ELSE
        BEGIN
          UPDATE oo
          SET
             oo.TOROLT = 'T'
            ,LASTCHANGED = GETDATE()
            ,MODIFIER = @pModifierId
          FROM T_ORARENDIORA_OSSZES AS oo
          INNER 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
        END
    END
  ELSE
    BEGIN
      IF(@osszesOsztalyraVonatkozik= 'T')
        BEGIN
          UPDATE T_ORARENDIORA
          SET
             TOROLT = 'T'
            ,LASTCHANGED = GETDATE()
            ,MODIFIER = @pModifierId
          WHERE
            C_EGYEDINAP = 'T' AND C_ORAERVENYESSEGKEZDETE = @napDatuma AND C_ORAERVENYESSEGVEGE = @napDatuma
            AND C_ISKEZZELFELVETTEGYEDINAP = 'F'

          UPDATE oo
          SET
             oo.C_HETNAPJA = nn.C_ALAPHETNAPJA
            ,oo.C_EGYEDINAP = 'F'
            ,LASTCHANGED = GETDATE()
            ,MODIFIER = @pModifierId
          FROM T_TANEVRENDJE_OSSZES AS tr
          INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tr.C_DATUM
          INNER JOIN T_ORARENDIORA_OSSZES AS oo ON oo.C_EGYEDINAP = 'T' 
            AND oo.C_ORAERVENYESSEGKEZDETE = @napDatuma AND oo.C_ORAERVENYESSEGVEGE = @napDatuma 
            AND oo.TOROLT = 'F' AND oo.C_ISKEZZELFELVETTEGYEDINAP = 'T'
          WHERE
            tr.ID = @pTanevRendjeId
        END
      ELSE
        BEGIN
          UPDATE oo
          SET
             oo.TOROLT = 'T'
            ,LASTCHANGED = GETDATE()
            ,MODIFIER = @pModifierId
          FROM T_ORARENDIORA_OSSZES AS oo
          INNER 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 C_ISKEZZELFELVETTEGYEDINAP = 'F'

          UPDATE oo
          SET
             oo.C_HETNAPJA = nn.C_ALAPHETNAPJA
            ,oo.C_EGYEDINAP = 'F'
            ,LASTCHANGED = GETDATE()
            ,MODIFIER = @pModifierId
          FROM T_TANEVRENDJE_OSSZES AS tr
          INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tr.C_DATUM
          INNER JOIN T_ORARENDIORA_OSSZES AS oo ON oo.C_EGYEDINAP = 'T' 
            AND oo.C_ORAERVENYESSEGKEZDETE = @napDatuma AND oo.C_ORAERVENYESSEGVEGE = @napDatuma 
            AND oo.TOROLT = 'F' AND oo.C_ISKEZZELFELVETTEGYEDINAP = 'T'
          INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE AS ocstr ON ocstr.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
          WHERE
            tr.ID = @pTanevRendjeId
        END
     END

END