IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[SPWEB_DOKTORLAR]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE SPWEB_DOKTORLAR
GO

CREATE PROCEDURE [dbo].[SPWEB_DOKTORLAR]
AS
BEGIN

	;WITH tumDoktorlar AS(
							SELECT TDRKIMLIK.DRID AS id,
								ISNULL(TDRKIMLIK.DRUNVAN,'') AS unvan,
								TDRKIMLIK.DRADI AS doktor, 
								SUBELER.SUBEID AS subeid,
								SUBELER.SUBEADI AS sube,
								ISNULL(SUBELER.IL,'') AS il,
								TBOLUM.BOLUMID AS bolumid,
								TBOLUM.BOLUMADI AS bolum,
								ISNULL(TDRKIMLIK.WEBRANDEVUVERILIR,0) AS webrandevualir,
								ISNULL(TDRKIMLIK.ONLINEMUAYENEALIR,0) AS onlinemuayeneyapar,																
								(SELECT COUNT(HDOSYAID) FROM HDOSYA WITH(NOLOCK) WHERE DRID=TDRKIMLIK.DRID AND HDTARIH>DATEADD(DAY,-3,GETDATE())) as dosyasayi
							FROM TDRKIMLIK WITH(NOLOCK)
							JOIN SUBELER WITH(NOLOCK) ON SUBELER.SUBEID=TDRKIMLIK.SUBEID
							JOIN TBOLUM WITH(NOLOCK) ON TBOLUM.BOLUMID=TDRKIMLIK.BOLUMID
							WHERE	STATUS = 'A' 
								AND TDRKIMLIK.WEBRANDEVUVERILIR = 1
						)
	
	--Önce her bölümün en yoğun birer doktoru, sonra yoğun bölüm doktorları yoğunluk sırasına göre listelendi
	SELECT	id,unvan,doktor,subeid,sube,il,bolumid,bolum,webrandevualir,onlinemuayeneyapar
	FROM	tumDoktorlar WITH(NOLOCK)
	LEFT JOIN	(	SELECT	sum(dosyasayi) as YogunBolumDS, bolumid as yogunbolumidid 
				FROM	tumDoktorlar WITH(NOLOCK)
				GROUP BY bolumid
			) AS yogunbolum ON yogunbolum.yogunbolumidid=tumDoktorlar.bolumid
	LEFT JOIN	(	SELECT	1000 AS BolumunEnYogunDoktoru, max(dosyasayi) AS EnYogunDoktorDS, bolumid AS yogundoktorbolumid 
				FROM	tumDoktorlar WITH(NOLOCK) 
				GROUP BY bolumid
			) AS yogundoktor ON yogundoktor.yogundoktorbolumid=tumDoktorlar.bolumid and yogundoktor.EnYogunDoktorDS = tumDoktorlar.dosyasayi 
	ORDER BY YogunBolumDS+BolumunEnYogunDoktoru DESC,
			 dosyasayi DESC 
END
GO

IF EXISTS (SELECT [name] FROM [sys].[database_principals] WHERE [type] = N'S' AND [name] = N'mediwebuser')
BEGIN
	BEGIN TRY
		GRANT EXECUTE ON [dbo].[SPWEB_DOKTORLAR] TO [mediwebuser]
	END TRY
	BEGIN CATCH
	END CATCH
END
GO


