create or alter procedure sp_GunlukDurumRaporu(@Tarih1 datetime,@Tarih2 datetime,@Tip nvarchar(1))
AS
BEGIN
	IF @Tip = 'G' 
	BEGIN
		select DISTINCT (select sum(Tutar) from STOKHARDETBAG db where FisTuru='F' and IslemTuru = 'Prk.Satış' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2 and not exists( Select 1 from KASA K where K.ISLEMNO = db.IslemNo)) as PerakendeSatisToplami,  
			   (select sum(Tutar) from STOKHARDETBAG where FisTuru='F' and IslemTuru = 'Satış' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2) as SatıslarToplami,
			   (select sum(Tutar) from STOKHARDETBAG where FisTuru='F' and IslemTuru = 'Alış' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2) as AlislarToplami,
			   (select sum(EkIskTutTop) from STOKHARDETBAG where FisTuru='F' and IslemTuru = 'Alış' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2) as AlislarIskontosu,
			   (select sum(Tutar) from STOKHARDETBAG where FisTuru='F' and IslemTuru = 'Alış İade' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2) as AlisIadeToplami,
			   (select sum(Tutar) from STOKHARDETBAG where FisTuru='F' and IslemTuru = 'Satış İade' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2) as SatisIadeToplami
		from STOKHARDETBAG group by IslemTuru
    END;
	IF @Tip = 'T' 
	BEGIN
		SELECT SUM(db.Tutar) AS Tutar,SUM(EkIskTutTop) IskTop,SUM(ac.ALACAK) + SUM(EkIskTutTop) IskontosuzTutar,IslemTuru,ac.BAACIKLA,NakitVisa FROM ACARI ac
		INNER JOIN STOKHARDETBAG db ON ac.ISLEMNO = db.IslemNo 
		INNER JOIN KASA k ON k.ISLEMNO = db.IslemNo
		WHERE  (db.IslemTuru = 'Prk.Satış') and ac.BAACIKLA IN ('KK.Tahsilat','Tahsilat')
		  AND  db.FaturaTarihi >= @Tarih1 and db.FaturaTarihi <= @Tarih2
		GROUP BY db.IslemTuru,ac.BAACIKLA,NakitVisa 
		UNION ALL
		select sum(Tutar),SUM(EkIskTutTop) IskTop,SUM(Tutar) + SUM(EkIskTutTop) IskontosuzTutar,'Prk.Satış','Veresiye','' from STOKHARDETBAG db 
		 where FisTuru='F' and IslemTuru = 'Prk.Satış' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2 
		 and not exists( Select 1 from KASA K where K.ISLEMNO = db.IslemNo)	
		UNION ALL
		select sum(Tutar),SUM(EkIskTutTop) IskTop,SUM(db.Tutar) + SUM(EkIskTutTop) IskontosuzTutar,'Prk.Satış','Toplam','' from STOKHARDETBAG db 
		 where FisTuru='F' and IslemTuru = 'Prk.Satış' and FaturaTarihi >= @Tarih1 and FaturaTarihi <= @Tarih2 	
		UNION ALL 
		select SUM(BORC) Tutar,0,0,'Diğer Kasa Hareketleri','D_'+BAACIKLA,'' from KASA k where BAACIKLA IN ('KK.Tahsilat','Tahsilat') 
		and not exists (select 1 from STOKHARDETBAG db where db.IslemNo = k.ISLEMNO)
		and TARIH >= @Tarih1 and TARIH <= @Tarih2 	
		group by BAACIKLA
		UNION ALL 
		select SUM(BORC) Tutar,0,0,'Faturalı Kasa Hareketleri','F_'+BAACIKLA,'' from KASA k where BAACIKLA IN ('KK.Tahsilat','Tahsilat') 
		and exists (select 1 from STOKHARDETBAG db where db.IslemNo = k.ISLEMNO)
		and TARIH >= @Tarih1 and TARIH <= @Tarih2 	
		group by BAACIKLA
		UNION ALL
		SELECT SUM(dbo.ACARI.ALACAK) AS TUTAR,0,0,BAACIKLA,BAACIKLA,'' FROM dbo.ACARI 
		WHERE BAACIKLA = 'Çek Girişi' and  TARIH >= @Tarih1 and TARIH <= @Tarih2 	
		group by BAACIKLA
		UNION ALL
		SELECT SUM(dbo.ACARI.ALACAK) AS TUTAR,0,0,BAACIKLA,BAACIKLA,'' FROM dbo.ACARI 
		WHERE BAACIKLA = 'Senet Girişi' and  TARIH >= @Tarih1 and TARIH <= @Tarih2 	
		group by BAACIKLA
		UNION ALL
		SELECT SUM(dbo.ACARI.ALACAK) AS TUTAR,0,0,BAACIKLA,BAACIKLA,'' FROM dbo.ACARI 
		WHERE BAACIKLA = 'Ödeme' and  TARIH >= @Tarih1 and TARIH <= @Tarih2 	
		group by BAACIKLA
		UNION ALL
	    SELECT SUM((sh.SonTutar + ISNULL(sh.SatMasrafTutari,0)) - (sh.Miktar * sf.StokKartiFiyat1)) AS TUTAR,0,0,db.IslemTuru,'Kar_'+ac.BAACIKLA,NakitVisa FROM STOKHAR sh
        INNER JOIN ACARI ac ON ac.ISLEMNO = sh.IslemNo 
		INNER JOIN STOKHARDETBAG db ON ac.ISLEMNO = db.IslemNo 
		INNER JOIN KASA k ON k.ISLEMNO = db.IslemNo
        INNER JOIN StokFiyatlari sf on sf.StokNo = sh.StokNo
		WHERE  (db.IslemTuru = 'Prk.Satış') and ac.BAACIKLA IN ('KK.Tahsilat','Tahsilat')
		  AND  db.FaturaTarihi >= @Tarih1 and db.FaturaTarihi <= @Tarih2
		GROUP BY db.IslemTuru,ac.BAACIKLA,NakitVisa		
		UNION ALL
		select SUM((sh.SonTutar + ISNULL(sh.SatMasrafTutari,0)) - (sh.Miktar * sf.StokKartiFiyat1)) AS TUTAR,0,0,'Prk.Satış','Kar_Veresiye','' from STOKHARDETBAG db 
		 INNER JOIN STOKHAR sh on sh.IslemNo = db.IslemNo 
         INNER JOIN StokFiyatlari sf on sf.StokNo = sh.StokNo
		 where db.FisTuru='F' and db.IslemTuru = 'Prk.Satış' and db.FaturaTarihi >= @Tarih1 and db.FaturaTarihi <= @Tarih2 		
		 and not exists( Select 1 from KASA K where K.ISLEMNO = db.IslemNo)	
		UNION ALL
		select SUM((sh.SonTutar + ISNULL(sh.SatMasrafTutari,0)) - (sh.Miktar * sf.StokKartiFiyat1)) AS TUTAR,0,0,'Prk.Satış','Kar_Toplam','' from STOKHARDETBAG db 
		 INNER JOIN STOKHAR sh on sh.IslemNo = db.IslemNo 
         INNER JOIN StokFiyatlari sf on sf.StokNo = sh.StokNo
		 where db.FisTuru='F' and db.IslemTuru = 'Prk.Satış' and db.FaturaTarihi >= @Tarih1 and db.FaturaTarihi <= @Tarih2 				 	  
    END;
END
