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)
| Kategori | B — INDIRECT DEPENDENCY · B-INDIRECT |
| Güven | 95 |
| Derinlik / kök | 1 · Stok.GetMadenStok |
| DependencyPath | ERPGOLD → 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_modulestanımı (salt okunur); gizli sabitler[REDACTED_SECRET]ile değiştirildi.
Bilinmeyenler
- Hangi sürümde eklendiği:
createdDB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).
