AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Functions › FN-STOK.GETORTMILYEM

Stok.GetOrtMilyem

FUNCTIONMOD-STOKERPGOLD_COREINDIRECTLY_USEDVERY_HIGH[SOURCE_IMPLEMENTED]
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Tip: SCALAR FUNCTION · Şema: Stok · Modül: MOD-STOK · Temizlik sınıfı: INDIRECTLY_USED (kategori B, güven 0) · Kapsam: ERPGOLD_CORE / ALL

Kullanım haritası (13.09.2026)

KategoriB — INDIRECT DEPENDENCY · B-INDIRECT
Güven95
Derinlik / kök1 · Stok.GetMadenStok
DependencyPathERPGOLD → Stok.MadenStokDetay → Stok.GetMadenStok → Stok.GetOrtMilyem

Bkz. Database Usage Map · Core Database Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.

Temizlik kanıtı

Kontrol Sonuç
app NO
report NO
config NO
dynamic NO
db_in YES
db_out YES
trigger NO
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external NO

Gerekçe: Stok.GetMadenStok → Stok.GetOrtMilyem (catalog)

KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)

Tür: FUNCTION (FN) · Modül: MOD-STOK · Uzunluk: 47 satır

Özet

Bir maden kaleminin verilen miktar için 'ortalama' milyemini döner; aslında LIFO çalışır. Maden kartında sabit milyem (MilyemDurumu=False) varsa doğrudan onu döner.

Parametreler

# Parametre Tip Çıktı
1 @SubeId int
2 @KasaId int
3 @StokId int
4 @Tarih date
5 @StokMiktar decimal

Bağımlılıklar (bu nesne → hedef)

İlişki Hedef Tip
CALLS FN.Bol FUNCTION
READS Stok.Maden TABLE
READS Stok.StokHaraketleri TABLE

Bu nesneyi kullananlar

Nesne Tip
Stok.GetMadenStok FUNCTION
Stok.GetMadenStoklari FUNCTION

İlgili iş kuralları

  • Stok.Maden.MilyemDurumu=False ve Milyem<>0 ise sabit milyemi döner (Stok.GetOrtMilyem.md)
  • Aksi halde giriş hareketlerini IslemId DESC gezip eldeki miktarın has'ını toplar, has/miktar döner (LIFO) (Stok.GetOrtMilyem.md; kitapcik 2.6)

SQL tanımı (AS-IMPLEMENTED, örnek DB)

CREATE Function Stok.GetOrtMilyem (@SubeId int,@KasaId int,@StokId int,@Tarih date,@StokMiktar Decimal(18,2))
returnS Decimal(18,4)
as
BEGIN
Declare @IscTur int=0

Declare @Miktar Decimal(18,2)=0
Declare @Has Decimal(18,2)=0
Declare @ToplamMiktar Decimal(18,2)=0
Declare @ToplamHas Decimal(18,2)=0
Declare @IsExit as int =0
Declare @Milyem as decimal(18,4)


Select @Milyem=Milyem From Stok.Maden Where Id=@StokId And MilyemDurumu='False'

if  @Milyem<>0 
BEGIN
RETURN @Milyem
END


DECLARE CRS_OrtMilyem CURSOR FOR 
Select  Miktar ,Has  FRom Stok.StokHaraketleri Where (Tarih<=@Tarih or @Tarih is null) and (SubeId=@SubeId or @SubeId =0) And (KasaId =@KasaId Or @KasaId =0) And  StokId=@StokId and StokTipi =1 And IslemTuru =0 Order By IslemId Desc
OPEN CRS_OrtMilyem
        FETCH NEXT FROM CRS_OrtMilyem INTO  @Miktar,@Has
        WHILE @@FETCH_STATUS =0 and @IsExit =0
            BEGIN

            if (@ToplamMiktar + @Miktar)<=@StokMiktar 
            BEGIN
                set @ToplamMiktar +=@Miktar
                Set @ToplamHas +=@Has 
            END
            ELSE
            BEGIN
                Set @ToplamHas +=FN.Bol (@Has ,@Miktar) * (@StokMiktar - @ToplamMiktar) 
                Set @ToplamMiktar = @StokMiktar 
                SET @IsExit =1
            END
            FETCH NEXT FROM CRS_OrtMilyem INTO  @Miktar,@Has
        END
CLOSE CRS_OrtMilyem
DEALLOCATE CRS_OrtMilyem
RETURN Fn.Bol(@ToplamHas,@ToplamMiktar)
END

Kaynaklar

  • SRC-DB-MODULES — sys.sql_modules tanımı (salt okunur); gizli sabitler [REDACTED_SECRET] ile değiştirildi.

Bilinmeyenler

  • Hangi sürümde eklendiği: created DB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).