CREATE OR ALTER  PROCEDURE [dbo].[spStokFiyatDegistir]      
 @GelenStokKodu nvarchar(30),      
 @FiyatAdi nvarchar(30),      
 @Fiyat float,    
 @DovizKodu nvarchar(3)
as    
begin
	DECLARE @DovizKuru float
	DECLARE @Query nvarchar(max),@Fyt nvarchar(3)
    DECLARE @ResultDovizKodu nvarchar(3)

	IF LEN(@FiyatAdi) = 7
		SET @Fyt = SUBSTRING(@FiyatAdi,1,2)
    ELSE 
		SET @Fyt = SUBSTRING(@FiyatAdi,1,3);

	if @DovizKodu =''
	BEGIN
		SET @Query = 'select @DovizKod = '+@Fyt+'DovizKodu from StokFiyat where Kodu = '''+@GelenStokKodu+''''; 
		EXEC sp_executesql @Query,
						   N'@DovizKod nvarchar(3) OUTPUT',
						    @DovizKod = @ResultDovizKodu OUTPUT ;
	SET @DovizKodu =  @ResultDovizKodu;
	END;

	SET @DovizKuru = (Select GunFiyati from DOVIZT where DovizKodu = @DovizKodu)
	SET @Fiyat = @Fiyat / @DovizKuru;

    SET @Query = 'UPDATE StokFiyat SET '+@Fyt+'Fiyat = (CASE WHEN '+@Fyt+'Kdv = ''H'' THEN '+CAST(@Fiyat as nvarchar(50))+' ELSE ('+CAST(@Fiyat as nvarchar(50))+'*(100+SatisKdv))/100 END), '+@Fyt+'DovizKodu='''+@DovizKodu+''' where Kodu =''' + @GelenStokKodu + '''';
	EXEC sp_executesql @Query;	
	SET @Query = 'UPDATE StokFiyat SET  '+@Fyt+'FiyatH = (CASE WHEN '+@Fyt+'Kdv = ''D'' THEN '+CAST(@Fiyat as nvarchar(50))+' ELSE ('+CAST(@Fiyat as nvarchar(50))+'*(100+SatisKdv))/100 END) where Kodu = '''+@GelenStokKodu+'''';   
	EXEC sp_executesql @Query;	

	IF @Fyt in ('F1','F2','F3','F4')
	BEGIN
		/*SET @Query = 'UPDATE STOKKARTI SET '+@Fyt+'Fiyat = '+CAST(@Fiyat as nvarchar(50))+', '+@Fyt+'DovizKodu='''+@DovizKodu+''' where Kodu =''' + @GelenStokKodu+'''';
		EXEC sp_executesql @Query;	*/
	UPDATE sk SET sk.F1Fiyat	 = sf.F1Fiyat,
	              sk.F1DovizKodu = sf.F1DovizKodu,
				  sk.F2Fiyat	 = sf.F2Fiyat,
	              sk.F2DovizKodu = sf.F2DovizKodu,
				  sk.F3Fiyat	 = sf.F3Fiyat,
	              sk.F3DovizKodu = sf.F3DovizKodu,
				  sk.F4Fiyat	 = sf.F3Fiyat,
	              sk.F4DovizKodu = sf.F3DovizKodu
	         FROM  STOKKARTI sk,StokFiyat sf WHERE sk.Kodu = sf.Kodu and sk.Kodu = @GelenStokKodu
	END;
end;
 

