133 lines
No EOL
4.8 KiB
Transact-SQL
133 lines
No EOL
4.8 KiB
Transact-SQL
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: <b>' + FORMAT(intezmenyAdatSzolgaltatas.C_ELFOGADOTTTTFDATUMA, 'yyyy.MM.dd.') +'</b> 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 |