kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190730085850_KRETA2_501Fix/sp_GetAdminDashboardAdminisztracio.sql
2024-03-13 00:33:46 +01:00

203 lines
8.2 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_GetAdminDashboardAdminisztracio]
GO
CREATE PROCEDURE [dbo].[sp_GetAdminDashboardAdminisztracio]
@pTanevId int
,@pNaFeladatellatasihelyTipus int = 1156
,@pNaEvfolyamTipusa int = 1296
,@pNaCsoportTipusa int = 1031
,@pNaNemTipusa int = 1565
,@pNaAlkalmazottMunkakor int = 548
,@pNaAlkalmazottMunkaviszony int = 643
,@pNaBesorolasiFokozat int = 3040
,@pNaTargyKategoria int = 1197
,@pNincsAnyanyelv int = 493
,@pNincsAllampolgarsag int = 216
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @TanevElsoNapja datetime = (SELECT ISNULL(C_KEZDONAP, CAST(GETDATE() AS DATE)) FROM T_TANEV WHERE ID = @pTanevId AND TOROLT = 'F')
DECLARE @OsztalyCsoportBelepesDatum DATETIME = GETDATE()
CREATE TABLE #AlkalmazottMunkaugyiAdattal (
Id INT
,BesorolasiFokozat INT NULL
,MunkakorTipusa INT NULL
,MunkaviszonyTipusa INT NULL
)
INSERT INTO #AlkalmazottMunkaugyiAdattal (Id, BesorolasiFokozat, MunkakorTipusa, MunkaviszonyTipusa)
SELECT
adat.ID
,m.C_BESOROLASIFOKOZAT
,m.C_MUNKAKORTIPUSA
,m.C_MUNKAVISZONYTIPUSA
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = @pTanevId AND a.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = adat.ID AND m.C_TANEVID = @pTanevId AND m.TOROLT = 'F'
AND m.C_TARTOSHELYETTESITES = 'F' AND ISNULL(m.C_ALKALMAZASKEZDETE, GETDATE()) <= GETDATE()
AND ISNULL(m.C_ALKALMAZASMEGSZUNESE, GETDATE()) >= GETDATE()
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
CREATE TABLE #Tanulo (
Id INT
,Neme INT NULL
,Allampolgarsaga INT NULL
,Anyanyelve INT NULL
)
INSERT INTO #Tanulo (Id, Neme, Allampolgarsaga, Anyanyelve)
SELECT
adat.ID
,adat.C_NEME
,adat.C_ALLAMPOLGARSAGA
,adat.C_ANYANYELVE
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN T_TANULO_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = @pTanevId AND a.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
IF @OsztalyCsoportBelepesDatum < @TanevElsoNapja BEGIN
SET @OsztalyCsoportBelepesDatum = @TanevElsoNapja;
END
SELECT
ia.C_NEV AS IntezmenyNev
,i.C_AZONOSITO AS IntezmenyAzonosito
,i.C_ALTERNATIVAZONOSITO AS IntezmenyAlternativAzonosito
,tv.C_NEV AS TanevNev
,(SELECT TOP 1 ISNULL(C_DATE, '20201231') FROM T_LICENCE_OSSZES) AS LicenceDatum
,(SELECT COUNT(1)
FROM T_FELADATELLATASIHELY_OSSZES adat
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND adat.C_OKTATASINEVELESIFELADATTIPUS = @pNaFeladatellatasihelyTipus
) AS NincsFeladatellatasiHelyTipus
,(SELECT COUNT(1)
FROM T_MUKODESIHELY_OSSZES adat
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND NOT EXISTS (SELECT 1 FROM T_FELADATELLATASIHELY_OSSZES fh WHERE fh.C_MUKODESIHELYID = adat.ID AND fh.C_TANEVID = @pTanevId AND fh.TOROLT = 'F')
) AS NincsFeladatellatasiHelyMukodesiHely
,(SELECT COUNT(1)
FROM T_OSZTALY_OSSZES adat
WHERE NOT EXISTS (
SELECT 1
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID = adat.ID
AND tcs.TOROLT = 'F'
AND (tcs.C_BELEPESDATUM <= @OsztalyCsoportBelepesDatum
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @OsztalyCsoportBelepesDatum))
AND tcs.C_TANEVID = @pTanevId
)
AND adat.TOROLT = 'F'
AND adat.C_ALTANEVID = @pTanevId
) AS UresOsztaly
,(SELECT COUNT(1)
FROM T_CSOPORT_OSSZES adat
WHERE NOT EXISTS (
SELECT 1
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID = adat.ID
AND tcs.TOROLT = 'F'
AND (tcs.C_BELEPESDATUM <= @OsztalyCsoportBelepesDatum
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @OsztalyCsoportBelepesDatum))
AND tcs.C_TANEVID = @pTanevId
)
AND adat.TOROLT = 'F'
AND adat.C_ALTANEVID = @pTanevId
) AS UresCsoport
,(SELECT COUNT(1)
FROM T_OSZTALYCSOPORT_OSSZES adat
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = adat.ID AND o.C_ALTANEVID = @pTanevId AND o.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND (adat.C_EVFOLYAMTIPUSA = @pNaEvfolyamTipusa or adat.C_EVFOLYAMTIPUSA IS NULL)
) NincsEvfolyamOsztaly
,(SELECT COUNT(1)
FROM T_OSZTALYCSOPORT_OSSZES adat
INNER JOIN T_CSOPORT_OSSZES csoport ON csoport.ID = adat.ID AND csoport.C_ALTANEVID = @pTanevId AND csoport.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND csoport.C_OSZTALYBONTASID IS NULL AND (adat.C_EVFOLYAMTIPUSA = @pNaEvfolyamTipusa OR adat.C_EVFOLYAMTIPUSA IS NULL)
) AS NincsEvfolyamCsoport
,(SELECT COUNT(1)
FROM T_CSOPORT_OSSZES adat
WHERE adat.C_ALTANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND adat.C_TIPUSA = @pNaCsoportTipusa
) AS NincsTipusCsoport
,(SELECT COUNT(1)
FROM T_OSZTALY_OSSZES adat
WHERE adat.C_ALTANEVID = @pTanevId AND adat.TOROLT = 'F' AND adat.C_OSZTALYFONOKID IS NULL
) NincsOsztalyOsztalyfonok
,(SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = @pTanevId AND a.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND (adat.C_NEME = @pNaNemTipusa OR adat.C_NEME IS NULL)
AND adat.C_NYOMTATASINEV NOT LIKE '[[]HO%'
AND adat.C_NYOMTATASINEV NOT LIKE '[[]BTA%'
) AS NincsNemAlkalmazott
,(SELECT COUNT(1)
FROM #Tanulo t
WHERE t.Neme = @pNaNemTipusa OR t.Neme IS NULL
) AS NincsNemTanulo
,(SELECT COUNT(1)
FROM #AlkalmazottMunkaugyiAdattal am
WHERE am.MunkakorTipusa = @pNaAlkalmazottMunkakor
) AS NincsMunkakorAlkalmazott
,(SELECT COUNT(1)
FROM #AlkalmazottMunkaugyiAdattal am
WHERE am.MunkaviszonyTipusa = @pNaAlkalmazottMunkaviszony
) AS NincsMunkaviszonyTipusAlkalmazott
,(SELECT COUNT(1)
FROM #AlkalmazottMunkaugyiAdattal am
WHERE am.BesorolasiFokozat = @pNaBesorolasiFokozat
) AS NincsBesorolasiFokozatAlkalmazott
,(SELECT COUNT(1)
FROM #Tanulo t
WHERE t.Anyanyelve = @pNincsAnyanyelv OR t.Anyanyelve IS NULL
) AS NincsAnyanyelvTanulo
,(SELECT COUNT(1)
FROM #Tanulo t
WHERE t.Allampolgarsaga = @pNincsAllampolgarsag
) AS NincsAllampolgarsagaTanulo
,(SELECT COUNT(1)
FROM T_CSENGETESIREND_OSSZES adat
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F' AND adat.C_AKTIV = 'T'
) AS NincsAktivCsengetesiRend /* AktivCsengetesiRendekSzáma */
,(SELECT COUNT(1)
FROM T_TANTARGY_OSSZES adat
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND adat.C_TARGYKATEGORIA = @pNaTargyKategoria
) AS NincsKategoriaTantargy
,(SELECT COUNT(1)
FROM #AlkalmazottMunkaugyiAdattal am
WHERE am.MunkakorTipusa NOT IN
(6914, 6361, 6432, 6433, 6461, 553, 6414,
6812, 597, 6392, 6375, 6457, 6352, 6393,
6394, 6709, 584, 561, 589, 3026, 563, 585,
559, 564, 6421, 565, 566, 568, 594, 6404,
569, 571, 586, 590, 570, 572)
) AS NSzFHRosszMunkakor
,(SELECT COUNT(1)
FROM #AlkalmazottMunkaugyiAdattal am
LEFT JOIN T_EMAIL_OSSZES ON T_EMAIL_OSSZES.C_FELHASZNALOID = am.ID AND T_EMAIL_OSSZES.TOROLT = 'F' AND T_EMAIL_OSSZES.C_ALAPERTELMEZETT = 'T' AND T_EMAIL_OSSZES.C_TANEVID = @pTanevId
WHERE T_EMAIL_OSSZES.ID IS NULL
) AS NincsEmailAlkalmazott,
(SELECT COUNT(1)
FROM T_ALKALMAZOTT_OSSZES a
WHERE a.C_SZTSZKOD IS NULL AND a.C_ALTANEVID = @pTanevId
) AS NincsAlkalmazottSZTSZ
FROM T_TANEV_OSSZES tv
INNER JOIN T_INTEZMENY_OSSZES i ON i.ID = tv.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID = tv.C_INTEZMENYID AND ia.C_TANEVID = @pTanevId AND ia.TOROLT = 'F'
WHERE tv.TOROLT = 'F'
AND tv.ID = @pTanevId
END
GO