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

204 lines
13 KiB
Transact-SQL

-- ===================================================================================================
-- KIRSTAT - Felhasználó - Pedagógus
-- ===================================================================================================
-- 11. MUNKALAP - A02T59 - PEDAGÓGUSOK NYITÓÁLLOMÁNYA MUNKAIDŐ SZERINT, OKTATÁSI SZINTENKÉNT
-- 12. MUNKALAP - A02T61 - FŐ MUNKAVISZONY KERETÉBEN, PEDAGÓGUS MUNKAKÖRBEN ALKALMAZOTT PEDAGÓGUSOK SZÁMÁNAK NYITÓÁLLOMÁNYA ÉLETKOR ÉS NEM SZERINT, OKTATÁSI SZINTENKÉNT
DROP PROCEDURE IF EXISTS uspKIRstat_FelhasznaloPedagogus
GO
CREATE PROCEDURE uspKIRstat_FelhasznaloPedagogus
@pFeladatEllatasiHelyId int
,@pTanevid int
,@pIsKirstat bit = 1
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@statDatum datetime
SET @statDatum = (SELECT LEFT(C_NEV, 4) FROM T_TANEV WHERE ID = @pTanevId) + IIF(@pIsKirstat = 1, '1001', '1008')
IF @pIsKirstat = 1 BEGIN
SELECT
fh.ID AS AlkalmazottId
,fh.C_NYOMTATASINEV AS Nev
,CASE fh.C_NEME WHEN 4 THEN 'Férfi' WHEN 5 THEN '' ELSE NULL END AS Neme
,CASE IIF(tma.ID IS NOT NULL, tma.C_FOGLALKOZTATASTIPUS, ma.C_FOGLALKOZTATASTIPUS)
WHEN 6467 THEN 'Óraadó'
WHEN 6466 THEN 'Részmunkaidős'
WHEN 6465 THEN 'Teljes munkaidős'
ELSE NULL
END AS FoglalkozasTipusa
,IIF(tma.ID IS NOT NULL, tma.C_RESZMUNKAIDOSZAZALEK, ma.C_RESZMUNKAIDOSZAZALEK) AS ReszmunkaidoSzazalek
,DATEDIFF(year, fh.C_SZULETESIDATUM, @statDatum) AS Eletkor
,Ovoda
,AlsoTagozat
,FelsoTagozat
,KozepiskolaKozismeretiNemErettsegiFelkeszito + KozepiskolaKozismeretiErettsegiFelkeszito AS KozepiskolaKozismeretiOsszes
,KozepiskolaKozismeretiNemErettsegiFelkeszito AS KozepiskolaKozismeretiNemErettsegiFelkeszito
,KozepiskolaKozismeretiErettsegiFelkeszito AS KozepiskolaKozismeretiErettsegiFelkeszito
,KozepiskolaSzakmaiElmelet AS KozepiskolaSzakmaiElmelet
,KozepiskolaSzakmaiGyakorlati AS KozepiskolaKSzakmaiGyakorlat
,SzakgimnaziumElmelet AS SzakgimnaziumElmelet
,SzakgimnaziumGyakorlat AS SzakgimnaziumGyakorlat
,AMI
,Kollegium
,Pedagogiai AS Pedagogiai
,FejlesztoNevelesOktatas AS FejlesztoNevelesOktatas
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN T_ALKALMAZOTT a ON a.ID = fh.ID AND a.TOROLT = 'F'
CROSS APPLY (
SELECT TOP(1)
ocs.C_FELADATELLATASIHELYID FeladatellatasihelyId
,SUM(f.C_ORASZAM) AS Oraszam
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1157, 7762) AND d.C_NAME_4 IN (N'Kis', N'Középső', N'Nagy'), C_ORASZAM, 0)) AS Ovoda
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1158, 7763) AND d.C_NAME_4 IN (N'1', N'2', N'3', N'4'), C_ORASZAM, 0)) AS AlsoTagozat
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1158, 1160, 7763, 7764) AND d.C_NAME_4 IN (N'5', N'6', N'7', N'8'), C_ORASZAM, 0)) AS FelsoTagozat
,SUM (
CASE
WHEN (feh.C_OKTATASINEVELESIFELADATTIPUS IN (1161, 1162, 1180, 5435) OR (d.C_NAME_4 IN (N'9', N'10', N'11', N'12') AND feh.C_OKTATASINEVELESIFELADATTIPUS IN (7764, 1160)) /*Gimi, csak 9-12*/)
AND ocs.C_EVFOLYAMTIPUSA NOT IN (6818, 6819) /*Nem érettségi felkészítő évfolyamok*/
AND tgy.C_TARGYKATEGORIA IN (1221, 1199, 1225, 6755, 1224, 1292, 1212, 1219, 1223, 1217, 1209, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 7754, 1230, 1220, 1198, 1210, 1228, 1294, 1293, 1218, 1235, 6754, 1226) /*Közismereti tantárgykategóriák*/
THEN C_ORASZAM
ELSE 0
END
) AS KozepiskolaKozismeretiNemErettsegiFelkeszito
,SUM (
CASE
WHEN (feh.C_OKTATASINEVELESIFELADATTIPUS IN (1161, 1162, 1180, 5435) OR (d.C_NAME_4 IN (N'9', N'10', N'11', N'12') AND feh.C_OKTATASINEVELESIFELADATTIPUS IN (7764, 1160)))
AND ocs.C_EVFOLYAMTIPUSA IN (6818, 6819) /*Érettségi felkészítő évfolyamok*/
AND tgy.C_TARGYKATEGORIA IN (1221, 1199, 1225, 6755, 1224, 1292, 1212, 1219, 1223, 1217, 1209, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 7754, 1230, 1220, 1198, 1210, 1228, 1294, 1293, 1218, 1235, 6754, 1226) /*Közismereti tantárgykategóriák*/
THEN C_ORASZAM
ELSE 0
END
) AS KozepiskolaKozismeretiErettsegiFelkeszito
,SUM (
CASE
WHEN (feh.C_OKTATASINEVELESIFELADATTIPUS IN (1161, 1162, 1180, 5435) OR (d.C_NAME_4 IN (N'9', N'10', N'11', N'12') AND feh.C_OKTATASINEVELESIFELADATTIPUS IN (7764, 1160)))
AND ocs.C_EVFOLYAMTIPUSA NOT IN (1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1337, 3016, 3017, 6468, 6469, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6520)
AND tgy.C_TARGYKATEGORIA NOT IN (7597, 1221, 1199, 1225, 6755, 1224, 1292, 1212, 1219, 1223, 1217, 1209, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 7754, 1230, 1220, 1198, 1210, 1228, 1294, 1293, 1218, 1235, 6754, 1226) /*Közismereti tantárgykategóriák*/
AND tgy.C_GYAKORLATI = 'F'
THEN C_ORASZAM
ELSE 0
END
) AS KozepiskolaSzakmaiElmelet
,SUM (
CASE
WHEN (feh.C_OKTATASINEVELESIFELADATTIPUS IN (1161, 1162, 1180, 5435) OR (d.C_NAME_4 IN (N'9', N'10', N'11', N'12') AND feh.C_OKTATASINEVELESIFELADATTIPUS IN (7764, 1160)))
AND ocs.C_EVFOLYAMTIPUSA NOT IN (1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1337, 3016, 3017, 6468, 6469, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6520)
AND tgy.C_TARGYKATEGORIA NOT IN (1221, 1199, 1225, 6755, 1224, 1292, 1212, 1219, 1223, 1217, 1209, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 7754, 1230, 1220, 1198, 1210, 1228, 1294, 1293, 1218, 1235, 6754, 1226) /*Közismereti tantárgykategóriák*/
AND (tgy.C_TARGYKATEGORIA = 7597 OR tgy.C_GYAKORLATI = 'T')
THEN C_ORASZAM
ELSE 0
END
) AS KozepiskolaSzakmaiGyakorlati
,SUM (
CASE
WHEN feh.C_OKTATASINEVELESIFELADATTIPUS IN (5435, 7765)
AND ocs.C_EVFOLYAMTIPUSA IN (1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1337, 3016, 3017, 6468, 6469, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6520)
AND tgy.C_TARGYKATEGORIA NOT IN (7597, 1221, 1199, 1225, 6755, 1224, 1292, 1212, 1219, 1223, 1217, 1209, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 7754, 1230, 1220, 1198, 1210, 1228, 1294, 1293, 1218, 1235, 6754, 1226) /*Közismereti tantárgykategóriák*/
AND tgy.C_GYAKORLATI = 'F'
THEN C_ORASZAM
ELSE 0
END
) AS SzakgimnaziumElmelet
,SUM (
CASE
WHEN feh.C_OKTATASINEVELESIFELADATTIPUS IN (5435, 7765)
AND ocs.C_EVFOLYAMTIPUSA IN (1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1337, 3016, 3017, 6468, 6469, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6520)
AND tgy.C_TARGYKATEGORIA NOT IN (1221, 1199, 1225, 6755, 1224, 1292, 1212, 1219, 1223, 1217, 1209, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 7754, 1230, 1220, 1198, 1210, 1228, 1294, 1293, 1218, 1235, 6754, 1226) /*Közismereti tantárgykategóriák*/
AND (tgy.C_TARGYKATEGORIA = 7597 OR tgy.C_GYAKORLATI = 'T')
THEN C_ORASZAM
ELSE 0
END
) AS SzakgimnaziumGyakorlat
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS = 1159, C_ORASZAM, 0)) AS AMI
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), C_ORASZAM, 0)) AS Kollegium
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (6711, 1195, 7761, 1196), C_ORASZAM, 0)) AS Pedagogiai
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS = 6570, C_ORASZAM, 0)) AS FejlesztoNevelesOktatas
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = ocs.C_EVFOLYAMTIPUSA AND d.C_TANEVID = ocs.C_TANEVID AND d.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = f.C_TANTARGYID AND tgy.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ocs.C_FELADATELLATASIHELYID AND feh.TOROLT = 'F'
WHERE f.C_TANARID = fh.ID
AND f.C_TANEVID = @pTanevid
AND f.TOROLT = 'F'
GROUP BY ocs.C_FELADATELLATASIHELYID
ORDER BY Oraszam DESC
) x
LEFT JOIN T_TOVABBIMUNKAUGYIADATOK_OSSZES tma ON tma.C_ALKALMAZOTTID = fh.ID AND tma.C_FELADATELLATASIHELYID = x.FeladatellatasihelyId AND tma.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES ma ON ma.C_ALKALMAZOTTID = fh.ID AND ma.TOROLT = 'F'
WHERE x.FeladatellatasihelyId = @pFeladatEllatasiHelyId
AND fh.C_TANEVID = @pTanevid
AND a.C_ALLANDOHELYETTESITESRE = 'F'
END
ELSE BEGIN
SELECT
fh.ID AS AlkalmazottId
,fh.C_NYOMTATASINEV AS Nev
,CASE fh.C_NEME WHEN 4 THEN 'Férfi' WHEN 5 THEN '' ELSE NULL END AS Neme
,CASE
WHEN ma.C_MUNKAVISZONYTIPUSA = 654 THEN 'Megbízási szerződés'
WHEN IIF(tma.ID IS NOT NULL, tma.C_FOGLALKOZTATASTIPUS, ma.C_FOGLALKOZTATASTIPUS) = 6467 THEN 'Óraadó'
WHEN IIF(tma.ID IS NOT NULL, tma.C_FOGLALKOZTATASTIPUS, ma.C_FOGLALKOZTATASTIPUS) = 6466 THEN 'Részmunkaidős'
WHEN IIF(tma.ID IS NOT NULL, tma.C_FOGLALKOZTATASTIPUS, ma.C_FOGLALKOZTATASTIPUS) = 6465 THEN 'Teljes munkaidős'
ELSE NULL
END AS FoglalkozasTipusa
,IIF(tma.ID IS NOT NULL, tma.C_RESZMUNKAIDOSZAZALEK, ma.C_RESZMUNKAIDOSZAZALEK) AS ReszmunkaidoSzazalek
,DATEDIFF(year, fh.C_SZULETESIDATUM, @statDatum) AS Eletkor
,Ovoda
,AlsoTagozat
,FelsoTagozat
,KozepiskolaKozismeretiNemErettsegiFelkeszito + KozepiskolaKozismeretiErettsegiFelkeszito AS KozepiskolaKozismeretiOsszes
,KozepiskolaKozismeretiNemErettsegiFelkeszito AS KozepiskolaKozismeretiNemErettsegiFelkeszito
,KozepiskolaKozismeretiErettsegiFelkeszito AS KozepiskolaKozismeretiErettsegiFelkeszito
,KozepiskolaSzakmaiElmelet AS KozepiskolaSzakmaiElmelet
,KozepiskolaSzakmaiGyakorlati AS KozepiskolaKSzakmaiGyakorlat
,SzakgimnaziumElmelet AS SzakgimnaziumElmelet
,SzakgimnaziumGyakorlat AS SzakgimnaziumGyakorlat
,AMI
,Kollegium
,Pedagogiai AS Pedagogiai
,FejlesztoNevelesOktatas AS FejlesztoNevelesOktatas
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN T_ALKALMAZOTT a ON a.ID = fh.ID AND a.TOROLT = 'F'
CROSS APPLY (
SELECT TOP(1)
ocs.C_FELADATELLATASIHELYID FeladatellatasihelyId
,SUM(f.C_ORASZAM) AS Oraszam
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1157, 7762) AND d.C_NAME_4 IN (N'Kis', N'Középső', N'Nagy'), C_ORASZAM, 0)) AS Ovoda
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1158, 7763) AND d.C_NAME_4 IN (N'1', N'2', N'3', N'4'), C_ORASZAM, 0)) AS AlsoTagozat
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1158, 1160, 7763, 7764) AND d.C_NAME_4 IN (N'5', N'6', N'7', N'8'), C_ORASZAM, 0)) AS FelsoTagozat
,NULL AS KozepiskolaKozismeretiNemErettsegiFelkeszito
,NULL AS KozepiskolaKozismeretiErettsegiFelkeszito
,NULL AS KozepiskolaSzakmaiElmelet
,NULL AS KozepiskolaSzakmaiGyakorlati
,NULL AS SzakgimnaziumElmelet
,NULL AS SzakgimnaziumGyakorlat
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS = 1159, C_ORASZAM, 0)) AS AMI
,SUM(IIF(feh.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), C_ORASZAM, 0)) AS Kollegium
,NULL AS Pedagogiai
,NULL AS FejlesztoNevelesOktatas
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = ocs.C_EVFOLYAMTIPUSA AND d.C_TANEVID = ocs.C_TANEVID AND d.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = f.C_TANTARGYID AND tgy.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ocs.C_FELADATELLATASIHELYID AND feh.TOROLT = 'F'
WHERE f.C_TANARID = fh.ID
AND f.C_TANEVID = @pTanevid
AND f.TOROLT = 'F'
GROUP BY ocs.C_FELADATELLATASIHELYID
ORDER BY Oraszam DESC
) x
LEFT JOIN T_TOVABBIMUNKAUGYIADATOK_OSSZES tma ON tma.C_ALKALMAZOTTID = fh.ID AND tma.C_FELADATELLATASIHELYID = x.FeladatellatasihelyId AND tma.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES ma ON ma.C_ALKALMAZOTTID = fh.ID AND ma.TOROLT = 'F'
WHERE x.FeladatellatasihelyId = @pFeladatEllatasiHelyId
AND fh.C_TANEVID = @pTanevid
AND a.C_ALLANDOHELYETTESITESRE = 'F'
END
END
GO