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



CREATE PROCEDURE [dbo].[SPUSS_000_XML_BASLIK] 
	@HSUBEID INT=1	 
AS
BEGIN


	DECLARE @HATA NVARCHAR(2000) = ''
	DECLARE @MESAJ NVARCHAR(2000) = ''

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

	SELECT
		ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,@HSUBEID)+' numaralı şubenin Sağlık.NET 2 kullanıcı adı'),'') AS SAGLIKNETKULLANICI,
		ISNULL((SELECT TOP 1 VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,@HSUBEID)+' numaralı şubenin Sağlık.NET 2 kullanıcı şifresi'),ISNULL((SELECT VALUESTR FROM CONFIG WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,@HSUBEID)+' numaralı şubenin kullanıcı şifresi'),'')) AS SAGLIKNETSIFRE, 
		ISNULL((SELECT VALUESTR FROM CONFIG WITH(NOLOCK) WHERE SECTIONSTR='Saglik-Net' AND PROGNAME='MEDISOFT' AND KEYNAME= CONVERT(VARCHAR,@HSUBEID)+' numaralı şubenin kurum numarası'),'') AS SAGLIKNETKURUMNO
		INTO #TMPXMLBASLIK

	IF (SELECT COUNT(*) FROM #TMPXMLBASLIK) = 0 
		SET @HATA = @HATA + 'Sağlık.NET 2 kullanıcı bilgileri tanımsız! '

	IF ISNULL((SELECT TOP 1 SAGLIKNETKULLANICI FROM #TMPXMLBASLIK),'') = ''
		SET @HATA=CONVERT(VARCHAR,CONVERT(VARCHAR,@HSUBEID))+' Nolu şube için Sağlık Net sürüm 2 kullanıcı tanımı yapılmamış! USS sistemine kayıt yapılamaz. '
	
	IF ISNULL((SELECT TOP 1 SAGLIKNETSIFRE FROM #TMPXMLBASLIK),'') = ''
		SET @HATA=CONVERT(VARCHAR,CONVERT(VARCHAR,@HSUBEID))+' Nolu şube için Sağlık Net sürüm 2 kullanıcı şifre tanımı yapılmamış! USS sistemine kayıt yapılamaz. '	

	IF ISNULL((SELECT TOP 1 SAGLIKNETKURUMNO FROM #TMPXMLBASLIK),'') = ''
		SET @HATA=CONVERT(VARCHAR,CONVERT(VARCHAR,@HSUBEID))+' Nolu şube için Sağlık-Net kurum numarası konfigürasyon tablosunda tanımlanmamış! USS sistemine kayıt yapılamaz. '	


	IF @HATA=''  
    BEGIN
		BEGIN TRY
		 
			SELECT	
				'<?xml version="1.0" encoding="utf-8"?>
				<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
					<SOAP-ENV:Header xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
						<wsse:Security>
							<wsse:UsernameToken wsu:Id="SecurityToken-DCE17E0A-6F53-4593-943E-0DA476F28C78">
							<wsse:Username>'+SAGLIKNETKULLANICI+'</wsse:Username>
							<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">'+SAGLIKNETSIFRE+'</wsse:Password>
							</wsse:UsernameToken>
						</wsse:Security>
					</SOAP-ENV:Header>
					<SOAP-ENV:Body>
						<SYSSendMessage xmlns="https://sys.sagliknet.saglik.gov.tr/SYS/">
							<input><![CDATA[<?xml version="1.0" encoding="UTF-8"?>#MESSAGE#]]></input>
						</SYSSendMessage>
					</SOAP-ENV:Body>
				</SOAP-ENV:Envelope>' AS XMLBASLIK,
				@HATA AS HATA,
				@MESAJ AS MESAJ
			FROM #TMPXMLBASLIK

		END TRY
		BEGIN CATCH
			SET @HATA = ERROR_MESSAGE()
			IF ISNULL(@HATA,'') = ''
				SET @HATA = 'Bilinmeyen bir hata oluştu'
			
			SELECT	'' AS XMLBASLIK,
					@HATA AS HATA, 
					@MESAJ AS MESAJ
		END CATCH
		
    END
	ELSE
	BEGIN
	   SELECT	'' AS XMLBASLIK,
				@HATA AS HATA, 
				@MESAJ AS MESAJ	   
    END

	IF OBJECT_ID('tempdb..#TMPXMLBASLIK') IS NOT NULL 
	DROP TABLE #TMPXMLBASLIK
END
GO


