115 lines
No EOL
5.9 KiB
Transact-SQL
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 |