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

CREATE PROCEDURE [dbo].[SPUSS_502_VERI_TOPLA] 
AS
BEGIN
	UPDATE ZAMANLAYICI SET OTOCALISMAZAMANI = GETDATE() WHERE ISLEMKODU='502' AND AKTIF=1 
	
	SELECT DISTINCT HDOSYA.HDOSYAID AS HDOSYAID,
		CASE WHEN (ZAMANLAYICI.BIRINCITUMUNUTEKRAR=1 OR ZAMANLAYICI.IKINCITUMUNUTEKRAR=1 OR ZAMANLAYICI.UCUNCUTUMUNUTEKRAR=1 OR ZAMANLAYICI.DORDUNCUTUMUNUTEKRAR=1 OR ZAMANLAYICI.BESINCITUMUNUTEKRAR=1) THEN 1 ELSE 0 END as TUMUNUTEKRAR 
	FROM HDOSYA WITH(NOLOCK) 
	JOIN HYATIS WITH(NOLOCK) ON HDOSYA.HDOSYAID = HYATIS.HDOSYAID
	JOIN HYIZLEM WITH(NOLOCK) ON HYIZLEM.HYATISID = HYATIS.HYATISID 
	JOIN ZAMANLAYICI ON ZAMANLAYICI.ISLEMKODU = '502' AND ZAMANLAYICI.AKTIF = 1
	JOIN HESAPISL ON HESAPISL.HESAPISLID = HYATIS.HESAPISLID

	WHERE	HESAPISL.SNOGONDERILDI = 1 --HİZMET KAYDI YAPILMIŞ
	AND DBO.TARIHAL(GSSCIKISTARIHI)>HYIZLEM.TARIH 
	AND ISNULL(HDOSYA.SNOTAKIPNO,'') <> ''
	AND HYATIS.SNOYATISCIKISGONDERILDI = 0
    AND HYATIS.DURUM = 2
    AND HDOSYA.HDIPTAL = 0
	AND HYYATISTIPI IN(0, 2)

	  AND 
			(		
					(ZAMANLAYICI.BIRINCIDENEME>0 AND HDOSYA.HDTARIH BETWEEN DATEADD(MINUTE,-1*(ZAMANLAYICI.BIRINCIDENEME+ZAMANLAYICI.ARAMAARALIGI),GETDATE()) AND DATEADD(MINUTE,-1*(ZAMANLAYICI.BIRINCIDENEME),GETDATE()) AND ((ISNULL(ZAMANLAYICI.BIRINCITUMUNUTEKRAR,0)=0 AND ISNULL(HYATIS.YOGUNBAKIMGONDERILDI,0)=0) OR ZAMANLAYICI.BIRINCITUMUNUTEKRAR=1))
				OR
					(ZAMANLAYICI.IKINCIDENEME>0 AND HDOSYA.HDTARIH BETWEEN DATEADD(MINUTE,-1*(ZAMANLAYICI.IKINCIDENEME+ZAMANLAYICI.ARAMAARALIGI),GETDATE()) AND DATEADD(MINUTE,-1*(ZAMANLAYICI.IKINCIDENEME),GETDATE()) AND ((ISNULL(ZAMANLAYICI.IKINCITUMUNUTEKRAR,0)=0 AND ISNULL(HYATIS.YOGUNBAKIMGONDERILDI,0)=0) OR ZAMANLAYICI.IKINCITUMUNUTEKRAR=1))
				OR
					(ZAMANLAYICI.UCUNCUDENEME>0 AND HDOSYA.HDTARIH BETWEEN DATEADD(MINUTE,-1*(ZAMANLAYICI.UCUNCUDENEME+ZAMANLAYICI.ARAMAARALIGI),GETDATE()) AND DATEADD(MINUTE,-1*(ZAMANLAYICI.UCUNCUDENEME),GETDATE()) AND ((ISNULL(ZAMANLAYICI.UCUNCUTUMUNUTEKRAR,0)=0 AND ISNULL(HYATIS.YOGUNBAKIMGONDERILDI,0)=0) OR ZAMANLAYICI.UCUNCUTUMUNUTEKRAR=1))
				OR
					(ZAMANLAYICI.DORDUNCUDENEME>0 AND HDOSYA.HDTARIH BETWEEN DATEADD(MINUTE,-1*(ZAMANLAYICI.DORDUNCUDENEME+ZAMANLAYICI.ARAMAARALIGI),GETDATE()) AND DATEADD(MINUTE,-1*(ZAMANLAYICI.DORDUNCUDENEME),GETDATE()) AND ((ISNULL(ZAMANLAYICI.DORDUNCUTUMUNUTEKRAR,0)=0 AND ISNULL(HYATIS.YOGUNBAKIMGONDERILDI,0)=0) OR ZAMANLAYICI.DORDUNCUTUMUNUTEKRAR=1))
				OR
					(ZAMANLAYICI.BESINCIDENEME>0 AND HDOSYA.HDTARIH BETWEEN DATEADD(MINUTE,-1*(ZAMANLAYICI.BESINCIDENEME+ZAMANLAYICI.ARAMAARALIGI),GETDATE()) AND DATEADD(MINUTE,-1*(ZAMANLAYICI.BESINCIDENEME),GETDATE()) AND ((ISNULL(ZAMANLAYICI.BESINCITUMUNUTEKRAR,0)=0 AND ISNULL(HYATIS.YOGUNBAKIMGONDERILDI,0)=0) OR ZAMANLAYICI.BESINCITUMUNUTEKRAR=1))

			)	

	  --AND (SELECT COUNT(SH.HDOSYAID) FROM ZAMANLAYICIHATALARI SH WHERE SH.OLUSTURULMAZAMANI>DATEADD(DAY,-2,GETDATE()) AND SH.HDOSYAID=HDOSYA.HDOSYAID)<3	 

	  AND DBO.TAMSAYIMI(( DATEPART(HOUR,GETDATE()) - DATEPART(HOUR,BASLANGICSAATI) )*1.0 / GONDERIMPERYODU * 60) = 1

	  AND HESAPISL.IPTAL = 0 
	  AND HESAPISL.ONAYLI = 1 
	  AND HESAPISL.TEKLIF = 0
	  AND HESAPISL.SNKAYDET = 1

	  --OR HDOSYA.HDOSYAID = 3465420


	ORDER BY HDOSYAID DESC

END




