SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER ON
GO


ALTER FUNCTION [dbo].[FNYATAKDURUM] ( @SUBEID int, @ODANO nvarchar(5), @TARIH smalldatetime,@KIRLIGOSTERMEZAMANIDK int)
RETURNS TABLE
AS
RETURN(
SELECT TODA.ODANO AS ODANO, YATAKNO,YTKDURUMU,TODA.SUBEID AS SUBEID, ODADURUMU,
CASE WHEN EXISTS(
SELECT TOP 1 HYATISID FROM HYATIS
INNER JOIN HESAPISL ON HYATIS.HESAPISLID = HESAPISL.HESAPISLID
INNER JOIN HDOSYA ON HESAPISL.HDOSYAID = HDOSYA.HDOSYAID
WHERE HDOSYA.SUBEID=@SUBEID AND HYODANO = TODA.ODANO AND HYYATAKNO = YATAKNO AND HYATIS.DURUM IN(1,2) AND HYYATISTARIH <=@TARIH AND
(HYCIKISTARIH IS NULL OR HYCIKISTARIH >=@TARIH) AND IPTAL = 0 AND ONAYLI = 1 AND TEKLIF = 0)
THEN 1
ELSE 0
END AS DOLU,
CASE WHEN ISNULL(@KIRLIGOSTERMEZAMANIDK, 0) > 0 AND EXISTS(
SELECT TOP 1 HYATISID FROM HYATIS
INNER JOIN HESAPISL ON HYATIS.HESAPISLID = HESAPISL.HESAPISLID
INNER JOIN HDOSYA ON HESAPISL.HDOSYAID = HDOSYA.HDOSYAID
WHERE HDOSYA.SUBEID=@SUBEID AND HYODANO = TODA.ODANO AND HYYATAKNO = YATAKNO AND HYATIS.DURUM = 2 AND
(HYCIKISTARIH IS NOT NULL) AND IPTAL = 0 AND ONAYLI = 1 AND TEKLIF = 0 and GETDATE()<=DATEADD(MINUTE,@KIRLIGOSTERMEZAMANIDK,HYCIKISTARIH))
THEN 1
ELSE 0
END AS KIRLI
FROM TYATAK INNER JOIN TODA ON TYATAK.ODANO=TODA.ODANO AND TYATAK.SUBEID=TODA.SUBEID
WHERE (TYATAK.ODANO = @ODANO OR @ODANO IS NULL) AND TYATAK.SUBEID=@SUBEID)


GO