Netsis Stok devir Hızı Raporu

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

3 Yorum

  1. elifv demiş ki:

    kodlar çok karışık geldi yardımcı olur musunuz aynısını northwind için yapmak istiyorum

    Aralık 23, 2018
    Yanıtla
    • omer.carnacar demiş ki:

      Merhaba

      Farklı db için uygun formata getirmeniz gerekiyor.northwind tablo yapısına hakim olmanız gerekiyor.

      Ocak 8, 2019
      Yanıtla
  2. HUZEYFE YAMAN demiş ki:

    LOGO DB için ne yapmak gerek?

    Nasıl uyarlama yapabiliriz?

    Şubat 3, 2020
    Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir