﻿DROP PROCEDURE IF EXISTS uspGetKozossegiSzolgalatokExportData
GO

CREATE PROCEDURE uspGetKozossegiSzolgalatokExportData
   @pIntezmenyId int
  ,@pTanevId int 
	,@pOsztalyCsoportId int
  ,@pTanuloIds nvarchar(max) = NULL
  ,@pIntervallumKezdete datetime = NULL
  ,@pIntervallumVege datetime = NULL
  ,@pTeljesitesHelye nvarchar(100) = NULL
	,@pKozossegiSzolgalatTipusa int = NULL
  ,@pOsszesOraszamKezdete int = NULL
	,@pOsszesOraszamVege int = NULL
  ,@pTanuloNev nvarchar (250) = NULL
  ,@pAnyjaNeve nvarchar(250) = NULL
AS

BEGIN
	SET NOCOUNT ON;
	
	DECLARE
     @sql nvarchar (max)
    ,@selectSql nvarchar (max)
    ,@whereSql nvarchar (max)
    ,@orderSql nvarchar (max)


SET @selectSql = N'
    DROP TABLE IF EXISTS #OsszesitoTabla
    CREATE TABLE #OsszesitoTabla (
           ID int
          ,TanuloId int
          ,TanuloNev nvarchar(500)
          ,TanuloNevElotagNelkul nvarchar(500)
          ,AnyjaNeve nvarchar(500)
          ,SzuletesiIdo datetime
          ,OsztalyNev nvarchar(200)
          ,OsszesOraszam decimal(18,2)
        );

    INSERT INTO #OsszesitoTabla (ID,TanuloId, TanuloNev, TanuloNevElotagNelkul,AnyjaNeve,SzuletesiIdo,OsztalyNev,OsszesOraszam)
    EXEC uspGetKozossegiSzolgalatokData
       @pIntezmenyId = @pIntezmenyId
	    ,@pOsztalyCsoportId = @pOsztalyCsoportId
      ,@pIdoszakKezdete = @pIntervallumKezdete
      ,@pIdoszakVege = @pIntervallumVege
      ,@pOsszesOraszamKezdete = @pOsszesOraszamKezdete
	    ,@pOsszesOraszamVege = @pOsszesOraszamVege
	    ,@pTanuloNeve = @pTanuloNev
	    ,@pAnyjaNeve = @pAnyjaNeve
    SELECT * FROM #OsszesitoTabla

    SELECT
       KozossegiSzolgalat.ID AS	ID
      ,KozossegiSzolgalat.C_INTERVALLUMKEZDETE AS	IntervallumKezdete
      ,KozossegiSzolgalat.C_INTERVALLUMVEGE AS IntervallumVege
      ,KozossegiSzolgalat.C_ROGZITESDATUM AS RogzitesDatuma
      ,KozossegiSzolgalat.C_TELJESITESIHELYE AS	TeljesitesiHelye
      ,KozossegiSzolgalat.C_ORASZAM AS Oraszam
      ,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA AS	KozossegiSzolgalatTipusa
      ,KozossegiSzolgalat.C_MEGJEGYZES AS	Megjegyzes
      ,tmpOsszesito.TanuloId AS TanuloId
	    ,tmpOsszesito.TanuloNev AS TanuloNev
      ,tmpOsszesito.OsztalyNev AS	OsztalyNev
      ,KozossegiSzolgalat.C_UGYIRATSZAM AS Ugyiratszam
    FROM #OsszesitoTabla tmpOsszesito
    INNER JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat ON KozossegiSzolgalat.C_TANULOID = tmpOsszesito.TanuloId'
SET @whereSql = N' WHERE KozossegiSzolgalat.TOROLT = ''F'' '
IF @pTanuloIds IS NOT NULL BEGIN
  SET @whereSql += N' AND tmpOsszesito.TanuloId IN (' + @pTanuloIds + ') '
  END
IF @pIntervallumKezdete IS NOT NULL BEGIN
  SET @whereSql += N' AND KozossegiSzolgalat.C_INTERVALLUMKEZDETE >= @pIntervallumKezdete'
  END
IF @pIntervallumVege IS NOT NULL BEGIN
  SET @whereSql += N' AND KozossegiSzolgalat.C_INTERVALLUMVEGE <= @pIntervallumVege'
  END
IF @pTeljesitesHelye IS NOT NULL BEGIN
  SET @whereSql += N' AND KozossegiSzolgalat.C_TELJESITESIHELYE = @pTeljesitesHelye'
  END
IF @pKozossegiSzolgalatTipusa IS NOT NULL BEGIN
  SET @whereSql += N' AND KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA = @pKozossegiSzolgalatTipusa'
  END

SET @orderSql = N' ORDER BY KozossegiSzolgalat.C_INTERVALLUMKEZDETE DESC'

SET @sql = @selectSql + @whereSql + @orderSql
EXEC sp_executesql @sql, N'
   @pIntezmenyId int
  ,@pTanevId int
  ,@pIntervallumKezdete datetime = NULL
  ,@pIntervallumVege datetime = NULL
  ,@pTeljesitesHelye nvarchar (100) = NULL
  ,@pOsszesOraszamKezdete int = NULL
  ,@pOsszesOraszamVege int = NULL
  ,@pOsztalyCsoportId int
  ,@pKozossegiSzolgalatTipusa int = NULL
  ,@pTanuloNev nvarchar (250) = NULL
  ,@pAnyjaNeve nvarchar(250) = NULL
  ,@pTanuloIds nvarchar(max) = NULL'
  ,@pIntezmenyId = @pIntezmenyId
  ,@pTanevId = @pTanevId
  ,@pIntervallumKezdete = @pIntervallumKezdete
  ,@pIntervallumVege = @pIntervallumVege
  ,@pTeljesitesHelye = @pTeljesitesHelye
  ,@pOsszesOraszamKezdete = @pOsszesOraszamKezdete
  ,@pOsszesOraszamVege = @pOsszesOraszamVege
  ,@pOsztalyCsoportId = @pOsztalyCsoportId
  ,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa
  ,@pTanuloNev = @pTanuloNev
  ,@pAnyjaNeve = @pAnyjaNeve
  ,@pTanuloIds = @pTanuloIds
END


GO
