DROP PROCEDURE IF EXISTS [dbo].[uspGetAdminDashboardAdminisztracio] GO CREATE PROCEDURE [dbo].[uspGetAdminDashboardAdminisztracio] @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 ,@pTanarAlkalmazottMunkakor int = 8384 AS BEGIN 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() INNER JOIN T_MUNKAKORTIPUS_OSSZES mkt ON mkt.ID = m.C_MUNKAKORTIPUSA AND mkt.C_ALTANEVID = m.C_TANEVID AND mkt.TOROLT = 'F' WHERE adat.C_TANEVID = @pTanevId AND mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = @pTanarAlkalmazottMunkakor 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_OSZTALYCSOPORT_OSSZES adat INNER JOIN T_CSOPORT_OSSZES csoport ON adat.ID = csoport.ID AND csoport.TOROLT = 'F' 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_TANEVID = @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 LEFT JOIN T_MUNKAUGYIADATOK_OSSZES ma ON ma.C_ALKALMAZOTTID = a.ID AND ma.C_TANEVID = @pTanevId AND ma.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID WHERE a.C_SZTSZKOD IS NULL AND a.C_ALTANEVID = @pTanevId AND a.TOROLT = 'F' AND ma.C_BETOLTETLENALLASHELY = 'F' AND ma.C_MUNKAKORTIPUSA NOT IN ( 6709, 6710 ) AND f.C_NYOMTATASINEV NOT LIKE '[[]%' ) AS NincsAlkalmazottSZTSZ ,(SELECT COUNT(1) FROM T_EMAIL_OSSZES e WHERE e.C_TANEVID = @pTanevId AND e.TOROLT = 'F' AND e.C_ISHIBASANMEGADVA = 'T' ) AS VanHibasEmailCim ,(SELECT COUNT(1) FROM T_FELHASZNALO f WHERE f.C_TANEVID = @pTanevId AND f.TOROLT = 'F' AND f.C_ISCOVIDFERTOZOTT = 'T' ) AS VanCovidFertozott ,(SELECT COUNT(1) FROM T_GONDVISELO g WHERE g.C_TANEVID = @pTanevId AND g.TOROLT = 'F' AND g.C_ISCOVIDBEJELENTO = 'T' ) AS VanCovidBejelentett ,(SELECT COUNT(1) FROM ( SELECT DISTINCT f.ID AS TanuloId ,COUNT(1) OVER (PARTITION BY f.ID) AS CNT FROM T_TANULO_OSSZES t INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.ID AND f.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = t.ID AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F' ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' WHERE t.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = 7553 AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE() ) ) x WHERE x.CNT > 1 ) AS VanKettosOsztalybesorolas 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