SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetElfogadottTantargyfelosztasok]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetElfogadottTantargyfelosztasok] END GO CREATE PROCEDURE [dbo].[sp_GetElfogadottTantargyfelosztasok] @tanevId int, @intezmenyId int AS BEGIN SET NOCOUNT ON; --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 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 WHERE intezmenyAdatok.C_TANEVID = @tanevId --Pedagógusok SELECT foglalkozasokTanarok.C_TANAROKID PedagogusId ,felhasznalo.C_NYOMTATASINEV PedagogusNev ,munkakor.C_NAME Munkakor ,kepesites.C_NAME Kepesites ,munkaugyiAdatok.C_KOTELEZOORASZAM KotelezoOraszam ,munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM MunkaidoKedvezmenyOraszam ,munkaidoKedvezmenyOka.C_NAME MunkaidoKedvezmenyOka ,SUM(foglalkozas.C_ORASZAM) HetiOraszam FROM T_FOGLALKOZASOK_TANAROK foglalkozasokTanarok INNER JOIN T_MUNKAUGYIADATOK_OSSZES munkaugyiAdatok ON munkaugyiAdatok.C_ALKALMAZOTTID = foglalkozasokTanarok.C_TANAROKID INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozasokTanarok.C_TANAROKID 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_FOGLALKOZAS_OSSZES foglalkozas ON foglalkozas.ID = foglalkozasokTanarok.C_FOGLALKOZASOKID AND foglalkozas.TOROLT = 'F' WHERE foglalkozas.C_TANEVID = @tanevId GROUP BY C_TANAROKID, C_NYOMTATASINEV, munkakor.C_NAME, kepesites.C_NAME, C_KOTELEZOORASZAM, C_MUNKAIDOKEDVEZMENYORASZAM, munkaidoKedvezmenyOka.C_NAME ORDER BY felhasznalo.C_NYOMTATASINEV --Osztályok DECLARE @oraszamok TABLE (OsztalyId INT, CsoportId INT, Oraszam FLOAT, Tanorai VARCHAR(1)) INSERT INTO @oraszamok SELECT o.Id ,a.Id ,fog.C_ORASZAM ,IIF(tanorai.Id IS NOT NULL, 'T', 'F') FROM T_OSZTALY_OSSZES o CROSS APPLY (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(o.Id)) a INNER JOIN T_FOGLALKOZAS_OSSZES fog ON fog.C_OSZTALYCSOPORTID = a.Id AND fog.TOROLT = 'F' LEFT JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevID) tanorai ON tanorai.Id = a.Id WHERE o.C_ALTANEVID = @tanevId AND o.Torolt = 'F' SELECT ocs.C_NEV OsztalyCsoport ,SUM(Oraszam) Osszesoraszam FROM @oraszamok INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = OsztalyId WHERE Tanorai = 'T' GROUP BY ocs.C_NEV UNION SELECT DISTINCT ocs.C_NEV OsztalyCsoport ,SUM(DISTINCT Oraszam) Osszesoraszam FROM @oraszamok INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = CsoportId INNER JOIN T_CSOPORT_OSSZES cs ON cs.Id = CsoportId WHERE Tanorai = 'T' GROUP BY ocs.C_NEV --Egyéb foglalkozások SELECT ocs.C_NEV OsztalyCsoport ,SUM(Oraszam) Osszesoraszam FROM @oraszamok INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = OsztalyId WHERE Tanorai = 'F' GROUP BY ocs.C_NEV UNION SELECT DISTINCT ocs.C_NEV OsztalyCsoport ,SUM(DISTINCT Oraszam) Osszesoraszam FROM @oraszamok INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = CsoportId INNER JOIN T_CSOPORT_OSSZES cs ON cs.Id = CsoportId WHERE Tanorai = 'F' GROUP BY ocs.C_NEV --Tantárgyfelosztás SELECT felhasznalo.C_NYOMTATASINEV PedagogusNeve ,osztalyCsoport.C_NEV OsztalyCsoport ,tantargy.C_NEV Tantargy ,foglalkozas.C_ORASZAM Oraszam FROM T_FOGLALKOZAS_OSSZES foglalkozas INNER JOIN T_FOGLALKOZASOK_TANAROK foglalkozasokTanarok ON foglalkozas.ID = foglalkozasokTanarok.C_FOGLALKOZASOKID INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozasokTanarok.C_TANAROKID INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID WHERE foglalkozas.C_TANEVID = @tanevId AND foglalkozas.TOROLT = 'F' --AND osztalyCsoport.Id IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)) ORDER BY felhasznalo.C_NYOMTATASINEV END GO