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

190 lines
8.8 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 = 1384
,@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 #AKTIV_ALKALMAZOTT (ID int,INDEX IX1 CLUSTERED(ID));
INSERT INTO #AKTIV_ALKALMAZOTT (ID)
SELECT f.ID
FROM T_FELHASZNALO f
inner join T_MUNKAUGYIADATOK munkaugyiadat ON munkaugyiadat.C_ALKALMAZOTTID = f.ID AND munkaugyiadat.C_TARTOSHELYETTESITES = 'F' AND ISNULL(munkaugyiadat.C_ALKALMAZASKEZDETE,getdate()) <= getdate() AND ISNULL(munkaugyiadat.C_ALKALMAZASMEGSZUNESE,getdate()) >= getdate() AND munkaugyiadat.TOROLT = 'F'
WHERE f.C_TANEVID = @pTanevId
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)
) 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
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 = adat.C_TANEVID
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 #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
INNER JOIN T_MUNKAUGYIADATOK_OSSZES ON T_MUNKAUGYIADATOK_OSSZES.C_ALKALMAZOTTID = adat.ID
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND adat.C_NEME = @pNaNemTipusa
AND adat.C_NYOMTATASINEV NOT LIKE '[[]HO%'
AND adat.C_NYOMTATASINEV NOT LIKE '[[]BTA%'
AND T_MUNKAUGYIADATOK_OSSZES.C_MUNKAKORTIPUSA NOT IN
(569,572,6404,571,586,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579,568)
) AS NincsNemAlkalmazott
,(SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN T_TANULO_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND adat.C_NEME = @pNaNemTipusa
) AS NincsNemTanulo
,(SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = adat.ID AND m.C_TANEVID = adat.C_TANEVID AND m.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND m.C_MUNKAKORTIPUSA = @pNaAlkalmazottMunkakor
) AS NincsMunkakorAlkalmazott
,(SELECT COUNT(1) FROM T_FELHASZNALO_OSSZES adat
INNER JOIN #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = adat.ID AND m.C_TANEVID = adat.C_TANEVID AND m.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND m.C_MUNKAVISZONYTIPUSA = @pNaAlkalmazottMunkaviszony
AND m.C_MUNKAKORTIPUSA NOT IN
(569,572,6404,571,586,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579,568)
) AS NincsMunkaviszonyTipusAlkalmazott
,(SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = adat.ID AND m.C_TANEVID = adat.C_TANEVID AND m.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
AND m.C_MUNKAKORTIPUSA NOT IN
(569,572,6404,571,586,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579,568)
AND m.C_BESOROLASIFOKOZAT =@pNaBesorolasiFokozat
) AS NincsBesorolasiFokozatAlkalmazott
,(SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN T_TANULO_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND (adat.C_ANYANYELVE = @pNincsAnyanyelv OR adat.C_ANYANYELVE IS NULL)
) AS NincsAnyanyelvTanulo
,(SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES adat
INNER JOIN T_TANULO_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND adat.C_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 T_FELHASZNALO_OSSZES adat
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = adat.ID AND m.C_TANEVID = adat.C_TANEVID AND m.TOROLT = 'F'
WHERE adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
AND m.C_MUNKAKORTIPUSA NOT IN
(569,572,6404,571,586,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579,568)
) AS NSzFHRosszMunkakor
,(SELECT COUNT(1)
FROM #AKTIV_ALKALMAZOTT aa
LEFT JOIN T_EMAIL_OSSZES ON T_EMAIL_OSSZES.C_FELHASZNALOID = aa.ID AND T_EMAIL_OSSZES.TOROLT = 'F' AND T_EMAIL_OSSZES.C_ALAPERTELMEZETT = 'T'
WHERE T_EMAIL_OSSZES.ID IS NULL
) AS NincsEmailAlkalmazott
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 = tv.ID AND ia.TOROLT = 'F'
WHERE tv.TOROLT = 'F'
AND tv.ID = @pTanevId
END
GO