﻿DROP PROCEDURE IF EXISTS uspGetKozossegiSzolgalatokData
GO

CREATE PROCEDURE uspGetKozossegiSzolgalatokData
   @pIntezmenyId int
  ,@pOsztalyCsoportId int
  ,@pIdoszakKezdete datetime
  ,@pIdoszakVege datetime
  ,@pOsszesOraszamKezdete int
  ,@pOsszesOraszamVege int
  ,@pTanuloNeve nvarchar(250)
  ,@pAnyjaNeve nvarchar(250)
AS

BEGIN
  SET NOCOUNT ON;
  SELECT * 
  FROM (
    SELECT
       currenttanulo.TanuloId as ID
      ,currenttanulo.TanuloId as TanuloId
      ,currenttanulo.TanuloNev as TanuloNev
      ,IIF(currenttanulo.Nevsorrend = 'T',  
        currenttanulo.TanuloUtonev + ' ' + currenttanulo.TanuloVezeteknev,	
        currenttanulo.TanuloVezeteknev + ' ' + currenttanulo.TanuloUtonev) as TanuloNevElotagNelkul
      ,currenttanulo.AnyjaNeve as AnyjaNeve
      ,currenttanulo.SzuletesiIdo as SzuletesiIdo
      ,currenttanulo.OsztalyNev as OsztalyNev
      ,ISNULL(SUM(kozossegiszolgalat.C_ORASZAM),0) as OsszesOraszam
    FROM T_FELHASZNALO_OSSZES tanulo
      LEFT JOIN (
        SELECT DISTINCT
           tanulo.C_OKTATASIAZONOSITO as OktatasiAzonosito
          ,tanulo.ID as TanuloId
          ,tanulo.C_NYOMTATASINEV as TanuloNev
          ,tanulo.C_NEVSORREND as Nevsorrend
          ,tanulo.C_VEZETEKNEV as TanuloVezeteknev
          ,tanulo.C_UTONEV as TanuloUtonev
          ,tanulo.C_ANYJANEVE as AnyjaNeve
          ,tanulo.C_SZULETESIDATUM as SzuletesiIdo
          ,osztalycsoport.C_NEV as OsztalyNev
        FROM T_FELHASZNALO tanulo
          LEFT JOIN T_TANULOCSOPORT tanulocsoport ON tanulocsoport.C_TANULOID = tanulo.ID
            AND tanulocsoport.TOROLT = 'F'
          LEFT JOIN T_OSZTALYCSOPORT osztalycsoport ON osztalycsoport.ID = tanulocsoport.C_OSZTALYCSOPORTID 
            AND osztalycsoport.TOROLT = 'F'
        WHERE tanulo.TOROLT = 'F'
          AND osztalycsoport.ID = @pOsztalyCsoportId 
        ) currenttanulo ON currenttanulo.OktatasiAzonosito IS NOT NULL
          AND (@pTanuloNeve IS NULL OR currenttanulo.TanuloNev LIKE ('%'+ @pTanuloNeve +'%'))
          AND (@pAnyjaNeve IS NULL OR currenttanulo.AnyjaNeve LIKE ('%'+ @pAnyjaNeve +'%'))					
			LEFT JOIN  T_TANULOKOZOSSEGISZOLGALAT_OSSZES kozossegiszolgalat ON kozossegiszolgalat.C_TANULOID = Tanulo.ID
        AND kozossegiszolgalat.C_INTEZMENYID = @pIntezmenyId
        AND (@pIdoszakKezdete IS NULL OR kozossegiszolgalat.C_INTERVALLUMKEZDETE  >= @pIdoszakKezdete)
        AND (@pIdoszakVege IS NULL OR kozossegiszolgalat.C_INTERVALLUMVEGE  <= @pIdoszakVege)
        AND kozossegiszolgalat.TOROLT = 'F'
		WHERE tanulo.C_OKTATASIAZONOSITO = currenttanulo.OktatasiAzonosito
      AND tanulo.C_INTEZMENYID = @pIntezmenyId
      AND tanulo.TOROLT = 'F'
		GROUP BY currenttanulo.TanuloId, currenttanulo.TanuloNev, currenttanulo.Nevsorrend, currenttanulo.TanuloVezeteknev,
      currenttanulo.TanuloUtonev, currenttanulo.AnyjaNeve, currenttanulo.SzuletesiIdo, currenttanulo.OsztalyNev
		) result
  WHERE (@pOsszesOraszamKezdete IS NULL OR @pOsszesOraszamKezdete >= result.OsszesOraszam)
    AND (@pOsszesOraszamVege IS NULL OR @pOsszesOraszamVege <= result.OsszesOraszam)
	ORDER BY result.TanuloNevElotagNelkul ASC
END
GO
