create or alter procedure sp_GunlukDurumRaporu(@Tarih1 datetime,@Tarih2 datetime,@Tip nvarchar(1))
AS
BEGIN
    DECLARE @SQL nvarchar(max);
	DECLARE @Fiyat nvarchar(30);
	select @Fiyat = Deger from  Parametre where Param = 'Günlük Kar Raporu Kullanılacak Fiyat';

	IF (@Fiyat = '') OR (@Fiyat IS NULL)
	BEGIN
		SET @Fiyat = 'StokKartiFiyat1';
	END;

	IF @Tip = 'T' 
	BEGIN
	SET @SQL=' select   IslemTuru,      
					   sum(Miktar*BirimFiyat*(100+Kdv)/100) IskontosuzTutar, 
					   sum(SonTutar-(Miktar*BirimFiyat*(100+Kdv)/100)) IskTop,
					   sum(Miktar*BirimFiyat*(100+Kdv)/100) + sum(SonTutar-(Miktar*BirimFiyat*(100+Kdv)/100)) Tutar, 
					   SUM((sh.SonTutar + ISNULL(sh.SatMasrafTutari,0)) - (sh.Miktar * sf.'+@Fiyat+')) AS Karlilik,
					   ''Fatura'' BAAcikla,'' NakitVisa
						from STOKHAR  sh
				LEFT JOIN StokFiyatlari sf on sf.StokNo = sh.StokNo
				where FisTuru=''F'' and IslemTuru in (''Satış'' ,''Alış'' ,''Alış İade'' ,''Satış İade'',''Prk.Satış'') 
				AND  not exists( Select 1 from KASA K where K.ISLEMNO = db.IslemNo)	
				AND  sh.FaturaTarihi >= ''@Tarih1'' and sh.FaturaTarihi <= ''@Tarih2''
				group by IslemTuru
				UNION ALL	
				SELECT IslemTuru,      
						sum(Miktar*BirimFiyat*(100+Kdv)/100) IskontosuzTutar, 
						sum(SonTutar-(Miktar*BirimFiyat*(100+Kdv)/100)) IskTop,
						sum(Miktar*BirimFiyat*(100+Kdv)/100) + sum(SonTutar-(Miktar*BirimFiyat*(100+Kdv)/100)) Tutar, 
						SUM((sh.SonTutar + ISNULL(sh.SatMasrafTutari,0)) - (sh.Miktar * sf.'+@Fiyat+')) AS Karlilik,
						k.BAACIKLA,NakitVisa
				from STOKHAR sh 
				INNER JOIN KASA k ON k.ISLEMNO = sh.IslemNo
				LEFT JOIN StokFiyatlari sf on sf.StokNo = sh.StokNo
				WHERE  FisTuru=''F'' AND (sh.IslemTuru = ''Prk.Satış'') AND k.BAACIKLA IN (''KK.Tahsilat'',''Tahsilat'')
				 AND  db.FaturaTarihi >= ''@Tarih1'' and db.FaturaTarihi <= ''@Tarih2''
				GROUP BY sh.IslemTuru,k.BAACIKLA,NakitVisa 
				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 in(''Çek Girişi'',''Senet Girişi'') and  TARIH >= ''@Tarih1'' and TARIH <= ''@Tarih2'' 	
				group by BAACIKLA				
				SELECT SUM(dbo.ACARI.BORC) AS TUTAR,0,0,BAACIKLA,BAACIKLA,'''' FROM dbo.ACARI 
				WHERE BAACIKLA = ''Ödeme'' and  TARIH >= ''@Tarih1'' and TARIH <= ''@Tarih2'' 	
				group by BAACIKLA'; 
    END;

	SET @sql =  REPLACE(@Sql,'@Tarih1',@Tarih1)
	SET @sql =  REPLACE(@Sql,'@Tarih2',@Tarih2)		
	EXEC sp_executesql  @sql;
END;
