﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF EXISTS uspGondviseloTanuloinakEvfolyamTipusaLetezik
GO

CREATE PROCEDURE uspGondviseloTanuloinakEvfolyamTipusaLetezik
   @pIntezmenyId int
  ,@pTanevId int
  ,@pGondviseloId int
  ,@pEvfolyamtipusIdList nvarchar(250)
AS
BEGIN
SET NOCOUNT ON;

  DECLARE @items TABLE(id INT NOT NULL PRIMARY KEY CLUSTERED);

  INSERT INTO @items(id)
  SELECT VALUE FROM STRING_SPLIT(@pEvfolyamtipusIdList, ',');

SELECT COUNT(1) FROM
    (
    SELECT TOP 1 gondviselo.ID
    FROM T_GONDVISELO_OSSZES gondviselo
    INNER JOIN T_TANULO_OSSZES tanulo ON gondviselo.C_TANULOID = tanulo.ID AND tanulo.TOROLT = 'F' AND gondviselo.C_TANEVID = tanulo.C_ALTANEVID AND gondviselo.C_INTEZMENYID = tanulo.C_ALINTEZMENYID
    INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport ON tanuloCsoport.C_TANULOID = tanulo.ID AND tanuloCsoport.TOROLT = 'F' AND tanuloCsoport.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND tanuloCsoport.C_TANEVID = tanulo.C_ALTANEVID
    INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloCsoport.C_OSZTALYCSOPORTID AND osztalyCsoport.TOROLT = 'F' AND osztalyCsoport.C_TANEVID = tanuloCsoport.C_TANEVID AND osztalyCsoport.C_INTEZMENYID = tanuloCsoport.C_INTEZMENYID
    INNER JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = osztalycsoport.ID AND osztaly.C_ALTANEVID = osztalyCsoport.C_TANEVID AND osztaly.C_ALINTEZMENYID = osztalycsoport.C_INTEZMENYID AND osztaly.TOROLT = 'F'   
    INNER JOIN @items i on i.id = osztalyCsoport.C_EVFOLYAMTIPUSA
    WHERE tanuloCsoport.C_BELEPESDATUM <= GETDATE() 
      AND (tanuloCsoport.C_KILEPESDATUM > GETDATE() OR tanuloCsoport.C_KILEPESDATUM IS NULL)
      AND gondviselo.ID = @pGondviseloId
      AND gondviselo.C_INTEZMENYID = @pIntezmenyId
      AND gondviselo.C_TANEVID = @pTanevId

    UNION ALL

    SELECT TOP 1 gondviselo.ID
    FROM T_GONDVISELO_OSSZES gondviselo
    INNER JOIN T_TANULO_OSSZES tanulo ON gondviselo.C_TANULOID = tanulo.ID AND tanulo.TOROLT = 'F' AND gondviselo.C_TANEVID = tanulo.C_ALTANEVID AND gondviselo.C_INTEZMENYID = tanulo.C_ALINTEZMENYID
    INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport ON tanuloCsoport.C_TANULOID = tanulo.ID AND tanuloCsoport.TOROLT = 'F' AND tanuloCsoport.C_INTEZMENYID = tanulo.C_ALINTEZMENYID AND tanuloCsoport.C_TANEVID = tanulo.C_ALTANEVID
    INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloCsoport.C_OSZTALYCSOPORTID AND osztalyCsoport.TOROLT = 'F' AND osztalyCsoport.C_TANEVID = tanuloCsoport.C_TANEVID AND osztalyCsoport.C_INTEZMENYID = tanuloCsoport.C_INTEZMENYID 
    INNER JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = osztalycsoport.ID AND osztaly.C_ALTANEVID = osztalyCsoport.C_TANEVID AND osztaly.C_ALINTEZMENYID = osztalycsoport.C_INTEZMENYID AND osztaly.TOROLT = 'F'    
    INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tanuloCsoport.ID AND tta.TOROLT = 'F'
    INNER JOIN @items i on i.id = tta.C_TANULOEVFOLYAMTIPUSID
    WHERE tanuloCsoport.C_BELEPESDATUM <= GETDATE() 
      AND (tanuloCsoport.C_KILEPESDATUM > GETDATE() OR tanuloCsoport.C_KILEPESDATUM IS NULL)
      AND gondviselo.ID = @pGondviseloId
      AND gondviselo.C_INTEZMENYID = @pIntezmenyId
      AND gondviselo.C_TANEVID = @pTanevId
      AND osztalyCsoport.C_EVFOLYAMTIPUSA = 7366  --Összevont osztály
    ) AS Gondviselok
  
END