IF OBJECT_ID('fnGetDokumentumOsszefuggoSzakmaiGyakorlat') IS NOT NULL BEGIN
 DROP FUNCTION fnGetDokumentumOsszefuggoSzakmaiGyakorlat
END
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId INT, @osztalyId INT)
  RETURNS TABLE
RETURN (
  SELECT
     Tanulok.TanuloId      TanuloId
    ,Tanulok.TanuloCsoportId  TanuloCsoportId
    ,C_TELJESITETT        isTeljesitett
    ,ISNULL(Ertekeles.C_ERTEKELESSZOVEG, Osztalyzat.C_VALUE)      Ertekeles
    ,'[' + C_MEGJEGYZES + ']'  Megjegyzes
    ,dbo.fnGetDokumentumDatumFormatum(OsszefuggoSzakGyak.C_TELJESITESDATUM)  Datum
  FROM fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevid, @osztalyid, 'T') Tanulok
    INNER JOIN T_OSSZEFUGGOSZAKGYAK_OSSZES OsszefuggoSzakGyak ON OsszefuggoSzakGyak.C_TANULOID = Tanulok.TanuloId AND OsszefuggoSzakGyak.TOROLT = 'F' AND OsszefuggoSzakGyak.C_TANEVID  = @tanevid
    LEFT JOIN T_TANULOERTEKELES_OSSZES Ertekeles ON Ertekeles.C_OSSZEFUGGOSZAKGYAKID = OsszefuggoSzakGyak.ID AND Ertekeles.TOROLT = 'F' AND Ertekeles.C_TANEVID = @tanevid
    LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Osztalyzat ON Osztalyzat.ID = Ertekeles.C_ERTEKELESOSZTALYZATID AND Osztalyzat.C_TANEVID = @tanevid
  WHERE 
     Tanulok.BelepesDatum <= OsszefuggoSzakGyak.C_TELJESITESDATUM 
     AND (Tanulok.KilepesDatum  >= OsszefuggoSzakGyak.C_TELJESITESDATUM OR Tanulok.KilepesDatum IS NULL)
)