Mikro programlarında, stoğun son son giriş ve ortalama giriş fiyat bilgilerini bulabilmek için aşağıdaki fonksiyon kullanılabilir. Ana döviz cinsi üzerinden istenirse tarih referansı da kullanılarak son giriş ya da ortalama giriş fiyatına ulaşılabilir. Stok F10 ekranı yada stok bilgisinin olduğu herhangi bir görüntü yada rapor ekranına son giriş fiyatı, ortalama giriş fiyatı bilgileri eklenebilir.

CREATE FUNCTION dbo.fn_Zukod_Stok_Son_Giris_Fiyati
(
       @StokKodu NVARCHAR (25),
       @RefTarih DATETIME,
       @RetType TINYINT /*0:Son giriş fiyatı, 1: Ortalama giriş fiyatı*/
)
RETURNS FLOAT
AS
BEGIN
DECLARE @Deger FLOAT,
             @Miktar FLOAT,
             @RetVAL FLOAT=0.0

IF @RetType=0
BEGIN
SELECT TOP 1 @Deger=STH_NET_DEGER_ANA,@Miktar=sth_miktar
FROM STOK_HAREKETLERI_VIEW_WITH_INDEX_02 WITH (NOLOCK)
WHERE sth_evraktip IN (3,13) AND
             sth_cins NOT IN (9,15) AND
             sth_normal_iade=0 AND
             sth_stok_kod=@StokKodu AND
             (@RefTarih IS NULL OR sth_tarih<=@RefTarih) AND
             sth_miktar>0
ORDER BY sth_tarih DESC
END
ELSE
BEGIN
SELECT @Deger=SUM(STH_NET_DEGER_ANA),@Miktar=SUM(sth_miktar)
FROM STOK_HAREKETLERI_VIEW_WITH_INDEX_02 WITH (NOLOCK)
WHERE sth_evraktip IN (3,13) AND
             sth_cins NOT IN (9,15) AND
             sth_normal_iade=0 AND
             sth_stok_kod=@StokKodu AND
             (@RefTarih IS NULL OR sth_tarih<=@RefTarih) AND
             sth_miktar>0
END

IF @Deger IS NULL SET @Deger=0.0
IF @Miktar IS NULL SET @Miktar=0.0

IF @Miktar>0 SET @RetVAL=@Deger/@Miktar

RETURN @RetVAL
END

 

Örnek kullanım ;

SELECT TOP 100 PERCENT
	sto_kod AS [msg_S_0078] /* KODU */,
	sto_isim AS [msg_S_0870] /* ADI */,
	ISNULL(sfiyat_fiyati,0) AS [msg_S_0006] /* FİYAT */,
	KUR_ISMI AS [msg_S_1173] /* DVZ */,
	dbo.fn_Zukod_Stok_Son_Giris_Fiyati(sto_kod,NULL,0) AS [SON GİRİŞ FİYATI],
	dbo.fn_Zukod_Stok_Son_Giris_Fiyati(sto_kod,NULL,1) AS [ORTALAMA GİRİŞ FİYATI]
FROM dbo.STOKLAR WITH (NOLOCK)
LEFT OUTER JOIN dbo.STOK_SATIS_FIYATLARI_F1_D0_VIEW on sfiyat_stokkod = sto_kod AND sfiyat_satirno = 1
LEFT OUTER JOIN dbo.KUR_ISIMLERI_VIEW on KUR_NUMARASI =  ISNULL(sfiyat_doviz,0)
ORDER BY sto_kod

 

Share This