AIFA AKADEMI · Kurumsal Wiki
4.330 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Views › VW-KYC.VHESAPKIMLIK

KYC.vHesapKimlik

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

Tip: VIEW · Şema: KYC · Modül: MOD-KYC · Temizlik sınıfı: MANUAL_REVIEW (kategori D, güven 70) · Kapsam: KYC_VARIANT / ALL

BASE künyesi ve kullanım haritası (v1.5 · 13.09.2026)

BASE DurumuBASE dışı — BASE Status: CANDIDATE_CANONICAL (Runtime Certification tamamlanmadı) · CTR-BASE-0041
BASE SınıfıCUSTOMER-CUSTOM (BASE MASTER) · Wiki önerisi: OPTIONAL-MODULE (AifaUyum KYC/MASAK) · Action: EXCLUDE_CUSTOMER_CUSTOM · Güven: HIGH
Runtime CertificationN/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)KYC.vHesapListesi
Outgoing Dependency (bunun kullandığı nesneler)KYC.Dokumanlar, KYC.Firmalar, KYC.IlgiliKisiler, KYC.vHesaplar
Trigger İlişkisiyok
Ticket Problem Aileleri
Bilinen Hatalar
Bilinen SQL Riskleri
Health Check Kuralı
Müşteri Özel mi?HAYIR (opsiyonel modül)
Opsiyonel Modül mü?EVET — AifaUyum KYC/MASAK
Legacy mi?HAYIR
Son Doğrulama Tarihi13.09.2026 — statik analiz (katalog 2026-09-10 + kaynak kod taraması). Çalışma zamanı doğrulaması: PENDING

Kullanım haritası

Kullanım Haritası kategorisiF — MANUAL REVIEW · F-EXTERNAL_PRODUCT · güven 90
GerekçeERPGOLD dışı ürün/servis şeması: AifaUyum KYC/MASAK modülü — ERPGOLD kodu çağırmaz ama başka uygulama kullanır
Referans veren (gerekli olmayan)KYC.vHesapListesi
Uzlaştırma08_Customer_Custom — Ayrı ürün/servis şeması (AifaUyum KYC/MASAK): Kullanım Haritası EXTERNAL_PRODUCT, BASE CUSTOMER-CUSTOM. Adlandırma farkı; ikisi de ERPGOLD çekirdeği saymıyor

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 NO
report NO
config NO
dynamic NO
db_in YES
db_out YES
trigger NO
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external RISK

Gerekçe: EXTERNAL USE RISK: AifaUyum KYC/MASAK modülü — ERPGOLD dışı AIFASOFT ürünü; nesneler 2026-09-10 oluşturulmuş

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

Tür: VIEW (V) · Modül: MOD-KYC · Uzunluk: 144 satır

Özet

[GAP] Kaynakta açıklama yorumu yok; davranış aşağıdaki SQL tanımından ve ilişkilerden okunur.

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

İlişki Hedef Tip
READS KYC.Dokumanlar TABLE
READS KYC.Firmalar TABLE
READS KYC.IlgiliKisiler TABLE
CALLS KYC.vHesaplar VIEW

Bu nesneyi kullananlar

Nesne Tip
KYC.vHesapListesi VIEW

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

