CREATE FUNCTION dbo.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
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',
COUNT(*) AS HAREKETSAYISI,
DATEDIFF(DAY ,'01.01.2018',GETDATE()) AS TARIHARALIGI,
DATEDIFF(DAY ,'01.01.2018',GETDATE())/ COUNT(*) AS DEVIRHIZI,
CONVERT(DECIMAL(38,2), SUM(STHAR_GCMIK) )AS TOLAMCIKIS,
CONVERT(DECIMAL(38,2), SUM(STHAR_GCMIK) / COUNT(*) )AS ORTALAMAHIZMIKTARI
FROM TBLSTHAR AS HAR
WHERE LEFT(HAR.STOK_KODU,3) IN ('150','157')
GROUP BY HAR.STOK_KODU
END