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

CREATE PROCEDURE [dbo].[SPUSS_514_SAGLIK_TESIS_BILGILERI]    -- 514 Sağlık Tesisi Bilgileri

	@HDOSYAID INT=0,
	@HESAPISLID INT=0,
	@TUMUNUTEKRAR BIT = 0
AS
BEGIN
	--SPUSS_514_SAGLIK_TESIS_BILGILERI 1,0,1
	DECLARE @HATA NVARCHAR(2000) = ''
	DECLARE @MESAJ NVARCHAR(2000) = ''
	DECLARE @SAYIHATA BIT = 0
	DECLARE @XMLBASLIK NVARCHAR(2000) = ''
	DECLARE @SUBEID INT = 1
	DECLARE @GONDERIMTABLOSU TABLE 
		(
			GONDERILECEKXML XML,
			HATA NVARCHAR(2000),
			MESAJ NVARCHAR(2000),	
			XMLBASLIK NVARCHAR(3500),
			TABLOID INT,
			MINID INT,
			MAXID INT
		)


	IF OBJECT_ID('tempdb..#TMPISLEMDOSYA') IS NOT NULL 
		DROP TABLE #TMPISLEMDOSYA

	SELECT	   HDOSYA.SUBEADI AS SUBELER_SUBEADI,			
			   1 AS HDOSYA_SUBEID,
			   
			   --ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaralı şubenin kurum numarası'),'') AS SAGLIKNETKURUMKODU,
	    ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numarali subede Yenidoğanların Kimliksiz fatura edilebilir gün sayısı'),'') 	AS SAGLIKNETKIMLIKSIZYENIDOGANGUN,

        CASE WHEN (SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND /* VALUESTR='1' AND*/ KEYNAME LIKE CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaral% %ubede Sa%l%k Net Online test modu aktif')='1' THEN
		  '10000038' 
		ELSE
		   ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaralı şubenin kurum numarası'),'') 
		END AS SAGLIKNETKURUMKODU,

		 CASE WHEN (SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND /* VALUESTR='1' AND*/ KEYNAME LIKE CONVERT(VARCHAR,HDOSYA.SUBEID)+' numaral% %ubede Sa%l%k Net Online test modu aktif')='1' THEN
		  '3bc26a7d-4a19-4edf-ab9f-1413ac85e7d0' /*TEST KTS FİRMA KODU*/
		ELSE
		   'C740D0288ED4C45FE0407C0A04162BDD'  /*KTS TALYA*/ 
		END AS SNOKTSFIRMAKODU

		
		INTO #TMPISLEMDOSYA
	
		from SUBELER AS HDOSYA WITH(NOLOCK) 
		where SUBEID=@HDOSYAID 
		
		--**********************************
		/*HDOSYAID YERİNE SUBEID GONDERCEZ*/
		--*********************************


	IF (SELECT COUNT(*) FROM #TMPISLEMDOSYA WHERE HDOSYA_SUBEID IS NULL) > 0 
		SET @HATA = @HATA + 'İşlemin şube kaydı bulunamadı! '


	IF @HATA='' AND @SAYIHATA=0
	BEGIN		
		SELECT @SUBEID = HDOSYA_SUBEID FROM #TMPISLEMDOSYA
		DECLARE @TBLXMLBASLIK TABLE (XMLBASLIK NVARCHAR(2000), HATA NVARCHAR(2000),MESAJ NVARCHAR(2000))
		INSERT INTO @TBLXMLBASLIK (XMLBASLIK, HATA, MESAJ) EXEC SPUSS_000_XML_BASLIK @SUBEID		
		SELECT @HATA=HATA, @MESAJ=MESAJ, @XMLBASLIK=XMLBASLIK FROM @TBLXMLBASLIK		
	END

	IF @HATA = '' AND @SAYIHATA=0
	BEGIN

		DECLARE @MINHESAPISLID INT = 0
		DECLARE @MAXHESAPISLID INT = 0
	

					BEGIN TRY
						INSERT INTO @GONDERIMTABLOSU (GONDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID) 
						SELECT							 
							(
								SELECT 
									NEWID() as 'messageGuid/@value',
									'1' as 'messageType/@version',
									'918e32b3-04eb-4444-b721-e979fcee8c60' as 'messageType/@codeSystemGuid',
									'402' as 'messageType/@code',
									'SYS Takip No Sorgulama' as 'messageType/@value',
									LEFT(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19),GETDATE(),120),' ',''),'-',''),':',''),12) as 'documentGenerationTime/@value',
											(
						 
												SELECT	
													'1' AS 'healthcareProvider/@version',
													'c3eade04-4f91-5dab-e043-14031b0ac9f9' as 'healthcareProvider/@codeSystemGuid',
													SAGLIKNETKURUMKODU AS 'healthcareProvider/@code',
													SUBELER_SUBEADI as 'healthcareProvider/@value'  
												FOR XML PATH('author'), TYPE
											),
											--'C740D0288ED4C45FE0407C0A04162BDD' as 'firmaKodu/@value',
											SNOKTSFIRMAKODU as 'firmaKodu/@value',
											(											
														SELECT 
																(
																		SELECT
																			ISNULL(SAGLIKNETKURUMKODU,'') AS 'MEDULA_TESIS_KODU/@value',

																			ISNULL(SAGLIKNETKURUMKODU,'') AS 'HIZMET_SUNUCU/@value',
																			'1' AS 'HIZMET_SUNUCU/@version',
																			'c3eade04-4f91-5dab-e043-14031b0ac9f9' AS 'HIZMET_SUNUCU/@codeSystemGuid',
																			'Code' AS 'HIZMET_SUNUCU/@code',

																			ISNULL(SUBELER_SUBEADI,'') AS 'MEDULA_TESIS_ADI/@value',

																			-- Alt Node
																			ISNULL(SAGLIKNETKURUMKODU,'') AS 'KAYIT_YERI_BILGILERI/KAYIT_YERI/@value',
																			'1' AS 'KAYIT_YERI_BILGILERI/KAYIT_YERI/@version',
																			'c3eade04-4f91-5dab-e043-14031b0ac9f9' AS 'KAYIT_YERI_BILGILERI/KAYIT_YERI/@codeSystemGuid',
																			'Code' AS 'KAYIT_YERI_BILGILERI/KAYIT_YERI/@code',

																			ISNULL(SAGLIKNETKURUMKODU,'') AS 'KAYIT_YERI_BILGILERI/MEDULA_TESIS_KODU/@value',
																			ISNULL(SUBELER_SUBEADI,'') AS 'KAYIT_YERI_BILGILERI/MEDULA_TESIS_ADI/@value',
																			ISNULL('MASA ÜSTÜ (EXE)','') AS 'KAYIT_YERI_BILGILERI/YAZILIM_MIMARISI/@value'

																		FOR XML PATH('SAGLIK_TESISI_BILGILERI'), TYPE
)
																													
													FOR XML PATH('recordData'), TYPE
										)
		   
				FROM #TMPISLEMDOSYA

				FOR XML PATH(''), ROOT('SYSMessage')
	
	
							) AS GONDERILECEKXML,
							@HATA AS HATA, 
							@MESAJ AS MESAJ,
							@XMLBASLIK AS XMLBASLIK,
							@HESAPISLID AS TABLOID,
							@MINHESAPISLID AS MINID,
							@MAXHESAPISLID AS MAXID

					END TRY
					BEGIN CATCH
						SET @HATA = ERROR_MESSAGE()
						IF @HATA = ''
							SET @HATA = 'Bilinmeyen bir hata oluştu'
			
						INSERT INTO @GONDERIMTABLOSU (GONDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)		
						SELECT	'' AS GONDERILECEKXML,
								@HATA AS HATA, 
								@MESAJ AS MESAJ,
								'' AS XMLBASLIK,
								@HESAPISLID AS TABLOID,
								0 AS MINID,
								0 AS MAXID
			

					END CATCH
				


	END
	ELSE
	BEGIN
		
		INSERT INTO @GONDERIMTABLOSU (GONDERILECEKXML,HATA,MESAJ,XMLBASLIK,TABLOID,MINID,MAXID)
		SELECT	'' AS GONDERILECEKXML,
				@HATA AS HATA, 
				@MESAJ AS MESAJ,
				'' AS XMLBASLIK,	
				@HESAPISLID AS TABLOID,
				0 AS MINID,
				0 AS MAXID		 
	END

	IF OBJECT_ID('tempdb..#TMPISLEMDOSYA') IS NOT NULL 
		DROP TABLE #TMPISLEMDOSYA


	SELECT * FROM @GONDERIMTABLOSU


END
GO


