Tip: STORED PROCEDURE · Şema: Sistem · Modül: MOD-SISTEM · Temizlik sınıfı: MANUAL_REVIEW (kategori D, güven 80) · Kapsam: ERPGOLD_CORE / ALL
BASE künyesi ve kullanım haritası (v1.5 · 13.09.2026)
| BASE Durumu | BASE dışı — BASE Status: CANDIDATE_CANONICAL (Runtime Certification tamamlanmadı) |
| BASE Sınıfı | UNKNOWN (BASE MASTER) · Wiki önerisi: UNKNOWN — F-DYNAMIC_SQL · Action: MANUAL_REVIEW · Güven: LOW |
| Runtime Certification | N/A — BASE üyesi değil |
| Kodda Kullanılıyor mu? | HAYIR — doğrudan/dolaylı kod referansı bulunamadı |
| Kod Referans Sayısı | BASE taraması: 0 (uygulama kodunda string literal referansı yok) · Kullanım Haritası kanıtı: 0 kayıt |
| Kullanan Ekranlar | — |
| Kullanan Class/Method | — |
| Incoming Dependency (bunu kullanan nesneler) | — |
| Outgoing Dependency (bunun kullandığı nesneler) | Cari.AccountLog, Cari.BakiyeIslem, Cari.History, Cari.IslemDetaylari, Cari.Islemler, Cari.Transferler, Sistem.GetKurListesi, Sistem.Login, Stok.GetMadenStoklari, Stok.GetNakitStoklari … (+1) |
| Trigger İlişkisi | yok |
| Ticket Problem Aileleri | PF-034, PF-036 |
| Bilinen Hatalar | ERR-OBS-036, ERR-OBS-251, ERR-SIL-065 (Hata Bilgi Bankası; Gözlemlendi durumu kayıtta) |
| Bilinen SQL Riskleri | SQLR-065 |
| Health Check Kuralı | INV-05, INV-16, INV-24, INV-29 |
| Müşteri Özel mi? | HAYIR |
| Opsiyonel Modül mü? | HAYIR |
| Legacy mi? | HAYIR |
| Son Doğrulama Tarihi | 13.09.2026 — statik analiz (katalog 2026-09-10 + kaynak kod taraması). Çalışma zamanı doğrulaması: PENDING |
Kullanım haritası
| Kullanım Haritası kategorisi | F — MANUAL REVIEW · F-DYNAMIC_SQL · güven 20 |
| Gerekçe | Adı dinamik SQL kullanan modül(ler)de geçiyor: dbo.sp_DevirIslemiYap, Sistem.FromERP |
| Dinamik SQL eşleşmesi | dbo.sp_DevirIslemiYap, Sistem.FromERP |
| Uzlaştırma | 10_Manual_Review — Her iki yöntem de karar veremedi: Adı dinamik SQL kullanan modül(ler)de geçiyor: dbo.sp_DevirIslemiYap, Sistem.FromERP |
Bkz. ERPGOLD BASE · Uzlaştırma · Database Usage Map · Kullanım Haritası Manual · Hata Bilgi Bankası. BASE Status: CANDIDATE_CANONICAL · Runtime Certification: PENDING · Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.
Temizlik kanıtı
| Kontrol | Sonuç |
|---|---|
| app | WEAK |
| 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: Kaynak kodda yalnızca zayıf ad eşleşmesi var (sınıf/özellik adı olabilir); ikinci turda incelendi
KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)
Tür: PROCEDURE (P) · Modül: MOD-SISTEM · Uzunluk: 80 satır
Özet
Dönem devri prosedürü — verilen tarihten önceki işlem/geçmiş/transferleri arşivler (siler), bakiye ve stok defterlerini devir (açılış) satırlarıyla yeniden kurar. Tetikleyiciler süreç boyunca kapatılır.
Parametreler
| # | Parametre | Tip | Çıktı |
|---|---|---|---|
| 1 | @Tarih | date |
Bağımlılıklar (bu nesne → hedef)
| İlişki | Hedef | Tip |
|---|---|---|
| WRITES | Cari.AccountLog | TABLE |
| WRITES | Cari.BakiyeIslem | TABLE |
| WRITES | Cari.History | TABLE |
| WRITES | Cari.IslemDetaylari | TABLE |
| WRITES | Cari.Islemler | TABLE |
| WRITES | Cari.Transferler | TABLE |
| CALLS | Sistem.GetKurListesi | FUNCTION |
| WRITES | Sistem.Login | TABLE |
| CALLS | Stok.GetMadenStoklari | FUNCTION |
| CALLS | Stok.GetNakitStoklari | FUNCTION |
| WRITES | Stok.StokHaraketleri | TABLE |
İlgili iş kuralları
- Cari.Islemler triggerlarını DISABLE eder, stok ve bakiye defterlerini devir satırlarıyla (IslemId=-1) yeniden oluşturup TRUNCATE+INSERT eder, eski işlemleri siler, triggerları ENABLE eder (Sistem.Devir.md)
- Login ve AccountLog TRUNCATE edilir (Sistem.Devir.md)
SQL tanımı (AS-IMPLEMENTED, örnek DB)
Create Proc Sistem.Devir(@Tarih Date)
as
print 'Triggerlar Disable Ediliyor.'
Alter Table Cari.Islemler DISABLE TRIGGER ALL
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Print 'Stok Haraketleri Arsivleniyor.....'
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IF OBJECT_ID(N'tempdb..#TBLStokHaraketleri') IS NULL
BEGIN
CREATE TABLE [#TBLStokHaraketleri](IslemId int,Bolum int,IslemTuru int,Tarih Date,SubeId int,KasaId int,StokTipi int,StokId int,Adet int,Miktar Decimal(18,2),Milyem Decimal(18,5),Has Decimal(18,2),Maliyet Decimal(18,2),VaryantId int)
END
ELSE
BEGIN
TRUNCATE TABLE #TBLStokHaraketleri
END
INSERT INTO #TBLStokHaraketleri
Select * from
(
Select -1 as IslemId,0 as Bolum,Case When Miktar>0 Then 0 Else 1 End as IslemTuru,dateadd(day,-1,@Tarih) as Tarih,SubeId,KasaId,2 as StokTipi,StokId,0 as Adet,Miktar,0 as Milyem,0 as Has,0 as MAliyet,0 as VaryantId from Stok.GetNakitStoklari (0,0,dateadd(day,-1,@Tarih))
UNION ALL
Select IslemId,Bolum,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet,VaryantId from stok.StokHaraketleri Where Tarih >=@Tarih And StokTipi =2
UNION ALL
Select -1 as IslemId,0 as Bolum,Case When Miktar>0 Then 0 Else 1 End as IslemTuru,dateadd(day,-1,@Tarih) as Tarih,SubeId,KasaId,1 as StokTipi,M.Id as StokId,0 as Adet,Miktar,0 as Milyem,0 as Has,convert( decimal(18,2), Maliyet * K.Alis) as Maliyet,0 as VaryantId from Stok.GetMadenStoklari (0,0,dateadd(day,-1,@Tarih),0) M Left Join Sistem.GetKurListesi (getdate()) K on K.Birim =M.Birim
UNION ALL
Select IslemId,Bolum,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet,VaryantId from stok.StokHaraketleri Where Tarih >=@Tarih And StokTipi =1
) X
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Print 'Bakiye Haraketleri Arsivleniyor.....'
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IF OBJECT_ID(N'tempdb..#TBLDevirBakiye') IS NULL
BEGIN
CREATE TABLE #TBLDevirBakiye(IslemID int,Tarih Date,HesapType int,HesapId int,KasaId int,BirimId int,Bakiye decimal(18,2),RefNo nvarchar(36)) ON [PRIMARY]
END
ELSE
BEGIN
TRUNCATE TABLE #TBLDevirBakiye
END
INSERT INTO #TBLDevirBakiye
Select * from
(
Select -1 as IslemId,DATEADD (day, -1,@Tarih) as Tarih,0 as HesapType,HesapId ,KasaId,BirimId ,Sum(Bakiye) as Bakiye,NEWID() as RefNo from Cari.BakiyeIslem Where Tarih <@Tarih
group by HesapId,KasaId ,BirimId Having SUM(Bakiye)<>0
UNION ALL
Select IslemId,Tarih,0 as HesapType,HesapId ,KasaId,BirimId ,Bakiye as Bakiye,RefNo from Cari.BakiyeIslem Where Tarih >=@Tarih
) X Order by IslemId
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
print 'Stok Haraketleri Ve Bakiyeler Yeniden Hesaplanıyor.'
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
truncate Table Cari.BakiyeIslem
truncate Table Stok.StokHaraketleri
Insert Into Cari.BakiyeIslem Select * from #TBLDevirBakiye
Insert Into Stok.StokHaraketleri Select * from #TBLStokHaraketleri
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
print 'İşlemler Arşivleniyor.....'
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Delete From Cari.Islemler Where convert(date, IsNull(Tarih,InsertDate ))<@Tarih
Delete From Cari.History Where convert(date, IsNull(Tarih,InsertDate ))<@Tarih
Delete From Cari.Transferler Where convert(date, IsNull(Tarih,InsertDate ))<@Tarih
Delete From Cari.IslemDetaylari Where IslemId not in (Select Id From Cari.Islemler)
truncate Table Sistem.Login
truncate Table Cari.AccountLog
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
print 'Triggerlar Enable Ediliyor.'
Alter Table Cari.Islemler ENABLE TRIGGER ALL
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).
