📄 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.