CREATE VIEW [KYC].[vHesapKimlik]
AS
SELECT
    v.HesapId,
    v.HesapAdi,
    ISNULL(v.IsActive, 1)                                   AS IsActive,

    /* --- unvan --- */
    CAST(ISNULL(NULLIF(LTRIM(RTRIM(f.Unvan)), N''),
                NULLIF(LTRIM(RTRIM(v.TicariUnvan)), N'')) AS NVARCHAR(200))
                                                            AS Unvan,
    CAST(CASE WHEN NULLIF(LTRIM(RTRIM(f.Unvan)), N'') IS NOT NULL       THEN N'K'
              WHEN NULLIF(LTRIM(RTRIM(v.TicariUnvan)), N'') IS NOT NULL THEN N'H'
              ELSE N'' END AS NVARCHAR(1))                  AS UnvanKaynak,

    /* --- vergi no --- */
    CAST(ISNULL(NULLIF(LTRIM(RTRIM(f.VergiNo)), N''),
                NULLIF(LTRIM(RTRIM(v.VergiNo)), N'')) AS NVARCHAR(50))
                                                            AS VergiNo,
    CAST(CASE WHEN NULLIF(LTRIM(RTRIM(f.VergiNo)), N'') IS NOT NULL THEN N'K'
              WHEN NULLIF(LTRIM(RTRIM(v.VergiNo)), N'') IS NOT NULL THEN N'H'
              ELSE N'' END AS NVARCHAR(1))                  AS VergiNoKaynak,

    /* --- TCKN --- */
    CAST(ISNULL(NULLIF(LTRIM(RTRIM(f.Tckn)), N''),
                NULLIF(LTRIM(RTRIM(v.TCNo)), N'')) AS NVARCHAR(50))
                                                            AS Tckn,
    CAST(CASE WHEN NULLIF(LTRIM(RTRIM(f.Tckn)), N'') IS NOT NULL THEN N'K'
              WHEN NULLIF(LTRIM(RTRIM(v.TCNo)), N'') IS NOT NULL THEN N'H'
              ELSE N'' END AS NVARCHAR(1))                  AS TcknKaynak,

    /* --- pasaport --- */
    CAST(ISNULL(NULLIF(LTRIM(RTRIM(f.PasaportNo)), N''),
                NULLIF(LTRIM(RTRIM(v.PassaportNo)), N'')) AS NVARCHAR(50))
                                                            AS PasaportNo,
    CAST(CASE WHEN NULLIF(LTRIM(RTRIM(f.PasaportNo)), N'') IS NOT NULL THEN N'K'
              WHEN NULLIF(LTRIM(RTRIM(v.PassaportNo)), N'') IS NOT NULL THEN N'H'
              ELSE N'' END AS NVARCHAR(1))                  AS PasaportKaynak,

    /* --- çakışma --- */
    CAST(CASE WHEN
         (NULLIF(LTRIM(RTRIM(f.VergiNo)), N'') IS NOT NULL
          AND NULLIF(LTRIM(RTRIM(v.VergiNo)), N'') IS NOT NULL
          AND LTRIM(RTRIM(f.VergiNo)) <> LTRIM(RTRIM(v.VergiNo)))
      OR (NULLIF(LTRIM(RTRIM(f.Tckn)), N'') IS NOT NULL
          AND NULLIF(LTRIM(RTRIM(v.TCNo)), N'') IS NOT NULL
          AND LTRIM(RTRIM(f.Tckn)) <> LTRIM(RTRIM(v.TCNo)))
      OR (NULLIF(LTRIM(RTRIM(f.PasaportNo)), N'') IS NOT NULL
          AND NULLIF(LTRIM(RTRIM(v.PassaportNo)), N'') IS NOT NULL
          AND LTRIM(RTRIM(f.PasaportNo)) <> LTRIM(RTRIM(v.PassaportNo)))
         THEN 1 ELSE 0 END AS BIT)                          AS Cakisma,

    CAST(
        CASE WHEN NULLIF(LTRIM(RTRIM(f.VergiNo)), N'') IS NOT NULL
              AND NULLIF(LTRIM(RTRIM(v.VergiNo)), N'') IS NOT NULL
              AND LTRIM(RTRIM(f.VergiNo)) <> LTRIM(RTRIM(v.VergiNo))
             THEN N'VKN ' ELSE N'' END
      + CASE WHEN NULLIF(LTRIM(RTRIM(f.Tckn)), N'') IS NOT NULL
              AND NULLIF(LTRIM(RTRIM(v.TCNo)), N'') IS NOT NULL
              AND LTRIM(RTRIM(f.Tckn)) <> LTRIM(RTRIM(v.TCNo))
             THEN N'TCKN ' ELSE N'' END
      + CASE WHEN NULLIF(LTRIM(RTRIM(f.PasaportNo)), N'') IS NOT NULL
              AND NULLIF(LTRIM(RTRIM(v.PassaportNo)), N'') IS NOT NULL
              AND LTRIM(RTRIM(f.PasaportNo)) <> LTRIM(RTRIM(v.PassaportNo))
             THEN N'Pasaport ' ELSE N'' END
    AS NVARCHAR(60))                                        AS CakismaAlan,

    /* --- KYC tarafı --- */
    v.KycVar,
    v.KisiTipi,
    v.KisiTipiKaynak,
    v.KycDurumu,
    v.RiskSeviyesi,
    f.RiskNedeni,
    v.SonGozdenGecirme,
    v.SonrakiGozdenGecirme,
    f.OnaylayanUserId,
    f.OnayTarihi,
    v.EksikSayisi,
    v.ZorunluEksikSayisi,

    /* Tüzel kişide kural sayısını belirleyen şey. */
    ISNULL(kk.Adet, 0)                                      AS KayitliKisi,

    /* Dosyada en son ne zaman bir belge hareketi oldu (yükleme, karar,
       silme). Onayın hâlâ geçerli olup olmadığını bununla ölçüyoruz. */
    dh.SonHareket                                           AS SonBelgeHareketi,

    /* KARAR BEKLEYEN BELGE SAYISI (1.6.0).
       Izgarada sütun oldu. Sebebi: bu sayı yalnız Onay kuyruğu sekmesinde
       görünüyordu; hesap listesine bakan operatör "bu dosyada benden bir
       şey bekleniyor mu" sorusunu ancak sekme değiştirerek cevaplıyordu. */
    ISNULL(db.Adet, 0)                                      AS BekleyenBelge,

    /* --- BAYAT ONAY: türetilir, saklanmaz -------------------------------
       Onaylı bir dosya iki şekilde bayatlar:
         1) zorunlu eksik doğdu (belge süresi doldu, belge reddedildi,
            kural değişti) — çoğunun OLAYI YOKTUR, sadece tarih geçer,
         2) onaydan sonra dosyaya belge hareketi oldu.
       İkisi de her açılışta yeniden hesaplanıyor.                        */
    CAST(CASE WHEN v.KycDurumu = 2 AND f.OnayTarihi IS NOT NULL
                   AND (v.ZorunluEksikSayisi > 0
                        OR (dh.SonHareket IS NOT NULL
                            AND dh.SonHareket > f.OnayTarihi))
              THEN 1 ELSE 0 END AS BIT)                     AS OnayBayat,

    /* --- ROZET: ekranda görünen BEŞ durumun TEK KAYNAĞI -----------------
       0 KYC yok        kayıt açılmadı, hiçbir kural uygulanmadı
       1 Kişi tipi yok  kayıt var, tip yok — kural YİNE uygulanmıyor
       4 Ortak yok      tüzel kişi ama kayıtlı ortak/yetkili yok; kişi
                        düzeyli kurallar HİÇ DOĞMADI, eksik sayısı EKSİK
       2 Eksik var      kural uygulandı, karşılanmadı
       3 Tam            kural uygulandı, karşılandı
       0, 1 ve 4'te eksik sayısı GÜVENİLİR DEĞİLDİR.                     */
    CAST(CASE WHEN v.KycVar = 0                     THEN 0
              WHEN ISNULL(v.KisiTipi, 0) = 0        THEN 1
              WHEN v.KisiTipi = 2
                   AND ISNULL(kk.Adet, 0) = 0       THEN 4
              WHEN v.ZorunluEksikSayisi > 0         THEN 2
              ELSE 3 END AS TINYINT)                        AS RozetKod

FROM Kyc.vHesaplar v
LEFT JOIN Kyc.Firmalar f
       ON f.HesapId = v.HesapId AND f.IsDeleted = 0
LEFT JOIN (
    SELECT HesapId, COUNT(*) AS Adet
    FROM Kyc.IlgiliKisiler
    WHERE IsDeleted = 0
    GROUP BY HesapId
) kk ON kk.HesapId = v.HesapId
LEFT JOIN (
    SELECT HesapId, MAX(ISNULL(LastDate, InsertDate)) AS SonHareket
    FROM Kyc.Dokumanlar
    WHERE IsDeleted = 0
    GROUP BY HesapId
) dh ON dh.HesapId = v.HesapId
LEFT JOIN (
    SELECT HesapId, COUNT(*) AS Adet
    FROM Kyc.Dokumanlar
    WHERE IsDeleted = 0 AND Durum = 0        -- 0 = karar bekliyor
    GROUP BY HesapId
) db ON db.HesapId = v.HesapId;

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