----select * from CariFiyatlari --exec sp_FiyatGetir 'PerakendeFiyati' ,'33','831','', '' --exec sp_FiyatGetir 'PerakendeFiyati' ,'33','940','', '' --SELECT Kodu,F1FiyatH,F2FiyatH,F3FiyatH,F4FiyatH,F5FiyatH,F6FiyatH,F6FiyatH,F7FiyatH,F8FiyatH,SatisKdv FROM StokFiyat WHERE Kodu IN ('940','831') CREATE proc sp_FiyatGetir @IslemTuru varchar(50), --'AlisFiyati' , 'AlisIadeFiyati' , 'PerakendeFiyati' @CariKodu varchar(20), @StokKodu varchar(30), @Tarih varchar(8), @IslemNo int as Declare @KDVHaricFiyat float; Declare @Iskonto1 float; Declare @Iskonto2 float; Declare @Iskonto3 float; Declare @Iskonto4 float; Declare @AlismiSatismi varchar(9); begin Declare @AlisFiyatiAlan varchar(10); Declare @SatisFiyatiAlan varchar(10); Declare @PerakendeFiyatiAlan varchar(10); Declare @KDV float; Declare @AlisFiyati float; Declare @SatisFiyati float; Declare @PerakendeFiyati float; Declare @Sql nvarchar(500); Declare @DonemselFiyatUygulansin varchar(2); Declare @CariFiyatGrubuKullanilsin varchar(2); Declare @DovizKodu varchar(20); Declare @DovizKoduAlisAlan varchar(20); Declare @DovizKoduSatisAlan varchar(20); if (@IslemTuru='AlisFiyati' ) select @Iskonto1=AlisIndirimYuzde, @Iskonto2=AlisIndirimYuzde2,@Iskonto3=AlisIndirimYuzde3,@Iskonto4=AlisIndirimYuzde4,@KDV = AlisKdv from STOKKARTI where Kodu=@StokKodu if (@IslemTuru='SatisFiyati' or @IslemTuru='PerakendeFiyati') select @Iskonto1=SatisIndirimYuzde, @Iskonto2=SatisIndirimYuzde2,@Iskonto3=SatisIndirimYuzde3,@Iskonto4=SatisIndirimYuzde4,@KDV = SatisKdv from STOKKARTI where Kodu=@StokKodu if @IslemTuru='AlisFiyati' Set @AlismiSatismi='Alış' if @IslemTuru='SatisFiyati' Set @AlismiSatismi='Satış'; if @IslemTuru='AlisFiyati' or @IslemTuru='SatisFiyati' or @IslemTuru='PerakendeFiyati' begin --0 ise hayır, -1 ise evet select @DonemselFiyatUygulansin=Deger from Parametre where Param ='Kampanya Fiyatları Kullanılsın' select @CariFiyatGrubuKullanilsin=Deger from Parametre where Param ='Faturalarda Cari Fiyat Grubu Uygulansın' declare @KDVDahilFiyat float set @KDVDahilFiyat=@KDVHaricFiyat*(@KDV+100)/100 if (@DonemselFiyatUygulansin='-1') begin select TOP (1) @KDVHaricFiyat = KdvHaricFiyat, @KDVDahilFiyat = KdvDahilFiyat, @Iskonto1=Iskonto1, @Iskonto2=Iskonto2, @Iskonto3=Iskonto3, @Iskonto4=Iskonto4 from Vstk_CariDonemselFiyatlar where CariKodu = @CariKodu and StokKodu = @StokKodu and FiyatTipi = @AlismiSatismi and @Tarih between BaslangicTarihi and BitisTarihi order by SiraNo DESC end; if (@KDVHaricFiyat is null) begin if (@CariFiyatGrubuKullanilsin='-1') begin select @AlisFiyatiAlan = AlisFiyatiH, @SatisFiyatiAlan=SatisFiyatiH, @PerakendeFiyatiAlan=PerakendeFiyati from CariFiyatlari where FiyatGrupAdi = (select ISNULL(FiyatGrupAdi,'F.G.A.YOK') as FiyatGrupAdi from AMUSTERI where MUSKOD = @CariKodu) end; if (@AlisFiyatiAlan is null) begin Set @AlisFiyatiAlan = 'F1FiyatH'; Set @SatisFiyatiAlan = 'F2FiyatH'; Set @PerakendeFiyatiAlan = 'F4FiyatH'; end; Set @DovizKoduAlisAlan = LEFT(@AlisFiyatiAlan,2)+'DovizKodu'; Set @DovizKoduSatisAlan = LEFT(@SatisFiyatiAlan,2)+'DovizKodu'; if (@IslemTuru='PerakendeFiyati') Set @DovizKoduSatisAlan = LEFT(@PerakendeFiyatiAlan,2)+'DovizKodu'; if (@IslemTuru='AlisFiyati' or @IslemTuru='AlisIadeFiyati') Set @Sql='select @KdvHaricFiyat='+ @AlisFiyatiAlan+',@DovizKodu='+@DovizKoduAlisAlan+' from StokFiyat where Kodu='''+@StokKodu+''''; if (@IslemTuru='SatisFiyati' or @IslemTuru='SatisIadeFiyati') Set @Sql='select @KdvHaricFiyat='+ @SatisFiyatiAlan+',@DovizKodu='+@DovizKoduSatisAlan+' from StokFiyat where Kodu='''+@StokKodu+''''; if (@IslemTuru='PerakendeFiyati') Set @Sql='select @KdvHaricFiyat='+ @PerakendeFiyatiAlan+',@DovizKodu='+@DovizKoduSatisAlan+' from StokFiyat where Kodu='''+@StokKodu+''''; execute sp_executesql @Sql,N'@KdvHaricFiyat float Output, @DovizKodu varchar(20) Output ', @KdvHaricFiyat=@KDVHaricFiyat Output, @DovizKodu=@DovizKodu Output; Select @KDVHaricFiyat = @KDVHaricFiyat * (select GunFiyati from DOVIZT where DovizKodu=@DovizKodu) --print 'DovizKodu='+@DovizKodu+' Sql='+@sql end; end; if (@IslemTuru='AlisIadeFiyati') begin select top 1 @KDVHaricFiyat=BirimFiyat, @Iskonto1=Iskonto1, @Iskonto2=Iskonto2,@Iskonto3=Iskonto3,@Iskonto4=Iskonto4, @KDV=Kdv from STOKHAR where CariKodu = @CariKodu and IslemTuru = 'Alış' and StokKodu=@StokKodu order by NoId desc end; if (@IslemTuru='SatisIadeFiyati') begin select top 1 @KDVHaricFiyat=BirimFiyat, @Iskonto1=Iskonto1, @Iskonto2=Iskonto2,@Iskonto3=Iskonto3,@Iskonto4=Iskonto4, @KDV=Kdv from STOKHAR where CariKodu = @CariKodu and IslemTuru = 'Satış' and StokKodu=@StokKodu order by NoId desc end; declare @strIslemNo varchar set @strIslemNo=convert(varchar,@IslemNo) --declare @KDVDahilFiyat float set @KDVDahilFiyat=@KDVHaricFiyat*(@KDV+100)/100 select @KdvHaricFiyat as KDVHaricFiyat,@KDVDahilFiyat as KDVDahilFiyat,@Iskonto1 as Iskonto1,@Iskonto2 as Iskonto2, @Iskonto3 as Iskonto3,@Iskonto4 as Iskonto4,@KDV as KDV , @DonemselFiyatUygulansin AS KampanyaFyt, @CariFiyatGrubuKullanilsin FiyatGrp end