📄 Tam SQL Kodu (Referans)

Analiz eklerken buradan kod parçalarını kopyalayabilirsiniz

CREATE PROC [dbo].[SP_STR_MALZEME_RAPORU]
(
    @LOGREF INT
)
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @ALIMTARIH DATE;
    DECLARE @SONTARIH DATE;
    DECLARE @ILKALIM  INT;
    DECLARE @BITIS    INT;

    -- 1) Ilgili ürün için son alis tarihi
    SELECT @ALIMTARIH = MAX(DATE_)
    FROM dbo.[STR_ALIM_TARIHLERI]
    WHERE STOCKREF = @LOGREF;

    -- Hiç alis yoksa çik
    IF @ALIMTARIH IS NULL
        RETURN;

    -- 2) Son alisin toplam miktarini al
    SELECT @ILKALIM = SUM(MIKTAR)
    FROM dbo.[STR_ALIM_TARIHLERI]
    WHERE STOCKREF = @LOGREF
      AND DATE_ = @ALIMTARIH;

    -- 3) 30 günlük tükenme kontrolü
    SET @SONTARIH = @ALIMTARIH;
    SET @BITIS = 1;  -- stok var gibi kabul ediyoruz

    WHILE DATEDIFF(DAY, @ALIMTARIH, @SONTARIH) <= 30
          AND @BITIS > 0
    BEGIN
        -- Her gün için depo hareketlerinden eldeki toplam stogu hesapla
        SET @BITIS = ISNULL(
                       (SELECT SUM(ONHAND)
                        FROM dbo.[STR_DEPO_HAREKETLERI]
                        WHERE STOCKREF = @LOGREF
                          AND DATE_ BETWEEN @ALIMTARIH AND @SONTARIH),
                       0
                     );

        -- Bir sonraki güne geç
        SET @SONTARIH = DATEADD(DAY, 1, @SONTARIH);
    END

    -- 4) 30 gün içinde stok 0'a düstüyse kaydi ekle
    IF @BITIS <= 0
    BEGIN
        INSERT INTO [UNIVERSALDB].[dbo].[STR_APLUS_SECIM]
               (ALIMTARIH, SONTARIH, FARK, BITIS, STOCKREF, MIKTAR)
        VALUES
               (@ALIMTARIH,
                @SONTARIH,
                DATEDIFF(DAY, @ALIMTARIH, @SONTARIH),
                @BITIS,
                @LOGREF,
                @ILKALIM);
    END;
END;

➕ Yeni Kod Analizi Ekle

📋 Mevcut Analizler (0)

Henüz kod analizi eklenmemiş.

Yukarıdaki formu kullanarak ilk analizi ekleyin.