Netsis Stok Yaşlandırma Raporu

ERP / CRM GENEL

ÖMER ÇARNAÇAR

18.10.2018

0 Yorum


 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

Başlık Değer