DROP PROCEDURE IF EXISTS sp_GetElfogadottTantargyfelosztasok GO CREATE PROCEDURE sp_GetElfogadottTantargyfelosztasok @tanevId INT, @intezmenyId INT, @isElfogadott BIT, @isKlebersberg BIT AS BEGIN SET NOCOUNT ON; --Pedagógusok SELECT foglalkozas.C_TANARID PedagogusId ,felhasznalo.C_NYOMTATASINEV PedagogusNev ,munkakor.C_NAME Munkakor ,kepesites.C_NAME Kepesites ,ISNULL(vegzettsegAdat.Vegzettseg, '') Vegzettseg ,dbo.fnGetDokumentumPedagogusOraszam(foglalkozas.C_TANARID, @isKlebersberg) KotelezoOraszam ,munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM MunkaidoKedvezmenyOraszam ,munkaidoKedvezmenyOka.C_NAME MunkaidoKedvezmenyOka ,SUM(foglalkozas.C_ORASZAM) HetiOraszam ,ISNULL(munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM, 0) + SUM(foglalkozas.C_ORASZAM) LekotottOraszam INTO #PedagogusTemp FROM T_FOGLALKOZAS_OSSZES foglalkozas INNER JOIN T_MUNKAUGYIADATOK_OSSZES munkaugyiAdatok ON munkaugyiAdatok.C_ALKALMAZOTTID = foglalkozas.C_TANARID LEFT JOIN ( SELECT DISTINCT kvegzettseg.C_TANARID TanarId ,STUFF(( SELECT DISTINCT ', ' + dic.C_NAME FROM T_VEGZETTSEG_OSSZES bvegzettseg LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON bvegzettseg.C_VEGZETTSEGTIPUSID = dic.ID AND dic.C_TANEVID = @tanevId AND dic.TOROLT = 'F' WHERE bvegzettseg.C_TANARID = kvegzettseg.C_TANARID AND bvegzettseg.TOROLT = 'F' FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') Vegzettseg FROM T_VEGZETTSEG_OSSZES kvegzettseg WHERE kvegzettseg.TOROLT = 'F' ) AS vegzettsegAdat ON munkaugyiAdatok.C_ALKALMAZOTTID = vegzettsegAdat.TanarId INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkakor ON munkakor.ID = munkaugyiAdatok.C_MUNKAKORTIPUSA AND munkaugyiAdatok.C_TANEVID = munkakor.C_TANEVID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepesites ON kepesites.ID = munkaugyiAdatok.C_BESOROLASIFOKOZAT AND munkaugyiAdatok.C_TANEVID = kepesites.C_TANEVID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkaidoKedvezmenyOka ON munkaidoKedvezmenyOka.ID = munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYOKA AND munkaugyiAdatok.C_TANEVID = munkaidoKedvezmenyOka.C_TANEVID INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F' WHERE foglalkozas.C_TANEVID = @tanevId AND foglalkozas.TOROLT = 'F' AND munkaugyiAdatok.TOROLT = 'F' AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%' GROUP BY foglalkozas.C_TANARID, felhasznalo.C_NYOMTATASINEV, munkakor.C_NAME, kepesites.C_NAME, vegzettsegAdat.Vegzettseg, C_KOTELEZOORASZAM, C_MUNKAIDOKEDVEZMENYORASZAM, munkaidoKedvezmenyOka.C_NAME ORDER BY felhasznalo.C_NYOMTATASINEV --Osztályok / csoportok SELECT osztalyCsoport.C_NEV OsztalyCsoport ,SUM(C_ORASZAM) OsszesOraszam INTO #OsztalyCsoportTemp FROM T_FOGLALKOZAS_OSSZES foglalkozas INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F' WHERE foglalkozas.C_TANEVID = @tanevId AND foglalkozas.TOROLT = 'F' AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%' GROUP BY osztalyCsoport.C_NEV ORDER BY osztalyCsoport.C_NEV --Tantárgyfelosztás SELECT felhasznalo.C_NYOMTATASINEV PedagogusNeve ,osztalyCsoport.C_NEV OsztalyCsoport ,tantargy.C_NEV Tantargy ,foglalkozas.C_ORASZAM Oraszam INTO #TantargyFelosztasTemp FROM T_FOGLALKOZAS_OSSZES foglalkozas INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F' WHERE foglalkozas.C_TANEVID = @tanevId AND foglalkozas.TOROLT = 'F' AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%' ORDER BY felhasznalo.C_NYOMTATASINEV --Fejléc SELECT intezmenyAdatok.C_NEV IntezmenyNeve ,tanev.C_NEV Tanev ,intezmenyAdatok.C_ENGEDELYEZETTALLASHELYEK EngedelyezettAllashelyek ,ISNULL('Hatályos: ' + FORMAT(intezmenyAdatSzolgaltatas.C_ELFOGADOTTTTFDATUMA, 'yyyy.MM.dd.') +' napjától','') ElfogadasDatuma ,(SELECT SUM(LekotottOraszam) FROM #PedagogusTemp) PedagogusSum ,(SELECT SUM(Osszesoraszam) FROM #OsztalyCsoportTemp) OsztalyCsoportSum ,(SELECT SUM(Oraszam) FROM #TantargyFelosztasTemp) TantargyFelosztasSum FROM T_INTEZMENYADATOK_OSSZES intezmenyAdatok INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = intezmenyAdatok.C_TANEVID INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_INTEZMENYID = intezmenyAdatok.C_INTEZMENYID AND intezmenyAdatSzolgaltatas.C_TANEVID = tanev.ID WHERE intezmenyAdatok.C_TANEVID = @tanevId SELECT * FROM #PedagogusTemp ORDER BY PedagogusNev SELECT * FROM #OsztalyCsoportTemp ORDER BY OsztalyCsoport SELECT * FROM #TantargyFelosztasTemp ORDER BY PedagogusNeve END GO