﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetAdminDashboardAdminisztracio]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [dbo].[sp_GetAdminDashboardAdminisztracio]
END  
GO

CREATE PROCEDURE [dbo].[sp_GetAdminDashboardAdminisztracio]

	 @pNaFeladatellatasihelyTipus INT
    ,@pNaEvfolyamTipusa INT
    ,@pNaCsoportTipusa INT
    ,@pNaNemTipusa INT
    ,@pNaAlkalmazottMunkakor INT
    ,@pNaAlkalmazottMunkaviszony INT
    ,@pNaBesorolasiFokozat INT
    ,@pNaTargyKategoria INT
    ,@pNincsAnyanyelv INT
    ,@pNincsAllampolgarsag INT
    ,@pTanevId INT

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
	SET NOCOUNT ON;
	
	SELECT
                intezmenyAdatok.C_NEV																						IntezmenyNev,
                intezmeny.C_AZONOSITO																					    IntezmenyAzonosito,
                intezmeny.C_ALTERNATIVAZONOSITO																		        IntezmenyAlternativAzonosito,
                tanev.C_NEV																									TanevNev,
                (SELECT TOP 1 ISNULL(C_DATE, '20201231') FROM T_LICENCE_OSSZES) 										    LicenceDatum,
                (SELECT COUNT(1) FROM T_FELADATELLATASIHELY_OSSZES adat
	                WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
	                AND adat.C_OKTATASINEVELESIFELADATTIPUS =  @pNaFeladatellatasihelyTipus)								NincsFeladatellatasiHelyTipus,
                (SELECT COUNT(1) FROM T_MUKODESIHELY_OSSZES adat
	                WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F'
	                AND 0 = (SELECT COUNT(1) FROM T_FELADATELLATASIHELY_OSSZES fh WHERE fh.C_MUKODESIHELYID = adat.ID))	    NincsFeladatellatasiHelyMukodesiHely,
			
				(select count(1)  from (SELECT 
					T_OSZTALY_OSSZES.ID
				FROM T_OSZTALY_OSSZES
					LEFT JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALY_OSSZES.C_ALTANEVID
					LEFT JOIN T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALY_OSSZES.ID  AND T_TANULOCSOPORT_OSSZES.TOROLT='F' 
					AND ((T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM <=  GETDATE() AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL or T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())))
				WHERE C_ALTANEVID = @pTanevId AND T_OSZTALY_OSSZES.TOROLT = 'F'
				GROUP BY T_OSZTALY_OSSZES.ID
				HAVING COUNT(T_TANULOCSOPORT_OSSZES.id) = 0)  adat)
                    UresOsztaly,

				(select count(1)  from (SELECT 
					T_CSOPORT_OSSZES.ID
				FROM T_CSOPORT_OSSZES
					LEFT JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_CSOPORT_OSSZES.C_ALTANEVID
					LEFT JOIN T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = T_CSOPORT_OSSZES.ID  AND T_TANULOCSOPORT_OSSZES.TOROLT='F' 
					AND ((T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM <=  GETDATE() AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL or T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())))
				WHERE C_ALTANEVID = @pTanevId AND T_CSOPORT_OSSZES.TOROLT = 'F'
				GROUP BY T_CSOPORT_OSSZES.ID
				HAVING COUNT(T_TANULOCSOPORT_OSSZES.id) = 0)  adat) 
                    UresCsoport,

                (SELECT COUNT(1) FROM T_OSZTALYCSOPORT_OSSZES adat
	                INNER JOIN T_OSZTALY_OSSZES o ON o.ID = adat.ID AND o.C_ALTANEVID = adat.C_TANEVID
	                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 adat.C_EVFOLYAMTIPUSA = @pNaEvfolyamTipusa or adat.C_EVFOLYAMTIPUSA IS NULL )	
                        NincsEvfolyamCsoport,

                (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_TIPUSA = @pNaCsoportTipusa)				
                        NincsTipusCsoport,

                (SELECT COUNT(1) FROM T_OSZTALYCSOPORT_OSSZES adat
	                INNER JOIN T_OSZTALY_OSSZES o ON o.ID = adat.ID AND o.C_ALTANEVID = adat.C_TANEVID
	                WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F' AND o.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 = adat.C_TANEVID
					INNER JOIN T_MUNKAUGYIADATOK_OSSZES ON T_MUNKAUGYIADATOK_OSSZES.C_ALKALMAZOTTID = a.ID
	                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%'	
					AND T_MUNKAUGYIADATOK_OSSZES.C_MUNKAKORTIPUSA NOT IN 
                        (569 ,6345,6346,572,6404,571,586,556,6347,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579 ,568))		
                            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  OR adat.C_NEME IS NULL))							
                            NincsNemTanulo,

                (SELECT COUNT(1) FROM T_FELHASZNALO_OSSZES adat
	                INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
	                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 
                    AND m.C_MUNKAKORTIPUSA NOT IN 
                        (569 ,6345,6346,572,6404,571,586,556,6347,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579 ,568))		
                            NincsMunkakorAlkalmazott,

                (SELECT COUNT(1) FROM T_FELHASZNALO_OSSZES adat
	                INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
	                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 ,6345,6346,572,6404,571,586,556,6347,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579 ,568))		
                            NincsMunkaviszonyTipusAlkalmazott,


                (SELECT COUNT(1) FROM T_FELHASZNALO_OSSZES adat
	                INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
	                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 ,6345,6346,572,6404,571,586,556,6347,570,590,566,561,563,559,584,3026,589,565,585,7356,6421,594,564,579 ,568)
	                AND m.C_BESOROLASIFOKOZAT =@pNaBesorolasiFokozat )														
                        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))					
                        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 OR adat.C_ALLAMPOLGARSAGA IS NULL) )
                        NincsAllampolgarsagaTanulo,

                (SELECT COUNT(1) FROM T_CSENGETESIREND_OSSZES adat
	                WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F' AND adat.C_AKTIV = 'T')						
                        NincsAktivCsengetesiRend,

                (SELECT COUNT(1) FROM T_TANTARGY_OSSZES adat
	                WHERE adat.C_TANEVID = @pTanevId AND adat.TOROLT = 'F' AND adat.C_TARGYKATEGORIA = @pNaTargyKategoria )	
                        NincsKategoriaTantargy,

                (SELECT COUNT(1) FROM T_FELHASZNALO_OSSZES adat
	                INNER JOIN T_ALKALMAZOTT_OSSZES a ON a.ID = adat.ID AND a.C_ALTANEVID = adat.C_TANEVID
	                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 
                        (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))
							 NSzFHRosszMunkakor,

                (SELECT COUNT(1) FROM T_ALKALMAZOTT_OSSZES a
				 LEFT JOIN
                        T_EMAIL_OSSZES ON T_EMAIL_OSSZES.C_FELHASZNALOID = a.ID AND T_EMAIL_OSSZES.TOROLT = 'F' AND T_EMAIL_OSSZES.C_ALAPERTELMEZETT = 'T'
	                WHERE a.C_ALTANEVID = @pTanevId AND a.TOROLT = 'F' and T_EMAIL_OSSZES.ID is null)			NincsEmailAlkalmazott

                FROM T_TANEV_OSSZES tanev
                INNER JOIN T_INTEZMENY_OSSZES intezmeny ON intezmeny.ID = tanev.C_INTEZMENYID AND intezmeny.TOROLT = 'F'
                INNER JOIN T_INTEZMENYADATOK_OSSZES intezmenyAdatok ON intezmenyAdatok.C_INTEZMENYID = tanev.C_INTEZMENYID AND intezmenyAdatok.C_TANEVID = tanev.ID AND intezmenyAdatok.TOROLT = 'F'
                WHERE
                tanev.TOROLT = 'F' AND tanev.ID = @pTanevId



	
END
GO

