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

Stok.GetStokHaraketleri

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

Tip: INLINE TABLE FUNCTION · Şema: Stok · Modül: MOD-STOK · Temizlik sınıfı: UNUSED_HIGH_CONFIDENCE (kategori E, güven 95) · Kapsam: ERPGOLD_CORE / ALL

Kullanım haritası (13.09.2026)

KategoriF — MANUAL REVIEW · F-POSSIBLE_STORED_SQL_TARGET
Güven50
GerekçeSonuç kümesi döndüren TVF/görünüm: menü raporu, popup grid ve dashboard tanımları (AifaDev.Reports.SQL, ReportsFilter.SQL, Design.PopupGrid.SQL, Dashboard.Layout) kurulum bazlı VERİDİR; V2 demoda referans yok ama başka müşteri DB'sinde olabilir. ERPGOLD kodunda, DB içi rapor/tasarım SQL'inde (V2 demo), dinamik SQL kalıplarında, tetikleyici/FK/computed/cross-db bağlarında ve gerekli nesnelerin bağımlılık grafında referans yok

Bkz. Database Usage Map · Manual Review. 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 NO
db_out YES
trigger NO
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external NO

Gerekçe: Hiçbir kaynakta referans bulunamadı

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

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

Özet

Bir stok kartının (nakit) tarih aralığındaki hareket ekstresi — devir, giren, çıkan, kalan miktar ve fatura/cari bilgisiyle yürüyen bakiye döner.

Parametreler

# Parametre Tip Çıktı
1 @StokId int
2 @BasTarih date
3 @SonTarih date

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

İlişki Hedef Tip
READS Cari.Hesaplar TABLE
READS Cari.IslemDetaylari TABLE
READS Cari.Islemler TABLE
READS Sistem.Kasalar TABLE
READS Stok.Maden TABLE
READS Stok.Nakit TABLE
READS Stok.StokHaraketleri TABLE

İlgili iş kuralları

  • CTE ile devir + hareketleri toplar; StokTipi=2 (nakit) odaklıdır; kur ve net tutar hesaplar (Stok.GetStokHaraketleri.md)

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

CREATE Function [Stok].[GetStokHaraketleri] (@StokId int,@BasTarih as Date,@SonTarih as Date)
returns Table
as
return



WITH cteSatis AS
(
    SELECT @BasTarih as Tarih,StokTipi,0 as IslemId,StokId,SUM(Case When H.Miktar>0 Then H.Miktar Else 0 End ) as GirenMiktar,Sum(Case When H.Miktar<0 Then H.Miktar Else 0 End) as CikanMiktar FROM Stok.StokHaraketleri H  Where StokTipi=2 And StokId=@StokId  And Tarih<@BasTarih And Tarih<=@SonTarih GROUP BY StokId ,Tarih ,IslemId ,StokTipi
    UNION ALL
    SELECT Top 100000000 Tarih,StokTipi,IslemId,StokId,SUM(Case When H.Miktar>0 Then H.Miktar Else 0 End ) as GirenMiktar,Sum(Case When H.Miktar<0 Then H.Miktar Else 0 End) as CikanMiktar FROM Stok.StokHaraketleri  H Where StokTipi=2 And StokId=@StokId And Tarih>=@BasTarih And Tarih<=@SonTarih GROUP BY StokId ,Tarih ,IslemId ,StokTipi Order By Tarih  
)


Select Top 100000000 H.Tarih,I.KasaId,K.Kodu as Kasa,
Case When H.StokTipi=1 Then 'MADEN' When H.StokTipi=2 Then 'NAKIT' End as StokCinsi,Case When I.Yon ='-' Then 'Çıkış Faturası' When I.Yon ='+' Then 'Giriş Faturası' end as EvrakTipi,
ISNULL(M.Kodu,N.Kodu) as StokKodu,
Case When Yon ='+' Then 'A' Else 'S' End + CAST( REPLICATE ('0',10-Len(SiraNo)) + CAST(SiraNo as varchar) as varchar)  as RefNo,
D.FaturaSeri + '/' + convert(nvarchar(max), IsNull(D.FaturaNo ,0)) as FaturaNo,
H.OncekiToplam as Devir,
H.GirenMiktar,
abs(H.CikanMiktar ) as CikanMiktar,
H.OncekiToplam + (H.GirenMiktar+ H.CikanMiktar) as KalanMiktar,
Case When StokTipi=2 Then CASE wHEN N.Kodu='USD'  Then UsdKur wHEN N.Kodu='EUR'  Then EurKur When N.Kodu ='TL' Then 1 End end  as Kur,
abs((H.GirenMiktar+ H.CikanMiktar))  *Case When StokTipi=2 Then CASE wHEN N.Kodu='USD'  Then UsdKur wHEN N.Kodu='EUR'  Then EurKur When N.Kodu ='TL' Then 1 End end as NetTutar,
F.HesapAdi as Cariİsmi
from 
(
 SELECT Top 1000000000 A.Tarih,A.StokTipi,A.IslemId , a.StokId , A.GirenMiktar,A.CikanMiktar, ISNULL(SUM(b.GirenMiktar+ B.CikanMiktar),0) OncekiToplam
FROM cteSatis a LEFT JOIN cteSatis b ON (A.Tarih = b.Tarih And A.IslemId >b.IslemId or (A.Tarih >B.Tarih)) And a.StokId =b.StokId  and a.StokTipi =b.StokTipi  
GROUP BY  a.Tarih ,a.StokId,a.GirenMiktar,A.CikanMiktar ,a.IslemId ,A.StokTipi  
) H

Left Join Cari.Islemler I on I.Id=H.IslemId
Left Join Cari.IslemDetaylari D on D.IslemId=I.Id
Left Join Stok.Maden M on H.StokTipi=1 And H.StokId=M.Id
Left Join Stok.Nakit N on H.StokTipi=2 And H.StokId=N.Id
Left Join Cari.Hesaplar F on F.Id =I.HesapId 
Left Join Sistem.Kasalar K on K.Id=I.KasaId
Where I.Tarih>=@BasTarih and I.Tarih<=@SonTarih

Order By  StokCinsi,ISNULL(M.Kodu,N.Kodu) , H.Tarih ,H.IslemId

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