Tip: TRIGGER · Şema: Cari · Modül: MOD-CARI · Temizlik sınıfı: INDIRECTLY_USED (kategori C, güven 0) · Kapsam: ERPGOLD_CORE / ALL
BASE künyesi ve kullanım haritası (v1.5 · 13.09.2026)
| BASE Durumu | BASE'e dahil — BASE Status: CANDIDATE_CANONICAL |
| BASE Sınıfı | BASE-DEPENDENCY (BASE MASTER) · Wiki önerisi: BASE-DEPENDENCY · Action: INCLUDE_IN_BASE · Güven: HIGH |
| Runtime Certification | PENDING — BASE ile açılış/işlem testi yapılmadı; otomatik PASS yazılmadı |
| Kodda Kullanılıyor mu? | DOLAYLI — yalnız bağımlılık zinciriyle |
| 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) | Cari.Hesaplar |
| Outgoing Dependency (bunun kullandığı nesneler) | Cari.Hesaplar, Sistem.UserDetails |
| Trigger İlişkisi | Tetikleyici → bağlı tablo: Cari.Hesaplar |
| Ticket Problem Aileleri | PF-013, PF-067 |
| Bilinen Hatalar | ERR-POT-130, ERR-POT-136 (Hata Bilgi Bankası; Gözlemlendi durumu kayıtta) |
| Bilinen SQL Riskleri | SQLR-068, SQLR-075 |
| Health Check Kuralı | TRG-03 |
| 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 | B — INDIRECT DEPENDENCY · B-TRIGGER · güven 95 |
| Derinlik / kök | 1 · Cari.Hesaplar |
| DependencyPath | ERPGOLD → Cari.Hesap → Cari.Hesaplar → Cari.HesapUpdate |
Bkz. ERPGOLD BASE · Uzlaştırma · Database Usage Map · Kullanım Haritası Core · 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 | NO |
| report | NO |
| config | NO |
| dynamic | NO |
| db_in | YES |
| db_out | YES |
| trigger | YES |
| fk | NO |
| computed | NO |
| crossdb | NO |
| runtime | UNKNOWN |
| external | NO |
Gerekçe: Cari.Hesaplar → Cari.HesapUpdate (trigger (tablo→tetikleyici))
KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)
Tür: TRIGGER (TR) · Modül: MOD-CARI · Uzunluk: 42 satır
Tablo: Cari.Hesaplar · Olay: UPDATE
Özet
Cari.Hesaplar'a UPDATE sonrası çalışır; VergiNo tekilliğini ve aktif/pasif değiştirme yetkisini denetler.
Bağımlılıklar (bu nesne → hedef)
| İlişki | Hedef | Tip |
|---|---|---|
| READS | Cari.Hesaplar | TABLE |
| READS | Sistem.UserDetails | TABLE |
Ürettiği hata mesajları
- "Aynı Vergi No ya sahip başka bir hesap mevcuttur!!"
- "Yetkiniz yoktur!"
İlgili iş kuralları
- Aynı şubede VergiNo çakışması -> 'Aynı Vergi No ya sahip başka bir hesap mevcuttur!!' ROLLBACK (Cari.HesapUpdate.md)
- LastDate dışı güncellemede kullanıcının GroupId'si 4 veya 6 değilse 'Yetkiniz yoktur!' ROLLBACK (Cari.HesapUpdate.md)
SQL tanımı (AS-IMPLEMENTED, örnek DB)
CREATE TRIGGER [Cari].[HesapUpdate] ON [Cari].[Hesaplar]
FOR UPDATE
AS
IF EXISTS(
SELECT TOP 1 * FROM Cari.Hesaplar WHERE
VergiNo IN (select VergiNo from inserted) AND Id <> (select Id from deleted) and IsDeleted=0 and SubeId = (select SubeId from inserted)
HAVING COUNT(*) > 1)
BEGIN
RAISERROR('Aynı Vergi No ya sahip başka bir hesap mevcuttur!!', 16, 1)
ROLLBACK
END
--Aktif/Pasif değiştirme yetki kontrolü
IF NOT Update(LastDate)
BEGIN
DECLARE @UserID VARCHAR(15)
SET @UserID= (select UserId from inserted)
DECLARE @Message NVARCHAR(max)
IF EXISTS (select * from Sistem.UserDetails where UserId = @UserID and GroupId not in (4,6) and IsDeleted=0)
BEGIN
SET @Message = 'Yetkiniz vardır...'
END
ELSE
BEGIN
SET @Message = 'Yetkiniz yoktur!'
RAISERROR('Yetkiniz yoktur!', 16, 1)
ROLLBACK
END
END
--select * from Sistem.UserDetails where UserId = 11 and GroupId not in (4,6) and IsDeleted=0
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).
