CREATE OR ALTER  PROCEDURE sp_StokFiyat_Fiyat_FiyatH_Kodlu
 @GelenStokKodu nvarchar(30),            
 @FiyatAdi nvarchar(30),            
 @Fiyat decimal(18,8),          
 @DovizKodu nvarchar(3),
 @KdvDHGuncelle bit = 0,
 @KdvDH char(1)
 /*@Iskonto1 float = 0,     
 @Iskonto2 float = 0,     
 @Iskonto3 float = 0,     
 @Iskonto4 float = 0  ,  
 @IskontoGuncelle bit = 0,*/
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;      

 IF @KdvDHGuncelle = 1 
 BEGIN
	SET @Query = 'UPDATE StokFiyat SET  '+@Fyt+'Kdv =  '''+@KdvDH+''' where Kodu = '''+@GelenStokKodu+''''; 
	EXEC sp_executesql @Query;	
 END

 SET @Query = 'UPDATE StokFiyat SET  '+@Fyt+'Fiyat =  '+CAST(@Fiyat as nvarchar(50))+' where Kodu = '''+@GelenStokKodu+'''';   
 EXEC sp_executesql @Query;
 SET @Query = 'UPDATE StokFiyat SET '+@Fyt+'FiyatH = (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;          
 IF @Fyt in ('F1','F2','F3','F4')      
 BEGIN     
  UPDATE sk SET sk.F1Fiyat  = sf.F1Fiyat, sk.F1DovizKodu = sf.F1DovizKodu,  sk.F1Kdv = sf.F1Kdv,    
       sk.F2Fiyat  = sf.F2Fiyat, sk.F2DovizKodu = sf.F2DovizKodu,  sk.F2Kdv = sf.F2Kdv,   
       sk.F3Fiyat  = sf.F3Fiyat, sk.F3DovizKodu = sf.F3DovizKodu,  sk.F3Kdv = sf.F3Kdv,   
       sk.F4Fiyat  = sf.F4Fiyat, sk.F4DovizKodu = sf.F4DovizKodu,  sk.F4Kdv = sf.F4Kdv
       /*sk.AlisIndirimYuzde  =  (CASE WHEN @IskontoGuncelle = 1 THEN @Iskonto1 ELSE sk.AlisIndirimYuzde END),    
       sk.AlisIndirimYuzde2 =  (CASE WHEN @IskontoGuncelle = 1 THEN @Iskonto2 ELSE sk.AlisIndirimYuzde2 END),    
       sk.AlisIndirimYuzde3 =  (CASE WHEN @IskontoGuncelle = 1 THEN @Iskonto3 ELSE sk.AlisIndirimYuzde3 END),     
       sk.AlisIndirimYuzde4 =  (CASE WHEN @IskontoGuncelle = 1 THEN @Iskonto4 ELSE sk.AlisIndirimYuzde4 END) */   
     FROM  STOKKARTI sk,StokFiyat sf WHERE sk.Kodu = sf.Kodu and sk.Kodu = @GelenStokKodu      
 END; 
END;