Tip: TRIGGER · Şema: Cari · Modül: MOD-CARI · Temizlik sınıfı: INDIRECTLY_USED (kategori C, güven 0) · Kapsam: ERPGOLD_CORE / ALL
Kullanım haritası (13.09.2026)
| Kategori | B — INDIRECT DEPENDENCY · B-TRIGGER |
| Güven | 95 |
| Derinlik / kök | 1 · Cari.Hesaplar |
| DependencyPath | ERPGOLD → Cari.Hesap → Cari.Hesaplar → Cari.HesapUpdate |
| Bağlı tablo | Cari.Hesaplar |
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 | 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).
