kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetElfogadottTantargyfelosztasok.sql
2024-03-13 00:33:46 +01:00

115 lines
No EOL
5.9 KiB
Transact-SQL

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: <b>' + FORMAT(intezmenyAdatSzolgaltatas.C_ELFOGADOTTTTFDATUMA, 'yyyy.MM.dd.') +'</b> 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