DROP PROCEDURE IF EXISTS uspGetOrarendExcelExportData
GO

CREATE PROCEDURE uspGetOrarendExcelExportData
   @pTanevId int
  ,@pErvenyessegKezdete date
  ,@pErvenyessegVege date
  ,@pIsOraErvenyessegiIdovel bit
  ,@pIsIdoszakonKivuliElemekMegjelenitese bit
  ,@pIsEgyediNapOrainakKihagyasa bit
  ,@pIsNapiredExport bit = NULL
AS
BEGIN
  SET NOCOUNT ON;
  DECLARE @sql nvarchar(max)

  SET @sql = N'
    SELECT 
      oo.ID AS Id, '
  IF @pIsOraErvenyessegiIdovel = 1 BEGIN
    SET @sql += N'
      oo.C_ORAERVENYESSEGKEZDETE AS OraErvenyessegKezdete,
      oo.C_ORAERVENYESSEGVEGE AS OraErvenyessegVege, '
  END

  SET @sql += N'
      hr.C_NAME As Hetirend,
      hn.C_NAME AS Nap, '

  IF @pIsNapiredExport IS NULL
  BEGIN
    SET @sql += N'
      oo.C_ORAKEZDETE AS FoglalkozasKezdete,
      oo.C_ORAVEGE AS FoglalkozasVege,
      oo.C_ORASZAM AS Ora, '
  END
  ELSE IF @pIsNapiredExport = 1 BEGIN
    SET @sql += N'
      oo.C_ORAKEZDETE AS FoglalkozasKezdete,
      oo.C_ORAVEGE AS FoglalkozasVege, '
  END
  ELSE BEGIN
    SET @sql += N'
      oo.C_ORASZAM AS Ora, '
  END

  SET @sql += N'
      IIF(o.ID IS NOT NULL,ocs.C_NEV,'''') AS Osztaly,
      IIF(cs.ID IS NOT NULL,ocs.C_NEV,'''') AS Csoport,
      tgy.C_NEV AS Tantargy,
      f.C_NYOMTATASINEV AS Tanar,
      t.C_NEV AS Helyiseg '

  SET @sql += N'
    FROM T_ORARENDIORA_OSSZES oo
      INNER JOIN T_TEREM_OSSZES t ON t.ID = oo.C_TEREMID AND t.TOROLT = ''F''
      INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = oo.C_TANTARGYID AND tgy.TOROLT = ''F''
      INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID AND f.TOROLT = ''F''
      INNER JOIN T_DICTIONARYITEMBASE_OSSZES hr ON hr.ID = oo.C_HETIREND AND hr.TOROLT = ''F'' AND hr.C_TANEVID = @pTanevId
      INNER JOIN T_DICTIONARYITEMBASE_OSSZES hn ON hn.ID = oo.C_HETNAPJA AND hn.TOROLT = ''F'' AND hn.C_TANEVID = @pTanevId
      INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''
      LEFT JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = ''F''
      LEFT JOIN T_CSOPORT_OSSZES cs ON ocs.ID = cs.ID AND cs.TOROLT = ''F'' '
  IF @pIsIdoszakonKivuliElemekMegjelenitese = 0 BEGIN
    SET @sql += N'
    WHERE oo.TOROLT = ''F''
      AND oo.C_ORAERVENYESSEGKEZDETE >= @pErvenyessegKezdete
      AND (oo.C_ORAERVENYESSEGVEGE <= @pErvenyessegVege OR oo.C_ORAERVENYESSEGVEGE IS NULL)
      AND oo.C_TANEVID = @pTanevId '
  END
  ELSE BEGIN
    SET @sql += N'
    WHERE oo.TOROLT = ''F''
      AND oo.C_TANEVID = @pTanevId
      AND (oo.C_ORAERVENYESSEGVEGE > @pErvenyessegKezdete AND oo.C_ORAERVENYESSEGKEZDETE <= @pErvenyessegVege) '

  END

  IF @pIsEgyediNapOrainakKihagyasa = 1 BEGIN
    SET @sql += N'
      AND oo.C_EGYEDINAP = ''F'' '
  END

  IF @pIsNapiredExport IS NOT NULL
  BEGIN

    IF @pIsNapiredExport = 0 BEGIN
    SET @sql += N'
      AND oo.C_CSENGETESIRENDID IS NOT NULL '
    END
    ELSE BEGIN
      SET @sql += N'
        AND oo.C_CSENGETESIRENDID IS NULL '
    END

  END

  EXEC sp_executesql @sql, N'
     @pTanevId int
    ,@pErvenyessegKezdete date
    ,@pErvenyessegVege date'
    ,@pTanevId = @pTanevId
    ,@pErvenyessegKezdete = @pErvenyessegKezdete
    ,@pErvenyessegVege = @pErvenyessegVege
END

GO

