Merhabalar ;
Stok devir hızı hesaplama işlemlerine göre sonuç alabileceginiz rapor için devam ediniz.
PROBLEM
Stoklarımızın depolama maliyetleri iş yönetim kategorisinde en sıkıntılı süreçlerden biridir..
Basit bir örnek ile anlatalım..Belirli aralıklar ile sizden ÇAY talepi yapılmakta sizde bunu depoda stoklama işlemlerini gerçekleştirmek desiniz..01.01.2018 elinizde bulunan 5 adet çay belirli aralıklar ile isteniyor.Diğer bir stogunuz ise ADA çayı bundaki talep diğer stoğa göre daha az şimdi öncelikle ürünün temini aşamasında zorluğuna bakalım.Bugün 10 ADET çay temin etmek maximun 2 gün iken neden ben ÇAY stoklamam gerekiyor.
01.01.2018 5 adet çay Devir
Aylık tüketim 1 paket maximun öngürüme göre 5 ay stogum mevcut ama bana stoklama alanı oluşturduğu için sıkıntı neden ben 4 ay 4 paket çayı tutayım.?
Şimdi STOK DEVİR HIZIMIZI ölçmemiz gerekiyor.
ÇÖZÜM
Stok Devir Hızı Formül
Oranı bulma
(İlk Stok + Son Stok)/2 = Stok Devir Hızı Oranı
Günü bulma
Gün Sayısı / Stok Devir Hızı Oranı
Formüller gayet açık
Güzel bir rapor ile Stok devir hızımızı ölçmek
RAPOR
Önce Fonksiyonlar sonrasında Prosedürü ekliyoruz.Sonrasında Analiz aşamasında gerekli aksiyonları almamız gerekiyor.
CREATE PROCEDURE SP_STOK_DEVIR_HIZI
AS
BEGIN
SELECT HAR.STOK_KODU,dbo.FN_STOK_ADI(HAR.STOK_KODU) AS STOK_ADI,DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’A’) AS ‘DEVIR’,
DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’J’) AS ‘GIREN_MIKTAR’,
DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’C’) AS ‘CIKIS_MIKTAR’,
DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’CC’) AS ‘BAKIYE’,
NULLIF( DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’DATE’),0) AS ‘TARIH_FARKI’,
ISNULL( CONVERT(INT, ( NULLIF( DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’DATE’),0) / NULLIF(DBO.FN_DEVIR_STOK(HAR.STOK_KODU,’CC’),0))),0) AS ‘STOK_DEVIR_HIZI’
FROM TBLSTHAR AS HAR
GROUP BY HAR.STOK_KODU
END
CREATE FUNCTION FN_STOK_ADI
(
@STOK_KODU NVARCHAR(50)
)
RETURNS NVARCHAR(50)
AS
BEGIN
DECLARE @SONUC NVARCHAR(50)
SELECT @SONUC = dbo.TRK(STOK_ADI) FROM TBLSTSABIT WHERE STOK_KODU = @STOK_KODU
RETURN @SONUC
END
ALTER FUNCTION FN_DEVIR_STOK
(
@STOK_KODU NVARCHAR(50),@TUR NVARCHAR(5)
)
RETURNS FLOAT
AS
BEGIN
DECLARE @SONUC FLOAT
IF @TUR = ‘A’ BEGIN /*DEVİR */
SELECT @SONUC = ISNULL(SUM(STHAR_GCMIK),0) FROM TBLSTHAR WHERE STOK_KODU = @STOK_KODU AND STHAR_HTUR = @TUR AND STHAR_GCKOD = ‘G’
END
IF @TUR IN (‘J’,’B’)BEGIN /*FATURA GELEN */
SELECT @SONUC = ISNULL(SUM(STHAR_GCMIK),0) FROM TBLSTHAR WHERE STOK_KODU = @STOK_KODU AND STHAR_HTUR IN (‘J’,’B’) AND
STHAR_GCKOD = ‘G’ AND STHAR_HTUR IN (‘J’,’B’)
END
IF @TUR IN (‘C’)BEGIN /*CIKIS GELEN */
SELECT @SONUC = ISNULL(SUM(STHAR_GCMIK),0) FROM TBLSTHAR WHERE STOK_KODU = @STOK_KODU AND
STHAR_GCKOD = @TUR
END
IF @TUR = (‘CC’)BEGIN /*CIKIS GELEN */
SELECT @SONUC = ISNULL(SUM(TOP_GIRIS_MIK – TOP_CIKIS_MIK),0) FROM TBLSTOKPH WHERE STOK_KODU =@STOK_KODU AND DEPO_KODU =0
END
IF @TUR = (‘DATE’)BEGIN /*GUNSAYISI */
DECLARE @ZAMAN INT;
DECLARE @BAS_TARIH DATETIME;
DECLARE @BIT_TARIH DATETIME;
SELECT @BAS_TARIH = MIN(STHAR_TARIH) FROM TBLSTHAR WHERE STOK_KODU = @STOK_KODU
SELECT @BIT_TARIH = MAX(STHAR_TARIH) FROM TBLSTHAR WHERE STOK_KODU = @STOK_KODU
IF @BAS_TARIH = @BIT_TARIH BEGIN
SET @BIT_TARIH = GETDATE()
END
SELECT @ZAMAN = DATEDIFF(DAY,@BAS_TARIH,@BIT_TARIH) FROM TBLSTHAR WHERE STOK_KODU = @STOK_KODU
SET @SONUC= CONVERT(FLOAT,@ZAMAN)
END
RETURN @SONUC
END