DROP PROCEDURE IF EXISTS uspGetAktivTanevValtasaModel 
GO
  CREATE PROCEDURE uspGetAktivTanevValtasaModel 
     @pTanevId INT
    ,@pIntezmenyId INT
    ,@pKovTanevId INT
    ,@pSzakgyakKezdoDatum DATETIME
    ,@pSzakgyakVegDatum DATETIME
    ,@pOsszefuggoSzakGyakTipus INT
    ,@pOktNevKatTipus INT
  AS
  BEGIN
    SET NOCOUNT ON;

    SELECT (
        SELECT COUNT(1)
        FROM T_TANULOCSOPORT_OSSZES tcs
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
          AND ocs.TOROLT = 'F'
          AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus
        INNER JOIN T_OSZTALY_OSSZES osztaly ON tcs.C_OSZTALYCSOPORTID = osztaly.ID
          AND tcs.C_TANEVID = osztaly.C_ALTANEVID AND osztaly.TOROLT ='F'
        WHERE tcs.C_KILEPESDATUM IS NULL
          AND tcs.TOROLT = 'F'
          AND tcs.C_TANEVID = @pTanevId
        ) KiNemSoroltTanulokOsztaly
      ,(
        SELECT COUNT(1)
        FROM T_TANULOCSOPORT_OSSZES tcs
        INNER JOIN T_CSOPORT_OSSZES csoport ON tcs.C_OSZTALYCSOPORTID = csoport.ID
          AND tcs.C_TANEVID = csoport.C_ALTANEVID AND csoport.TOROLT = 'F'
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON csoport.ID = ocs.ID
          AND ocs.TOROLT = 'F'
          AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus
        WHERE tcs.C_KILEPESDATUM IS NULL
          AND tcs.TOROLT = 'F'
          AND tcs.C_TANEVID = @pTanevId
        ) KiNemSoroltTanulokCsoport
      ,(
        SELECT COUNT(1)
        FROM T_NEBULO_OSSZES nebulo
        WHERE nebulo.TOROLT = 'F'
          AND nebulo.C_FELVETELSTATUSZA = 5401
          AND 0 = (
            SELECT COUNT(1)
            FROM T_FELHASZNALO_OSSZES f
            WHERE f.C_OKTATASIAZONOSITO = nebulo.C_OKTATASIAZONOSITOSZAMA
              AND f.C_TANEVID <> nebulo.C_TANEVID AND f.TOROLT = 'F'
            )
          AND nebulo.C_TANEVID = @pTanevId
        ) BeNemSoroltNebulok
      ,(
        SELECT COUNT(1)
        FROM T_ALKALMAZOTT_OSSZES a
        INNER JOIN T_TANEV_OSSZES t ON t.ID = @pKovTanevId
          AND t.C_KOVETKEZO = 'T' AND t.TOROLT = 'F'
        INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = a.ID AND m.TOROLT = 'F'
        LEFT JOIN T_ORARENDIORA_OSSZES oo ON oo.C_TANARID = a.ID
          AND oo.TOROLT = 'F'
        LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = a.ID
          AND f.TOROLT = 'F'
        WHERE a.C_ALTANEVID = @pKovTanevId
          AND C_ALKALMAZASMEGSZUNESE <= DATEADD(DAY, - 1, t.C_KEZDONAP)
          AND oo.ID IS NULL
          AND f.ID IS NULL
          AND a.TOROLT = 'F'
        ) VanTorlendoAlkalmazott
      ,(
        SELECT COUNT(1)
        FROM T_FELHASZNALO_OSSZES tanulo
        INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tanulo.ID = tcs.C_TANULOID
          AND tcs.TOROLT = 'F'
          AND tcs.C_BELEPESDATUM < @pSzakgyakVegDatum
          AND (
            tcs.C_KILEPESDATUM > @pSzakgyakKezdoDatum
            OR tcs.C_KILEPESDATUM IS NULL
            )
        INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID
          AND cs.C_TIPUSA = @pOsszefuggoSzakGyakTipus
          AND cs.TOROLT = 'F'
        INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON cs.ID = ocs.ID
          AND ocs.TOROLT = 'F'
          AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus
        LEFT JOIN T_OSSZEFUGGOSZAKGYAK_OSSZES szakgyak ON szakgyak.C_TANULOID = tanulo.ID
          AND szakgyak.TOROLT = 'F'
        WHERE tanulo.TOROLT = 'F'
          AND szakgyak.ID IS NULL
        ) NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok
    FROM T_INTEZMENYADATOK_OSSZES intezmenyAdatok
    INNER JOIN T_INTEZMENY_OSSZES intezmeny ON intezmeny.ID = intezmenyAdatok.C_INTEZMENYID AND intezmeny.TOROLT = 'F'
    WHERE intezmenyAdatok.TOROLT = 'F'
      AND intezmenyAdatok.C_TANEVID = @pTanevId
      AND intezmenyAdatok.C_INTEZMENYID = @pIntezmenyId
  END
GO


