AIFA AKADEMI · Kurumsal Wiki
4.310 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

Kullanım haritası (13.09.2026)

KategoriF — MANUAL REVIEW · F-EXTERNAL_PRODUCT
Güven90
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

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