﻿DROP PROCEDURE IF EXISTS uspGetOktatottSzakmaTanuloData
GO

CREATE PROCEDURE uspGetOktatottSzakmaTanuloData
   @pTanevId int
  ,@pOktatasiNevelesiFeladatId int
  ,@pAgazatUjSzktTipusId int
  ,@pSzakmaTipusId int = NULL
  ,@pSzakmaIranyTipusId int = NULL
AS
BEGIN

  SET NOCOUNT ON;

  DECLARE
     @SzakmaTipusNa int = 7946
    ,@SzakmairanyTipusNa int = 8122

  SELECT
     dk.ID AS Id
    ,dk.C_NYOMTATASINEV AS Nev
    ,IIF(dk.C_NEVSORREND = 'T',
        dk.C_UTONEV + ' ' + dk.C_VEZETEKNEV,
        dk.C_VEZETEKNEV + ' ' + dk.C_UTONEV) NevElotagNelkul
    ,dk.C_ANYJANEVE AS AnyjaNeve
    ,dk.C_SZULETESIHELY AS SzuletesiHely
    ,dk.C_SZULETESIDATUM AS SzuletesiIdo
    ,dk.C_OKTATASIAZONOSITO AS OktatasiAzonosito
    ,feh.C_OKTATASINEVELESIFELADATTIPUS AS OktatasiNevelesiFeladatId
    ,tta.C_AGAZATUJSZKTTIPUSID AS AgazatUjSzktTipusId
    ,tta.C_SZAKMATIPUSID AS SzakmaTipusId
    ,tta.C_SZAKMAIRANYTIPUSID AS SzakmaIranyTipusId
  FROM T_TANULOTANUGYIADATOK_OSSZES tta
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.C_TANEVID = tta.C_TANEVID AND tcs.TOROLT = 'F'
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_TANEVID = tta.C_TANEVID AND ocs.TOROLT = 'F'
    INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ocs.C_FELADATELLATASIHELYID AND feh.C_TANEVID = tta.C_TANEVID AND feh.TOROLT = 'F'
    INNER JOIN T_FELHASZNALO_OSSZES dk ON dk.ID = tcs.C_TANULOID AND dk.C_TANEVID = tta.C_TANEVID AND dk.TOROLT = 'F'
  WHERE tta.C_TANEVID = @pTanevId
    AND tta.TOROLT = 'F'
    AND tcs.C_BELEPESDATUM <= GETDATE()
    AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
    AND feh.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId
    AND tta.C_AGAZATUJSZKTTIPUSID = @pAgazatUjSzktTipusId
    AND (tta.C_SZAKMATIPUSID = @pSzakmaTipusId OR -- True-nak kell lennie, ha megyeznek vagy,...
        (tta.C_SZAKMATIPUSID IS NULL AND @pSzakmaTipusId IS NULL) OR -- ha mindkettő NULL vagy,...
        (tta.C_SZAKMATIPUSID = @SzakmaTipusNa AND @pSzakmaTipusId IS NULL)) -- ha tanuló értéke Na és a paraméter NULL!
    AND (tta.C_SZAKMAIRANYTIPUSID = @pSzakmaIranyTipusId OR -- True-nak kell lennie, ha megyeznek vagy,...
        (tta.C_SZAKMAIRANYTIPUSID IS NULL AND @pSzakmaIranyTipusId IS NULL) OR -- ha mindkettő NULL vagy,...
        (tta.C_SZAKMAIRANYTIPUSID = @SzakmairanyTipusNa AND @pSzakmaIranyTipusId IS NULL)) -- ha tanuló értéke Na és a paraméter NULL!

END

GO

