kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170526133143_KRETA_1365/sp_GetElfogadottTantargyfelosztasok.sql
2024-03-13 00:33:46 +01:00

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