DROP PROCEDURE IF EXISTS uspGetTantargyfelosztasData GO CREATE PROCEDURE uspGetTantargyfelosztasData @pTanevId INT ,@pIntezmenyId INT ,@pIsOsztalybontasokkal BIT = 0 ,@pIsKapcsolodoCsoportokkal BIT = 0 ,@pAlkalmazottId INT = NULL ,@pOsztalyCsoportId INT = NULL ,@pOktNevelesiKategoriaId INT = NULL ,@pIsFromSzervezet BIT ,@pSzervezetId INT ,@pSzervezetekHalmaza INT AS BEGIN SET NOCOUNT ON DECLARE @sql nvarchar(max) CREATE TABLE #Szervezetek (ID INT) IF @pIsFromSzervezet = 1 BEGIN INSERT INTO #Szervezetek SELECT ID FROM dbo.fnGetLathatoSzervezetek(@pIntezmenyId, @pTanevId, @pSzervezetId, @pSzervezetekHalmaza) END SET @sql = N' SELECT f.ID AS Id ,f.C_NEV AS Nev ,(ocs.C_NEV + '' - '' + tgy.C_NEV) AS NevAlkalmazottNelkul ,f.C_FOGLALKOZASTIPUSA AS TipusId ,f.C_ORASZAM AS Oraszam ,f.C_TULORASZAM AS Tuloraszam ,f.C_ISOSSZEVONTORA AS IsOsszevontOra ,f.C_ISNEMZETISEGI AS IsNemzetisegiOra ,f.C_MEGBIZASIORASZAM AS MegbizasiOraszam ,f.C_IMPORTALT AS Importalt ,ocs.ID AS OsztalyCsoportId ,ocs.C_NEV AS OsztalyCsoportNev ,tgy.ID AS TantargyId ,tgy.C_NEV AS TantargyNev ,fh.ID AS TanarId ,fh.C_NYOMTATASINEV AS TanarNev ,fh.C_SZULETESIDATUM AS TanarSzuletesiIdo ,IIF(fh.C_NEVSORREND = ''T'' ,fh.C_UTONEV + '' '' + fh.C_VEZETEKNEV ,fh.C_VEZETEKNEV + '' '' + fh.C_UTONEV) AS TanarNevElotagNelkul ,t.C_NEV AS TanevNev ,ocs.C_FELADATKATEGORIAID AS FeladatKategoriaId ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasihelyId ,mh.C_NEV MukodesiHelyNev ,feh.C_OKTATASINEVELESIFELADATTIPUS AS OktatasiNevelesiFeladatTipusId ,mua.C_SZERVEZETID AS SzervezetId ' + IIF(@pIsFromSzervezet = 1, N' ,f.CREATOR AS RogzitoId ,sz.C_NEV AS DualisKepzohelyNeve ,sz.C_AZONOSITO AS DualisKepzohelyAdoszama', N' ,mua.C_DUALISKEPZOHELYNEVE AS DualisKepzohelyNeve ,mua.C_DUALISKEPZOHELYADOSZAMA AS DualisKepzohelyAdoszama') + N' FROM T_FOGLALKOZAS_OSSZES f INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND ocs.C_TANEVID = f.C_TANEVID AND ocs.TOROLT = ''F'' AND (@pOktNevelesiKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @pOktNevelesiKategoriaId) INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = f.C_TANTARGYID AND tgy.C_TANEVID = f.C_TANEVID AND tgy.TOROLT = ''F'' INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = f.C_TANARID AND fh.C_TANEVID = f.C_TANEVID AND fh.TOROLT = ''F'' INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = fh.ID AND a.C_ALTANEVID = f.C_TANEVID AND a.TOROLT = ''F'' INNER JOIN T_TANEV_OSSZES t ON t.ID = f.C_TANEVID AND t.TOROLT = ''F'' INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = a.ID AND mua.C_TANEVID = a.C_ALTANEVID AND mua.TOROLT = ''F'' ' + IIF (@pIsFromSzervezet = 1, N' INNER JOIN #Szervezetek szervezetek ON szervezetek.ID = mua.C_SZERVEZETID LEFT JOIN T_SZERVEZET_OSSZES sz ON sz.ID = szervezetek.ID AND sz.TOROLT = ''F''', ' AND mua.C_SZERVEZETID IS NULL') + ' LEFT JOIN (T_FELADATELLATASIHELY_OSSZES feh INNER JOIN T_MUKODESIHELY_OSSZES mh ON mh.C_INTEZMENYID = feh.C_INTEZMENYID AND mh.ID = feh.C_MUKODESIHELYID AND mh.TOROLT = ''F'' ) ON feh.ID = ocs.C_FELADATELLATASIHELYID AND feh.TOROLT = ''F'' WHERE (@pAlkalmazottId IS NULL OR f.C_TANARID = @pAlkalmazottId)' IF @pOsztalyCsoportId IS NOT NULL BEGIN SET @sql += N' AND(f.C_OSZTALYCSOPORTID = @pOsztalyCsoportId' SET @sql += IIF(@pIsOsztalybontasokkal = 1, N' OR f.C_OSZTALYCSOPORTID IN (SELECT cs.ID FROM T_CSOPORT_OSSZES cs WHERE cs.C_OSZTALYBONTASID = @pOsztalyCsoportId AND cs.TOROLT = ''F'')', '') SET @sql += IIF(@pIsKapcsolodoCsoportokkal = 1, N' OR f.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId))', '') SET @sql += ')' END SET @sql += N' AND f.C_TANEVID = @pTanevId AND f.TOROLT = ''F''' EXEC sp_executesql @sql ,N' @pTanevId int ,@pOktNevelesiKategoriaId int ,@pAlkalmazottId int ,@pOsztalyCsoportId int ' ,@pTanevId = @pTanevId ,@pOktNevelesiKategoriaId = @pOktNevelesiKategoriaId ,@pAlkalmazottId = @pAlkalmazottId ,@pOsztalyCsoportId = @pOsztalyCsoportId END