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

CREATE PROCEDURE [dbo].[SPUSS_OPHESAPISLUPDATE] --16051492
@ANAHESAPISLID INT
AS
BEGIN

    DECLARE @TBLIDTUT TABLE(ID INT)
    DECLARE @ANADOSYAID INT = (SELECT HDOSYAID FROM HESAPISL WHERE HESAPISLID=@ANAHESAPISLID)
    DECLARE @ANAKIMLIKID INT = (SELECT HKIMLIKID FROM HDOSYA WHERE HDOSYAID=@ANADOSYAID)
    DECLARE @ISYATIS BIT = 0

    IF NOT EXISTS(SELECT HESAPISLID FROM HESAPISL WHERE HESAPISLID=@ANAHESAPISLID AND IPTAL = 0 AND ONAYLI = 1 AND SNKAYDET = 1 AND ISNULL(TEKLIF, 0) = 0 AND TABLOTIPI IN (0,4))
    BEGIN
	   RETURN
    END

    IF NOT EXISTS(SELECT HDOSYAID FROM HDOSYA WHERE HDOSYAID=@ANADOSYAID AND HDIPTAL=0)
    BEGIN
	   RETURN
    END

    IF (SELECT HDYATIYOR FROM HDOSYA WHERE HDOSYAID = @ANADOSYAID) = 1 AND (SELECT TABLOTIPI FROM HESAPISL WHERE HESAPISLID=@ANAHESAPISLID)=4
    BEGIN
	   SET @ISYATIS = 1
    END
    ELSE
    BEGIN
	   IF EXISTS(SELECT HESAPISLID FROM HESAPISL WHERE TABLOTIPI=4 AND HDOSYAID=@ANADOSYAID)--DOSYADA YATIŞ VARSA ÇIK
	   BEGIN
		  RETURN
	   END
	   ELSE
	   BEGIN
		  SET @ISYATIS = 0
	   END
    END

       
    -- YATIŞ KAYDIYSA DOSYAID YE GÖRE BOŞ OLANLARA BAS
    INSERT INTO @TBLIDTUT (ID)    
    SELECT HSLAL.HESAPISLID 
    FROM HESAPISL HSLAL
    JOIN HDOSYA ON HSLAL.HDOSYAID = HDOSYA.HDOSYAID
    JOIN HKIMLIK ON HDOSYA.HKIMLIKID=HKIMLIK.HKIMLIKID
    WHERE	  HSLAL.HDOSYAID = @ANADOSYAID--AYNI DOSYADA OLMALI
    AND	  HKIMLIK.HKIMLIKID = @ANAKIMLIKID--KIMLIKIDLER AYNI OLMALI
    AND	  HSLAL.OPHESAPISLID IS NULL	   
    AND	  @ISYATIS = 1--ANA DOSYA YATIŞSA
    AND	  HSLAL.TABLOTIPI<>4
    AND	  HSLAL.TABLOTIPI<>0    
    AND	  HSLAL.IPTAL = 0 AND HSLAL.ONAYLI = 1 AND HSLAL.SNKAYDET = 1 AND ISNULL(HSLAL.TEKLIF, 0) = 0 AND ISNULL(HSLAL.SNOGONDERILDI,0)=0
    AND	  HSLAL.HESAPISLID NOT IN (SELECT ID FROM @TBLIDTUT)

    -- MUAYENE KAYDIYSA DOSYAID YE GÖRE BOŞ OLANLARA BAS, DOSYADA YATIŞ YOKSA
    INSERT INTO @TBLIDTUT (ID)    
    SELECT HSLAL.HESAPISLID 
    FROM HESAPISL HSLAL
    JOIN HDOSYA ON HSLAL.HDOSYAID = HDOSYA.HDOSYAID
    JOIN HKIMLIK ON HDOSYA.HKIMLIKID=HKIMLIK.HKIMLIKID
    WHERE	  HSLAL.HDOSYAID = @ANADOSYAID--AYNI DOSYADA OLMALI
    AND	  HKIMLIK.HKIMLIKID = @ANAKIMLIKID--KIMLIKIDLER AYNI OLMALI
    AND	  HSLAL.OPHESAPISLID IS NULL	   
    AND	  @ISYATIS = 0--ANA DOSYA MUAYENE İSE
    AND	  HSLAL.TABLOTIPI<>4
    AND	  HSLAL.TABLOTIPI<>0    
    AND	  HSLAL.IPTAL = 0 AND HSLAL.ONAYLI = 1 AND HSLAL.SNKAYDET = 1 AND ISNULL(HSLAL.TEKLIF, 0) = 0 AND ISNULL(HSLAL.SNOGONDERILDI,0)=0
    AND	  HSLAL.HESAPISLID NOT IN (SELECT ID FROM @TBLIDTUT)


    -- YATIŞ KAYDIYSA AYNI GÜN BOŞTA KAYIT VARSA BAS
    INSERT INTO @TBLIDTUT (ID)    
    SELECT HSLAL.HESAPISLID 
    FROM HESAPISL HSLAL
    JOIN HDOSYA ON HSLAL.HDOSYAID = HDOSYA.HDOSYAID
    JOIN HKIMLIK ON HDOSYA.HKIMLIKID=HKIMLIK.HKIMLIKID
    WHERE	  CONVERT(DATE,HSLAL.ITARIH) = (SELECT CONVERT(DATE,ITARIH) FROM HESAPISL WHERE HESAPISLID=@ANAHESAPISLID)--AYNI GÜNÜN KAYDIYSA
    AND	  HKIMLIK.HKIMLIKID = @ANAKIMLIKID--KIMLIKIDLER AYNI OLMALI
    AND	  HSLAL.OPHESAPISLID IS NULL	   
    AND	  @ISYATIS = 1--ANA DOSYA YATIŞSA
    AND	  HSLAL.TABLOTIPI<>4
    AND	  HSLAL.TABLOTIPI<>0    
    AND	  HSLAL.IPTAL = 0 AND HSLAL.ONAYLI = 1 AND HSLAL.SNKAYDET = 1 AND ISNULL(HSLAL.TEKLIF, 0) = 0 AND ISNULL(HSLAL.SNOGONDERILDI,0)=0
    AND	  HSLAL.HESAPISLID NOT IN (SELECT ID FROM @TBLIDTUT)
    AND	  NOT EXISTS(SELECT HESAPISLID FROM HESAPISL WHERE HESAPISL.HDOSYAID=HSLAL.HDOSYAID AND HESAPISL.TABLOTIPI IN (0,4))--DOSYADA YATIŞ VEYA MUAYENE KAYDI YOKSA

    -- MUAYENE KAYDIYSA AYNI GÜN BOŞTA KAYIT VARSA BAS
    INSERT INTO @TBLIDTUT (ID)    
    SELECT HSLAL.HESAPISLID 
    FROM HESAPISL HSLAL
    JOIN HDOSYA ON HSLAL.HDOSYAID = HDOSYA.HDOSYAID
    JOIN HKIMLIK ON HDOSYA.HKIMLIKID=HKIMLIK.HKIMLIKID
    WHERE	  CONVERT(DATE,HSLAL.ITARIH) = (SELECT CONVERT(DATE,ITARIH) FROM HESAPISL WHERE HESAPISLID=@ANAHESAPISLID)--AYNI GÜNÜN KAYDIYSA
    AND	  HKIMLIK.HKIMLIKID = @ANAKIMLIKID--KIMLIKIDLER AYNI OLMALI
    AND	  HSLAL.OPHESAPISLID IS NULL	   
    AND	  @ISYATIS = 0--ANA DOSYA MUAYENE İSE
    AND	  HSLAL.TABLOTIPI<>4
    AND	  HSLAL.TABLOTIPI<>0    
    AND	  HSLAL.IPTAL = 0 AND HSLAL.ONAYLI = 1 AND HSLAL.SNKAYDET = 1 AND ISNULL(HSLAL.TEKLIF, 0) = 0 AND ISNULL(HSLAL.SNOGONDERILDI,0)=0
    AND	  HSLAL.HESAPISLID NOT IN (SELECT ID FROM @TBLIDTUT)
    AND	  NOT EXISTS(SELECT HESAPISLID FROM HESAPISL WHERE HESAPISL.HDOSYAID=HSLAL.HDOSYAID AND HESAPISL.TABLOTIPI IN (0,4))--DOSYADA YATIŞ VEYA MUAYENE KAYDI YOKSA



    INSERT INTO TEMP_OPHESAPISL_GUNCELLEME (ANAHESAPISLID,HESAPISLID) SELECT @ANAHESAPISLID,ID FROM @TBLIDTUT
    --SELECT TABLOTIPI,(SELECT ITEMADI FROM TITEM WHERE ITEMID=HESAPISL.ITEMID),OPHESAPISLID,* FROM HESAPISL WHERE HESAPISLID IN (SELECT ID FROM @TBLIDTUT) 
    UPDATE HESAPISL SET OPHESAPISLID = @ANAHESAPISLID WHERE HESAPISLID IN (SELECT ID FROM @TBLIDTUT) 
END
