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

129 lines
5.7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetAlkalmazottAdatokEugyintezes
GO
CREATE PROCEDURE uspGetAlkalmazottAdatokEugyintezes
@pFelhasznaloId INT
,@pSzerepkorTipusEnumNaplo INT
,@pOktNevKatTipusNevOkt INT
,@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT Alkalmazott.ID AS KretaAzonosito
,Felhasznalo.C_NYOMTATASINEV AS Nev
,Felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
,Osztaly.ID AS OsztalyKretaAzonosito
,Osztaly.Osztaly
,OsztalyHelyettes.ID AS OsztalyHelyettesKretaAzonosito
,OsztalyHelyettes.Osztaly AS OsztalyHelyettes
,IIF(Osztaly.OsztalyfonokId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonok
,IIF(OsztalyHelyettes.OsztalyfonokHelyettesId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonokHelyettes
,IIF(MunkaugyiAdatok.C_VEZETOIORASZAMOK NOT IN (
6571 /*Nincs, DictionaryItemBase*/
,6578 /*GyakorlatiOktatasvezeto, DictionaryItemBase*/
), 1, 0) AS IsAlairo
,IIF(MunkaugyiAdatok.C_VEZETOIORASZAMOK IN (
7755
,6572
,6573
,7757
,7758
,6574
), 1, 0) AS IsIgazgato
,IIF(MunkaugyiAdatok.C_VEZETOIORASZAMOK IN (
7756
,6575
,6576
,6577
), 1, 0) AS IsIgazgatoHelyettes
,MunkaugyiAdatok.C_VEZETOIORASZAMOK AS Titulus
,IIF(Osztaly.OsztalyfonokId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonok
,IIF(OsztalyHelyettes.OsztalyfonokHelyettesId = Alkalmazott.ID, 1, 0) AS IsOsztalyfonokHelyettes
,IIF(mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8384, 1, 0) AS IsTanar
,IIF(mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8385, 1, 0) AS IsNoks
,IIF(mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8386, 1, 0) AS IsEgyeb
,IIF(Adminisztrator.FelhasznaloId = Alkalmazott.ID, 1, 0) AS IsAdmin
,mukodesihely.C_FUNKCIOTERULET AS FunkcioTeruletSAPKod
,Felhasznalo.C_EGYEDIAZONOSITO AS EgyediAzonosito
,Felhasznalo.C_IDPEGYEDIAZONOSITO AS IdpEgyediAzonosito
FROM T_ALKALMAZOTT_OSSZES AS Alkalmazott
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Alkalmazott.ID = Felhasznalo.ID
AND Felhasznalo.TOROLT = 'F'
AND Felhasznalo.C_TANEVID = @pTanevId
LEFT JOIN (
SELECT MunkaugyiAdatok.C_ALKALMAZOTTID
,MunkaugyiAdatok.C_MUNKAKORTIPUSA
FROM T_MUNKAUGYIADATOK_OSSZES MunkaugyiAdatok
INNER JOIN T_FELHASZNALO_SZEREPKOR FelhasznaloSzerepkor ON FelhasznaloSzerepkor.C_FELHASZNALOID = MunkaugyiAdatok.C_ALKALMAZOTTID
INNER JOIN T_SZEREPKOR_OSSZES Szerepkor ON Szerepkor.ID = FelhasznaloSzerepkor.C_SZEREPKORID
AND Szerepkor.TOROLT = 'F'
AND Szerepkor.C_SZEREPKORTIPUS = @pSzerepkorTipusEnumNaplo
AND Szerepkor.C_TANEVID = @pTanevId
WHERE MunkaugyiAdatok.C_MUNKAKORTIPUSA NOT IN (
SELECT JSON_VALUE(VALUE, '$.Value')
FROM OPENJSON((
SELECT RendszerBeallitas.C_ERTEK
FROM T_RENDSZERBEALLITAS_OSSZES RendszerBeallitas
WHERE RendszerBeallitas.C_BEALLITASTIPUS = 5441
AND RendszerBeallitas.TOROLT = 'F'
AND RendszerBeallitas.C_TANEVID = @pTanevId
), '$.Options')
WHERE JSON_VALUE(VALUE, '$.Selected') = 'true'
)
OR MunkaugyiAdatok.C_MUNKAKORTIPUSA = 6710 /*Hitoktató*/
AND MunkaugyiAdatok.TOROLT = 'F'
AND MunkaugyiAdatok.C_TANEVID = @pTanevId
) Szuro ON Szuro.C_ALKALMAZOTTID = Felhasznalo.ID
LEFT JOIN (
SELECT OsztalyCsoport.ID
,OsztalyCsoport.C_NEV AS Osztaly
,Osztaly.C_OSZTALYFONOKID AS OsztalyfonokId
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_ALTANEVID = @pTanevId
WHERE OsztalyCsoport.TOROLT = 'F'
AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
AND OsztalyCsoport.C_TANEVID = @pTanevId
) Osztaly ON Osztaly.OsztalyfonokId = Alkalmazott.ID
LEFT JOIN (
SELECT OsztalyCsoport.ID
,OsztalyCsoport.C_NEV AS Osztaly
,Osztaly.C_OFOHELYETTESID AS OsztalyfonokHelyettesId
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_ALTANEVID = @pTanevId
WHERE OsztalyCsoport.TOROLT = 'F'
AND OsztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipusNevOkt
AND OsztalyCsoport.C_TANEVID = @pTanevId
) OsztalyHelyettes ON OsztalyHelyettes.OsztalyfonokHelyettesId = Alkalmazott.ID
LEFT JOIN (
SELECT FelhasznaloSzerepkor.C_FELHASZNALOID AS FelhasznaloId
FROM T_FELHASZNALO_SZEREPKOR FelhasznaloSzerepkor
INNER JOIN T_SZEREPKOR_OSSZES Szerepkor ON Szerepkor.ID = FelhasznaloSzerepkor.C_SZEREPKORID
AND Szerepkor.TOROLT = 'F'
AND Szerepkor.C_SZEREPKORTIPUS = 1758 /*Adminisztrátor, DictionaryItemBase*/
AND Szerepkor.C_TANEVID = @pTanevId
) Adminisztrator ON Adminisztrator.FelhasznaloId = Alkalmazott.ID
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES MunkaugyiAdatok ON MunkaugyiAdatok.C_ALKALMAZOTTID = Alkalmazott.ID
AND MunkaugyiAdatok.TOROLT = 'F'
AND MunkaugyiAdatok.C_TANEVID = @pTanevId
LEFT JOIN T_MUNKAKORTIPUS_OSSZES mkt ON mkt.ID = MunkaugyiAdatok.C_MUNKAKORTIPUSA
AND mkt.C_ALINTEZMENYID = MunkaugyiAdatok.C_INTEZMENYID
AND mkt.C_ALTANEVID = MunkaugyiAdatok.C_TANEVID AND mkt.TOROLT = 'F'
LEFT JOIN T_FELADATELLATASIHELY_OSSZES feladatEllatasiHely ON feladatEllatasiHely.ID = MunkaugyiAdatok.C_FELADATELLATASIHELYID
AND feladatEllatasiHely.TOROLT = 'F'
AND feladatEllatasiHely.C_TANEVID = @pTanevId
LEFT JOIN T_MUKODESIHELY_OSSZES mukodesihely ON mukodesihely.ID = feladatEllatasiHely.C_MUKODESIHELYID
AND mukodesihely.TOROLT = 'F'
AND mukodesihely.C_TANEVID = @pTanevId
WHERE Alkalmazott.TOROLT = 'F'
AND Alkalmazott.ID = @pFelhasznaloId
AND Alkalmazott.C_ALTANEVID = @pTanevId
ORDER BY Felhasznalo.C_NYOMTATASINEV
END
GO