466 hata için belirti → teknik olay → yakın neden → kök neden zinciri.
Künye (front-matter) · EKB-ROOT-CAUSE · reality [SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
| id | EKB-ROOT-CAUSE |
| title | Root Cause Haritası |
| entity_type | ERROR_KB |
| module | MOD-KALITE |
| audience | [SUPPORT, DEVELOPER, QA] |
| confidentiality | AIFASOFT_INTERNAL |
| product_scope | ERPGOLD_CORE |
| customer_scope | ALL |
| reality | [SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL] |
| lifecycle | ACTIVE |
| confidence | MEDIUM |
| version_from | VERSION_UNKNOWN |
| version_to | - |
| created_at | 2026-09-13 |
| last_verified | 2026-09-13 |
| source_hashes | [] |
| sources | [DOCUMENT:ERPGOLD_ERROR_MASTER.xlsx, DOCUMENT:ERPGOLD_HATA_KOK_NEDEN_BILGI_BANKASI.md, SRC-TKT-ERP, SOURCE_CODE:ERPPRO, DB_CATALOG:INST-ERPGOLDV2] |
| aliases | [Root Cause Haritası] |
| tags | [error-kb] |
| wiki_version | v1.5 |
| source_package | ERPGOLD_HATA_BILGI_BANKASI_v1 / Wiki_23_Hata_Bilgi_Bankasi |
Root cause haritası (466 kayıt). Her hata için belirti → teknik olay → yakın neden → kök neden zinciri tek tabloda. Kök neden "[Ekip tarafından doldurulacak]" ise analiz henüz yapılmamıştır.
Harita
| ID | Sınıf | Sev. | Başlık | Belirti | Teknik olay | Yakın neden | Kök neden | Etkilenen veri | PF | Güven |
|---|---|---|---|---|---|---|---|---|---|---|
| ERR-OBS-001 | GÖZLEMLENMİŞ | S3 | Aylık BTrans (mali müşavir XML) alma — rutin talep | 'AA.YYYY BTrans alma' / 'BTrans alındı' | SQL: SP Muhasebe.SPBTRANSDoviz → Cari.Islemler, Cari.IslemDetaylari, Cari.Hesaplar; Muhasebe.IslemlerBTrans | rutin talep — arıza değil | PF-001 | 80 | ||
| ERR-OBS-002 | GÖZLEMLENMİŞ | S2 | Lisans girişi / yıllık lisans yenileme (rutin) | 'lisans verildi' / 'program lisans istiyor' | SQL: Sistem.Clients.SerialKey + config.cfg | lisans süresi dolmuş / yeni bilgisayar — rutin | Sistem.Users / UserGroup / UserDetails | PF-002 | 80 | |
| ERR-OBS-003 | GÖZLEMLENMİŞ | S2 | Fiş yazıcısı yazdırmıyor / fiş çıkmıyor / boş fiş / Windows kaynaklı yazıcı hatası | 'yazıcı fiş çıkarmıyor' / 'yazıcı problemi' / 'fiş makinesi' | SQL: VW Cari.FisIslemDetay (TOP 1000); Sistem.Clients.FisPrinter/DirekPrint/OtoFisBas | yazıcı port/sürücü/ayar; boş fişte görünüm satır sınırı | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-003 | 65 | |
| ERR-OBS-004 | GÖZLEMLENMİŞ | S4 | Rapor tasarımı / yeni rapor / sütun ekleme / bakiye ekstresi düzenleme (talep) | 'rapor tasarımı' / 'istenilen rapor' / 'bakiye ekstresi düzenleme' | SQL: AifaDev.Reports / AifaDev.ReportLayouts; FN Reports.BakiyeListesi | talep (geliştirme) | PF-004 | 65 | ||
| ERR-OBS-005 | GÖZLEMLENMİŞ | S1 | Bilanço tutmuyor / eksi-zarar yazıyor / yanlış gösteriyor (genel bilanço problemi) | 'bilanço problemi' / 'bilanço eksi yazıyor' / 'bilanço tutmuyor' | SQL: Bilanco.Bilancolar; FN Bilanco.GetKurFarki; FN Stok.GetMadenMaliyeti; FN Sistem.GetKurListesi | kur sapmalı/eksi stoklu işlemler, açık pozisyon kur farkı, maliyet fonksiyonu | Maden maliyeti güncel kuru baz alıyor — fonksiyon sürümü (H-129, FN-STOK.GETMADENMALIYETI, TD-23); Çıkılmamış / devir öncesi takozlar (H-130, PB-034); Raporsuz takoz %60 milyem varsayımı üç raporda üç | PF-005 | 55 | |
| ERR-OBS-006 | GÖZLEMLENMİŞ | S2 | ERP sunucuya bağlanamıyor / bağlantı hatası / Configuration Settings ekranı | 'ERP bağlantısı' / 'bağlantı hatası' / 'Configuration Settings geliyor' | SQL: sys.databases; SQL Server servis/Browser/TCP; config.cfg | bağlantı yapılandırması / ağ / servis | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-006 | 65 | |
| ERR-OBS-007 | GÖZLEMLENMİŞ | S2 | Fatura kesilemiyor / fatura basma / fatura problemi (genel) | 'fatura problemi' / 'fatura kesemiyor' / 'fatura basma hatası' | SQL: VW Cari.FaturaBilgileri; AifaDev.FaturaDesign; Sistem.Clients.FaPrinter | ? | Belirtilen SQL nesnesi / ekran verisi | PF-007 | 50 | |
| ERR-OBS-008 | GÖZLEMLENMİŞ | S3 | ERP kurulumu (yeni kurulum, sıfır kurulum, kurulum sonrası destek) | 'ERP kurulumu' | SQL: SQL Server; config.cfg; Sistem.Clients | rutin kurulum | PF-008 | 65 | ||
| ERR-OBS-009 | GÖZLEMLENMİŞ | S2 | ETTN atama / boş ETTN / ETTN güncellemesi | 'ETTN no ataması' / 'boş ETTN problemi' | SQL: Cari.IslemDetaylari (ETTN alanı) — doğrulanmadı | ? (ETTN'nin neden boş kaldığı wiki'de belgeli değil) | Belirtilen SQL nesnesi / ekran verisi | PF-009 | 75 | |
| ERR-OBS-010 | GÖZLEMLENMİŞ | S2 | Programa giriş yapılamıyor / program açılmıyor (giriş hatası) | 'programa giriş hatası' / 'giriş sorunu' / 'ERP açılmıyor' | SQL: Sistem.Users / UserDetails; Sistem.GetUsers; Sistem.Login (denetim) | kullanıcı ataması / bağlantı / lisans | Sistem.Users / UserGroup / UserDetails | PF-010 | 60 | |
| ERR-OBS-011 | GÖZLEMLENMİŞ | S2 | Ana bilgisayar / sunucu taşıma, format sonrası veya yeni bilgisayara kurulum | 'ERP taşıma' / 'yeni bilgisayara kurulum' / 'format sonrası' | SQL: SQL Server kurulumu; RESTORE; config.cfg | donanım değişimi (rutin) / standart dışı kurulum | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-011 | 70 | |
| ERR-OBS-012 | GÖZLEMLENMİŞ | S1 | Yanlış yapılan işlemin düzeltilmesi / kayıt olmuyor / mutabakat / fiş no | 'işlem düzeltme' / 'yanlış yapılan işlem' / 'mutabakat' | SQL: Cari.Islemler; Cari.History; Sistem.Settings (DuzeltmeGun, DuzeltmeOnayi, MutabakatLock) | kullanıcı giriş hatası + düzeltme engelleri (kural) | F2 hiçbir şey yapmıyor / 'Sube,Kasa veya Hesap Seçili Değil' / 'Miktar Girmelisiniz' (H-036, H-037, H-038, PB-045); Fiş numarası iki güne yayılmış / çakışma (H-102, PB-065, TD-02); Combo indeksi doğru | PF-012 | 55 | |
| ERR-OBS-013 | GÖZLEMLENMİŞ | S3 | Kullanıcı tanımlama / düzenleme / isim değişikliği / kullanıcı açma | 'kullanıcı tanımlama' / 'kullanıcı isim değişikliği' | SQL: Sistem.Users; UserDetails (şube-kasa-grup) | rutin tanımlama | PF-013 | 65 | ||
| ERR-OBS-014 | GÖZLEMLENMİŞ | S2 | Belgelendirilmiş işlem / ResmiKasa (legacy teknik ad) desteği — belirtisiz | 'resmi işlem' / 'resmi kasa girişi' | SQL: Cari.Islemler (IslemTipi 11/12 resmi), Sistem.Subeler.IsResmi, Sistem.Kasalar.ResmiKasa | ? | Belirtilen SQL nesnesi / ekran verisi | PF-014 | 55 | |
| ERR-OBS-015 | GÖZLEMLENMİŞ | S4 | Eğitim / soru-cevap / genel destek | 'soruları cevaplandı' / 'eğitim' / 'işlem destek' | SQL: — | eğitim eksikliği | PF-015 | 60 | ||
| ERR-OBS-016 | GÖZLEMLENMİŞ | S3 | Yazıcı kurulumu / yeni fiş yazıcısı tanımlama (rutin) | 'yazıcı kurulumu yapıldı' | SQL: Sistem.Clients.FisPrinter / DirekPrint / OtoFisBas | rutin kurulum | PF-016 | 75 | ||
| ERR-OBS-017 | GÖZLEMLENMİŞ | S3 | RDP (uzak masaüstü) kurulumu (rutin) | 'RDP kurulumu' | SQL: Sistem.RDP | rutin kurulum | PF-017 | 70 | ||
| ERR-OBS-018 | GÖZLEMLENMİŞ | S2 | e-Belge entegratör güncellemesi / entegratör reddi (Uyumsoft, ICE, Mysoft, QR/dijital fatura) | 'v1 güncellemesi yapılacak uyumsoft' / 'QR fatura güncelleme' / 'entegratör hatası' | SQL: Sistem.Subeler.Entegrator; Cari.IslemDetaylari.Durum (v1.0.7.2) | entegratör/DLL sürüm uyumsuzluğu — güncelleme rutini | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-018 | 75 | |
| ERR-OBS-019 | GÖZLEMLENMİŞ | S2 | EDS fiyat akışı durdu / ERP'ye kur gelmiyor / EDS–ERP bağlantısı | 'EDS ERP bağlantısı' / 'fiyat akışı sorunu' / 'kurlar güncellenmiyor' | SQL: Sistem.Kurlar (EDS yazar); FN Sistem.GetKurListesi | EDS örneği/sağlayıcı/bağlantı yapılandırması | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-019 | 70 | |
| ERR-OBS-020 | GÖZLEMLENMİŞ | S3 | Kullanıcı yetkilendirme / yetki grubu / ekran menüde yok | 'yetkilendirme' / 'kullanıcı yetkileri' / 'kullanıcı grup ayarları' | SQL: Sistem.UserGroup; UserDetails | yetki tanımı (yapılandırma) | PF-020 | 70 | ||
| ERR-OBS-021 | GÖZLEMLENMİŞ | S3 | Maden stok tanımlama / sıralama / düzenleme | 'maden stok tanımlama' / 'maden stok sıralaması' | SQL: Stok.Maden (FiyatTipi, MilyemDurumu, GirisIsciligiBirimId/CikisIsciligiBirimId); stok listesi fonksiyonu (PROC-14) | tanım talebi / sıralama fonksiyonu eksik ORDER BY | PF-021 | 65 | ||
| ERR-OBS-022 | GÖZLEMLENMİŞ | S2 | Yazıcı bağlantısı kopuk / paylaşımlı-ağ yazıcısı bağlanmıyor | 'yazıcı bağlantısı' / 'server yazıcı sorunu' | SQL: Sistem.Clients.FisPrinter | işletim sistemi/ağ yazıcı paylaşımı ve port ayarı | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-022 | 70 | |
| ERR-OBS-023 | GÖZLEMLENMİŞ | S3 | Birim (para birimi) tanımlama / listede görünmüyor / çarpan / çift birim | 'birim tanımlama' / 'istenilen birimler' | SQL: Sistem.Birimler (IsStatic, Carpan, IsMetal, IsDeleted) | tanım alanları / önbellek yenileme | PF-023 | 70 | ||
| ERR-OBS-024 | GÖZLEMLENMİŞ | S3 | Etiket tasarımı / etiket yazıcısı çıkmıyor / RFID | 'etiket tasarımı' / 'etiket çıkmıyor' / 'RFID' | SQL: Sistem.Etiket; Sistem.Clients.RFIDPrinterIP/RFIDPrinterPort | etiket yazıcısı/RFID tanımı; 30 gr sabit eşiği | PF-024 | 75 | ||
| ERR-OBS-025 | GÖZLEMLENMİŞ | S4 | Kullanıcı ayarları / kişiselleştirme / işlem listesi görünümü / Excel aktarma | 'kullanıcı ayarları' / 'kullanıcı kişiselleştirme' / 'işlem listesi düzenleme' | SQL: Sistem.Clients; Sistem.Layout | talep (kişiselleştirme) | PF-025 | 65 | ||
| ERR-OBS-026 | GÖZLEMLENMİŞ | S2 | Yılbaşı fatura/e-belge seri-sıra numarası güncellemesi | '2023 fatura numarası güncellemesi' / 'fatura serisi' | SQL: SP Sistem.GetFaturaNo; Sistem.Clients.FaSeri/FsSeri | GetFaturaNo yıl koşulu eksik → her yıl elle güncelleme | Belirtilen SQL nesnesi / ekran verisi | PF-026 | 80 | |
| ERR-OBS-027 | GÖZLEMLENMİŞ | S1 | Fatura/resmi işlem düzeltme, iptal, yanlış müşteriye kesilen veya geçmişe fatura | 'resmi kasa düzeltme' / 'fatura düzenleme' / 'geçmişe dönük fatura' | SQL: Cari.Islemler / Cari.IslemDetaylari (belge no, ETTN) | iletilmiş belge değiştirilemez kuralı; yanlış hesap/tarih seçimi | Belgelendirme Farkı bildirimi — belgeli stok/alım-satımlar tutmuyor (H-142); Geçmişe belge: tarih kayıt anındaki kur fotoğrafıyla kalır (BR-KUR-001) | PF-027 | 60 | |
| ERR-OBS-028 | GÖZLEMLENMİŞ | S2 | Dış IP / sabit IP / port yönlendirme / güvenlik duvarı izni | 'dış IP izin' / 'statik IP' / 'IP değişikliği' | SQL: SQL Server port 1433 / Browser | ağ yapılandırması (ERP dışı) | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-028 | 75 | |
| ERR-OBS-029 | GÖZLEMLENMİŞ | S3 | Ek kullanıcı (istemci) kurulumu (rutin) | 'ek kullanıcı kurulumu' | SQL: config.cfg; Sistem.Users / UserDetails; Sistem.Clients | rutin kurulum | PF-029 | 65 | ||
| ERR-OBS-030 | GÖZLEMLENMİŞ | S1 | Cari bakiye / ekstre tutmuyor (bakiye yanlış, ters, birden değişti) | 'bakiye tutmuyor' / 'cari bakiye sorunu' / 'bakiye ekstresi yanlış' | SQL: Cari.Islemler (IslemTuru/IslemTipi/BakiyeId); Cari.History | yön/tip hatası, düzeltme geçmişi, tetik veya kur | Virman tek bacak (H-106); Tetik kapalı (H-006); Geçmiş tarihli işlem kursuz (H-107, H-110) | PF-030 | 55 | |
| ERR-OBS-031 | GÖZLEMLENMİŞ | S3 | Program sürümü / exe / DLL güncellemesi (ERP Booster dahil) | 'versiyon güncellemesi' / 'ERPGOLD ürün sürümleri' | SQL: Sistem.ERPSCHEMA; Sistem.Login.PrgVersion; Sistem.Settings.UpdateFolder | sürüm dağıtımı rutin / şema-exe uyumsuzluğu | PF-031 | 65 | ||
| ERR-OBS-032 | GÖZLEMLENMİŞ | S2 | SQL Server bağlantısı / sa şifresi / SQL kurulum hataları | 'SQL şifresi yenileme' / 'SQL bağlantısı' | SQL: sys.databases; SQL Server servisi/Browser; config.cfg | SQL servis/kimlik/ağ yapılandırması | Sistem.Users / UserGroup / UserDetails | PF-032 | 70 | |
| ERR-OBS-033 | GÖZLEMLENMİŞ | S4 | Demo / sunum / tanıtım (satış öncesi) | 'ERP demo' / 'demo verilecektir' | SQL: demo veritabanı (TD-32: demo kopyasında tetikleyiciler kapalı) | satış/eğitim faaliyeti | PF-033 | 75 | ||
| ERR-OBS-034 | GÖZLEMLENMİŞ | S1 | Stok tutmuyor / stok düzeltme / eksi stok / stok girişi | 'stok düzeltme' / 'stok tutmuyor' / 'stok girişi' | SQL: Cari.Islemler (StokId, KasaId, IslemTipi) | kasa seçimi / transfer kabulü / işlem tipi / tetik durumu | Stokta olmayan mal çıkılmış — negatif stok (H-123); Açılış (devir) stoğu DEVİR hesabı alacaklı (H-115, PB-035); Kurulum farkı: cari işlemin stok üretmesi döviz %1,4 / kuyumcu %60,3 (CTR-038) | PF-034 | 55 | |
| ERR-OBS-035 | GÖZLEMLENMİŞ | S2 | Program yavaşlığı / donma / index talebi | 'program yavaşlığı' / 'donma' / 'index' | SQL: Cari.Islemler (26 indeks, HesapId öncülü yok) | indeks eksikliği + tetikleyici maliyeti + altyapı | Cari.Islemler / BakiyeIslem (kilit/timeout sırasında yarım yazım) | PF-035 | 65 | |
| ERR-OBS-036 | GÖZLEMLENMİŞ | S2 | Yıl sonu devir işlemi ve devir sonrası fark | 'devir yapıldı' / 'devir sonrası bakiye farklı' | SQL: SP Sistem.Devir (tetikleyiciler kapalı); ERPGLOBAL.dbo.Company | devir prosedürü adımı atlanması (tetik/takoz/kesim tarihi) | Belirtilen SQL nesnesi / ekran verisi | PF-036 | 75 | |
| ERR-OBS-037 | GÖZLEMLENMİŞ | S1 | İşlem silme / iptal / silme onayı / silinen işlemi geri getirme | 'işlem silme' / 'silinmiş işlemin geri getirilmesi' / 'silme onayı' | SQL: Cari.Islemler.IsDeleted; Sistem.Settings.SilGun/SilmeOnayi/MutabakatLock | kullanım (iptal akışı) / yetki-onay engelleri | Silme onayında işlem duruyor (H-098, FAQ-051); 'İşlem İptal Etme Yetkiniz Yok' (H-011); N gün / mutabakat / PIN engelleri (H-096, H-095, H-097) | PF-037 | 65 | |
| ERR-OBS-038 | GÖZLEMLENMİŞ | S3 | Hacim / kâr analiz / kâr-zarar raporu düzenleme ve hataları | 'hacim raporu' / 'kâr analiz raporu' | SQL: AifaDev.Reports (rapor sorguları); Report/Reports/ReportsV2 şemaları (TD-47) | talep / metrik tanımı farkı | PF-038 | 65 | ||
| ERR-OBS-039 | GÖZLEMLENMİŞ | S3 | Nakit / genel stok tanımlama ve stok kartı düzenleme | 'stok tanımlama' / 'nakit stok tanımlama' | SQL: Stok.Nakit; Stok.Genel | rutin tanımlama / önbellek yenileme | PF-039 | 55 | ||
| ERR-OBS-040 | GÖZLEMLENMİŞ | S1 | Pozisyon yanlış / aynı birim iki kez / pozisyon güncellenmiyor | 'pozisyonda aynı birim iki kez' / 'pozisyon tutmuyor' | SQL: FN Pozisyon.GetPozisyonV1/V2/V3, GetOldPozisyon, MüşteriŞemasıD.GetPozisyon; Sistem.Birimler | çift birim tanımı / defter üretilmeyen işlem tipi / fonksiyon sürümü | İşlem PEŞİN/tip 11 → bakiye hareketi yok (BR-TIP-002/004); Tetikleyici kapalı (H-006, PB-029); GetPozisyonV1/V2/V3/MüşteriŞemasıD sürüm farkı (GAP) | PF-040 | 70 | |
| ERR-OBS-041 | GÖZLEMLENMİŞ | S3 | Kasa / şube tanımlama ve ayarları | 'kasa tanımlama' / 'şube tanımlama' | SQL: Sistem.Kasalar (ResmiKasa); Sistem.Subeler (IsResmi, BilancoBirimId, Entegrator) | rutin tanımlama / bayrak ayarları | PF-041 | 60 | ||
| ERR-OBS-042 | GÖZLEMLENMİŞ | S3 | Vadeli işlem kodu / vadeli birim / parite tanımlama, çarpan ve sıra | 'vadeli birim tanımlama' / 'vadeli çarpanı' / 'parite tanımlama' | SQL: Sistem.Vadeli (Carpan, SiraNo); Sistem.Pariteler | tanım alanı (çarpan/TL karşılığı) eksik veya yanlış | PF-042 | 70 | ||
| ERR-OBS-043 | GÖZLEMLENMİŞ | S2 | BTrans kontrol raporu / şema doğrulama hatası (vergi-TC hane, hatalı işlem, 100 USD kuralı) | 'BTrans hatası' / 'BTrans rapor güncelleme' / 'BTrans 100 USD' | SQL: FN Muhasebe.EDovizKontrolRaporuBTrans; SP Muhasebe.SPBTRANSDoviz; Cari.Hesaplar.VergiNo/TCKN | cari kart kimlik/vergi alanı hatalı veya belgelendirilmiş işlem alanı eksik | Yılbaşı/limit güncellemesi yapılmamış aylarda kontrol raporu hata üretir (H-165, H-166 — GAP: BTrans bağı doğrulanmadı); 'BTrans 100 USD' başlıkları: 100 USD eşiği kuralı wiki'de belgeli değil (GAP) | PF-043 | 75 | |
| ERR-OBS-044 | GÖZLEMLENMİŞ | S3 | Genel tanımlama / ayar / düzenleme (belirtisiz) | 'tanımlama' / 'istenilen ayarlar' | SQL: Sistem.Settings / ? | ? | PF-044 | 40 | ||
| ERR-OBS-045 | GÖZLEMLENMİŞ | S2 | Kur giriş ekranı / kur listesi boş / kur yanlış geliyor | 'kur giriş ekranı' / 'kur yanlışlığı' | SQL: Sistem.Kurlar; FN Sistem.GetKurListesi | günün kur listesi boş / alış kuru varsayımı | Belirtilen SQL nesnesi / ekran verisi | PF-045 | 55 | |
| ERR-OBS-046 | GÖZLEMLENMİŞ | S2 | Takoz / çeşni / ayar evi işlemleri ve tanımları | 'takoz fişi' / 'takoz işlemi' / 'ayar evi tanımlama' / 'çeşni stokları' | SQL: Cari.Islemler; Stok.Takoz; Sistem.AyarEvi | takoz numarası/kasa/milyem/işçilik giriş hatası (kullanım) | Belirtilen SQL nesnesi / ekran verisi | PF-046 | 70 | |
| ERR-OBS-047 | GÖZLEMLENMİŞ | S4 | Fiş tasarımı / fiş dizaynı / fişte yazı tipi bozuk | 'fiş tasarımı' / 'fiş dizaynı' / 'fişte yazılar bozuk' | SQL: AifaDev.ReportLayouts / Sistem.Clients | talep (tasarım) / font eksikliği | PF-047 | 70 | ||
| ERR-OBS-048 | GÖZLEMLENMİŞ | S1 | Vadeli / parite / arbitraj / çevir işleminde tutar-miktar yanlış veya tek bacak kaldı | 'vadeli işlemde miktar yanlış' / 'arbitraj işlemi yanlış' | SQL: Cari.Islemler; Sistem.Vadeli.Carpan; Cari.Hesaplar.OnsCarpan; Sistem.Settings.OnsCarpan | ikinci bacak kaydı başarısız / çarpan-ons ayarı | VADELİ'de ARBİTRAJ/FATURA tipi çift satır yoluna girer (H-061); Nakit PARİTE/EMANET karışıklığı (H-058, BR-TIP-011); PARİTE (X) kaydı düzeltilemez (H-080) | PF-048 | 60 | |
| ERR-OBS-049 | GÖZLEMLENMİŞ | S2 | Panoya fiyat gitmiyor / pano ayarları / pano formatı | 'panoya fiyat gitmiyor' / 'pano ayarları' | SQL: Sistem.GetPanoText; Sistem.Kurlar | EDS akışı veya pano bağlantı/format yapılandırması | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-049 | 75 | |
| ERR-OBS-050 | GÖZLEMLENMİŞ | S3 | Bilanço alma/silme/tarih/mantık soruları ve geniş bilanço talebi | 'bilanço silme' / 'bilanço soruları cevaplandı' / 'bilanço deviri' | SQL: Bilanco.Bilancolar (silme yalnız SQL — PROC-54) | kullanım/eğitim; silme işlevi programda yok | PF-050 | 60 | ||
| ERR-OBS-051 | GÖZLEMLENMİŞ | S2 | e-Belge işlem limiti güncellemesi (5.000 $ / 85.000 TL / 185.000 TL) ve kimlik zorunluluğu | '5.000/85.000 güncellemesi' / 'limit güncellemesi' | SQL: Sistem.Subeler.EBelgeUsdLimit / EBelgeTlLimit / EBelgeTcknControl | mevzuat değişikliği → parametre güncellemesi (rutin) | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-051 | 75 | |
| ERR-OBS-052 | GÖZLEMLENMİŞ | S4 | Müşteri istek / talep / geliştirme (arıza değil) | 'müşteri istekleri yerine getirildi' / 'istenilen işlem' | SQL: — | talep | PF-052 | 55 | ||
| ERR-OBS-053 | GÖZLEMLENMİŞ | S2 | RDP (uzak masaüstü) bağlantı / giriş / parola sorunu | 'RDP bağlantı hatası' / 'RDP giriş sorunu' | SQL: Sistem.RDP | RDP parola süresi / ağ erişimi | Sistem.Users / UserGroup / UserDetails | PF-053 | 70 | |
| ERR-OBS-054 | GÖZLEMLENMİŞ | S2 | Yedek alma / restore / sync | 'yedek alma' / 'backup alınamıyor' | SQL: BACKUP DATABASE / RESTORE | rutin talep / dosya izinleri | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-054 | 75 | |
| ERR-OBS-055 | GÖZLEMLENMİŞ | S3 | Model / pırlanta / taş / emtia / görsel / üretim modülü | 'model tanımlama' / 'görsel gelmiyor' / 'üretim modülü' | SQL: Cari.Islemler; Stok.Model; Stok.Pirlanta; Stok.Tas; Stok.Emtia | ekran kuralları (eğitim) / tanım | PF-055 | 55 | ||
| ERR-OBS-056 | GÖZLEMLENMİŞ | S2 | Hurda / milyem / işçilik / has-gram fiyat davranışları | 'hurda tanımlama' / 'milyem gözükmüyor' / 'işçilik' | SQL: Cari.Islemler; Stok.Maden; Cari.Fiyatlar | ekran iş kuralı beklentiden farklı (eğitim) / tanım | Belirtilen SQL nesnesi / ekran verisi | PF-056 | 55 | |
| ERR-OBS-057 | GÖZLEMLENMİŞ | S2 | İstatistik kodu / KDV / BSMV / vergi no hatası | 'istatistik kodu çıkmıyor' / 'KDV güncellemesi' / 'BSMV ayarı' | SQL: FN FN.GetIstatistikKodu; VW Cari.FaturaBilgileri; Cari.Hesaplar.HukukiKod | hesap kartında hukuki kod / kimlik alanı eksik ya da eşleşmiyor | VKN 10 / TCKN 11 hane kuralı (BR-FATURA-001, H-146); BSMV hesabı Cari.FaturaBilgileri görünümünden (FAQ-093) | PF-057 | 65 | |
| ERR-OBS-058 | GÖZLEMLENMİŞ | S1 | Geçmiş tarihe işlem / işlem tarihi düzeltme / N gün kuralı | 'geçmişe dönük işlem' / 'işlem tarihi' / 'tarihler yanlış geliyor' | SQL: Cari.Islemler.Tarih / Vade (TD-40); Sistem.Kurlar (o günün kuru) | geçmiş tarihe kur listesi yok / düzeltme günü kuralı | 'İşlem Tarihinden İtibaren N Gün Geçmiştir' düzeltme engeli (H-096, Settings.DuzeltmeGun); Seçtiğim tarih kaydedilmedi (H-081); TxtTarih Vade kolonuna yazıyor (TD-40); Düzeltmede kur fotoğrafı yenilen | PF-058 | 60 | |
| ERR-OBS-059 | GÖZLEMLENMİŞ | S2 | Ek kullanıcı / şube bilgisayarı programa bağlanamıyor | 'ek kullanıcı programa giremiyor' / 'ek kullanıcı bağlantı sorunu' | SQL: SQL Browser/TCP 1433; config.cfg (Server Name) | sunucu adresi/IP değişimi, güvenlik duvarı | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-059 | 70 | |
| ERR-OBS-060 | GÖZLEMLENMİŞ | S3 | Cari hesap / kart tanımlama, hesap türü, adres-unvan değişikliği | 'hesap tanımlama' / 'cari kart' / 'adres değişikliği' | SQL: Cari.Hesaplar; Cari.Kartlar; Cari.ExLimit | rutin tanımlama / hesap durumu | PF-060 | 55 | ||
| ERR-OBS-061 | GÖZLEMLENMİŞ | S3 | Barkod ayarı / barkod okuyucu / barkod düzenlemesi | 'barkod ayarı' / 'barkod düzenlemesi' | SQL: ? | ? | PF-061 | 65 | ||
| ERR-OBS-062 | GÖZLEMLENMİŞ | S2 | Kullanıcı şifresi / PIN / yönetici şifresi (unutma, değiştirme, kabul edilmiyor) | 'kullanıcı şifresi' / 'şifre yenileme' / 'PIN kodu' | SQL: Sistem.Users.Password; UserDetails | kullanıcı yönetimi (rutin) / atama eksik | Sistem.Users / UserGroup / UserDetails | PF-062 | 65 | |
| ERR-OBS-063 | GÖZLEMLENMİŞ | S1 | Kasa bakiyesi / kasa stoğu tutmuyor | 'kasa tutmuyor' / 'kasa düzeltme' / 'kasa stoğu problemi' | SQL: Cari.Islemler (IslemTipi, KasaId) | işlem tipi/kasa seçimi hatası | Transfer karşı kasada kabul edilmemiş (H-114); Cari bakiye kasaya bölünmez, stok kasa bazlıdır (TBL-CARI.ISLEMLER KasaId); Perakendede kasa değiştirilemiyor (H-090) | PF-063 | 55 | |
| ERR-OBS-064 | GÖZLEMLENMİŞ | S3 | Bilgisayar / ağ / kamera / disk donanım desteği (ERP dışı) | 'donanım' / 'bilgisayar' / 'kamera' / 'wifi' | SQL: — | müşteri donanımı/ağı (ERP dışı) | PF-064 | 55 | ||
| ERR-OBS-065 | GÖZLEMLENMİŞ | S3 | Şifreli hesap / master hesap / kart şifresi | 'şifreli hesap' / 'master hesap tanımlama' | SQL: Cari.Kartlar (şifre alanı); Cari.Hesaplar | tanım (yapılandırma) | PF-065 | 75 | ||
| ERR-OBS-066 | GÖZLEMLENMİŞ | S2 | Provizyon (şubeler arası onay bekleyen işlem) | 'provizyon' / 'provizyon iptal' | SQL: Cari.Islemler (provizyon durumu); Sistem.Settings.Provizyon | iki adımlı onay kuralı bilinmiyor (eğitim) | Belirtilen SQL nesnesi / ekran verisi | PF-066 | 75 | |
| ERR-OBS-067 | GÖZLEMLENMİŞ | S1 | Hesap işlemlerini başka hesaba aktarma / cari-program sıfırlama / hesap temizleme | 'cari sıfırlama' / 'ERP sıfırlandı' / 'hesap birleştirme' | SQL: Cari.Islemler.HesapId (toplu güncelleme); Repair.BalanceRepair (yasak) | yanlış hesap seçimi / yeniden başlangıç talebi | Program/cari 'sıfırlama' talebi: toptan onarım aracı Repair.BalanceRepair destek tarafından çalıştırılmaz (TD-30, FAQ-079) | PF-067 | 55 | |
| ERR-OBS-068 | GÖZLEMLENMİŞ | S2 | Kasa/şube arası transfer: karşı kasada görünmüyor / stok hareketinde yanlış tarih | 'transfer işlemi' / 'transfer karşı kasada görünmüyor' | SQL: Stok transfer kayıtları; FN Stok.GetStokHareketleri | kabul adımı atlanmış / fonksiyon tarih kaynağı | Belirtilen SQL nesnesi / ekran verisi | PF-068 | 65 | |
| ERR-OBS-069 | GÖZLEMLENMİŞ | S2 | Arşiv (önceki yıl) veritabanına erişim / "İŞLEME KAPATILMIŞTIR" | 'arşiv' / 'geçen yılın işlemleri kayboldu' | SQL: ERPGLOBAL.dbo.Company.DBName; arşiv DB | kullanıcı arşiv DB seçmiş / arşive erişim kısıtı | Belirtilen SQL nesnesi / ekran verisi | PF-069 | 65 | |
| ERR-OBS-070 | GÖZLEMLENMİŞ | S2 | Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç) | 'rapor hatası' / 'hareket detayı boş geliyor' / 'invalid column name' | SQL: AifaDev.Reports sorgusu; FN FN.Bol; Report/Reports/ReportsV2 şemaları (TD-47) | rapor sorgusu hatası / şema uyumsuzluğu / süzgeç etiketi | Rapor çıktısı (veri etkilenmez) | PF-070 | 60 | |
| ERR-OBS-071 | GÖZLEMLENMİŞ | S2 | Bakiye ekstresi / bilanço / rapor zaman aşımı (timeout) | 'bakiye ekstresi timeout' / 'bilanço zaman aşımı' | SQL: FN Reports.BakiyeListesi; Bilanco fonksiyonları; Cari.Islemler indeksleri; Sistem.Kurlar | sorgu/fonksiyon performansı ve indeks eksikliği | Cari.Islemler / BakiyeIslem (kilit/timeout sırasında yarım yazım) | PF-071 | 75 | |
| ERR-OBS-072 | GÖZLEMLENMİŞ | S3 | Hizmet / masraf / komisyon işlemi ve tanımı | 'hizmet tanımlama' / 'hizmet işlemi' / 'masraf çıkışı' | SQL: Cari.Islemler; Stok.Hizmet | ekran davranışı (eğitim) / tanım | PF-072 | 60 | ||
| ERR-OBS-073 | GÖZLEMLENMİŞ | S3 | Üçüncü parti entegrasyon (NetEkstre, banka, MT5/senkronizasyon) | 'netekstre entegrasyonu' / 'MT5 to ERP senkronizasyonu' | SQL: ? | ? | PF-073 | 60 | ||
| ERR-OBS-074 | GÖZLEMLENMİŞ | S2 | Lisans aşıldı / her açılışta yeniden lisans istiyor | 'lisans aşıldı hatası' / 'tekrar lisans istiyor' | SQL: Sistem.Clients (SerialKey, bilgisayar adı) | bilgisayar adı çakışması / config.cfg yeniden yazılması | Sistem.Users / UserGroup / UserDetails | PF-074 | 70 | |
| ERR-OBS-075 | GÖZLEMLENMİŞ | S3 | ERP Mobil / web kurulumu ve bağlantısı | 'ERP mobil kurulumu' / 'mobil giriş yapılamıyor' | SQL: sunucu kaydı IP (PROC-129); Sistem.Users (varsayım) | sunucu IP/port yapılandırması | PF-075 | 65 | ||
| ERR-OBS-076 | GÖZLEMLENMİŞ | S1 | Maden maliyeti tuhaf / çok yüksek / bir günde sıçradı | 'maden maliyet sorunu' / 'maliyet bozuk' | SQL: FN Stok.GetMadenMaliyeti (TOP 50, güncel kur) | maliyet fonksiyonu tasarımı (TD-23) + hatalı giriş | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-076 | 70 | |
| ERR-OBS-077 | GÖZLEMLENMİŞ | S1 | Virman hatalı / bir hesapta var diğerinde yok | 'virman probleminde karşı bacağı bulamıyor' / 'virman problemi' | SQL: Cari.Islemler (iki satır) | ikinci bacak kaydı başarısız; transaction yok (TD-01) | Virmanda BORÇ seçince başlık 'VIRMAN GIRIS' (H-064); Hedef hesap bulunamıyor (H-065); VaryantId karşı işlem Id'si tutuyor — ad yanıltıcı (TD-39) | PF-077 | 75 | |
| ERR-OBS-078 | GÖZLEMLENMİŞ | S2 | MASAK yasaklı sorgusu / şüpheli işlem raporu / OptimalScan | 'şüpheli işlemler raporu' / 'MASAK güncellemesi' / 'yasaklı sorgulama entegrasyonu' | SQL: ? (OptimalScan entegrasyonu, MASAK rapor sorguları) | mevzuat/entegrasyon yapılandırması | Rapor çıktısı (veri etkilenmez) | PF-078 | 70 | |
| ERR-OBS-079 | GÖZLEMLENMİŞ | S3 | Terazi miktarı ekrana gelmiyor / terazi ayarları | 'terazi ayarları' / 'terazi miktarını yansıtmıyor' | SQL: Sistem.Clients (ComPort/BaudRate — CFG-CLIENT-COMPORT GAP) | kablo/port/baud yapılandırması | PF-079 | 75 | ||
| ERR-OBS-080 | GÖZLEMLENMİŞ | S2 | Perakende / peşin işlem ekranı / gişe | 'peşin işlem ekranı' / 'perakende satış ekranı' | SQL: Cari.Islemler (IslemKodu perakende) | ekran kuralları/eşikler (eğitim) | Belirtilen SQL nesnesi / ekran verisi | PF-080 | 60 | |
| ERR-OBS-081 | GÖZLEMLENMİŞ | S3 | Diğer / sınıflanamayan (belirtisiz başlık) | ? | SQL: ? | ? | PF-081 | 10 | ||
| ERR-OBS-082 | GÖZLEMLENMİŞ | S2 | H-001 — Program açılışında bağlantı ayarları ekranı geliyor / sunucuya bağlanamıyor | Program açılınca giriş ekranı yerine bağlantı ayarları (Configuration Settings) penceresi çıkıyor ya da "bağlanılamadı" | Örnek adı bilinmiyorsa sunucuda `Select @@SERVERNAME` çalıştırılır; sonuçta "\" işaretinden sonraki bölüm örnek adıdır. | Sunucu adı yanlış girilmiş, SQL örnek (instance) adı yazılmamış, ya da klavyede CAPS LOCK açıkken şifre girilmiş. | Sistem.Users / UserGroup / UserDetails | PF-006 | 85 | |
| ERR-OBS-083 | GÖZLEMLENMİŞ | S2 | H-002 — Ek kullanıcı bilgisayarından programa girilemiyor | Ana bilgisayarda program çalışıyor; ikinci (ek kullanıcı) bilgisayarda açılışta bağlantı hatası alınıyor. | Ek kullanıcı bilgisayarındaki bağlantı ayarında sunucu adı/adresi yanlış ya da ana bilgisayarın adresi değişmiş. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-059 | 70 | ||
| ERR-OBS-084 | GÖZLEMLENMİŞ | S2 | H-003 — Program bazen bağlanıyor, bazen bağlanamıyor; ek kullanıcılar kopuyor | Aynı bilgisayardan bazen giriş yapılıyor, bazen bağlantı hatası çıkıyor; özellikle ek kullanıcılarda. | Windows güvenlik duvarı veya virüs koruması SQL bağlantısını engelliyor. | Sistem.Users / UserGroup / UserDetails | PF-006 | 85 | ||
| ERR-OBS-085 | GÖZLEMLENMİŞ | S2 | H-004 — Sunucunun adresi değiştiği için bağlantı kopuyor | Ek kullanıcılar bir gün çalışıp ertesi gün bağlanamıyor; ana bilgisayar yeniden başlatılınca sorun başlıyor. | Sunucu bilgisayara ağdan otomatik (değişken) adres veriliyor. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-006 | 70 | ||
| ERR-OBS-086 | GÖZLEMLENMİŞ | S2 | H-005 — "A cursor with the name ... already exists" hatası | İşlem kaydederken ekrana İngilizce "cursor ... already exists" içeren bir hata geliyor; sonraki kayıtlar da hata veriyor | Bir önceki kayıt sırasında sunucu tarafında yarım kalan bir işlem bağlantıyı kilitlemiş. | Cari.Islemler / BakiyeIslem (kilit/timeout sırasında yarım yazım) | PF-006 | 70 | ||
| ERR-OBS-087 | GÖZLEMLENMİŞ | S2 | H-006 — İşlem kaydediliyor ama bakiye ve stok hiç oluşmuyor | İşlem listesinde satır görünüyor, fakat müşteri bakiyesi ve stok listesi hiç etkilenmiyor. Hata mesajı yok. | ```sql Select name, is_disabled From sys.triggers Where parent_id = OBJECT_ID('Cari.Islemler') ``` `AcceptTransaction` için `is_disabled = 1` ise `Alter Table Cari.Islemler ENABLE TRIGGER ALL` çalıştı | İşlem kaydını bakiye ve stok defterine yazan otomatik kural sunucuda kapatılmış (genellikle devir veya bakım sırasında kapatılıp açılması unutulmuş). | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-034 | 85 | |
| ERR-OBS-088 | GÖZLEMLENMİŞ | S2 | H-007 — "BU VERI TABANI ISLEME KAPATILMISTIR." mesajı | Herhangi bir işlem kaydedilmek istendiğinde büyük harflerle "BU VERI TABANI ISLEME KAPATILMISTIR." uyarısı çıkıyor. | Program, devir sonrasında arşive alınan **önceki yılın** veritabanına bağlı. Arşiv veritabanı bilinçli olarak işleme kapatılmıştır; yalnız bakılabilir. | Belirtilen SQL nesnesi / ekran verisi | PF-006 | 70 | ||
| ERR-OBS-089 | GÖZLEMLENMİŞ | S2 | H-008 — Devir sonrası "geçen yılın işlemleri kayboldu" | Yıl sonu devrinden sonra hesabın eski işlemleri listede görünmüyor; bakiye tek satır "DEVİR" olarak geliyor. | Bu bir hata değildir. Devirde önceki yılın işlemleri ayrı (arşiv) veritabanına alınır; güncel veritabanında yalnız devir bakiyesi ve devir stoğu kalır. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-069 | 85 | ||
| ERR-OBS-090 | GÖZLEMLENMİŞ | S2 | H-009 — Kullanıcı adı / şifre kabul edilmiyor | Giriş ekranında doğru bilindiği hâlde kullanıcı adı veya şifre reddediliyor. | CAPS LOCK açık; kullanıcı henüz tanımlanmamış; ya da kullanıcı silinmiş. | Sistem.Users / UserGroup / UserDetails | PF-010 | 70 | ||
| ERR-OBS-091 | GÖZLEMLENMİŞ | S2 | H-010 — Yeni kullanıcı girdi ama şube/kasa seçemiyor, hiçbir ekran açılmıyor | Kullanıcı giriş yapıyor; şube-kasa listesi boş geliyor ya da programda hiçbir menü çalışmıyor. | Kullanıcı tanımlanırken şube, kasa ve yetki grubu ataması yapılmamış. | Sistem.Users / UserGroup / UserDetails | PF-010 | 70 | ||
| ERR-OBS-092 | GÖZLEMLENMİŞ | S2 | H-011 — "İşlem Düzeltme Yetkiniz Yok." / "İşlem İptal Etme Yetkiniz Yok." | İşlem listesinde **DÜZELT** veya **İPTAL** butonuna basılınca bu mesaj çıkıyor; ya da butonlar hiç görünmüyor. | Kullanıcının bağlı olduğu yetki grubunda işlem düzeltme / iptal yetkisi kapalı. | Sistem.Users / UserGroup / UserDetails | PF-020 | 70 | ||
| ERR-OBS-093 | GÖZLEMLENMİŞ | S2 | H-012 — Bazı işlem ekranları (TAKOZ, EMTİA, ÇEŞNİ, vb.) menüde görünmüyor veya düzeltmeye açılmıyor | Ana menüdeki bazı butonlar yok; ya da işlem listesinden bir takoz/emtia satırına **DÜZELT** deyince hiçbir şey olmuyor. | Yetki grubunda ilgili modül (takoz işlemleri, emtia işlemleri vb.) kapalı. Program yetkisiz modülün düzeltme ekranını açmaz ve mesaj vermez. | Sistem.Users / UserGroup / UserDetails | PF-020 | 85 | ||
| ERR-OBS-094 | GÖZLEMLENMİŞ | S2 | H-013 — Lisans girişi nasıl yapılır | Program lisans istiyor. | İlk kurulum, bilgisayar değişikliği ya da lisans süresinin dolması. | Sistem.Users / UserGroup / UserDetails | PF-002 | 70 | ||
| ERR-OBS-095 | GÖZLEMLENMİŞ | S2 | H-014 — Program her açılışta yeniden lisans istiyor | Lisans girildiği hâlde ertesi gün (ya da başka bir bilgisayardan giriş yapılınca) yeniden lisans isteniyor. | Bağlı istemciler `Sistem.Clients` tablosunda `BİLGİSAYARADI\KULLANICIADI` biçiminde görünür. Farklı adreslerden gelen aynı ad, lisans çakışmasının kanıtıdır. | İki olası neden: (a) ağdaki iki bilgisayarın **bilgisayar adı ve Windows kullanıcı adı aynı**; program bunları tek istemci sanıp birbirinin lisansını düşürüyor. | Sistem.Users / UserGroup / UserDetails | PF-074 | 85 | |
| ERR-OBS-096 | GÖZLEMLENMİŞ | S2 | H-015 — "Lütfen Form Şifresini Giriniz" | Bir rapor veya özel ekran açılırken şifre isteniyor. | O rapor/ekran tanımlanırken şifre konmuş (yönetim raporları için bilinçli bir kısıt). | Sistem.Users / UserGroup / UserDetails | PF-065 | 70 | ||
| ERR-OBS-097 | GÖZLEMLENMİŞ | S2 | H-016 — "Lütfen İşlem Yapabilmek İçin Kart Şifresini Giriniz." | Karşı hesap seçilirken veya şifreli bir hesap açılırken kart şifresi soruluyor. | Hesap, **Master (şifreli) hesap** grubuna bağlanmış. | Sistem.Users / UserGroup / UserDetails | PF-065 | 70 | ||
| ERR-OBS-098 | GÖZLEMLENMİŞ | S2 | H-017 — Master hesap şifresi tanımlandı ama hesap şifresiz açılıyor | **Hesap Yönetimi > Master** ile şifreli hesap tanımlandı, hesap kartında bağlandı; yine de şifre sorulmuyor. | Tanımdan sonra Sistem Yenile yapılmamış. | Sistem.Users / UserGroup / UserDetails | PF-065 | 70 | ||
| ERR-OBS-099 | GÖZLEMLENMİŞ | S2 | H-018 — "Lütfen Yönetici Şifrenizi Giriniz" (Fiş No ile iptal) | İşlem listesinde **İPTAL (FişNo)** kullanılınca yönetici şifresi soruluyor. | Fiş numarasıyla toplu iptal, aynı fişteki tüm satırları o kasada iptal ettiği için yönetici şifresine bağlanmıştır. | Sistem.Users / UserGroup / UserDetails | PF-062 | 85 | ||
| ERR-OBS-100 | GÖZLEMLENMİŞ | S2 | H-019 — Aifa Developer Studio / Rapor tasarımı sekmesi görünmüyor | Rapor eklemek veya düzenlemek için gereken sekme menüde yok. | Bu sekme yalnız ADMIN kullanıcısında görünür. | Rapor çıktısı (veri etkilenmez) | PF-004 | 70 | ||
| ERR-OBS-101 | GÖZLEMLENMİŞ | S3 | H-020 — Yeni tanımlanan birim / hesap / vadeli kod listelerde çıkmıyor | **BİRİM LİSTESİ**, **HESAPLAR** veya **VADELİ İŞLEM KODLARI**'nda yeni kayıt yapıldı; işlem ekranındaki seçim listelerin | Program tanım listelerini açılışta belleğe alır; yeni tanım için yenileme gerekir. | PF-021 | 70 | |||
| ERR-OBS-102 | GÖZLEMLENMİŞ | S3 | H-021 — Hesap kartında bakiyesi olmayan birim görünmüyor (veya görünmesi isteniyor) | Müşterinin USD bakiyesi 0 olduğu için cari kartın ALACAK/BORÇ bölümünde USD satırı yok; personel "birim silindi" sanıyor | Birim tanımında **Sabit** kutucuğu işaretli değil. Sabit olmayan birimler yalnız bakiyesi varken listelenir. | PF-023 | 85 | |||
| ERR-OBS-103 | GÖZLEMLENMİŞ | S3 | H-022 — Yeni birimin kuru yanlış çarpanla geliyor | Yeni tanımlanan birimde fiyat alanı beklenenin katı/kesri geliyor. | Birim tanımındaki **Çarpan** alanı 1 dışında bir değer. | PF-023 | 70 | |||
| ERR-OBS-104 | GÖZLEMLENMİŞ | S3 | H-023 — Aynı birim listede iki kez var | Birim listesinde aynı kod iki satır; pozisyon ve hacim raporunda aynı birim iki kez görünüyor. | Birim iki kez tanımlanmış (genellikle silinen birimin yeniden açılması). | PF-023 | 85 | |||
| ERR-OBS-105 | GÖZLEMLENMİŞ | S3 | H-024 — Belge akışı bayrağı (IsResmi/ResmiKasa) kapalı — Seri İşlemler şeridi ve stok listesi görünmüyor | Kullanıcının ticket dilindeki belirti: kontrol görünümüne (ekran etiketi "resmi", legacy) geçince stok listeleri boş; be | Şube kartında `IsResmi` ya da kasa kartında `ResmiKasa` bayrağı kapalı (ekran etiketleri "RESMİ ŞUBE" / "RESMİ KASA" — legacy adlandırma; bayraklar yetkili mües | PF-014 | 70 | |||
| ERR-OBS-106 | GÖZLEMLENMİŞ | S3 | H-025 — Yeni şubede bilanço boş veya yanlış birimde geliyor | Yeni açılan şubede bilanço raporu boş ya da toplamlar beklenen birimde değil. | Şube tanımında **Bilanço** ve **Birim** alanları seçilmeden kaydedilmiş. | PF-005 | 70 | |||
| ERR-OBS-107 | GÖZLEMLENMİŞ | S3 | H-026 — Maden stok adı değiştirilemiyor | **MADEN STOK TANIMLAMA**'da bir ürünün adını değiştirip kaydetmeye çalışınca program kabul etmiyor. | Üründe stok hareketi var; program hareketli stoğun adının değiştirilmesine izin vermez. | PF-021 | 70 | |||
| ERR-OBS-108 | GÖZLEMLENMİŞ | S3 | H-027 — Maden stok milyemi değiştirilemiyor / ekranda milyem kutusu kilitli | MADEN ekranında **MİLYEM** alanına yazılamıyor; ya da stok tanımında milyem güncellenmiyor. | Stok kartında milyemin "değişmez" olduğu ayarlanmış. | PF-021 | 70 | |||
| ERR-OBS-109 | GÖZLEMLENMİŞ | S3 | H-028 — Peşin maden satışında fiyat has'a göre geliyor, gram üzerinden olması isteniyor | PEŞİN maden satışında **FİYAT** alanı ürünün has karşılığına göre hesaplanıyor; müşteri gram fiyatı istiyor. | Stok kartında fiyat tipi has olarak tanımlı. | PF-056 | 70 | |||
| ERR-OBS-110 | GÖZLEMLENMİŞ | S3 | H-029 — HURDA ekranı açılıyor ama F2 hiçbir şey yapmıyor | HURDA ekranında alanlar dolduruluyor, **F2 - KAYIT** basılıyor, ne kayıt oluyor ne mesaj çıkıyor. | HURDA ekranı stok kodunu sabit "995" olarak arar. Bu kodda bir hurda stoğu tanımlı değilse ekran sessizce hiçbir şey yapmaz. | PF-056 | 70 | |||
| ERR-OBS-111 | GÖZLEMLENMİŞ | S3 | H-030 — Vadeli işlemde çarpan yanlış | VADELİ ekranında miktar × fiyat çarpımı beklenenden farklı (ör. 1000 kat) çıkıyor. | Vadeli işlem kodunun **Çarpan** alanı yanlış. | PF-042 | 70 | |||
| ERR-OBS-112 | GÖZLEMLENMİŞ | S3 | H-031 — Vadeli birimlerin sırası değiştirilmek isteniyor | VADELİ ekranında kodlar istenen sırada değil. | `Select * from Sistem.Vadeli` ile mevcut sıra görülür; yer değiştirecek iki kaydın sıra alanı `Update` ile karşılıklı değiştirilir. Her iki kayıt için ayrı `Update` gerekir. | Sıra numarası tanımda değiştirilemiyor. | PF-042 | 85 | ||
| ERR-OBS-113 | GÖZLEMLENMİŞ | S3 | H-032 — Parite fiyatı tersten geliyor | VADELİ ekranında örneğin HASEUR bağlantısı yapılırken fiyat 47.790 olması gerekirken bambaşka bir değer geliyor. | **PARİTE TANIMLAMA**'da aynı çift için ters yönlü (ör. EUR/HAS) bir parite de tanımlı; program yanlış yönü seçiyor. | PF-042 | 70 | |||
| ERR-OBS-114 | GÖZLEMLENMİŞ | S3 | H-033 — Model stoklarında görsel gelmiyor | Model tanımında görsel adı yazıldığı hâlde resim görünmüyor. | Resim dizini tanımlı değil ya da dosya beklenen klasörde değil. | PF-055 | 70 | |||
| ERR-OBS-115 | GÖZLEMLENMİŞ | S3 | H-034 — Hesaba göre takoz çıkış işçiliği sabitlenmek isteniyor | Belirli bir müşteride her takoz çıkışında işçilik elle yazılıyor. | Hesap kartında takoz işçiliği tanımlı değil. | 70 | ||||
| ERR-OBS-116 | GÖZLEMLENMİŞ | S3 | H-035 — İstatistik kodu gelmiyor / "Lütfen Istatistik Kodunu Giriniz." | E-belge veya fatura keserken istatistik kodu boş; program "Lütfen Istatistik Kodunu Giriniz." diyor. | `FN.TEST_ISTATISTIK_KODU @IslemId` çalıştırılır: birinci liste hesabın türü ve hukuki kodunu, ikinci liste o tür için `Cari.Istatistik` tanımlarını, üçüncüsü hesaplanan kodu gösterir. Kod boş geliyors | Hesabın **hesap türü** ve **hukuki kodu** için istatistik kodu tanımlanmamış. | PF-057 | 85 | ||
| ERR-OBS-117 | GÖZLEMLENMİŞ | S2 | H-036 — F2'ye basılıyor, hiçbir şey olmuyor, mesaj da yok | Ekran dolduruldu, **F2 - KAYIT** basıldı; ne kayıt oluştu ne uyarı çıktı. | Ekranların çoğu, zorunlu bir seçim eksikse **sessizce** çıkar: stok kodu seçilmemiş, hesap seçilmemiş, HURDA'da 995 kodlu stok yok (H-29), TAKOZ Ç'de takoz seçi | Belirtilen SQL nesnesi / ekran verisi | PF-012 | 70 | ||
| ERR-OBS-118 | GÖZLEMLENMİŞ | S2 | H-037 — "Sube,Kasa veya Hesap Seçili Değil. İşlem Yapamazsınız." | Kayıt anında bu mesaj çıkıyor. | Cari İşlemler'de hesap seçilip **TAMAM** denmeden işlem ekranı açılmış; ya da kullanıcının şube/kasa ataması yok (H-10). PARİTE (X) ekranında bir işlem düzeltil | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-012 | 70 | ||
| ERR-OBS-119 | GÖZLEMLENMİŞ | S2 | H-038 — "İşlem Yapabilmek için Miktar Girmelisiniz." | Kayıtta bu mesaj çıkıyor. | **MİKTAR** alanı 0. HİZMET ekranında miktar alanı olmadığı için bu mesaj **TUTAR** boş demektir. Adetli stokta adet girilmiş ama miktar hesaplanmamışsa da çıkar | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-012 | 70 | ||
| ERR-OBS-120 | GÖZLEMLENMİŞ | S2 | H-039 — "Lütfen Tutar Giriniz." — özellikle PEŞİN işlemde | PEŞİN/BEDELLİ/MİKTAR tipli işlemde veya NAKİT ekranında bu mesaj çıkıyor; oysa miktar girilmiş. | **TUTAR** 0 hesaplanmış. En sık sebep: **kur listesi girilmemiş** (fiyat 0 geliyor → tutar 0). İkinci sebep: **BİRİM** seçilmemiş ya da birimin nakit karşılığı | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-045 | 70 | ||
| ERR-OBS-121 | GÖZLEMLENMİŞ | S2 | H-040 — "Geçmiş Tarihe İşlem Giriyorsunuz. Devam Etmek İstiyormusunuz ?" | Kayıt anında bu soru çıkıyor. | Hesap seçim panelindeki **TARİH** bugünden eski. Bilinçli geçmiş tarihli kayıt yapılıyorsa normaldir; değilse önceki işlemden kalan tarih unutulmuştur. | Belirtilen SQL nesnesi / ekran verisi | PF-058 | 70 | ||
| ERR-OBS-122 | GÖZLEMLENMİŞ | S2 | H-041 — "Satım Fiyatınız X Fiyattan %Y farklı. Bu İşlemi Dikkatli Gerçekleştiriniz. Devam Etmek istiyor musunuz?" | NAKİT, VADELİ, PARİTE veya PERAKENDE (döviz) işleminde bu uyarı çıkıyor. | Girilen fiyat, pano fiyatından **Settings > İzinler > İşlem Kur Farkı Yüzdeliği (%)** ile belirlenen orandan fazla sapıyor. Ya fiyat yanlış yazılmış ya da kur l | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-045 | 70 | ||
| ERR-OBS-123 | GÖZLEMLENMİŞ | S2 | H-042 — "Hesap Limiti Aşılıyor. İşlemi Kayıt Edemezsiniz..! Kalan Müşteri Limiti N HAS" | MADEN/HURDA/NAKİT çıkışında (PEŞİN dışı) bu mesaj çıkıyor. | Şubede limit kontrolü açık ve müşterinin hesap kartındaki has cinsinden limiti dolmuş. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-060 | 70 | ||
| ERR-OBS-124 | GÖZLEMLENMİŞ | S2 | H-043 — Hesap seçildi ama işlem butonları görünmüyor; "Seçili Hesap Pasif (...)" / "Master Hesap Pasif (...)" | Hesap seçilip **TAMAM** denince alt menüdeki işlem butonları, **DÜZELT** ve **İPTAL** yok; bilgi panelinde pasif yazısı | Hesap kartı ya da bağlı olduğu master hesap **pasif** durumda. Parantez içinde pasife alınma açıklaması yazar. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-060 | 70 | ||
| ERR-OBS-125 | GÖZLEMLENMİŞ | S2 | H-044 — Belirli bir müşteride kayıt hiç çalışmıyor, diğer müşterilerde çalışıyor | Aynı ekrandan başka hesaba kayıt oluyor; bu hesapta F2 basılınca kayıt oluşmuyor ya da "işlem geri alındı" türünde bir h | `Select * from Cari.GetGerekliEvraklar(@HesapId)` boş dönmüyorsa kayıt otomatik kural tarafından geri alınıyordur. Evrak veritabanı (`DOCUMENTS`) sunucuda yoksa **hiçbir hesaba** kayıt yapılamaz: `Sel | Hesabın **zorunlu evrakı (kimlik / uyum belgesi) eksik**. Evrak zorunluluğu açık olan sistemlerde eksik evraklı hesaba hiçbir işlem yazılamaz. Şube pasifse de a | Belirtilen SQL nesnesi / ekran verisi | PF-012 | 85 | |
| ERR-OBS-126 | GÖZLEMLENMİŞ | S2 | H-045 — Fiyat alanı satışta da alış kurunu getiriyor | ÇIKIŞ/SATIŞ seçildiği hâlde **FİYAT** alanına kur listesinin ALIŞ değeri geliyor. | Programın davranışıdır: kur listesinden fiyat alanına gelen değer, yön ne olursa olsun **ALIŞ** kurudur. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-045 | 70 | ||
| ERR-OBS-127 | GÖZLEMLENMİŞ | S2 | H-046 — Kur değişti ama ekrandaki fiyat eski | Pano/kur listesi güncellendi; açık duran işlem ekranında **FİYAT** hâlâ eski. | Program kur listesini 15 saniyede bir yeniler, fakat açık ekrandaki fiyat alanı kendiliğinden değişmez. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-045 | 70 | ||
| ERR-OBS-128 | GÖZLEMLENMİŞ | S2 | H-047 — "Karşı Hesaba Transfer Edilemedi. Lütfen İşlemi Manuel Olarak Gerçekleştiriniz." / "Karşı Hesaba İşlem Yapılamadı." | **KARŞI HESAP** = EVET ile kayıt yapılırken bu mesaj çıkıyor. | Ana kayıt yazıldı, karşı hesaba yazılacak ikinci satır başarısız oldu (karşı hesap pasif, evrakı eksik, şifreli, limiti dolu vb.). **Ana satır silinmez**; tek t | Sistem.Users / UserGroup / UserDetails | PF-077 | 85 | ||
| ERR-OBS-129 | GÖZLEMLENMİŞ | S2 | H-048 — "Lütfen Adet Giriniz." | MADEN'de kayıt anında bu mesaj. | Seçilen stok **adetli** (künye, bilezik gibi sabit gramlı ürün) tanımlı; **ADET** 0. | Belirtilen SQL nesnesi / ekran verisi | 70 | |||
| ERR-OBS-130 | GÖZLEMLENMİŞ | S2 | H-049 — Milyem yazıyorum, siliniyor; işçilik fiyatı kendiliğinden değişiyor | **MİLYEM** alanına stok milyeminden yüksek bir değer yazılınca değer eski hâline dönüyor ve **FİYAT** (işçilik) artıyor. | Peşin olmayan işlemde program, stok milyeminin üstündeki farkı işçiliğe çevirir; milyemi karttaki değere geri alır. Bilinçli bir davranıştır. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-056 | 70 | ||
| ERR-OBS-131 | GÖZLEMLENMİŞ | S2 | H-050 — Aynı üründe bu müşteriye başka işçilik/birim geliyor | ÇIKIŞ'ta **FİYAT** ve **BİRİM** alanları her müşteride farklı doluyor; ekranda bunu gösteren bir işaret yok. | Müşteriye özel fiyat tanımı var; program çıkışta önce müşteriye özel fiyatı, yoksa stok fiyatını getirir. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-056 | 70 | ||
| ERR-OBS-132 | GÖZLEMLENMİŞ | S2 | H-051 — Maden giriş/çıkışında işçilik TL olarak alınmak/verilmek isteniyor | İşçilik has yerine TL ile hesaplanmak isteniyor. | Varsayılan işçilik birimi has. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-056 | 70 | ||
| ERR-OBS-133 | GÖZLEMLENMİŞ | S2 | H-052 — Has fiyat tipli üründe TUTAR ÷ MİKTAR fiyatı vermiyor | İşlem listesinde tutar, miktar ile fiyatın çarpımına eşit değil; "fiyat yanlış kaydedilmiş" sanılıyor. | Stok kartının fiyat tipi **Has** ise tutar has miktarı üzerinden hesaplanır (has × fiyat), fakat işlem satırına miktar **gram** olarak yazılır. Aynı durum TAŞ e | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-056 | 85 | ||
| ERR-OBS-134 | GÖZLEMLENMİŞ | S2 | H-053 — F.TİPİ seçimim geri dönüyor | HURDA'da **F.TİPİ** Has/Miktar seçiliyor; işlem türü, tipi veya stok değiştirilince eski varsayılana dönüyor. | Bu üç alandan biri değişince fiyat tipi genel ayara sıfırlanır. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-034 | 70 | ||
| ERR-OBS-135 | GÖZLEMLENMİŞ | S2 | H-054 — HURDA'da MAHSUP seçince fiyat girilebiliyor ama tutar 0 kaydediliyor | MAHSUP tipli hurda kaydında fiyat/tutar yazıldı, kayıtta **TUTAR** 0. | HURDA ekranında MAHSUP tutar hesabına dahil değildir (MADEN ekranında dahildir). Program MAHSUP'ta tutar kontrolü de yapmaz. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-056 | 70 | ||
| ERR-OBS-136 | GÖZLEMLENMİŞ | S2 | H-055 — Fiyat kutusu 1'e kilitli, kur giremiyorum | NAKİT'te **FİYAT** alanı 1 yazıyor ve değiştirilemiyor. | Seçilen **BİRİM**, stok kodunun ana birimiyle aynı (USD stoğuna USD birimi gibi). Aynı birimde kur olmaz. | Cari.Islemler / BakiyeIslem (kilit/timeout sırasında yarım yazım) | 70 | |||
| ERR-OBS-137 | GÖZLEMLENMİŞ | S2 | H-056 — "«BİRİM» AnaBirimine Ait Nakit Stokgu Bulunamadı!" | NAKİT'te PARİTE tipli işlemde bu mesaj çıkıyor (yazım hatası programda böyledir). | Seçilen karşılık biriminin nakit stok kartı yok. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-039 | 70 | ||
| ERR-OBS-138 | GÖZLEMLENMİŞ | S2 | H-057 — Parite/çapraz işlemde müşteri dövizini verdi, karşılığı hesapta görünmüyor | NAKİT (PARİTE tipi) veya PARİTE (X) ekranından yapılan işlemde yalnız bir birim hareket etmiş; ikinci bacak yok. | Bu ekranlar iki ayrı satır yazar. İkinci satır kaydedilemezse (tutar 0, kur sapması uyarısına Hayır, karşı stok yok) **birinci satır silinmez**. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-048 | 85 | ||
| ERR-OBS-139 | GÖZLEMLENMİŞ | S2 | H-058 — NAKİT'te EMANET seçtim, iki satırlı parite kaydı oluştu | İşlem tipi EMANET seçildi; listede iki nakit satırı belirdi. | Bu ekranda seçim listesinin üçüncü sırası bazı kurulumlarda PARİTE olarak yorumlanır. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-048 | 85 | ||
| ERR-OBS-140 | GÖZLEMLENMİŞ | S2 | H-059 — Yazdığım miktar siliniyor / kendiliğinden değişiyor | ÇEVİR'de **MİKTAR** girildikten sonra işlem türü (ALACAK/BORÇ) veya **KODU** değiştirilince miktar bakiyeyle doluyor ya | Program, tür veya kod değişince miktar alanını hesabın o birimdeki bakiyesiyle doldurur; bakiye yönü seçilen türle uyuşmuyorsa alanı temizler. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-030 | 70 | ||
| ERR-OBS-141 | GÖZLEMLENMİŞ | S2 | H-060 — "TL Birimi Bulunamadı" / "«KOD»TL Karşılığı Vadeli Kodu Bulunamadı" | VADELİ'de ARBİTRAJ veya FATURA tipli işlemde bu mesajlardan biri çıkıyor. | Karşılık satırı için gereken TL birimi ya da seçilen kodun TL karşılığı vadeli kod tanımlı değil. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-042 | 85 | ||
| ERR-OBS-142 | GÖZLEMLENMİŞ | S2 | H-061 — VADELİ'de FATURA seçtim, iki satır oluştu | Fatura kesmek için tip FATURA seçildi; listede TL karşılıklı ikinci bir vadeli satır belirdi. | Bu ekranda NORMAL dışındaki tipler (ARBİTRAJ ve FATURA) çift satırlı parite yoluna girer. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-048 | 85 | ||
| ERR-OBS-143 | GÖZLEMLENMİŞ | S2 | H-062 — Aynı kod ve miktar, farklı müşteride farklı tutar | Ons bazlı vadeli işlemde aynı girişler iki hesapta farklı tutar veriyor. | Ons çarpanı önce **hesap kartından**, orada 0 ise genel ayardan alınır. Ekranda hangisinin kullanıldığı görünmez. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-048 | 70 | ||
| ERR-OBS-144 | GÖZLEMLENMİŞ | S2 | H-063 — "Virman İşlemlerinde Düzeltme Yapamazsınız. İptal Edip Tekrar Giriniz." / hatalı virman | Virman satırına **DÜZELT** deyince bu mesaj çıkıyor; ya da (eski sürümde) düzeltme yapıldı ama karşı hesap değişmedi. | Virman iki hesaba birer satır yazar. Güncel sürüm düzeltmeyi engeller; eski sürümlerde tek taraf düzeltilebildiği için karşı hesap eşi bozuk kalır. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-077 | 85 | ||
| ERR-OBS-145 | GÖZLEMLENMİŞ | S2 | H-064 — Virmanda BORÇ seçtim, başlık yeşil ve "VIRMAN GIRIS" yazıyor | Ekran başlığı ve rengi seçimle uyuşmuyor; raporda satır GİRİŞ/ÇIKIŞ olarak görünüyor. | VİRMAN, BORÇ (hesap borç/alacak) ve PARİTE (X) ekranları seçimi GİRİŞ/ÇIKIŞ olarak kaydeder; bakiye yönü doğrudur, yalnız başlık ve rapor etiketi farklıdır. | Rapor çıktısı (veri etkilenmez) | PF-077 | 85 | ||
| ERR-OBS-146 | GÖZLEMLENMİŞ | S2 | H-065 — Virman için hedef hesabı bulamıyorum | **KARŞI HESAP** listesinde aranan hesap yok. | Liste yalnız **giriş yapılan şubenin** hesaplarını gösterir; başka şubedeki hesaba virman yapılamaz. Yeni açılan hesap için Ctrl+F5 gerekir. | Sistem.Users / UserGroup / UserDetails | PF-077 | 70 | ||
| ERR-OBS-147 | GÖZLEMLENMİŞ | S2 | H-066 — "Has İşçiliği Girilmemiş. Devam Etmek İstiyormusunuz ?" / "Gumus İşçiliği Girilmemiş..." | TAKOZ G'de kayıt anında bu soru. | **AU İŞÇİLİK** / **AG İŞÇİLİK** fiyatı 0 ya da işçilik birimi boş. Takoz tipi seçilmemişse program varsayılan olarak has kabul eder ve gümüş takozunda da has iş | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-046 | 70 | ||
| ERR-OBS-148 | GÖZLEMLENMİŞ | S2 | H-067 — "Milyem Toplamı 1000'i Geçemez." | Raporlu takozda milyem kutusundan çıkınca bu mesaj; kutu boşalıyor. | **HAS MİLYEM + GUM MİLYEM + PT + PD** toplamı 1000'i aşıyor. | Rapor çıktısı (veri etkilenmez) | PF-046 | 70 | ||
| ERR-OBS-149 | GÖZLEMLENMİŞ | S2 | H-068 — "Has Takozu Giriyorsunuz. Has Milyemi Diğer Milyemlerden Düşük Olamaz..." (GUMUS / PLATİN / PALLADIUM sürümleri de var) | Raporlu takozda kayıt anında bu soru. | Seçilen takoz tipinin ana metal milyemi, diğer metallerin toplamından küçük. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-046 | 70 | ||
| ERR-OBS-150 | GÖZLEMLENMİŞ | S2 | H-069 — "Transfer İşlemlerinde Giriş İşlemi Yapamazsınız" | Şube hesabı seçiliyken TAKOZ G açılınca bu mesaj ve ekran kapanıyor. | Şubeler arası takoz hareketi TAKOZ G'den değil, transfer akışından yapılır. | Belirtilen SQL nesnesi / ekran verisi | PF-010 | 70 | ||
| ERR-OBS-151 | GÖZLEMLENMİŞ | S2 | H-070 — "«no» Numaralı Takoz Bulunamadı." / "«no» Nolu Takoz Bulunamadı Veya Elinizde Yok." | Barkod okutulunca veya seri takoz çıkışında takoz numarası yazılınca bu mesaj. | Takoz numarası yanlış, takoz başka şubede/kasada, ya da daha önce çıkışı yapılmış. | Belirtilen SQL nesnesi / ekran verisi | PF-046 | 70 | ||
| ERR-OBS-152 | GÖZLEMLENMİŞ | S2 | H-071 — Ekranda 100,50 gr yazıyordu, işlemde 100,00 görünüyor (çeşni) | TAKOZ G'de **MİKTAR / ÇEŞNİ** alanında çeşni 0,50 girildi; işlem listesinde miktar 100,00. | Ekrandaki has/işçilik hesapları çeşni **dahil** yapılır; işlem satırına miktar çeşni **hariç** yazılır, çeşni ayrı sütunda tutulur. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-046 | 85 | ||
| ERR-OBS-153 | GÖZLEMLENMİŞ | S2 | H-072 — TAKOZ C'de milyem kutuları boş; "takozun kimden geldiğini göremiyorum" | Çıkış ekranında takoz seçilince milyem kutuları boş; hesap adı, işlem no ve ayar evi alanları hiç dolmuyor. | Raporsuz takozda işlem satırına milyem yazılmaz; ekran 0 değerleri boş gösterir. Hesap adı/işlem no/ayar evi alanları bu sürümde doldurulmamaktadır (kapatılmış | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-046 | 85 | ||
| ERR-OBS-154 | GÖZLEMLENMİŞ | S2 | H-073 — Küçük takozun etiketi çıkmıyor | 30 gramın altındaki takozda kayıt sonrası etiket basılmıyor. | Etiket yalnız 30 gramın üstündeki takozlarda basılır; ayarlanabilir değildir. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-024 | 70 | ||
| ERR-OBS-155 | GÖZLEMLENMİŞ | S2 | H-074 — Seri kayıt modunda barkod okutunca anında kaydediyor | TAKOZ G'de **Seri Kayıt** işaretliyken yanlış barkod okundu, onay sorulmadan kaydedildi. | Seri kayıtta barkod okunur okunmaz kayıt yapılır; bu ekranda "Kaydetmek istiyor musunuz?" sorusu da kapalıdır. Extra takozlarda Pt/Pd durumu ikinci takozdan iti | Belirtilen SQL nesnesi / ekran verisi | PF-061 | 70 | ||
| ERR-OBS-156 | GÖZLEMLENMİŞ | S2 | H-075 — ÇEŞNİ ekranı 0 / 0 / 0 ile açılıyor | ÇEŞNİ ekranında miktar ve milyem sıfır; "elimde çeşni yok" görünüyor. | Ya gerçekten çeşni stoğu yok ya da çeşni stoğu sunucudan okunamadı (ekran hata göstermez). | Kurulum/bağlantı ayarları (veri etkilenmez) | 70 | |||
| ERR-OBS-157 | GÖZLEMLENMİŞ | S2 | H-076 — Bir önceki hizmet/grup/kategori yeni kayda taşındı; HAS kuru boş geldi | Ardışık hizmet kayıtlarında hizmet kartı, grup ve kategori değişmeden kaldı; ikinci kayıtta **KUR(HAS)** boş. | HİZMET ekranı kayıt sonrası yalnız tutar, kur, açıklama ve özel kodu temizler; hizmet/grup/kategori kalır. Kur alanı temizlenir ama yeniden doldurulmaz. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-072 | 70 | ||
| ERR-OBS-158 | GÖZLEMLENMİŞ | S2 | H-077 — İade veya belge takip tipli (11) hizmet kaydını düzeltmeye açınca işlem tipi yanlış geliyor | İADE ya da IslemTipi 11 (legacy adı RESMİ/FATURA; belge takip tipi) hizmet satırına **DÜZELT** deyince tip alanı boş/yan | Ekran bu iki tipi düzeltme açılışında doğru yükleyemez. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-072 | 85 | ||
| ERR-OBS-159 | GÖZLEMLENMİŞ | S2 | H-078 — 0 TL borç kaydı oluştu; ekranda ALACAK seçtim başlıkta "HESAP GIRIS" yazıyor | BORÇ ekranında tutar boş bırakılıp F2 basılınca sessizce 0 tutarlı satır oluştu; başlık seçimle uyuşmuyor. | BORÇ ekranında miktar ve tutar kontrolü yoktur; başlık GİRİŞ/ÇIKIŞ diliyle yazılır (H-64). | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-060 | 85 | ||
| ERR-OBS-160 | GÖZLEMLENMİŞ | S2 | H-079 — Ekrandaki TUTAR ile fişteki tutar farklı | PARİTE (X) ekranında görünen tutar ile kaydedilen/fişe basılan tutar farklı; özellikle karşılık TL değilken. | Ekran tutarı ikinci fiyata bölerek gösterir; kayda yalnız miktar × birinci fiyat yazılır. Karşılık TL ise ikisi eşittir. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | 70 | |||
| ERR-OBS-161 | GÖZLEMLENMİŞ | S2 | H-080 — PARİTE (X) kaydı düzeltilemiyor | Parite satırına **DÜZELT** deyince "Sube,Kasa veya Hesap Seçili Değil..." mesajı çıkıyor. | Bu ekran düzeltme desteklemez. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-048 | 85 | ||
| ERR-OBS-162 | GÖZLEMLENMİŞ | S2 | H-081 — Seçtiğim tarih kaydedilmedi | Seri işlem ekranındaki **TARİH** alanı değiştirildi; kayıt ana ekrandaki tarihle oluştu. | Bu ekranda tarih alanı görünür ama kayıtta hesap seçim panelindeki tarih kullanılır. | Belirtilen SQL nesnesi / ekran verisi | PF-058 | 70 | ||
| ERR-OBS-163 | GÖZLEMLENMİŞ | S2 | H-082 — "LÜTFEN BİR STOK SEÇİNİZ." / ürünü listede bulamıyorum | Seri işlemde alanlar gizli, başlıkta bu yazı; ya da ürün listesinde aranan kod yok. | Stok seçilmemiş. Liste yüklenirken bozuk bir stok kartı varsa liste **sessizce eksik** gelir. Hizmet ürünleri kodla değil "G"+açıklama ile listelenir; aynı açık | Belirtilen SQL nesnesi / ekran verisi | PF-039 | 70 | ||
| ERR-OBS-164 | GÖZLEMLENMİŞ | S2 | H-083 — "İşlemin Karşılığı Bulunamadı. Lütfen İşlemin Karşılığını Giriniz." | Seri işlemde fiş kapatılırken bu mesaj. | Kullanıcı grubunda "peşin kontrol" açık; fişin toplamı sıfırlanmamış (mal verildi, para alınmadı ya da tersi). | Sistem.Users / UserGroup / UserDetails | 85 | |||
| ERR-OBS-165 | GÖZLEMLENMİŞ | S2 | H-084 — "Bu Stok Su Anda Kullanılmıyor. Düzeltme İşlemi Yapamazsınız." | Seri işlemde eski bir satır düzeltilmek istenince bu mesaj. | Satırın stok kartı pasife alınmış. | Belirtilen SQL nesnesi / ekran verisi | PF-039 | 85 | ||
| ERR-OBS-166 | GÖZLEMLENMİŞ | S2 | H-085 — "İsimsiz Hesaplara 7000 TL Üzeri İşlem yapamazsınız." | Perakendede kayıt anında bu mesaj; işlem iptal. | Hesapta vergi dairesi ve vergi/kimlik numarası **ikisi de boş** ve tutar 7000 TL'yi aşıyor. Sınır programa gömülüdür. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-080 | 70 | ||
| ERR-OBS-167 | GÖZLEMLENMİŞ | S2 | H-086 — "Parakende Satış İşlemlerinde 3000 USD üzeri işlem Yapıyorsunuz. Devam Etmek istiyormusunuz?" | Maden veya döviz modunda bu soru. | Döviz karşılığı 3000 USD'yi aşıyor (programa gömülü uyarı eşiği). | Belirtilen SQL nesnesi / ekran verisi | PF-080 | 70 | ||
| ERR-OBS-168 | GÖZLEMLENMİŞ | S2 | H-087 — İşlem numarasını çağırdım, alım kaydı "SATIŞ" olarak açıldı | Düzeltmek için **İŞLEM NO** girildi; ekran her işlemi SATIŞ yönünde açıyor. | Perakende ekranı çağrılan kaydın yönünü doğru yüklemez; ayrıca düzeltmede fiş numarası yeniden üretilir ve RS Aktar kapanır. | Belirtilen SQL nesnesi / ekran verisi | PF-080 | 70 | ||
| ERR-OBS-169 | GÖZLEMLENMİŞ | S2 | H-088 — Eksik tahsilatla kayıt oldu; önceki müşterinin açıklaması yeni fişe geçti | **TAHSİLAT** eksik girildiği hâlde kayıt tam tutarla oluştu; **AÇIKLAMA**, **TUTAR**, **FİYAT** önceki işlemden kaldı. | Eksik tahsilat uyarısı yalnız görseldir, kaydı engellemez. Ekran kayıt sonrası yalnız adet, miktar, tahsilat ve para üstünü temizler. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-080 | 70 | ||
| ERR-OBS-170 | GÖZLEMLENMİŞ | S2 | H-089 — "Seçmiş Olduğunuz İşlem Yok yada Parakende Ekranından Yapılmamış." | **İŞLEM NO** ile kayıt çağrılınca bu mesaj. | Numara yanlış, işlem iptal edilmiş ya da başka ekrandan (MADEN/NAKİT) yapılmış. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-080 | 70 | ||
| ERR-OBS-171 | GÖZLEMLENMİŞ | S2 | H-090 — Perakendede kasa değiştiremiyorum | **KASA** alanı kilitli. | Ekran bir işlem ekranının içinden açıldıysa kasa kilitlidir; bağımsız açıldıysa kullanıcının kasa kilidi ayarı belirler. | Cari.Islemler / BakiyeIslem (kilit/timeout sırasında yarım yazım) | PF-063 | 70 | ||
| ERR-OBS-172 | GÖZLEMLENMİŞ | S2 | H-091 — "Bu Model Elinizde Mevcut. Giriş Yapamazsınız." / "Bu Model Elinizde Yok. Çıkış Yapamazsınız." | MODEL ekranında giriş veya çıkışta bu mesaj. | Ekranın adet sorgusu `Select 1 + IsNull(SUM(SAdet),0) ...` biçimindedir; hiç hareket yokken sonuç 1 döner ve ilk giriş reddedilir. Sorgu ilgili model için elle çalıştırılıp sonuç kontrol edilir. | Model tek adetli takip edilir: eldeki model tekrar giremez, elde olmayan çıkamaz. Yeni tanımlanan modelde "elinizde mevcut" mesajı alınıyorsa adet sayımı sorunu | Sistem.Users / UserGroup / UserDetails | PF-055 | 85 | |
| ERR-OBS-173 | GÖZLEMLENMİŞ | S2 | H-092 — TAŞ / PIRLANTA / MODEL ekranında F2 çalışmıyor | Klavyeden F2/F5/F3 basılınca tepki yok. | Bu üç ekranda klavye kısayolları tanımlı değildir. | Belirtilen SQL nesnesi / ekran verisi | PF-055 | 70 | ||
| ERR-OBS-174 | GÖZLEMLENMİŞ | S2 | H-093 — PIRLANTA'da PEŞİN seçince ekran hata veriyor | İşlem tipi PEŞİN seçildiği anda program hatası. | Pırlanta kartının maliyet birimine karşılık gelen nakit stok kartı tanımlı değil. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-055 | 70 | ||
| ERR-OBS-175 | GÖZLEMLENMİŞ | S2 | H-094 — GENEL ekranında kaydettikten sonra MİKTAR alanı önceki ürünün stoğuyla doldu | Kayıt sonrası ekran temizlenmedi; miktar alanında bir sayı belirdi. | GENEL ekranı stok kodunu temizlemez; ÇIKIŞ'ta miktar alanı seçili stoğun eldeki miktarıyla yeniden dolar. | Belirtilen SQL nesnesi / ekran verisi | PF-055 | 70 | ||
| ERR-OBS-176 | GÖZLEMLENMİŞ | S2 | H-095 — "«N» Numaralı İşlemde Mutabakat Yapılmış. Önceki İşlemleri Değiştiremezsiniz." | Eski bir işlem düzeltilmek/iptal edilmek istenince bu mesaj. | Hesapla mutabakat yapılmış; mutabakat numarasından önceki işlemlere dokunulamaz (ayar "işlem yapılamaz" ise) ya da PIN gerekir. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-012 | 70 | ||
| ERR-OBS-177 | GÖZLEMLENMİŞ | S2 | H-096 — "İşlem Tarihinden İtibaren N Gün Geçmiştir. İşlemi Düzeltmezsiniz." / "...İşlemi Yöneticiniz İptal Edebilir." | Belirli günden eski işlemde düzeltme/iptal engelleniyor. | **Settings > İzinler**'de düzeltme/silme günü ve "eski tarihe yapılamaz" seçeneği açık. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-012 | 70 | ||
| ERR-OBS-178 | GÖZLEMLENMİŞ | S2 | H-097 — Düzeltme/iptalde PIN soruluyor | **DÜZELT** veya **İPTAL** basılınca PIN penceresi. | **Settings > İzinler**'de "Silme Onayı = Pin Kodu Gerekir" ve/veya "Düzeltme Onayı = Pin Kodu Gerekir" işaretli. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-012 | 70 | ||
| ERR-OBS-179 | GÖZLEMLENMİŞ | S2 | H-098 — Silme onayında işlem duruyor, silinmiyor | Silme onayı listesinde onaylanan işlem listeden düşmüyor ya da işlem iptal olmuyor. | ```sql UPDATE Sistem.SilOnay SET IsDeleted = 1 WHERE TransactionId = «işlem no» ``` | Onay kaydı tamamlanmamış. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-037 | 85 | |
| ERR-OBS-180 | GÖZLEMLENMİŞ | S2 | H-099 — E-belgesi gönderilmiş işlem düzeltilemiyor / "GİB'e İletilmiş Faturaları İptal Edemezsiniz." | e-Döviz / e-Kıymetli Maden belgesi gönderilmiş (ETTN dolu) işlemde düzeltme ve iptal reddediliyor. | Belgeye ETTN numarası atanmış; program gönderilmiş belgeyi değiştirmez. | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-009 | 70 | ||
| ERR-OBS-181 | GÖZLEMLENMİŞ | S2 | H-100 — Yanlış yapılan işlem nasıl düzeltilir (standart akış) | İşlem yanlış girildi. | — | Belirtilen SQL nesnesi / ekran verisi | PF-012 | 85 | ||
| ERR-OBS-182 | GÖZLEMLENMİŞ | S2 | H-101 — Bir hesabın işlemleri başka hesaba aktarılmak isteniyor | Yanlış hesaba girilmiş bir grup işlem doğru hesaba taşınacak. | — | Belirtilen SQL nesnesi / ekran verisi | PF-067 | 70 | ||
| ERR-OBS-183 | GÖZLEMLENMİŞ | S2 | H-102 — Fiş numarası iki farklı güne yayılmış / iki kişi aynı fiş numarasını almış | Aynı fiş numarasında farklı tarihli veya farklı müşterili satırlar var; **İPTAL (FişNo)** beklenenden fazla satır siliyo | ```sql Select FisNo, Count(Distinct Cast(Tarih as date)) as Gun From Cari.Islemler Where IsDeleted = 0 And FisNo > 0 Group By FisNo Having Count(Distinct Cast(Tarih as date)) > 1 ``` --- | Fiş numarası "en büyük + 1" ile üretilir, kilit yoktur; iki kullanıcı aynı anda kaydedince aynı numara verilebilir. | Cari.Islemler / BakiyeIslem (kilit/timeout sırasında yarım yazım) | PF-012 | 85 | |
| ERR-OBS-184 | GÖZLEMLENMİŞ | S3 | H-103 — "Bakiye ters çıkıyor: müşteri alacaklı olması gerekirken borçlu görünüyor" | Müşteri mal getirdi, bakiyesi borç yazıyor (ya da tersi). | **İŞLEM** alanında yön ters seçilmiş. Kural: **GİRİŞ** = mal/para işletmeye giriyor → müşteri **alacaklanır** (yeşil); **ÇIKIŞ** = müşteriye veriliyor → müşteri | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | ||
| ERR-OBS-185 | GÖZLEMLENMİŞ | S1 | H-104 — "Müşteri parayı ödedi ama bakiyesi değişmedi" / "Bakiyesi değişti ama kasaya para girmedi" | Bakiye ile kasa birbirini tutmuyor. | İşlem tipi karışmış. **NORMAL**: bakiye ✓, stok ✓, kasa ✗. **PEŞİN**: bakiye ✗, stok ✓, kasa ✓. **MAHSUP**: bakiye ✗, stok ✓ (devir/sayım için). PEŞİN yapılması | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | ||
| ERR-OBS-186 | GÖZLEMLENMİŞ | S1 | H-105 — Bakiye "birden" değişti; kimse işlem yapmadı | Dün doğru olan bakiye bugün farklı. | Bir satır düzeltilmiş, iptal edilmiş ya da iptali geri alınmış. İptal edilen satır listeden kaybolur ama silinmez. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | ||
| ERR-OBS-187 | GÖZLEMLENMİŞ | S1 | H-106 — Virman yapıldı, bir hesapta var diğerinde yok | A hesabında virman satırı var; B hesabında karşılığı yok. İki bakiye toplamı tutmuyor. | Virman iki satır yazar; ikincisi başarısız olduysa (B pasif, evrakı eksik, şifreli) "Karşı Hesaba İşlem Yapılamadı." mesajı çıkmış ve ilk satır kalmıştır. Ya da | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | ||
| ERR-OBS-188 | GÖZLEMLENMİŞ | S2 | H-107 — Geçmiş tarihli işlem yanlış kurla/has karşılığıyla girilmiş | Geçmişe girilen işlemin has karşılığı veya TL tutarı o günün kuruyla uyuşmuyor. | `Select * From Sistem.Kurlar Where Tarih = '«tarih»'` boş dönüyorsa o gün kur yoktur. | O tarihte kur girilmemişse program **en son girilen kuru** kullanır; ekranda uyarı vermez. Ayrıca kur listesinden gelen fiyat her zaman ALIŞ kurudur (H-45). | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | |
| ERR-OBS-189 | GÖZLEMLENMİŞ | S2 | H-108 — Devir sonrası müşteri bakiyesi geçen yılın son bakiyesinden farklı | Yıl sonu devrinden sonra hesabın "DEVİR" satırı arşivdeki son bakiyeyle uyuşmuyor. | Devir bakiyeleri `Cari.BakiyeIslem` tablosunda `IslemId = -1` ile durur; `Cari.Islemler`'de karşılığı yoktur (tasarım gereği). Tutarsızlıkta `Stok.StokHaraketleri` ve `Cari.BakiyeIslem` tablolarında ` | Devir sırasında tarihi boş kalmış bakiye/stok kayıtları ya da devir günü ile arşiv kesim tarihi arasına giren işlemler. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | |
| ERR-OBS-190 | GÖZLEMLENMİŞ | S3 | H-109 — "İşlem listeden kayboldu" | Dün girilen işlem bugün listede yok; bakiye de o kadar değişmiş. | İşlem **İPTAL** edilmiş. İptal edilen işlem listeden düşer, veritabanında silinmiş işaretiyle durur. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | ||
| ERR-OBS-191 | GÖZLEMLENMİŞ | S1 | H-110 — Bakiyenin has/TL karşılığı yanlış, birim bakiyeleri doğru | USD/EUR bakiyeleri doğru ama "toplam has" veya TL karşılığı saçma. | Kur listesi 0 ya da eksik. Karşılıklar **güncel kurla** hesaplanır. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 70 | ||
| ERR-OBS-192 | GÖZLEMLENMİŞ | S2 | H-111 — Fiş üzerinde "eski bakiye" yazmıyor (devir sonrası) | Devirden sonra basılan fişlerde önceki bakiye satırı boş. | `Bakiye.GetBakiyeFisNo` fonksiyonu, bakiye toplamına `B.IslemId = -1` (devir) satırlarını dahil edecek şekilde güncellenir (devir süreç dokümanındaki sürüm). | Fiş bakiye hesabı devir satırını dikkate almıyor. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-036 | 85 | |
| ERR-OBS-193 | GÖZLEMLENMİŞ | S1 | H-112 — Raporda bakiye eksik çıkıyor, hesap kartında doğru | Özel raporda müşterinin bakiyesi kartta görünenden az. | Rapor kasa bazlı süzülmüş; bakiye kasa bazlı tutulmaz. Ya da rapor devir satırlarını (işlem listesinde olmayan açılış bakiyeleri) toplamıyor. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-030 | 85 | ||
| ERR-OBS-194 | GÖZLEMLENMİŞ | S1 | H-113 — "Stok listesi boş ya da eksik: yanlış kasa seçili" | Maden/nakit stok listesinde ürün yok ya da az; başka kasada görünüyor. | Stok kasa bazlıdır. Liste, seçili kasayı gösterir; işlem başka kasadan yapılmışsa o kasada durur. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-034 | 70 | ||
| ERR-OBS-195 | GÖZLEMLENMİŞ | S3 | H-114 — Transfer yapıldı ama karşı kasada stok görünmüyor | Gönderen kasada stok düştü; alan kasada artmadı. | Transfer iki adımlıdır: gönderen **Transferler > Giden** kutusundan gönderir; alan taraf **Gelen** kutusundan **kabul** etmeden stok karşı kasaya girmez. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-034 | 70 | ||
| ERR-OBS-196 | GÖZLEMLENMİŞ | S2 | H-115 — Açılış (devir) stoğu girildi, DEVİR hesabı alacaklı kaldı | Stoklar DEVİR hesabından GİRİŞ ile girildi; DEVİR hesabında büyük bir alacak bakiyesi oluştu. | NORMAL tipte giriş yapılmış; NORMAL giriş bakiye yazar. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-034 | 70 | ||
| ERR-OBS-197 | GÖZLEMLENMİŞ | S1 | H-116 — İptal edilen işlem stoktan düşmedi / stoğa geri geldi | Satış iptal edildi, stok geri gelmedi (ya da tersi). | İptalin stok etkisi otomatik kural ile yazılır; kural kapalıysa (H-06) etki oluşmaz. Ya da iptal değil, düzeltme yapılmış ve düzeltmede miktar/kasa değiştirilmi | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-034 | 70 | ||
| ERR-OBS-198 | GÖZLEMLENMİŞ | S3 | H-117 — Takoz stokta görünmüyor / "Elimizde" süzgeci boş | Takoz girişi yapıldı; takoz stok listesinde takoz yok. | Takoz listesinde **stok durumu** süzgeci (Elimizde / Çıkılmış / Raporlu-Raporsuz) yanlış seçilmiş ya da takoz seri çıkışla çıkılmış. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-046 | 70 | ||
| ERR-OBS-199 | GÖZLEMLENMİŞ | S3 | H-118 — Maden stok listesinde ürünlerin sırası bozuk | Stok listesi tanım sırasına göre gelmiyor; her açılışta farklı sırada. | `Stok.GetMadenStoklari` fonksiyonu Modify ile açılır; ilk `Select`'ten sonra `top 100000`, kod bloğunun sonuna `order by M.Id` eklenip çalıştırılır. SQL Management Studio işlem bitince kapatılır. | Stok listesini üreten fonksiyon sıralama yapmıyor. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-021 | 85 | |
| ERR-OBS-200 | GÖZLEMLENMİŞ | S2 | H-119 — Stok hareketlerinde transfer kayıtları yanlış tarihte / yanlış geliyor | Maden veya nakit stok hareketleri raporunda transfer satırları geçmiş ya da ileri bir tarihte, hesap adı boş görünüyor. | `Stok.GetStokHareketleri` fonksiyonu, tarih için `IsNull(I.InsertDate, H.Tarih)` kullanan ve `Bolum = 2` satırlarını 'TRANSFER' olarak etiketleyen sürümle (süreç dokümanındaki metin) değiştirilir. | Stok hareketleri fonksiyonu transfer satırlarının tarihini işlem tablosundan alıyor; transferde işlem satırı olmadığı için tarih kayıyor. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-068 | 85 | |
| ERR-OBS-201 | GÖZLEMLENMİŞ | S3 | H-120 — Maliyet raporu "tuhaf" geliyor | Ürün maliyeti son alışlara göre beklenenden farklı; çok hareketli üründe hiç mantıklı değil. | "Ortalama milyem" aslında **son giren ilk çıkar** mantığıyla hesaplanır, gerçek ortalama değildir. Maliyet hesabı **son 50 hareketle** sınırlıdır; çok hareketli | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-076 | 70 | ||
| ERR-OBS-202 | GÖZLEMLENMİŞ | S2 | H-121 — Bir ürünün maliyeti çok yüksek/çok düşük; sıfırlanmak isteniyor | Ctrl+M ile açılan maden stok listesinde bir ürünün maliyeti gerçekçi değil. | Geçmişte yanlış fiyatla giriş yapılmış; maliyet zinciri bozulmuş. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-076 | 70 | ||
| ERR-OBS-203 | GÖZLEMLENMİŞ | S2 | H-122 — Maliyet bir günde sıçradı (ör. 0,50'den 2,50'ye) | Maden stok listesinde geçmiş tarihe gidilince maliyet belirli bir günde ani değişiyor. | O gün yanlış fiyat/milyem/birimle bir işlem girilmiş. | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-076 | 85 | ||
| ERR-OBS-204 | GÖZLEMLENMİŞ | S1 | H-123 — Stokta olmayan mal çıkılmış (negatif stok) | Stok listesinde eksi miktar; bilanço eksi yazıyor. | Giriş kaydı yapılmadan çıkış yapılmış (ya da giriş yanlış kasaya/koda yapılmış). | Cari.BakiyeIslem / Stok.StokHaraketleri / Cari.History (türetilmiş kayıtlar) | PF-005 | 85 | ||
| ERR-OBS-205 | GÖZLEMLENMİŞ | S3 | H-124 — Bakiye ekstresinde TOPLAM sütunu 0 geliyor | Birim sütunları dolu; **Toplam** sütunu her satırda 0. | Toplam, güncel kurla has karşılığına çevrilerek hesaplanır. Kur listesi 0 ya da boşsa toplam 0 çıkar. Kurlar EDS'den geliyorsa EDS durmuştur. | PF-005 | 85 | |||
| ERR-OBS-206 | GÖZLEMLENMİŞ | S3 | H-125 — Cari bakiye listesinde aynı birim birden fazla satırda / has karşılığı yanlış | Bakiye listesinde bir hesabın birimleri dağınık, karşılıklar tutarsız. | Kur listesi eksik. | PF-030 | 70 | |||
| ERR-OBS-207 | GÖZLEMLENMİŞ | S3 | H-126 — Rapor alırken "Divide by zero" hatası | Bir rapor açılırken İngilizce "divide by zero" hatası. | Rapor sorgusundaki her `x / y` ifadesi `Fn.Bol(x, y)` ile değiştirilir (örnek: `Fn.Bol(Tutar, Miktar)`). Bu fonksiyon sıfıra bölmede 0 döndürür. | Raporun hesabında bir bölme var ve bölen 0 (miktar 0, kur 0, tutar 0). | PF-070 | 85 | ||
| ERR-OBS-208 | GÖZLEMLENMİŞ | S3 | H-127 — Bakiye ekstresi zaman aşımı veriyor | Raporlar > Bakiye Ekstresi uzun süre bekleyip zaman aşımı hatası veriyor. | `Reports.BakiyeListesi` fonksiyonu, süreç dokümanındaki (PIVOT tabanlı, `Sistem.GetKurListesi` ile birleşen) sürümle `ALTER` edilir. Ayrıca H-163'teki indeks rehberi uygulanır. | Rapor fonksiyonu büyük veri setinde yavaş. | PF-071 | 85 | ||
| ERR-OBS-209 | GÖZLEMLENMİŞ | S3 | H-128 — Bilanço eksi (zarar) yazıyor | Bilanço sonucu beklenmedik şekilde eksi. | İki tipik neden: (a) pano kurunun çok altında satış (ör. dolar satış kuru 9 iken 6'dan VS kaydı) — program zarar yazar; (b) stoktan olmayan mal çıkılmış (H-123) | PF-005 | 85 | |||
| ERR-OBS-210 | GÖZLEMLENMİŞ | S3 | H-129 — Kur değiştirilince bilanço değişiyor | Aynı gün, aynı işlemler; kur güncellenince bilanço sonucu farklı. | Pozisyon 0 ve işçilikler has iken: (1) maden stok listesinde **Maliyeti Göster** ile stok not edilir; (2) tüm stok işçilikleriyle birlikte boş bir hesaba (DEVİR/PESIN/SERMAYE) çıkılır; (3) `Stok.GetMa | Ya **pozisyon** var (birim bakiyeleri sıfır değil) ya da has dışı birimle (USD, TL) işçilikli ürün alınmış. | PF-005 | 85 | ||
| ERR-OBS-211 | GÖZLEMLENMİŞ | S3 | H-130 — Bilanço tutmuyor; takozlardan kaynaklanıyor olabilir | Takoz stoğu olan işletmede bilanço farkı var. | Bilanço raporunda takoz stoğu `Stok.GetSirketStoklari` yerine `Stok.GetTakozSubeStoklari` ile alınır ve `Where t.SubeId = @SubeId` eklenir. Devir öncesi: takoz çıkışı, takoz girişinin yapıldığı tarihe | Girişi yapılıp çıkışı yapılmamış takozlar bilançoda görünmüyor olabilir; devir tarihinden önce alınıp sonra çıkılan takozlar devirde eksi adet bırakır. | PF-005 | 85 | ||
| ERR-OBS-212 | GÖZLEMLENMİŞ | S3 | H-131 — Pozisyon / hacim raporunda aynı birimden iki satır | Pozisyon raporunda USD iki kez görünüyor. | `Sistem.Birimler` tablosunda "Edit Top 200 Rows" ile aynı kodlu satırlar bulunur; sıralamada geride olanın kodu değiştirilir. Rapor yeniden açılır. | Birim listesinde aynı kod iki kez tanımlı (H-23). | PF-023 | 85 | ||
| ERR-OBS-213 | GÖZLEMLENMİŞ | S3 | H-132 — Belgelendirilmiş işlem raporlarında "istatistik" hatası / istatistik kodu boş | Fatura kontrol raporu veya özel rapor istatistik alanında hata veriyor. | `Cari.Istatistik` tablosu ve `FN.GetIstatistikKodu` fonksiyonu süreç dokümanındaki sürüme getirilir; `Cari.FaturaBilgileri` görünümü ve `Reports.ResmiIslemRaporu` (legacy teknik ad; belgelendirilmiş i | İstatistik kodu tanımı eksik (H-35) ya da rapor eski istatistik fonksiyonunu kullanıyor. | PF-057 | 85 | ||
| ERR-OBS-214 | GÖZLEMLENMİŞ | S3 | H-133 — Yanlışlıkla alınan bilanço listeden silinmek isteniyor | Bilanço listesinde yanlış tarihli/yanlış alınmış bir kayıt var. | `Select * from Bilanco.Bilancolar` ile kayıt doğrulanır; `Delete from Bilanco.Bilancolar where Tarih = '«yyyy-aa-gg»'` çalıştırılır; programda bilanço listesi yeniden açılır. | Bilanço kaydı programdan silinemez. | PF-050 | 85 | ||
| ERR-OBS-215 | GÖZLEMLENMİŞ | S3 | H-134 — Rapora sütun eklendi ama programda görünmüyor | Rapor sorgusu düzenlendi; programda yeni sütun yok. | Sütunun rapor tanımına (alan listesi) eklenmesi ve görünümün kaydedilmesi gerekir; ayrıca program yeniden açılmalıdır. | PF-004 | 70 | |||
| ERR-OBS-216 | GÖZLEMLENMİŞ | S3 | H-135 — Raporda ALACAK/BORÇ veya ALIŞ/SATIŞ diye süzünce sonuç boş | BORÇ, VİRMAN, PARİTE (X) ve PERAKENDE ekranlarından girilen satırlar ALACAK/BORÇ ya da ALIŞ/SATIŞ süzgeciyle gelmiyor. | Bu ekranlar seçimi GİRİŞ/ÇIKIŞ olarak kaydeder (H-64). Yalnız SERİ İŞLEM ekranı ALACAK/BORÇ ve ALIŞ/SATIŞ diye kaydeder. Aynı iş iki ekrandan farklı etiketle dü | PF-070 | 85 | |||
| ERR-OBS-217 | GÖZLEMLENMİŞ | S3 | H-136 — İşlem listesinden sütun kaldırmak / eklemek | İşlem listesinde gereksiz sütun (ör. Varyant) var ya da bir sütun kaybolmuş. | Liste görünümü kullanıcıya göre kaydedilir. | PF-025 | 70 | |||
| ERR-OBS-218 | GÖZLEMLENMİŞ | S3 | H-137 — İşlem listesi Excel'e / belgeye aktarılmak isteniyor | Müşteri ekstre dosyası istiyor. | — | PF-025 | 70 | |||
| ERR-OBS-219 | GÖZLEMLENMİŞ | S3 | H-138 — Maden stok listesinde alt toplam görünmüyor | Stok listesinde HAS/GUM toplamı yok. | [Ekip tarafından doldurulacak] | PF-021 | 70 | |||
| ERR-OBS-220 | GÖZLEMLENMİŞ | S3 | H-139 — Geniş bilanço raporu istenmiş / raporda yok | Müşteri "geniş bilanço" istiyor, menüde yok. | Rapor kurulumla gelmemiş. | PF-050 | 70 | |||
| ERR-OBS-221 | GÖZLEMLENMİŞ | S2 | H-140 — Yazıcıdan çıkan fatura numarası yanlış | Basılan faturanın numarası yazıcıdaki kağıtla uyuşmuyor. | Fatura serisi/sıra numarası kaymış. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-007 | 70 | ||
| ERR-OBS-222 | GÖZLEMLENMİŞ | S2 | H-141 — Fatura yanlış müşteriye kesildi | Aynı fatura başka müşteriye kesilmeli. | [Ekip tarafından doldurulacak] | Belirtilen SQL nesnesi / ekran verisi | PF-027 | 70 | ||
| ERR-OBS-223 | GÖZLEMLENMİŞ | S2 | H-142 — Belgelendirme Farkı bildirimi — "belgeli stok/alım-satımlar tutmuyor" | İşletmenin mali müşaviri / muhasebe departmanı belirli ay için, kendi kayıtları ile ERPGOLD'un belgelendirilmiş işlem gö | [Ekip tarafından doldurulacak] | Belirtilen SQL nesnesi / ekran verisi | PF-027 | 70 | ||
| ERR-OBS-224 | GÖZLEMLENMİŞ | S2 | H-143 — Faturada isim ve TC kimlik gelmiyor | "İsim Beyan Edilmemiştir" hesabından yapılan işlemde faturada ad/soyad ve kimlik boş. | `Cari.FaturaBilgileri` görünümünde `H.HesapAdi` yerine `IsNull(D.FaturaUnvan, H.HesapAdi) as HesapAdi`; vergi numarası satırı `IsNull(D.FaturaVergiNo, Case When H.VergiNo<>'' Then H.VergiNo When TCNo< | Fatura bilgileri hesap kartından alınıyor; işlem anında girilen ad/kimlik faturaya yansımıyor. | Belirtilen SQL nesnesi / ekran verisi | PF-007 | 85 | |
| ERR-OBS-225 | GÖZLEMLENMİŞ | S2 | H-144 — "Aynı Para Cinsi ile Fatura kesemezsiniz." | E-belge penceresi açılır açılmaz bu uyarı; kaydet/yazdır butonları yok. | İşlemde stok kodu ile karşılık birimi aynı (USD'ye USD). | Belirtilen SQL nesnesi / ekran verisi | PF-014 | 70 | ||
| ERR-OBS-226 | GÖZLEMLENMİŞ | S2 | H-145 — "Türklirası Alış ve Satış İşleminin Faturasını Kesemezsiniz.Lütfen İşleminizi Kontrol Ediniz." | E-döviz belgesi keserken bu mesaj. | Belgeye konu döviz kodu TL/TRY. | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-014 | 70 | ||
| ERR-OBS-227 | GÖZLEMLENMİŞ | S2 | H-146 — "Vergi Numarası 10 Karaketer Olmalıdır..." / "TCKimlik Numarası 11 Karaketer Olmalıdır..." | Fatura basımında bu mesaj. | Vergi dairesi seçiliyken vergi no 10 hane değil; vergi dairesi boşken kimlik no 11 hane değil. | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-043 | 70 | ||
| ERR-OBS-228 | GÖZLEMLENMİŞ | S2 | H-147 — "Entegrator faturayı Kabul Etmedi. ..." | E-belge gönderiminde entegratör hata döndürüyor; "Hata Detayını Görmek İstiyormusunuz?" soruluyor. | Belge içeriği (kimlik, adres, istatistik kodu, tutar limiti) entegratör kurallarına uymuyor. | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-009 | 70 | ||
| ERR-OBS-229 | GÖZLEMLENMİŞ | S2 | H-148 — "GİB'e İletilmiş Faturaları İptal Edemezsiniz." | E-Fatura Listesi ekranında (legacy menü adı; e-Döviz belge listesi) iptal denince bu mesaj. | Belge kuruma iletilmiş. | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-009 | 70 | ||
| ERR-OBS-230 | GÖZLEMLENMİŞ | S2 | H-149 — "Fatura Bulunamadı. Lütfen Faturalar Modülünden Kontrol Ediniz." | İşlem listesinde fatura satırı iptal edilmek istenince bu mesaj. | Satırın bağlı olduğu fatura kaydı yok (daha önce faturalar modülünden silinmiş). | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-007 | 85 | ||
| ERR-OBS-231 | GÖZLEMLENMİŞ | S2 | H-150 — "Bu Firma Masak Yasaklısıdır. İşlem Yapamazsınız" | E-belge penceresinde yasaklı sorgulaması sonrası bu mesaj; pencere kapanıyor. | Müşteri, yasaklı listesi sorgusunda eşleşti. | Belirtilen SQL nesnesi / ekran verisi | PF-078 | 70 | ||
| ERR-OBS-232 | GÖZLEMLENMİŞ | S2 | H-151 — E-döviz belgesinde kimlik zorunluluğu / limitler beklenenden farklı | Belirli tutar üstünde kimlik istenmiyor ya da isteniyor; "İsim Beyan Edilmemiştir" ile belge kesilemiyor. | `Sistem.Subeler` tablosunda `EBelgeTcknControl`, `EBelgeUsdLimit`, `EBelgeTlLimit` alanları düzenlenir. Kimlik bilgisiyle limit kesimi yapılıyorsa limitler 4999 USD / 84999 TL; "İsim Beyan Edilmemişti | Şube tanımındaki e-belge kimlik kontrolü ve USD/TL limitleri müşterinin çalışma şekline göre ayarlanmamış. | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-051 | 85 | |
| ERR-OBS-233 | GÖZLEMLENMİŞ | S2 | H-152 — Yeni yılda fatura sıra numarası devam ediyor / sıfırlanmıyor | Yılbaşından sonra e-döviz belgesi numarası önceki yıldan devam ediyor. | `Sistem.GetFaturaNo` prosedürü, `YEAR(I.Tarih) = YEAR(getdate())` koşulunu içeren sürümle `ALTER` edilir. | [Ekip tarafından doldurulacak] | Cari.IslemDetaylari (e-belge durumu), entegratör kayıtları | PF-026 | 85 | |
| ERR-OBS-234 | GÖZLEMLENMİŞ | S2 | H-153 — Termal fiş boş çıkıyor | İşlem fişi yazdırılınca kağıt boş. | `Cari.FisIslemDetay` görünümü açılır; `Select Top 1000 X.*, H.HesapAdi, K.UserName` ifadesindeki 1000 çok daha büyük bir sayıyla (ör. 1.000.000) değiştirilip çalıştırılır. | Fiş verisini getiren görünüm ilk 1000 işlemle sınırlı; sonraki işlemlerin fiş verisi gelmiyor. | Belirtilen SQL nesnesi / ekran verisi | PF-003 | 85 | |
| ERR-OBS-235 | GÖZLEMLENMİŞ | S2 | H-154 — Fiş tasarımı değiştirilmek isteniyor / fiş çıkmıyor | İşlem sonunda fiş çıkmıyor ya da farklı fiş tasarımı isteniyor. | [Ekip tarafından doldurulacak] | Rapor çıktısı (veri etkilenmez) | PF-003 | 70 | ||
| ERR-OBS-236 | GÖZLEMLENMİŞ | S2 | H-155 — Fişte yazılar bozuk / yanlış yazı tipi | İşlem fişinde karakterler kayık, yazı tipi farklı. | Fiş yazı tipi bilgisayara yüklenmemiş. | Kurulum/bağlantı ayarları (veri etkilenmez) | PF-047 | 70 | ||
| ERR-OBS-237 | GÖZLEMLENMİŞ | S3 | H-156 — Yazıcı hiç yazdırmıyor | Program yazdır diyor, çıktı yok. | [Ekip tarafından doldurulacak] | PF-003 | 70 | |||
| ERR-OBS-238 | GÖZLEMLENMİŞ | S3 | H-157 — Etiket yazıcısı tanımlı değil / etiket çıkmıyor | Takoz veya model etiketi basılmıyor. | Etiket yazıcısı bağlı değil (simgesi soluk) ya da programda seçilmemiş. | PF-024 | 70 | |||
| ERR-OBS-239 | GÖZLEMLENMİŞ | S3 | H-158 — RFID cihazı çalışmıyor | RFID okuma yok. | Cihazın ağ adresi değişmiş. | PF-024 | 70 | |||
| ERR-OBS-240 | GÖZLEMLENMİŞ | S3 | H-159 — Terazi miktarı ekrana gelmiyor | HURDA ekranında terazi butonuna basılınca **MİKTAR** hareket etmiyor. | [Ekip tarafından doldurulacak] | PF-079 | 70 | |||
| ERR-OBS-241 | GÖZLEMLENMİŞ | S3 | H-160 — EDS (elektronik döviz sistemi) çok yavaş | EDS ekranları ve kur güncellemesi dakikalarca sürüyor. | `Delete From Sistem.Kurlar Where year(Tarih) < Year(getdate())` ile önceki yılların kurları silinir (yedek sonrası); mutabakat bilgilerini getiren sorgu için indeks oluşturulur. | Kur tablosunda yılların birikmiş kaydı; mutabakat sorgusunda indeks yok. | PF-019 | 85 | ||
| ERR-OBS-242 | GÖZLEMLENMİŞ | S3 | H-161 — Program sürümü güncellenmek isteniyor (exe güncelleme) | Yeni özellik yok, bilinen hata devam ediyor, terazi çalışmıyor. | [Ekip tarafından doldurulacak] | PF-031 | 70 | |||
| ERR-OBS-243 | GÖZLEMLENMİŞ | S3 | H-162 — Yedek alma | Müşteri yedek istiyor / devir öncesi yedek gerekiyor. | [Ekip tarafından doldurulacak] | PF-054 | 70 | |||
| ERR-OBS-244 | GÖZLEMLENMİŞ | S3 | H-163 — İşlem listesi / hesap açılışı çok yavaş | Çok işlemli hesaplarda hesap seçince liste dakikalarca bekliyor. | En çok işlem yapan hesap `Select HesapId, Count(*) From Cari.Islemler Group By HesapId Order By Count(*) Desc` ile bulunur; o hesap için hesap bilgileri sorgusunun (temsilci, son işlem tarihi, son mut | Veritabanında indeks eksik. | PF-035 | 85 | ||
| ERR-OBS-245 | GÖZLEMLENMİŞ | S3 | H-164 — BTrans alma (her ay, mali müşavir için) | şema kontrolü "Vergi Numarası 10 Karaketer Olmalıdır" tipi hata veriyor → ilgili cari kartında vergi/TC numarası düzelti | [Ekip tarafından doldurulacak] | PF-001 | 70 | |||
| ERR-OBS-246 | GÖZLEMLENMİŞ | S3 | H-165 — Yılbaşında fatura / e-döviz belgesi numarası güncellemesi | Ocak ayında kesilen ilk faturanın numarası önceki yıldan devam ediyor veya "fatura numarası" hatası alınıyor. | Belge numarası yıl bazında sıfırlanır; numarayı üreten yordamın yıl şartı güncel değilse eski yılın son numarasından devam eder. | PF-018 | 70 | |||
| ERR-OBS-247 | GÖZLEMLENMİŞ | S3 | H-166 — e-Belge işlem limiti güncellemesi (5.000 $ / 85.000 TL) | Kimlik bilgisiz ("isim beyan edilmemiştir") e-Döviz belgesi düzenlenebilen üst sınır değişti; program eski sınırla uyarı | ```sql UPDATE Sistem.Subeler SET EBelgeUsdLimit = 4999 WHERE EntUserName IS NOT NULL; -- kimlikli: 4.999 UPDATE Sistem.Subeler SET EBelgeTlLimit = 84999 WHERE EntUserName IS NOT NULL; -- kimlikli: | Mevzuattaki sınır değişince şube kartındaki e-belge USD/TL limitleri ve DijitalFatura (e-Döviz belge entegrasyon) bileşeni güncellenmelidir. | PF-018 | 85 | ||
| ERR-OBS-248 | GÖZLEMLENMİŞ | S3 | H-167 — Lisans yenileme dalgası (Ekim–Kasım) | Ekim–Kasım'da "program lisans istiyor" çağrıları iki katına çıkar. | Yıllık lisanslar aynı dönemde dolar; her bilgisayar ayrı lisanslandığından şubedeki her makine ayrı ayrı arar. | PF-002 | 70 | |||
| ERR-OBS-249 | GÖZLEMLENMİŞ | S3 | H-168 — Yılbaşı kontrol listesi (Aralık'ta her müşteriye gönderilir) | [Ekip tarafından doldurulacak] | PF-015 | 70 | ||||
| ERR-OBS-250 | GÖZLEMLENMİŞ | S3 | H-169 — Pazartesi sabahı kontrol listesi (veznedar için) | [Ekip tarafından doldurulacak] | PF-015 | 70 | ||||
| ERR-POT-001 | POTANSİYEL | S1 | TD-01 — Çok adımlı işlemlerde transaction yok | VB — fatura başlığı yazılıp `FaturaYaz` çalışmayabilir; işlem yazılıp `RsAktar` yapılmayabilir; karşı hesap kaydı düşerse bakiye hareketi tek taraflı | Çok adımlı işlemlerde transaction yok | `ERPPRO/Class/Dao/Cari.Fatura.vb:229-230,313-317`; `ERPPRO/Class/Dao/Islem/Cari.Islem.vb:695-696,989`; `ERPPRO/Controls/Islem Ekranı/Ekran/iFormBase.vb:218-241,242-264`; `ERPPRO/Class/Module/Devir.vb: | 80 | |||
| ERR-POT-002 | POTANSİYEL | S2 | TD-02 — `Max(...)+1` ile numara üretimi (yarış koşulu) | VB — iki istemci aynı anda kaydederse aynı fiş/kod/fatura numarası üretilir; fiş numarası evrensel tek sayaç (`ERPGOLD-mimari-referans.md §10 soru 6`, | `Max(...)+1` ile numara üretimi (yarış koşulu) | `ERPPRO/Class/Ext/Cari.IslemEx.vb:256-260` (`GetNewFisNo`: `Select Max(FisNo) From Cari.Islemler` + 1), `:261-267` (`GetNewSiraNo`: `Cari.GetNewSiraNo(...)` + 1); `ERPPRO/Class/Dao/Stok.Model.vb:248`, | 80 | |||
| ERR-POT-003 | POTANSİYEL | S1 | TD-03 — `Cari.AcceptTransaction` tetikleyicisinde cursor sızıntısı | VB, PF — cursor `GLOBAL` kapsamda ise bağlantı havuzuna dönen bağlantıda "A cursor with the name 'IslemCursor' already exists" ile sonraki tüm işlemle | `Cari.AcceptTransaction` tetikleyicisinde cursor sızıntısı | DB `Cari.AcceptTransaction` (TR, 29.862 karakter) — `DECLARE IslemCursor CURSOR` satır 72, `OPEN` 79; `RAISERROR … ROLLBACK … RETURN` satır 94-97 (şube pasif) ve 102-105 (e-döviz faturası gönderilmiş) | 80 | |||
| ERR-POT-004 | POTANSİYEL | S1 | TD-04 — Tetikleyicide `ROLLBACK` sonrası `RETURN` yok | VB — `ROLLBACK` sonrası kod akışı devam eder; sonraki `INSERT/UPDATE`'ler transaction dışında (autocommit) çalışabilir. | Tetikleyicide `ROLLBACK` sonrası `RETURN` yok | DB `Cari.AcceptTransaction` satır 119-122 (eksik evrak), 182-184 (şube/kasa/hesap seçilmedi), 229-231 (takoza ait işlem var), 243-245 (takoz stokta yok). | 80 | |||
| ERR-POT-005 | POTANSİYEL | S2 | TD-05 — Koda gömülü bağlantı dizeleri, `sa` hesabı ve parolalar | GV — derlenmiş EXE'den parola okunabilir; uygulama üretimde `sa` ile bağlanıyorsa TD-09/TD-10'daki her açık tam yetkiyle sonuçlanır. | Koda gömülü bağlantı dizeleri, `sa` hesabı ve parolalar | `ERPPRO/Class/Module/InternalDb.vb:11` (`ConnStr` varsayılanı: sunucu, `sa`, düz metin parola); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1730` (sunucu IP'si + `sa`); `ERPPRO/app.config:10-12` (Integrated | PF-053 | 80 | ||
| ERR-POT-006 | POTANSİYEL | S2 | TD-06 — Yapılandırma dosyası şifrelemesi zayıf | GV — `Config.cfg` içindeki bağlantı dizesi (SQL parolası dahil) uygulama binarisine sahip herkes tarafından çözülebilir. | Yapılandırma dosyası şifrelemesi zayıf | `ERPPRO/Configuration/ConfigurationForm.vb:301` (okuma), `:325` (yazma), `:331-365` (`AES_Encrypt/AES_Decrypt`: Rijndael **ECB**, MD5 anahtar türetme, **koda gömülü sabit parola**). | 80 | |||
| ERR-POT-007 | POTANSİYEL | S2 | TD-07 — Parolalar geri döndürülebilir şifreli | GV — DB erişimi olan herkes tüm parolaları çözebilir; parolalar süreç belleğinde düz metin. | Parolalar geri döndürülebilir şifreli | `ERPPRO/Class/Module/Crypto.vb:6-48` (sabit parola, Rijndael CBC — değer kopyalanmadı); `ERPPRO/Class/Dao/Sistem.Users.vb:43,144,188` (kullanıcı parolası `Crypto.Decrypt` ile yükleniyor, `Encrypt` ile | 80 | |||
| ERR-POT-008 | POTANSİYEL | S2 | TD-08 — İşlem ekranında sabit yönetici parolası | GV — kaynak/binari üzerinden parola öğrenen herkes fişleri iptal edebilir; değiştirilemez, denetlenemez. | İşlem ekranında sabit yönetici parolası | `ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:722` — `PasswordBox.ShowDialog(Me, "", "")`; doğrulanınca `:723` `Update Cari.Islemler Set IsDeleted='True' Where FisNo=… and KasaId=…` (fiş toplu | 80 | |||
| ERR-POT-009 | POTANSİYEL | S1 | TD-09 — SQL metni birleştirme, string kullanıcı girdileri | GV, VB — `'` içeren girdi sorguyu bozar; bilinçli girdi `sa` yetkisiyle (TD-05) veri değiştirebilir. | SQL metni birleştirme, string kullanıcı girdileri | 1010/1468 ifade, 311 sınıf (scan). String girdi örnekleri: `ERPPRO/Form/Doviz/FrmDovFaturaEkranı.vb:239-243` (`InputBox` → `RefNo`), `Controls/Islem Ekranı/Ekran/Fatura Helper/FindTaxInfo.vb:25`, `Frm | PF-013 | 80 | ||
| ERR-POT-010 | POTANSİYEL | S1 | TD-10 — Serbest SQL editörü ve bağlantı dizesi | GV — uygulama içinden `sa` ile rastgele SQL; menü yetkisine bağlı `[GAP: hangi kullanıcı grubuna açık olduğu Usergroup verisinden doğrulanmadı]`. | Serbest SQL editörü ve bağlantı dizesi | `ERPPRO/Form/Tanımlamalar/Sistem/FrmSqlEditor.vb:77-85` (`RadioGroup1` → `InternalDb.ConnStr` veya `TxtConnectionString.Text`), `:86-…` (`TestConnection`, sorgu çalıştırma). | 80 | |||
| ERR-POT-011 | POTANSİYEL | S2 | TD-11 — Veritabanındaki kaynak kodun çalışma zamanında derlenmesi | GV, BK — tabloya yazabilen herkes uygulama sürecinde kod çalıştırır; derlenen sınıflar statik analiz/test dışı; ayrı bir ORM dünyası (TD-17). | Veritabanındaki kaynak kodun çalışma zamanında derlenmesi | `ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:57-74` (`VBCodeProvider.CompileAssemblyFromSource`), `Class/Base/DynamicForm.vb:300-318` (`AifaDev.DynamicForms.Code` kolonu), `Class/Base/Table.vb:145-160` | 80 | |||
| ERR-POT-012 | POTANSİYEL | S2 | TD-12 — Boş `Catch` | VB, BK — `Save` `False` döner ama sebep kaybolur; kur/önbellek yüklenemezse sessizce boş/eski değer kullanılır. | Boş `Catch` | 679 metot, 273 dosya; `ERPPRO/Class/Dao` 361. En yoğun: `Designer/DosPrint/DosPrint.vb` (14), `Form/Siparis/NetEntegrator.vb` (12), `Class/Dao/Dynamic/Class/Base/Data.vb` (8), `Class/Module/Database.v | 80 | |||
| ERR-POT-013 | POTANSİYEL | S2 | TD-13 — `InternalDb` yaşam döngüsü kusurları | PF, VB — 866 `Using db As New InternalDb` bloğundan yalnız 231'i açıkça kapatıyor; kalanlar GC'ye kalıyor (havuz baskısı, uzun süreli açık bağlantı); | `InternalDb` yaşam döngüsü kusurları | `ERPPRO/Class/Module/InternalDb.vb:131-141` (`Dispose(disposing)` gövdesi boş — `SqlConnection` kapatılmıyor), `:53-65,69-81` (`Finally` boş), `:100-123` (`Da.Fill(Ds)` aynı `DataSet`'e ekler, temizle | 80 | |||
| ERR-POT-014 | POTANSİYEL | S2 | TD-14 — Veri katmanı UI açıyor | BK — DAO sunucu/servis/test ortamında çalışamaz; kullanıcı kararı (Yes/No) iş mantığının içinde. | Veri katmanı UI açıyor | `ERPPRO/Class/Module/InternalDb.vb:44,61,77,93,106,120` (`MessageBox/MsgBox`); `Class/Dao` 45 satır/19 dosya, `Class/Ext` 19 satır/4 dosya; `Class/Dao/Islem/Cari.Islem.vb:533-535,1025,1049` (`FrmSilme | 80 | |||
| ERR-POT-015 | POTANSİYEL | S2 | TD-15 — Global durum bağımlılığı | BK — birim test ve çoklu oturum imkânsız; şube/kasa bağlamı örtük. | Global durum bağımlılığı | 1175 başvuru, 312 sınıf (`Program` 763, `DSX` 322, `LoginInformation` 87); DAO'da 110/162 sınıf. Örnek: `Class/Dao/Base.vb:6-16` (`ActiveSirketId/SubeId` → `Program.*`), `Class/Dao/Islem/Cari.Islem.vb | 80 | |||
| ERR-POT-016 | POTANSİYEL | S2 | TD-16 — Kopyala-yapıştır | BK — bir kural değişikliği 100+ dosyaya dokunur; ekran çiftleri ayrışır (`iFDoviz`/`iFNakit` farkı, mimari referans §9-17). | Kopyala-yapıştır | `Save()` 91/105 birebir (`Class/Dao/Agent.Agent.vb:104`, `Cari.Transferler.vb:164-166` …); `SetPropertyValue/GetPropertyValue` 121 dosya (`Cari.Fatura.vb:376-392` …); üçlü `Delete` 87 dosya (`Cari.Hes | 80 | |||
| ERR-POT-017 | POTANSİYEL | S3 | TD-17 — Üç veri erişim yolu ve artık referanslar | BK — dört farklı kalıp; yeni geliştirici hangisini kullanacağını bilemez. | Üç veri erişim yolu ve artık referanslar | `InternalDb` (293 sınıf), `DataLayout/DBBaseClass.vb` (tek türev `Repository.vb:21-23`), `Class/Dao/_SQLBase/SQLBase.vb` (tek türev `Class/Dao/Islem/Cari.IDetay.vb:4-6`), `Class/Dao/Dynamic/*`; `ERPPR | 80 | |||
| ERR-POT-018 | POTANSİYEL | S2 | TD-18 — `DBBase.IsValidate` semantiği ters, yalnız 4 tipte doğrulama | VB — dinleyicisi olmayan/ikinci dinleyici eklenen tiplerde doğrulama yanlış anlamda çalışır; olay `Shared` olduğu için `Program` statik kurucusu çalış | `DBBase.IsValidate` semantiği ters, yalnız 4 tipte doğrulama | `ERPPRO/Class/Dao/Base.vb:116-121` (`Validate(Obj, ByRef Cancel)`, `IsValid=True` ile çağrılır, aynen döner); tek dinleyici `Class/Module/Program.vb:4,20-30` (`Validated` anlamında yazar; `Parcakarti/ | 80 | |||
| ERR-POT-019 | POTANSİYEL | S3 | TD-19 — `DBBase.ActiveKasaId` sonsuz özyineleme | BK — çağrılırsa `StackOverflowException` (süreç çöker). Çağıran yok (grep 0) → latent. | `DBBase.ActiveKasaId` sonsuz özyineleme | `ERPPRO/Class/Dao/Base.vb:18-22` (`Get … Return ActiveKasaId`). | PF-063 | 80 | ||
| ERR-POT-020 | POTANSİYEL | S3 | TD-20 — `SQLBase._Query` `Shared` | VB — ikinci bir `SQLBase` türevi eklendiğinde yanlış tabloya MERGE. Bugün tek türev (`Cari.IFatura`) → gizli. | `SQLBase._Query` `Shared` | `ERPPRO/Class/Dao/_SQLBase/SQLBase.vb:31` (`Private Shared _Query`), `:38-64` (ilk hesaplanan MERGE metni tüm türevlerde kullanılır). | 80 | |||
| ERR-POT-021 | POTANSİYEL | S2 | TD-21 — `Program.GetKur` her zaman alış; birim yoksa `1` | VB — satış yönünde alış kuru → marj kaybı (kabul edilmiş hata, AS-DOCUMENTED §10 soru 4); listede olmayan birim için `1` dönmesi sessiz yanlış tutar. | `Program.GetKur` her zaman alış; birim yoksa `1` | `ERPPRO/Class/Module/Program.vb:260-268` (`Return K.Alis` / `Else Return 1`). Kullanım: `Class/Dao/Islem/Cari.Islem.vb:506-531`, `Controls/Islem Ekranı/Ekran/FrmEFaturaBas.vb:298`, `Form/Doviz/FrmDovF | PF-023 | 80 | ||
| ERR-POT-022 | POTANSİYEL | S2 | TD-22 — Kur fallback sessiz (DB) | VB — eski kurla işlem; kullanıcı uyarılmaz. | Kur fallback sessiz (DB) | DB `Sistem.GetKurListesi` (IF) satır 5-9: `IsNull(K.Alis, L.Alis)` … `Left Join Sistem.GetLastKur L` — o güne kur girilmemişse son kur döner, işaret yok. Tüketici `ERPPRO/Class/Dao/Sistem.KurListesi.v | 80 | |||
| ERR-POT-023 | POTANSİYEL | S2 | TD-23 — `Stok.GetMadenMaliyeti` `TOP 50` ve güncel kur | VB — talep miktarı son 50 hareketi aşarsa maliyet eksik; maliyet hareket tarihindeki değil bugünkü kurla çevriliyor. | `Stok.GetMadenMaliyeti` `TOP 50` ve güncel kur | DB `Stok.GetMadenMaliyeti` (FN) satır 16-17 (`Select top 50 … From Stok.StokHaraketleri`), satır 38 (`FN.Bol(@ToplamMaliyet, (Select top 1 Alis From Sistem.Kurlar … Order By Tarih Desc))`). | PF-034 | 80 | ||
| ERR-POT-024 | POTANSİYEL | S2 | TD-24 — `DSX` önbelleği tutarlılığı | VB, BK — yeni kayıtlar (hesap, maden, kasa) ekranlara ancak tam yenilemede düşer (INFERRED, `[GAP]` bkz. database-access §7); yükleme hatası sessiz. | `DSX` önbelleği tutarlılığı | `ERPPRO/Class/Module/Database.vb:78+562, 134+564, 219+566, 243+568, 292+570, 176+580, 152+584` (her yükleyici olayını kendisi yükseltir, `RetriveOfAllData` tekrar yükseltir → dinleyiciler iki kez çalı | 80 | |||
| ERR-POT-025 | POTANSİYEL | S3 | TD-25 — `KurListesi` timer thread güvenliği | VB — nadir yarış/`InvalidOperationException` (koleksiyon değiştirildi) riski (INFERRED). | `KurListesi` timer thread güvenliği | `ERPPRO/Class/Dao/Sistem.KurListesi.vb:62,74` (`System.Threading.Timer`, 15 sn), `:95-123` (`RetriveFromDb` listeye `Add` ederken UI `Program.GetKur` ile `Find` yapar; kilit yok; `:111` okuyucu kapand | 60 | |||
| ERR-POT-026 | POTANSİYEL | S3 | TD-26 — Magic number karşılaştırmaları | BK — kod tablosu ile enum eşleşmesi kodda dağınık; anlam kaybı. | Magic number karşılaştırmaları | `ERPPRO/Controls/Islem Ekranı/Ekran/FrmTransfer.vb:57,69,80` (`SetStatus(…, 3|1|2)`), `Class/Dao/Cari.Transferler.vb:152`, `Form/Provizyon/FrmProvizyonKabul.vb:52` (`Status=1`), `Controls/Grid/Provizy | 80 | |||
| ERR-POT-027 | POTANSİYEL | S2 | TD-27 — Combo indeksi doğrudan `IslemTuru` olarak kaydediliyor | VB — `IslemKodu=BORC` kayıtlarında `IslemTuru` ALACAK/BORC yerine GIRIS/CIKIS; raporlar ve `GetKarsiIslemTuru` (`Database.vb:658-674`) bu değere göre | Combo indeksi doğrudan `IslemTuru` olarak kaydediliyor | `ERPPRO/Controls/Islem Ekranı/Ekran/iFBorc.vb:6,56` (`IslemTuru = CmbIslemTuru.SelectedIndex`), `iFBorc.Designer.vb:233` (`Items = {"ALACAK","BORC"}`) — enum `Class/Ext/Cari.IslemEx.vb:48-55` (`GIRIS= | 80 | |||
| ERR-POT-028 | POTANSİYEL | S2 | TD-28 — Sabit kodlanmış MASAK eşikleri | VB (mevzuat) — güncel eşiklerle uyumsuz (AS-DOCUMENTED §9-24: 185.000 TL / 5.000 USD, `masak-mevzuat-notlari.md`); her değişiklikte derleme. | Sabit kodlanmış MASAK eşikleri | `ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:279-280` (`> 7000` TL isimsiz hesap), `:349-350`, `:407` (`> 3000` USD uyarı). | 80 | |||
| ERR-POT-029 | POTANSİYEL | S1 | TD-29 — `Devir.DevirYap`: `TRUNCATE` + yeniden `INSERT`, transaction yok | VB — `TRUNCATE` sonrası `INSERT` hata verirse hareket tabloları boş kalır; tek güvence önce alınan yedek. | `Devir.DevirYap`: `TRUNCATE` + yeniden `INSERT`, transaction yok | `ERPPRO/Class/Module/Devir.vb:39-40` (`BACKUP/RESTORE` metinleri string birleştirme), `:76-87` (`Truncate Table Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari | PF-036 | 80 | ||
| ERR-POT-030 | POTANSİYEL | S1 | TD-30 — `Repair.BalanceRepair` | VB — çalıştırılırsa devir bakiyeleri/transfer hareketleri kaybolur ve fatura tipli (11/12) işlemlere bakiye yazar (AS-DOCUMENTED `ERPGOLD-mimari-refer | `Repair.BalanceRepair` | DB `Repair.BalanceRepair` (P, 18.773 karakter; 2 `TRUNCATE`, cursor), `Repair.StokRepair`. Uygulamadan çağıran yok (`grep "BalanceRepair|StokRepair"` ERPPRO = 0). | 80 | |||
| ERR-POT-031 | POTANSİYEL | S2 | TD-31 — `Cari.IslemINS` precision'sız `decimal` parametreler | VB — kullanılırsa milyem/fiyat/kur tam sayıya yuvarlanır (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §3`; parametre tanımı VERIFIED). | `Cari.IslemINS` precision'sız `decimal` parametreler | DB `Cari.IslemINS` (P): 24 parametre çıplak `decimal` (`@Miktar, @AuMilyem, @Fiyat, @HasKur …` → `decimal(18,0)`), 12 parametre `nvarchar(max)`. Uygulamadan çağıran yok (grep 0). | 80 | |||
| ERR-POT-032 | POTANSİYEL | S1 | TD-32 — `Cari.Islemler` tetikleyicileri demo kopyasında kapalı | VB — iş kurallarının (şube pasif, evrak eksik, takoz stok) uygulama mı DB mi tarafından uygulandığı belirsiz; üretimde açıksa TD-03/TD-04 aktif. | `Cari.Islemler` tetikleyicileri demo kopyasında kapalı | DB `Cari.AcceptTransaction`, `UpdateTransaction`, `InsertTransaction`, `DeleteTransaction` — dördü DISABLED (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §2`). Uygulama tarafında karşılığı: `Clas | 60 | |||
| ERR-POT-033 | POTANSİYEL | S3 | TD-33 — Uyumluluk seviyesi 100 | PF — skaler UDF inlining, yeni kardinalite tahmini yok. | Uyumluluk seviyesi 100 | DB `ERPGOLDV2` (AS-DOCUMENTED `erpgoldv2-ilk-bulgular.md:4, §8`; mimari referans §9-30). `FN.Bol` skaler UDF 121 modülde; uygulama SQL'inde `Fn.Bol(` 10 satır (grep). | 80 | |||
| ERR-POT-034 | POTANSİYEL | S3 | TD-34 — 45 kullanılmayan tablo | BK — şema yanıltıcı; rapor yazanlar yanlış tabloya (`dbo.BakiyeIslem` vs `Cari.BakiyeIslem`) bağlanabilir. | 45 kullanılmayan tablo | `kb_src/notes/gaps.json` `GAP-DB-01` (satır 0 + hiçbir SQL nesnesinin kullanmadığı 45 tablo: `Agent.Controller/FeedBack`, `AifaDev.GridLayouts/Layouts/ShortKeys`, `dbo.BakiyeIslem` (kopya), `DynamicFo | 80 | |||
| ERR-POT-035 | POTANSİYEL | S2 | TD-35 — ExLimit PIN üretimi zayıf | GV — GUID hex karakterleri (0-9, A-F) → 16×16 = 256 olası PIN, ASCII kodları tahmin edilebilir (mimari referans §9-22 ile uyumlu). | ExLimit PIN üretimi zayıf | `ERPPRO/Class/Dao/Islem/FrmExLimit.vb:50-53` (`Left(GetNewGUID, 2)` → her karakterin `Asc` değeri birleştirilir); `:48-49` "captcha" `Say1 + (Say1 - 1)` toplama sorusu. | 80 | |||
| ERR-POT-036 | POTANSİYEL | S3 | TD-36 — `Sistem.Clients` hard delete | VB — soft-delete kuralının (`IsDeleted`) dışına çıkan tek DAO silmesi; makine adı string birleştirme. | `Sistem.Clients` hard delete | `ERPPRO/Class/Dao/Sistem.Clients.vb:232` (`Delete From Sistem.Clients Where ClientName='" & ComputerName & "'`). | 80 | |||
| ERR-POT-037 | POTANSİYEL | S3 | TD-37 — `Program.AfterSave` ondalık değeri `ToString` ile SQL'e gömüyor | VB — kültür ondalık ayırıcı `,` ise SQL hatası/yanlış değer; `Utils.Culture` (`Class/Module/Utils.vb:126-139`) `.` zorluyor, ancak yalnız o özellik ça | `Program.AfterSave` ondalık değeri `ToString` ile SQL'e gömüyor | `ERPPRO/Class/Module/Program.vb:11-14` (`Set Miktar=Adet * " & .OrtMiktar.ToString & "`), iki ayrı `UPDATE`, transaction yok. | 80 | |||
| ERR-POT-038 | POTANSİYEL | S3 | TD-38 — Ölü kod ve artıklar | BK — okuma yükü, yanlış yol seçimi. | Ölü kod ve artıklar | `ERPPRO/Class/Module/Utils.vb:198-…` (`cVBEvalProvider` — çağıran yok); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1800-1992` (`TableAdapterManager.UpdateAll` — çağıran yok); `CodeDesigner/CodeDesigner/UiDe | 80 | |||
| ERR-POT-039 | POTANSİYEL | S2 | TD-39 — `Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyor | `Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyor | Belirtilen SQL nesnesi / ekran verisi | 60 | ||||
| ERR-POT-040 | POTANSİYEL | S2 | TD-40 — `TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru) | `TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru) | Belirtilen SQL nesnesi / ekran verisi | 60 | ||||
| ERR-POT-041 | POTANSİYEL | S2 | TD-41 — `MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölme | `MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölme | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | 60 | ||||
| ERR-POT-042 | POTANSİYEL | S2 | TD-42 — Devir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyor | Devir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyor | Belirtilen SQL nesnesi / ekran verisi | PF-036 | 60 | |||
| ERR-POT-043 | POTANSİYEL | S2 | TD-43 — Müşteri adı taşıyan şemalar çekirdek DB'de: `MüşteriŞemasıA`, `MüşteriŞemasıB`, `MüşteriŞemasıC`, `MüşteriŞemasıD` | Müşteri adı taşıyan şemalar çekirdek DB'de: `MüşteriŞemasıA`, `MüşteriŞemasıB`, `MüşteriŞemasıC`, `MüşteriŞemasıD` | Belirtilen SQL nesnesi / ekran verisi | 60 | ||||
| ERR-POT-044 | POTANSİYEL | S2 | TD-44 — Kod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14 | Kod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14 | Kurulum/bağlantı ayarları (veri etkilenmez) | 60 | ||||
| ERR-POT-045 | POTANSİYEL | S2 | TD-45 — 10 ekran canlı DB'de olmayan 8 tabloya yazıyor | 10 ekran canlı DB'de olmayan 8 tabloya yazıyor | Belirtilen SQL nesnesi / ekran verisi | 60 | ||||
| ERR-POT-046 | POTANSİYEL | S3 | TD-46 — ANA MENÜ'de arkasında kod olmayan 25 düğme | ANA MENÜ'de arkasında kod olmayan 25 düğme | 60 | |||||
| ERR-POT-047 | POTANSİYEL | S3 | TD-47 — Rapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2` | Rapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2` | PF-004 | 60 | ||||
| ERR-POT-048 | POTANSİYEL | S1 | TD-48 — `AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk) | `AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk) | Cari.Islemler + karşı hesap/fatura/RsAktar kayıtları (yarım işlem) | PF-008 | 60 | |||
| ERR-POT-049 | POTANSİYEL | S2 | TD-49 — İş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE) | İş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE) | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | 60 | ||||
| ERR-POT-050 | POTANSİYEL | S3 | InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_Click | Teknik hata kutusu; XML üretilmez. | InvalidCastException (CDate) | Kullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.202 | Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryP | 85 | ||
| ERR-POT-051 | POTANSİYEL | S3 | InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_Click | Teknik hata kutusu; XML üretilmez. | InvalidCastException (CDate) | Kullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13. | Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryP | 85 | ||
| ERR-POT-052 | POTANSİYEL | S3 | InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_Click | Teknik hata kutusu; XML üretilmez. | InvalidCastException (CDate) | Kullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13. | Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryP | 85 | ||
| ERR-SIL-001 | SESSİZ MANTIK / HESAPLAMA | S4 | IndexOutOfRangeException / InvalidCastException — FrmBlokTakozGirisi.ListRefresh | Belirti yok; hatalı girişte 'Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı' mesajı. | IndexOutOfRangeException / InvalidCastException | TxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(0) yok; veya sayısal | Try/Catch var ama Catch bloğu boş; SubeId/HesapId/FisNo 0 kalır ve sorgu 0 değerleriyle çalışır. Form Load'da (satır 3-4) ListRefresh boş metinle çağrıldığı içi | PF-010 | 90 | |
| ERR-SIL-002 | SESSİZ MANTIK / HESAPLAMA | S4 | IndexOutOfRangeException / InvalidCastException — FrmBlokTakozGirisi.ListRefresh | Belirti yok; hatalı girişte 'Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı' mesajı. | IndexOutOfRangeException / InvalidCastException | TxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(1) yok; veya sayısal | Try/Catch var ama Catch bloğu boş; SubeId/HesapId/FisNo 0 kalır ve sorgu 0 değerleriyle çalışır. Form Load'da (satır 3-4) ListRefresh boş metinle çağrıldığı içi | PF-010 | 90 | |
| ERR-SIL-003 | SESSİZ MANTIK / HESAPLAMA | S4 | IndexOutOfRangeException / InvalidCastException — FrmBlokTakozGirisi.ListRefresh | Belirti yok; hatalı girişte 'Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı' mesajı. | IndexOutOfRangeException / InvalidCastException | TxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(2) yok; veya sayısal | Try/Catch var ama Catch bloğu boş; SubeId/HesapId/FisNo 0 kalır ve sorgu 0 değerleriyle çalışır. Form Load'da (satır 3-4) ListRefresh boş metinle çağrıldığı içi | PF-010 | 90 | |
| ERR-POT-053 | POTANSİYEL | S3 | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — Dosya.ShowFile | Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma). | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) | Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. | FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok. | 80 | ||
| ERR-POT-054 | POTANSİYEL | S3 | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — FrmCariKartEkle.TeminatlarButtonClick | Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma). | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) | Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. | FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok. | 80 | ||
| ERR-POT-055 | POTANSİYEL | S3 | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — FrmTeminatEkle.ShowFile | Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma). | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) | Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. | FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok. | 80 | ||
| ERR-SIL-004 | SESSİZ MANTIK / HESAPLAMA | S4 | IndexOutOfRangeException — UiForm.LoadDesigner | Tasarımcıda bazı kontroller yüklenmez; hata mesajı yok. | IndexOutOfRangeException | Designer kodundaki 'Friend WithEvents' satırı beklenen 'Friend WithEvents Ad as New Tip' biçiminde değilse (elle düzenle | Satır 30 `On Error Resume Next` → istisna yutulur, Dim değişkeni Nothing kalır, `ControlTpye <> ""` False olur ve kontrol sessizce atlanır. Araç tarafından üret | 70 | ||
| ERR-SIL-005 | SESSİZ MANTIK / HESAPLAMA | S4 | IndexOutOfRangeException — UiForm.LoadDesigner | Tasarımcıda bazı kontroller yüklenmez; hata mesajı yok. | IndexOutOfRangeException | Designer kodundaki 'Friend WithEvents' satırı beklenen 'Friend WithEvents Ad as New Tip' biçiminde değilse (elle düzenle | Satır 30 `On Error Resume Next` → istisna yutulur, Dim değişkeni Nothing kalır, `ControlTpye <> ""` False olur ve kontrol sessizce atlanır. Araç tarafından üret | 70 | ||
| ERR-SIL-006 | SESSİZ MANTIK / HESAPLAMA | S4 | NullReferenceException — EtiketDesignList.SimpleList1_ButtonClick | Butona basınca hiçbir şey olmaz, mesaj yok. | NullReferenceException | Liste boşken veya satır seçili değilken Düzenle/Sil butonuna basılırsa GetFocusedRow Nothing döner; `New EtiketDesign(It | Satır 16 `On Error Resume Next` → NRE yutulur, hiçbir şey olmaz. Item Is Nothing kontrolü yok (karşılaştırma: RDPList.vb:13 aynı deseni açıkça kontrol ediyor). | 75 | ||
| ERR-SIL-007 | SESSİZ MANTIK / HESAPLAMA | S3 | Tüm istisnalar (maskeleme) — UrunListesi.LoadStok | Seri işlem ekranında ürün listesi eksik görünür; hata mesajı yok. | Tüm istisnalar (maskeleme) | DSX.TABLE.ListOfMaden/ListOfEmtia vb. Nothing ise veya öğe eşlemesinde istisna oluşursa | On Error Resume Next tüm hataları yutar; liste eksik/boş kalır. Loglama yok. | PF-045 | 65 | |
| ERR-SIL-008 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — EtiketDesignList.SimpleList1_ButtonClick | Buton tepkisiz. | Tüm istisnalar (maskeleme) | Bkz. satır 17 kaydı | On Error Resume Next; NRE ve alt form hataları yutulur. | 75 | ||
| ERR-SIL-009 | SESSİZ MANTIK / HESAPLAMA | S4 | TargetInvocationException / InvalidCastException (maskeleme) — EtiketDetay.GetValue | Etikette ilgili alan boş basılır. | TargetInvocationException / InvalidCastException (maskeleme) | Item Nothing ise veya FieldName özelliği okunurken istisna oluşursa (Prop.GetValue), Result boş kalır. | On Error Resume Next; Prop IsNot Nothing kontrolü var ancak Item Nothing kontrolü yok. | PF-024 | 60 | |
| ERR-SIL-010 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — DataList.DataBind | Liste boş; ek mesaj yok. | Tüm istisnalar (maskeleme) | InternalDb(Query).DataTable Nothing dönerse (SQL hatası) veya DevExpress kolon işlemlerinde istisna olursa | On Error Resume Next; SQL hatası InternalDb tarafından MsgBox ile gösterilir, sonrası sessiz. | 70 | ||
| ERR-SIL-011 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — DataListBase.DataBind | Liste/resim yüklenmez, mesaj yok. | Tüm istisnalar (maskeleme) | ActiveObject Nothing ise veya görsel/veri bağlama hatası | On Error Resume Next. | 70 | ||
| ERR-SIL-012 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — SimpleList.RetriveData | Liste boş; mesaj yok. | Tüm istisnalar (maskeleme) | SQL/DevExpress hataları | On Error Resume Next. | 70 | ||
| ERR-SIL-013 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — Appointment.New(Apt) | Randevu eksik bilgiyle kaydedilir; mesaj yok. | Tüm istisnalar (maskeleme) | Apt.ResourceIds / RecurrenceInfo Nothing veya DevExpress persistence helper istisnası | On Error Resume Next; nesne kısmen dolu olarak devam eder ve kaydedilebilir. | 60 | ||
| ERR-SIL-014 | SESSİZ MANTIK / HESAPLAMA | S4 | InvalidCastException (CBool("")) — TicketList.GridView1_CustomDrawCell | Bazı bilet satırları renklendirilmez. | InvalidCastException (CBool("")) | IsActive veya Status hücresi NULL ise `CBool("" & Nothing)` = CBool("") InvalidCastException atar. | On Error Resume Next; hücre renklendirmesi atlanır. | 75 | ||
| ERR-SIL-015 | SESSİZ MANTIK / HESAPLAMA | S1 | NullReferenceException (hata işleyici içinde) — MyApplication.ShowDebugOutput | Uygulama açılışta sessizce kapanır veya hata hiç görünmez; AutoErrorHandle=1 ise hata formu, 'Kapat' → program kapanır. | NullReferenceException (hata işleyici içinde) | 1) Giriş ekranı (FrmLoginForm.New) çalışmadan önce bir istisna oluşursa Program.UserSettings Nothing'dir; satır 15 `Prog | On Error Resume Next yalnızca If içindeki satırları kapsar. Loglama yok. ExeptionForm.BtnKapat → `End` (uygulamayı sonlandırır). | Belirtilen SQL nesnesi / ekran verisi | 80 | |
| ERR-SIL-016 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — UiForm.LoadDesigner | Form tasarımcısında eksik kontroller. | Tüm istisnalar (maskeleme) | Designer kodu ayrıştırılırken herhangi bir istisna (Type.GetType Nothing → Activator NRE, Split indeks vb.) | On Error Resume Next; kontroller sessizce atlanır. | 70 | ||
| ERR-SIL-017 | SESSİZ MANTIK / HESAPLAMA | S4 | Tüm istisnalar (maskeleme) — Properties.ToString | Üretilen designer kodunda eksik özellik satırı. | Tüm istisnalar (maskeleme) | Late-bound .FieldName/.Mask erişimi desteklemeyen kontrol tipinde MissingMemberException | On Error Resume Next; satır atlanır. | 65 | ||
| ERR-SIL-018 | SESSİZ MANTIK / HESAPLAMA | S2 | IndexOutOfRangeException (kolon yok) — DBNull yanlış pozitif — ERPFatura.New(RecordId) | MADEN faturası eksik tutar/kur ve entegratör bilgisiyle gönderilmeye çalışılır; entegratör reddi veya hatalı belge. | IndexOutOfRangeException (kolon yok) — DBNull yanlış pozitif | Convert.ToString(DBNull) "" döndürür, istisna atmaz. Gerçek risk: Muhasebe.GetEFatura sonuç kümesinde 'MADENKODU' kolonu | Satır 48-155 tek bir Try/Catch (boş Catch) içinde: istisna sonrası kalan TÜM alanlar (DovizMiktar, DovizTLKuru, Entegrator bilgileri, limitler) yüklenmez; fHasR | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 60 |
| ERR-SIL-019 | SESSİZ MANTIK / HESAPLAMA | S2 | ArgumentOutOfRangeException (Substring) — ERPFatura.New(RecordId) | E-belge kısmen yüklenmiş nesneyle gönderilir: tutar 0 / entegratör kimlik bilgisi boş → entegratör hatası; kullanıcı nedeni anlayamaz. | ArgumentOutOfRangeException (Substring) | Cari.IslemDetaylari.DovizKodu 3 karakterden kısa ise (boş string '' NULL değildir → DBNull koruması geçer). DovizKodu Fr | DBNull kontrolü var, uzunluk kontrolü yok. Dış Try/Catch (boş) istisnayı yutar ve satır 82+ alanları (DovizMiktar, DovizTLKuru, DolarKuru zaten okundu ama EntUs | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 75 |
| ERR-SIL-020 | SESSİZ MANTIK / HESAPLAMA | S2 | ArgumentOutOfRangeException (Substring) [SUBSTRING adayı, aynı satır] — ERPFatura.New(RecordId) | Aynı. | ArgumentOutOfRangeException (Substring) [SUBSTRING adayı, aynı satır] | Bkz. DBNULL_CAST kaydı (aynı satır). | Aynı. | Belirtilen SQL nesnesi / ekran verisi | 75 | |
| ERR-SIL-021 | SESSİZ MANTIK / HESAPLAMA | S3 | InvalidCastException (CInt(DBNull)) + yutulan SqlException — DBBase.Insert | Kayıt sessizce kaydedilmez; çağıran yalnızca False alır. | InvalidCastException (CInt(DBNull)) + yutulan SqlException | SCOPE_IDENTITY() NULL dönerse (identity kolonu olmayan tablo) CInt(DBNull) InvalidCastException; ayrıca INSERT'teki her | Try/Catch var; Catch bağlantıyı kapatır, mesaj/log yok → RecId=0 → Insert False döner. Kullanıcıya nedeni gösterilmez. | 80 | ||
| ERR-POT-056 | POTANSİYEL | S4 | InvalidCastException (CInt(DBNull)) — DynamicData.Insert | Teknik hata kutusu. | InvalidCastException (CInt(DBNull)) | SCOPE_IDENTITY() NULL dönerse | Try/Catch → MsgBox(ex.Message) + Return False. | 80 | ||
| ERR-POT-057 | POTANSİYEL | S2 | SqlException / InvalidCastException (yeniden fırlatılır) — ERPFatura.Save | E-fatura kaydında yakalanmamış hata (AutoErrorHandle'a bağlı olarak hata formu veya sessiz). | SqlException / InvalidCastException (yeniden fırlatılır) | MERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw | İstisna sarılıp yeniden fırlatılır. Çağıran FrmEFaturaBas.FormSave (`If ERP_Fatura.Save = True`, satır 313) ve Extention.vb:62 Try/Catch içinde DEĞİL → Applicat | Belirtilen SQL nesnesi / ekran verisi | PF-007 | 75 |
| ERR-POT-058 | POTANSİYEL | S2 | NullReferenceException (Dt Nothing) — Lisans.FirstDate | Lisans kontrolünde çökme/hata formu (bağlantı sorununda). | NullReferenceException (Dt Nothing) | Rows(0): GROUP BY'sız aggregate sorgu her zaman 1 satır döndürür → IndexOutOfRange olmaz. Ancak SQL/bağlantı hatasında I | Nothing kontrolü yok. Çağrı zinciri: Utils.CallLisansControl ← Program.Init (Try/Catch → ShowDebugOutput) ve FrmMainForm.FormInit (IsLicensed, Try yok). | Belirtilen SQL nesnesi / ekran verisi | PF-002 | 80 |
| ERR-POT-059 | POTANSİYEL | S2 | NullReferenceException (Dt Nothing) — Lisans.FirstDate | Aynı. | NullReferenceException (Dt Nothing) | Aynı. | Aynı. | Belirtilen SQL nesnesi / ekran verisi | 80 | |
| ERR-POT-060 | POTANSİYEL | S4 | ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif — Parameters.CreateDataTable | Agent/koşul editörü açılırken yakalanmamış hata. | ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif | Rows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) | Satır 65-69 Nothing için String kolonu açar ama satır 73'te DBNull'a çevirmez. Çağıran FrmControllerEkle.vb:39 Try dışında. | 70 | ||
| ERR-POT-061 | POTANSİYEL | S2 | DivideByZeroException (Decimal bölme) — ERPFatura.ValidateOverUsdLimit | E-döviz belgesi gönderirken 'Attempted to divide by zero' yakalanmamış hata (AutoErrorHandle=1: hata formu; 0: sessiz, belge gönderilmez). | DivideByZeroException (Decimal bölme) | DolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde | Sıfır kontrolü yok. SendToEntegrator (satır 779) çağrıları FrmEFaturaBas.vb:338 ve FrmEFaturaListesi.vb:39'da Try/Catch DIŞINDA → Application.ThreadException. | Belirtilen SQL nesnesi / ekran verisi | PF-070 | 85 |
| ERR-POT-062 | POTANSİYEL | S2 | OverflowException (Infinity → Decimal) — Ice.Get_eDoviz_Belge | 'Entegrator faturayı Kabul Etmedi. Hata oluştu!Value was either too large or too small for a Decimal.' mesajı; belge gönderilmez, log e-postası atılır. | OverflowException (Infinity → Decimal) | EDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too l | Sıfır kontrolü yok; SendInvoice (Ice.vb:116-194) Try/Catch ile yakalar → DeleteSettings(Auth) + EDovizResponseResult(Message='Hata oluştu!...'). | Belirtilen SQL nesnesi / ekran verisi | PF-007 | 85 |
| ERR-POT-063 | POTANSİYEL | S2 | OverflowException (Infinity → Decimal) — Ice.Get_eDoviz_Belge | Entegratör hata mesajı. | OverflowException (Infinity → Decimal) | EDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Ca | SendInvoice Try/Catch. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 80 |
| ERR-POT-064 | POTANSİYEL | S2 | DivideByZeroException (Decimal) — Ice.Get_eDoviz_Belge | Entegratör hata mesajı ('Attempted to divide by zero'). | DivideByZeroException (Decimal) | tlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Ver | SendInvoice Try/Catch. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 80 |
| ERR-POT-065 | POTANSİYEL | S2 | OverflowException (Infinity → Decimal) — MySoft.Get_eDoviz_Belge | Entegratör hata mesajı. | OverflowException (Infinity → Decimal) | Dolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException. | SendInvoice (MySoft.vb:108-174) Try/Catch. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 85 |
| ERR-SIL-022 | SESSİZ MANTIK / HESAPLAMA | S2 | Sessiz (Double Infinity → JSON) — MySoft.Get_eDoviz_Belge | Entegratör belgeyi reddeder; sebep anlaşılmaz. | Sessiz (Double Infinity → JSON) | Doviz_TL_Kuru = 0 → 1/0 = Infinity (Double, istisna yok) → CalculationRate (Double) Infinity → JSON'a 'Infinity' yazılır | Koruma yok; .NET istisnası oluşmaz. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 70 |
| ERR-SIL-023 | SESSİZ MANTIK / HESAPLAMA | S3 | Sessiz (Double Infinity) — MySoft.Get_eDoviz_Belge | Hatalı oran; entegratör reddi. | Sessiz (Double Infinity) | VergiHaric_Tutar = 0 → Infinity (Double). | Koruma yok. | PF-018 | 65 | |
| ERR-SIL-024 | SESSİZ MANTIK / HESAPLAMA | S2 | Sessiz (Double Infinity → JSON) — Ticari1.Get_eDoviz_Belge | Entegratör reddi. | Sessiz (Double Infinity → JSON) | Doviz_TL_Kuru = 0 → 1/0 Infinity (Double özellik). | Koruma yok. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 70 |
| ERR-SIL-025 | SESSİZ MANTIK / HESAPLAMA | S2 | Sessiz (Double Infinity/NaN → JSON) — Ticari1.Get_eDoviz_Belge | Entegratör reddi. | Sessiz (Double Infinity/NaN → JSON) | Dolar_TL_Kuru = 0 → Infinity/NaN. | Koruma yok. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 70 |
| ERR-POT-066 | POTANSİYEL | S2 | FormatException (Convert.ToDecimal("∞")) — Uyumsoft.Get_eDoviz_Belge | Entegratör hata mesajı ('Input string was not in a correct format'). | FormatException (Convert.ToDecimal("∞")) | Dolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException. | SendInvoice (Uyumsoft.vb:141-194) Try/Catch. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 85 |
| ERR-POT-067 | POTANSİYEL | S2 | FormatException (Convert.ToDecimal("∞")) — Uyumsoft.Get_eDoviz_Belge | Entegratör hata mesajı. | FormatException (Convert.ToDecimal("∞")) | SATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException. | SendInvoice Try/Catch. | Belirtilen SQL nesnesi / ekran verisi | PF-018 | 80 |
| ERR-POT-068 | POTANSİYEL | S4 | SqlException (tarih boş) — CDate yanlış pozitif — FrmSeriIslem.ListRefresh | Tarih temizlenip listelenirse SQL hata kutusu, liste boş. | SqlException (tarih boş) — CDate yanlış pozitif | TxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001- | Metot Try/Catch (boş) içinde; InternalDb.DataTable hatayı MsgBox ile gösterir. Tarih boş kontrolü yok. | 60 | ||
| ERR-POT-069 | POTANSİYEL | S4 | SqlException (tarih boş) — CDate yanlış pozitif — iScreen.ListRefresh | Aynı. | SqlException (tarih boş) — CDate yanlış pozitif | Aynı desen (BarEditItem DateEdit). | Try/Catch (boş, iScreen.vb:960/993); InternalDb MsgBox. | 60 | ||
| ERR-POT-070 | POTANSİYEL | S3 | InvalidCastException (CInt(DBNull)/CInt("")) — FrmSiparisGirisi.SaveData | Sipariş kaydında yakalanmamış hata (teorik). | InvalidCastException (CInt(DBNull)/CInt("")) | CmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer | Kontrol yok; SaveData Try/Catch dışında. | 50 | ||
| ERR-POT-071 | POTANSİYEL | S2 | SQLR-001 Invalid object name: Cari.Odemeler | MsgBox: "Invalid object name 'Cari.Odemeler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.Odemeler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kat | basedb/out/code_refs2.json code_only[Cari.Odemeler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Cari.Odemeler | 90 | |
| ERR-POT-072 | POTANSİYEL | S2 | SQLR-002 Invalid object name: Genel.IptalOnay | MsgBox: "Invalid object name 'Genel.IptalOnay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Genel.IptalOnay' nesnesine Select/Insert/Update gönderiyor; nesne DB1 k | basedb/out/code_refs2.json code_only[Genel.IptalOnay] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Genel.IptalOnay | 90 | |
| ERR-POT-073 | POTANSİYEL | S3 | SQLR-003 Invalid object name: Siparis.FiyatListesi | MsgBox: "Invalid object name 'Siparis.FiyatListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.FiyatListesi' nesnesine Select/Insert/Update gönderiyor; nesne | basedb/out/code_refs2.json code_only[Siparis.FiyatListesi] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Siparis.FiyatListesi | 90 | |
| ERR-POT-074 | POTANSİYEL | S3 | SQLR-004 Invalid object name: Uretim.Eritme | MsgBox: "Invalid object name 'Uretim.Eritme'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Eritme' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kat | basedb/out/code_refs2.json code_only[Uretim.Eritme] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Uretim.Eritme | 90 | |
| ERR-POT-075 | POTANSİYEL | S3 | SQLR-005 Invalid object name: Uretim.Formul | MsgBox: "Invalid object name 'Uretim.Formul'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Formul' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kat | basedb/out/code_refs2.json code_only[Uretim.Formul] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Uretim.Formul | 90 | |
| ERR-POT-076 | POTANSİYEL | S3 | SQLR-006 Invalid object name: Uretim.FormulDetay | MsgBox: "Invalid object name 'Uretim.FormulDetay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.FormulDetay' nesnesine Select/Insert/Update gönderiyor; nesne DB | basedb/out/code_refs2.json code_only[Uretim.FormulDetay] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Uretim.FormulDetay | 90 | |
| ERR-POT-077 | POTANSİYEL | S3 | SQLR-007 Invalid object name: Uretim.ModelPartiBilgileri | MsgBox: "Invalid object name 'Uretim.ModelPartiBilgileri'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.ModelPartiBilgileri' nesnesine Select/Insert/Update gönderiyor; | basedb/out/code_refs2.json code_only[Uretim.ModelPartiBilgileri] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Uretim.ModelPartiBilgileri | 90 | |
| ERR-POT-078 | POTANSİYEL | S2 | SQLR-008 Invalid object name: Uretim.Partiler | MsgBox: "Invalid object name 'Uretim.Partiler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Partiler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 k | basedb/out/code_refs2.json code_only[Uretim.Partiler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Uretim.Partiler | 90 | |
| ERR-POT-079 | POTANSİYEL | S3 | SQLR-009 Invalid object name: Siparis.GetFiyatListesi | MsgBox: "Invalid object name 'Siparis.GetFiyatListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetFiyatListesi' nesnesine Select gönderiyor; nesne DB1 kataloğ | basedb/out/code_refs2.json code_only[Siparis.GetFiyatListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-080 | POTANSİYEL | S3 | SQLR-010 Invalid object name: Uretim.GetEritmeListesi | MsgBox: "Invalid object name 'Uretim.GetEritmeListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetEritmeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğ | basedb/out/code_refs2.json code_only[Uretim.GetEritmeListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-081 | POTANSİYEL | S3 | SQLR-011 Invalid object name: Uretim.GetFormuls | MsgBox: "Invalid object name 'Uretim.GetFormuls'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormuls' nesnesine Select gönderiyor; nesne DB1 kataloğunda y | basedb/out/code_refs2.json code_only[Uretim.GetFormuls] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-082 | POTANSİYEL | S3 | SQLR-012 Invalid object name: Uretim.GetModelPartiBilgiListesi | MsgBox: "Invalid object name 'Uretim.GetModelPartiBilgiListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetModelPartiBilgiListesi' nesnesine Select gönderiyor; nesne DB | basedb/out/code_refs2.json code_only[Uretim.GetModelPartiBilgiListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-083 | POTANSİYEL | S3 | SQLR-013 Invalid object name: Uretim.GetPartiler | MsgBox: "Invalid object name 'Uretim.GetPartiler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiler' nesnesine Select gönderiyor; nesne DB1 kataloğunda | basedb/out/code_refs2.json code_only[Uretim.GetPartiler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-084 | POTANSİYEL | S3 | SQLR-014 Invalid object name: Cari.GETOdemeKasaOzeti | MsgBox: "Invalid object name 'Cari.GETOdemeKasaOzeti'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeKasaOzeti' nesnesine Select gönderiyor; nesne DB1 kataloğu | basedb/out/code_refs2.json code_only[Cari.GETOdemeKasaOzeti] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | PF-063 | 90 | |
| ERR-POT-085 | POTANSİYEL | S2 | SQLR-015 Invalid object name: Cari.GETOdemeListesi | MsgBox: "Invalid object name 'Cari.GETOdemeListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğund | basedb/out/code_refs2.json code_only[Cari.GETOdemeListesi] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | İlgili ekranın okuduğu/yazdığı SQL nesnesi | 90 | |
| ERR-POT-086 | POTANSİYEL | S2 | SQLR-016 Invalid object name: Organizasyon.Gorevler | MsgBox: "Invalid object name 'Organizasyon.Gorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.Gorevler' nesnesine Select/Insert/Update gönderiyor; nesne | basedb/out/code_refs2.json code_only[Organizasyon.Gorevler] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Organizasyon.Gorevler | 90 | |
| ERR-POT-087 | POTANSİYEL | S3 | SQLR-017 Invalid object name: Organizasyon.GorevDagitim | MsgBox: "Invalid object name 'Organizasyon.GorevDagitim'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GorevDagitim' nesnesine Select gönderiyor; nesne DB1 katal | basedb/out/code_refs2.json code_only[Organizasyon.GorevDagitim] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Organizasyon.GorevDagitim | 90 | |
| ERR-POT-088 | POTANSİYEL | S4 | SQLR-018 Invalid object name: Sistem.iException | MsgBox: "Invalid object name 'Sistem.iException'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Sistem.iException' nesnesine Select/Insert/Update gönderiyor; nesne DB1 | basedb/out/code_refs2.json code_only[Sistem.iException] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Sistem.iException | 60 | |
| ERR-POT-089 | POTANSİYEL | S3 | SQLR-019 Invalid object name: Siparis.PaketHesaplari | MsgBox: "Invalid object name 'Siparis.PaketHesaplari'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.PaketHesaplari' nesnesine Select/Insert/Update gönderiyor; nesn | basedb/out/code_refs2.json code_only[Siparis.PaketHesaplari] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Siparis.PaketHesaplari | PF-060 | 90 |
| ERR-POT-090 | POTANSİYEL | S3 | SQLR-020 Invalid object name: Siparis.ModelAyarBlackList | MsgBox: "Invalid object name 'Siparis.ModelAyarBlackList'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.ModelAyarBlackList' nesnesine Select gönderiyor; nesne DB1 kata | basedb/out/code_refs2.json code_only[Siparis.ModelAyarBlackList] (2 referans); Sistem.ERPSCHEMA satırı: VAR (5 satır); TD-45. NOT: ana şema (ERPSCHEMA) bu tabloyu 5 satırla tanımlıyor → DBUpdate çalıştırılınca oluşturulabilir. | Siparis.ModelAyarBlackList | 90 | |
| ERR-POT-091 | POTANSİYEL | S3 | SQLR-021 Invalid object name: Siparis.modelayarBlacklist | MsgBox: "Invalid object name 'Siparis.modelayarBlacklist'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.modelayarBlacklist' nesnesine Select/Insert/Update gönderiyor; | basedb/out/code_refs2.json code_only[Siparis.modelayarBlacklist] (2 referans); Sistem.ERPSCHEMA satırı: VAR (5 satır); TD-45. NOT: ana şema (ERPSCHEMA) bu tabloyu 5 satırla tanımlıyor → DBUpdate çalıştırılınca oluşturulabilir. | Siparis.modelayarBlacklist | 90 | |
| ERR-POT-092 | POTANSİYEL | S3 | SQLR-022 Invalid object name: Siparis.GetPaketHesapListesi | MsgBox: "Invalid object name 'Siparis.GetPaketHesapListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetPaketHesapListesi' nesnesine Select gönderiyor; nesne DB1 ka | basedb/out/code_refs2.json code_only[Siparis.GetPaketHesapListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | PF-060 | 90 | |
| ERR-POT-093 | POTANSİYEL | S3 | SQLR-023 Invalid object name: Siparis.GetUyumluPaketler | MsgBox: "Invalid object name 'Siparis.GetUyumluPaketler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetUyumluPaketler' nesnesine Select gönderiyor; nesne DB1 katal | basedb/out/code_refs2.json code_only[Siparis.GetUyumluPaketler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-094 | POTANSİYEL | S3 | SQLR-024 Invalid object name: Siparis.GetLastPrice | MsgBox: "Invalid object name 'Siparis.GetLastPrice'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetLastPrice' nesnesine Select gönderiyor; nesne DB1 kataloğund | basedb/out/code_refs2.json code_only[Siparis.GetLastPrice] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-095 | POTANSİYEL | S3 | SQLR-025 Invalid object name: Uretim.GetFormulDetay | MsgBox: "Invalid object name 'Uretim.GetFormulDetay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormulDetay' nesnesine Select gönderiyor; nesne DB1 kataloğun | basedb/out/code_refs2.json code_only[Uretim.GetFormulDetay] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-096 | POTANSİYEL | S3 | SQLR-026 Invalid object name: Uretim.GetPartiModelListesi | MsgBox: "Invalid object name 'Uretim.GetPartiModelListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiModelListesi' nesnesine Select gönderiyor; nesne DB1 kat | basedb/out/code_refs2.json code_only[Uretim.GetPartiModelListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | 90 | ||
| ERR-POT-097 | POTANSİYEL | S2 | SQLR-027 Invalid object name: Cari.GetRiskRaporu | MsgBox: "Invalid object name 'Cari.GetRiskRaporu'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GetRiskRaporu' nesnesine Select gönderiyor; nesne DB1 kataloğunda | basedb/out/code_refs2.json code_only[Cari.GetRiskRaporu] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | İlgili ekranın okuduğu/yazdığı SQL nesnesi | PF-004 | 90 |
| ERR-POT-098 | POTANSİYEL | S3 | SQLR-028 Invalid object name: Stok.GetTakozIsciligi | MsgBox: "Invalid object name 'Stok.GetTakozIsciligi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Stok.GetTakozIsciligi' nesnesine Select gönderiyor; nesne DB1 kataloğun | basedb/out/code_refs2.json code_only[Stok.GetTakozIsciligi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | PF-034 | 90 | |
| ERR-POT-099 | POTANSİYEL | S3 | SQLR-029 Invalid object name: Organizasyon.GelenGorevler | MsgBox: "Invalid object name 'Organizasyon.GelenGorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GelenGorevler' nesnesine Select gönderiyor; nesne DB1 kata | basedb/out/code_refs2.json code_only[Organizasyon.GelenGorevler] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Organizasyon.GelenGorevler | 90 | |
| ERR-POT-100 | POTANSİYEL | S3 | SQLR-030 Invalid object name: Organizasyon.GidenGorevler | MsgBox: "Invalid object name 'Organizasyon.GidenGorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False). | SQL 208 Invalid object name | İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GidenGorevler' nesnesine Select gönderiyor; nesne DB1 kata | basedb/out/code_refs2.json code_only[Organizasyon.GidenGorevler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45. | Organizasyon.GidenGorevler | 90 | |
| ERR-POT-101 | POTANSİYEL | S1 | SQLR-031 Invalid object name: Genel.Dosyalar (VIEW) | İşlem kaydında "Invalid object name 'DOCUMENTS.Genel.Dosyalar'" ya da "Database 'DOCUMENTS' does not exist"; her işlem girişi geri alınır. Doküman ekranlarında aynı hata. | SQL 208 Invalid object name | Genel.Dosyalar bir VIEW: 'Select * from DOCUMENTS.Genel.Dosyalar'. DOCUMENTS veritabanı sunucuda yoksa (DB1 sys.database | modules.json Genel.Dosyalar: 'CREATE View Genel.Dosyalar as Select * from DOCUMENTS.Genel.Dosyalar'; deps.json: Cari.GetGerekliEvraklar→Genel.Dosyalar; AcceptTransaction satır ~112: 'SELECT COUNT(*) FROM Cari.GetGerekliEvraklar(@SubeId,@HesapId,'True')'; misc.json database listesi. | DOCUMENTS.Genel.Dosyalar | PF-010 | 85 |
| ERR-POT-102 | POTANSİYEL | S4 | SQLR-032 Invalid object name: LiveUpdate.Version / LiveUpdate.SetVersion / LiveUpdate.Lock / LiveUpdate.UnLock | Sürüm kontrolü sırasında 'Invalid object name LiveUpdate.VersionHistory_' — yalnız kilit senaryosunda. | SQL 208 Invalid object name | Prosedürler 'LiveUpdate.VersionHistory_' (kilitli ad) tablosuna başvuruyor; tablo DB1'de yok. Ancak her dal OBJECT_ID('L | analysis_db.json unresolved[148911602,484912799]='LiveUpdate.VersionHistory_'; analysis.json unresolved_in_base. | LiveUpdate.VersionHistory_ | 80 | |
| ERR-POT-103 | POTANSİYEL | S2 | SQLR-033 Invalid object name: Sistem.FromERP | Hesap aktarımı ekranında 'Invalid object name …dbo.Firmalar' ya da 'Column name or number of supplied values does not match table definition'. | SQL 208 (ya da 213 kolon sayısı) Invalid object name | Proc, kullanıcı combosundan gelen @Database adıyla '<db>.dbo.Firmalar' / 'dbo.Birimler_' tablolarına dinamik SQL (exec(@ | modules.json Sistem.FromERP: '@HesapQuery = Insert Into Cari.Hesaplar Select Id as OldFirmaId,… from ' + @DataBase + '.dbo.Firmalar'; columns.json Cari.Hesaplar 57 kolon, Id identity; analysis.json unresolved_in_base['Sistem.FromERP']. | <@Database>.dbo.Firmalar, <@Database>.dbo.Birimler_, <@Database>.dbo.BakiyeIslem; hedef Cari.Hesaplar | PF-060 | 85 |
| ERR-POT-104 | POTANSİYEL | S3 | SQLR-034 Invalid object name: dbo.sp_DevirIslemiYap | Çalıştırılırsa 'Invalid object name Cari.IslemlerDetalari' vb.; devir yarım kalır (TRUNCATE sonrası). | SQL 208 Invalid object name | Proc ERPGLOBAL veritabanına (cross-DB) ve çözümlenemeyen 4 nesneye (Cari.bilancolar, Cari.islemlerdetalari [yazım hatası | analysis.json rows['dbo.sp_DevirIslemiYap'].unresolved=['Cari.bilancolar','Cari.islemlerdetalari','Sistem.bakiyeislem','dbo.company']; analysis_db.json crossdb[1583396760]='ERPGLOBAL.Dbo.Company'; modül metninde 'SET IDENTITY_INSERT Cari.Islemler ON'. | ERPGLOBAL.dbo.Company; Cari.Bilancolar; Cari.IslemlerDetalari; Sistem.BakiyeIslem | PF-036 | 80 |
| ERR-POT-105 | POTANSİYEL | S4 | SQLR-035 Invalid object name: Sistem.MT4OrdersSync / Sistem.MT4TicketsSync / Sistem.Reset | Çalıştırılırsa 'Invalid object name Sistem.MT4Orders'. | SQL 208 Invalid object name | Prosedürler Sistem.MT4Orders / Sistem.MT4tickets tablolarına başvuruyor; DB1'de yok (Sistem.ERPSCHEMA kataloğunda 'Siste | analysis_db.json unresolved[1145823194]=['Sistem.MT4Orders'], [1161823251]=['Sistem.MT4tickets'], [1193823365]=['Sistem.MT4Tickets']; dbsql.json Sistem.ERPSCHEMA: Sistem.GetMT4Orders×17, Sistem.MT4EXPO×3. | Sistem.MT4Orders, Sistem.MT4Tickets | 80 | |
| ERR-POT-106 | POTANSİYEL | S3 | SQLR-036 Invalid object name: AifaDev.Reports #16, #19, #29, #30 (DB içinde saklanan rapor SQL'i) | Rapor çalıştırılınca "Invalid object name 'MüşteriŞemasıD.GetEnvanter'" vb. | SQL 208 Invalid object name | Kullanıcı bu raporları çalıştırdığında saklanan SQL DB1'de olmayan fonksiyon/view'ları çağırıyor (MüşteriŞemasıD özel ne | dbsql.json AifaDev.Reports#16 'Select * From MüşteriŞemasıD.GetCariBakiyeHaraketleri(@HesapId,@Tarih,@BirimId)', #19 'MüşteriŞemasıD.GetEnvanter(@Tarih)', #29 'Reports.IptalIslemRaporu(...)', #30 'Cari.HesapExtresiDetails'; objects.json'da bu adlar yok. | MüşteriŞemasıD.GetCariBakiyeHaraketleri; MüşteriŞemasıD.GetEnvanter; Reports.IptalIslemRaporu; Cari.HesapExtresiDetails | PF-004 | 90 |
| ERR-POT-107 | POTANSİYEL | S3 | SQLR-037 Could not find stored procedure: Reports.GetPozisyonDetay | "An insufficient number of arguments were supplied for the procedure or function Reports.GetPozisyonDetay." — Pozisyon Durum raporu boş. | SQL 313 (An insufficient number of arguments were supplied) Could not find stored procedure | Fonksiyon (@SubeId,@BasTarih,@SonTarih) 3 parametre bekliyor; kod ve PopupGrid 2 argümanla çağırıyor: Reports.GetPozisyo | parameters.json Reports.GetPozisyonDetay: @SubeId,@BasTarih,@SonTarih; FrmPozisyonDurum.vb:15 'Reports.GetPozisyonDetay(''" & DateEdit1… & "'',''" & DateEdit2 …'; PopupGrid#5 'Reports.GetPozisyonDetay(getdate(),Getdate())'. | PF-004 | 95 | |
| ERR-POT-108 | POTANSİYEL | S3 | SQLR-038 Could not find stored procedure: Reports.ResmiPozisyon | "An insufficient number of arguments were supplied for the procedure or function Reports.ResmiPozisyon." | SQL 313 Could not find stored procedure | Fonksiyon @Tarih parametresi bekliyor; 29 rapor tanımı 'Reports.ResmiPozisyon ()' parametresiz çağırıyor (yalnız #67 doğ | dbsql.json AifaDev.Reports #38–#66 'Select * from Reports.ResmiPozisyon ()'; parameters.json Reports.ResmiPozisyon: @Tarih. | PF-040 | 95 | |
| ERR-POT-109 | POTANSİYEL | S3 | SQLR-039 Invalid object name: AifaDev.ExQueryBuilder (TRIGGER on AifaDev.RepositoryItems) | Dinamik form alanı eklerken "Cannot find the object 'Query.XXX' because it does not exist or you do not have permissions." | SQL 4902 (Cannot find the object … ALTER VIEW) Invalid object name | Tetikleyici yeni bir Owner için view oluşturmak istediğinde her iki dalda da 'Alter View Query.<Owner>' üretiyor ('if OB | modules.json AifaDev.ExQueryBuilder: "if OBJECT_ID (@ViewName) is null BEGIN SET @Query = 'Alter View ' … END ELSE BEGIN SET @Query = 'Alter View ' …"; "exec ('Add Schema Query')". | Query.<Owner> (dinamik view) | 90 | |
| ERR-POT-110 | POTANSİYEL | S2 | SQLR-040 Invalid column name: Cari.Transferler | "Invalid column name 'Aciklama'." — kayıt/liste başarısız. | SQL 207 Invalid column name | Kod Cari.Transferler üzerinde 'Aciklama' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. | sql_frags (ERPPRO/Class/Dao/Cari.Transferler.vb:172 (Insert), :222 (Update)); columns.json Cari.Transferler kolon listesinde 'Aciklama' yok. DB2'de Cari.Transferler 32.531 satır — kolon orada olabilir (BİLİNMİYOR). | Cari.Transferler | PF-070 | 95 |
| ERR-POT-111 | POTANSİYEL | S3 | SQLR-041 Invalid column name: Siparis.Paket | "Invalid column name 'IsPublic'." — kayıt/liste başarısız. | SQL 207 Invalid column name | Kod Siparis.Paket üzerinde 'IsPublic' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. | sql_frags (ERPPRO/Class/Dao/Siparis.Paket.vb:93 (Insert), :126 (Update)); columns.json Siparis.Paket kolon listesinde 'IsPublic' yok. | Siparis.Paket | PF-070 | 95 |
| ERR-POT-112 | POTANSİYEL | S3 | SQLR-042 Invalid column name: Siparis.TakimKartlari | "Invalid column name 'Grup'." — kayıt/liste başarısız. | SQL 207 Invalid column name | Kod Siparis.TakimKartlari üzerinde 'Grup' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. | sql_frags (ERPPRO/Class/Dao/Siparis.TakimKarti.vb:112 (Insert), :163 (Update)); columns.json Siparis.TakimKartlari kolon listesinde 'Grup' yok. Sistem.ERPSCHEMA'da 'Siparis.TakimKartlari' için 1 satır var → ana şemada V2'de olmayan bir kolon (muhtemelen Grup) = 'Alter … Add' adayı. | Siparis.TakimKartlari | PF-070 | 95 |
| ERR-POT-113 | POTANSİYEL | S4 | SQLR-043 Invalid column name: Sistem.CariIslemTipi | "Invalid column name 'IsDeleted'." — kayıt/liste başarısız. | SQL 207 Invalid column name | Kod Sistem.CariIslemTipi üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. | sql_frags (ERPPRO/Class/Dao/Sistem.CariIslemTipi.vb:11 (Sub New(Filter): Select * … Where IsDeleted='False')); columns.json Sistem.CariIslemTipi kolon listesinde 'IsDeleted' yok. Tablo kolonları: Id, IslemTipi, Kod. | Sistem.CariIslemTipi | PF-070 | 95 |
| ERR-POT-114 | POTANSİYEL | S3 | SQLR-044 Invalid column name: Cari.Provizyon | "Invalid column name 'IsDeleted'." — kayıt/liste başarısız. | SQL 207 Invalid column name | Kod Cari.Provizyon üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. | sql_frags (ERPPRO/Class/Ext/Cari.Provizyon.vb:57 (TOList), :151, :171 (Delete)); columns.json Cari.Provizyon kolon listesinde 'IsDeleted' yok. Tabloda IsDeleted yok (Status/StatusId var). | Cari.Provizyon | PF-070 | 95 |
| ERR-POT-115 | POTANSİYEL | S4 | SQLR-045 Invalid column name: Sistem.Users | "Invalid column name 'SubeId'." — kayıt/liste başarısız. | SQL 207 Invalid column name | Kod Sistem.Users üzerinde 'SubeId' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. | sql_frags (ERPPRO/Form/Genel/FrmChangeAccount.vb:9); columns.json Sistem.Users kolon listesinde 'SubeId' yok. Şube bilgisi Sistem.UserDetails.SubeId'de. | Sistem.Users | PF-070 | 95 |
| ERR-POT-116 | POTANSİYEL | S2 | SQLR-046 Invalid column name: Cari.IslemDetaylari / Cari.Islemler (kurulum farkı) | DB2'de perakende/işlem listesinde "Invalid column name 'ETTN'"; e-belge akışı kuyumcuda tanımsız. | SQL 207 Invalid column name | DB2 (KUYUMCU) kurulumunda Cari.IslemDetaylari 12 kolon (ETTN yok), DB1'de 49 kolon; Cari.Islemler.IsArbitiraj yalnız DB1 | kitap/b8_kuyumcu.md 'Cari.IslemDetaylari: döviz 49 / kuyumcu 12 kolon; ETTN kuyumcuda yoktur; IsArbitiraj yalnız döviz'; Parakende.vb:13 sorgu metni; AcceptTransaction cursor listesi 'D.ETTN'. | Cari.IslemDetaylari; Cari.Islemler | PF-009 | 85 |
| ERR-POT-117 | POTANSİYEL | S3 | SQLR-047 Invalid column name: Sistem.ERPSCHEMA 'Alter … Add' satırları | DBUpdate uygulanmamış kurulumda ilgili ekranlarda 'Invalid column name …'. | SQL 207 (kurulum bazlı) Invalid column name | ERPSCHEMA = ftp schema.csv (ana şema, 2022-12-16) − sys.columns farkı. Nesnesi V2'de VAR olan 13 nesnenin toplam 24 satı | dbsql.json Sistem.ERPSCHEMA satır sayıları (Cari.Hesaplar 1, Cari.Islemler 1, Cari.IslemListesi 6, Siparis.TakimKartlari 1 …); DBUpdate.vb Method computed: object_id(TableName) null→'Create' else 'Alter'. | Cari.Hesaplar (1), Cari.Islemler (1), Cari.IslemListesi (6), Cari.HesapListesi (1), Cari.GetHesapListesi (1), Siparis.TakimKartlari (1), Muhasebe.BTRANSDoviz (1), Muhasebe.MerkezBankasiRaporu (5), Que | PF-008 | 60 |
| ERR-POT-118 | POTANSİYEL | S2 | SQLR-048 Invalid column name: (kod) ERPFatura.Save → Cari.IslemDetaylari | Fatura/belge detayı kaydedilmez; kullanıcıya hata gösterilmez (ekran 'kaydedilemedi' ya da hiçbir şey). | SQL 102 (Incorrect syntax near 'MERGE') Invalid column name | SQL metni "Insert Into Cari.IslemDetaylari(MERGE Cari.IslemDetaylari WITH (SERIALIZABLE) AS T USING (VALUES(…)) … output | QA-SQL-QUERY-MAP.md satır 354; ERPFatura.vb:330 metni; :486 'Catch ex As Exception' boş. | Cari.IslemDetaylari | PF-007 | 90 |
| ERR-SIL-026 | SESSİZ MANTIK / HESAPLAMA | S2 | SQLR-049 Divide by zero: FN.Bol | Hata yok; bakiye/işçilik/ortalama maliyet 0 ya da eksik görünür; raporlarda 0 fiyat. | SQL 8134 (sessizleştirilmiş → 0) Divide by zero | FN.Bol(@a,@b): 'IF (@Number1<>0 and @Number2<>0) SET @Number=@Number1/@Number2' — payda 0 ya da NULL ise 0 döner; hata y | modules.json FN.Bol tanımı; AcceptTransaction: '@Iscilik = Fn.Bol((@HasIscilik * @HasIscBirimKur),@IscKur) + …', '@HasBakiye += Fn.Bol(((@Miktar*@AgMilyem)*@GumKur),@HasKur)'; FN.Bol çağıran 103 modül listesi (div.py). | Cari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar | PF-004 | 95 |
| ERR-POT-119 | POTANSİYEL | S3 | SQLR-050 Divide by zero: Bilanco.GetIKar; Bilanco.GetIBilanco | Bilanço kâr raporunda 'Divide by zero error encountered.' | SQL 8134 Divide by zero | 9 ayrı 'Sum(… )/Kur1.Alis' ifadesi; Kur1 = Sistem.GetKurListesi(@Tarih) BirimId=1 satırı. HAS kuru o gün 0 girilmişse 81 | div.py çıktısı: Bilanco.GetIKar 5×, Bilanco.GetIBilanco 4× '/Kur1.Alis' NULLIF yok. | Cari.BakiyeIslem; Stok.StokHaraketleri | PF-070 | 85 |
| ERR-POT-120 | POTANSİYEL | S2 | SQLR-051 Divide by zero: MüşteriŞemasıA.IslemFiyatlar tetikleyicisi (DB2 Cari.Islemler 5. tetikleyici) | DB2'de işlem kaydında 'Divide by zero error encountered' → işlem kaydedilemez. | SQL 8134 Divide by zero | 'I.Maliyet/I.UsdKur' ve 'I.Maliyet/I.HasKur' korumasız; kur 0 gelirse tetikleyici hata verir ve kullanıcının işlemi geri | TD-41; kitap/b8_kuyumcu.md 'Sıfıra bölme riski: I.Maliyet/I.UsdKur, I.Maliyet/I.HasKur korumasız'. Tetikleyici metni bu turda elde yok (DB2 modülleri GAP-BASE-DB2-MODULES). | Cari.Islemler → MüşteriŞemasıA.IslemFiyatlar | PF-070 | 70 |
| ERR-POT-121 | POTANSİYEL | S3 | SQLR-054 Conversion failed: (kod) Cari.Odeme.vb:136 → Cari.Islemler | Ödeme listesinde 'Conversion failed when converting the nvarchar value 'xyz' to data type int.' | SQL 245 Conversion failed | 'Where … StokId=… And Convert(int,Tag)=…' — Tag serbest metin (nvarchar(MAX)); filtre sırası garanti değil, sayısal olma | Cari.Odeme.vb:136 'select Sum(Miktar) … And Convert(int,Tag) =''" & Id & "''' (Cari.Odemeler ekranı zaten 208 ile düşer). | Cari.Islemler | 80 | |
| ERR-POT-122 | POTANSİYEL | S4 | SQLR-055 Conversion failed: Query.GENELSTOKLAR (VIEW); AifaDev.ExQueryBuilder üretimi Query.* view'ları | Dinamik form listesi/raporunda 'Conversion failed …' ya da 'Error converting data type nvarchar to numeric'. | SQL 245 / 8114 Conversion failed | Pivot edilen serbest metin Value kolonu 'Convert(int, F.Kimden)', 'Convert(Decimal(18,5), F.[x])', 'Convert(Date, F.[x], | modules.json Query.GENELSTOKLAR 'Convert(int, F.Kimden)'; ExQueryBuilder DataType→Convert eşlemesi. | AifaDev.RepositoryData | PF-004 | 75 |
| ERR-POT-123 | POTANSİYEL | S3 | SQLR-056 Conversion failed: (kod) tırnaklı birleştirme ile tipsiz literal karşılaştırması | 'Error converting data type varchar to numeric' / 'Conversion failed when converting date and/or time' / 'Incorrect syntax near ='. | SQL 245 / 8114 / 241 Conversion failed | int/decimal/date kolonlar tırnaklı string literal ile karşılaştırılıyor → örtük dönüşüm. Değişken boş ('') → int için 0 | dyn.py istatistiği: 1294 cümle; 914 '&' ile birleştirme; 553 tırnaklı ('" & x & "'); 252 parametreli; 133 sabit. TD-37 (ondalık ToString). | Cari.Islemler, Cari.Hesaplar, Stok.*, Siparis.* … | 85 | |
| ERR-POT-124 | POTANSİYEL | S4 | SQLR-057 Arithmetic overflow: Cari.AcceptTransaction; Cari.History (Fiyat decimal(18,5) ← Islemler.Fiyat decimal(18,8)); Stok.StokHaraketleri.NetBakiye decimal(37,10) | Overflow: 'Arithmetic overflow error converting numeric to data type numeric' (nadir). Yuvarlama: History'de Fiyat 5 hane. | SQL 8115 Arithmetic overflow | decimal(18,5)*decimal(18,5) çarpımı (37,10) → decimal(18,2)'ye dönüşümde |değer| ≥ 10^16 olursa 8115. Pratikte Tutar×Kur | columns.json: Islemler.Fiyat decimal(18,8) vs History.Fiyat decimal(18,5); AcceptTransaction 'Convert(Decimal(18,2), @StokIsc * @StokIscKur)'. | Cari.Islemler; Cari.History; Cari.BakiyeIslem; Stok.StokHaraketleri | 70 | |
| ERR-SIL-027 | SESSİZ MANTIK / HESAPLAMA | S3 | SQLR-058 Conversion failed: (kod) TCMB.Currency.Save → MERGE Sistem.TCMBDovizKurlari | TCMB kur arşivi güncellenmez (sessiz); döviz seri fatura ekranında geçmiş tarih kur boş ya da NullReference. | SQL 4406 (View or function is not updatable) Conversion failed | CheckTable() OBJECT_ID null değilse tablo oluşturmaz; DB1'de ad bir VIEW (tablo NonUsed_TCMBDovizKurlari'na taşınmış). M | modules.json 'Create View Sistem.TCMBDovizKurlari as Select Tarih,Birim as Kodu,Alis,Satis from Sistem.GetKurListesi(getdate())'; TCMB.vb:67 CheckTable; :127 MERGE; phase6 KUY_ONLY 'Sistem.TCMBDovizKurlari' tablo. | Sistem.TCMBDovizKurlari (DB1'de VIEW: Select … from Sistem.GetKurListesi(getdate())) | PF-007 | 85 |
| ERR-POT-125 | POTANSİYEL | S3 | SQLR-059 String or binary data would be truncated: (kod DAO Insert/Update) kısa nvarchar kolonlar | 'String or binary data would be truncated.' ya da kayıt sessizce yapılmaz. | SQL 8152 / 2628 String or binary data would be truncated | AddWithValue ile UI'dan gelen metin kolon uzunluğunu aşınca 8152 (SQL2019+ 2628, kolon adı verir). Kod tarafında MaxLeng | Truncation taraması (300 kolon ≤50 karakter, kod INSERT listelerinde); columns.json uz değerleri (nvarchar byte/2). | Sistem.Kasalar.Kodu nvarchar(10); Sistem.Sirketler.Kodu(10)/Aciklama(50); Sistem.Birimler.Kodu(15); Sistem.Mizan.Kodu(15); Sistem.TakozScala.Kodu nvarchar(1); Cari.Faturalar.FaturaSeri(10); Personel.P | 75 | |
| ERR-POT-126 | POTANSİYEL | S3 | SQLR-061 Cannot insert NULL: Cari.Islemler.FiyatTipi (tfiyattipi NOT NULL, default yok); Cari.History.FiyatTipi; Cari.BakiyeIslem.HesapType (NOT NULL) | "Cannot insert the value NULL into column 'FiyatTipi'/'HesapType'" — işlem kaydedilemez. | SQL 515 Cannot insert NULL | Cari.Islemler'de NOT NULL & default'suz tek kolon FiyatTipi. Kod INSERT'i @FiyatTipi gönderiyor; ancak nesne özelliği No | columns.json Islemler NOT NULL no-default: [FiyatTipi tfiyattipi]; BakiyeIslem.HesapType null=False; frags.py NOT NULL taraması (kod INSERT'lerinde yalnız ERPFatura MERGE (IslemId) ve Sistem.Clients (dinamik kolon listesi) eksik). | Cari.Islemler; Cari.History; Cari.BakiyeIslem | PF-060 | 75 |
| ERR-POT-127 | POTANSİYEL | S4 | SQLR-062 Cannot insert NULL: (kod) Sistem.Clients dinamik INSERT | İstemci kaydı yapılamaz (Cannot insert the value NULL into column 'ClientName'). | SQL 515 Cannot insert NULL | Kolon listesi dolu özelliklerden derleniyor; ClientName boşsa listeye girmez → 515. | frags.py: Sistem.Clients INSERT listesinde clientname yok (dinamik). | Sistem.Clients | 60 | |
| ERR-SIL-028 | SESSİZ MANTIK / HESAPLAMA | S2 | SQLR-063 Duplicate key: Sistem.Kurlar (BirimId,Tarih); Sistem.Birimler.Kodu; Cari.Hesaplar (VergiNo,SubeId); Cari.Islemler.FisNo; Cari.BakiyeKodlari.Kodu | Hata yok; aynı fiş numarası iki işlem, kur listesinde çift satır, bilanço tutarı iki kat. | SQL 2627 / 2601 (yok — benzersiz indeks yok → sessiz mükerrer) Duplicate key | DB1'de PK dışı benzersiz indeks yalnız 4 (sysdiagrams, KYC.BelgeTurleri.Kod, POS.Esikler, POS.VergiOranlari). İş anahtar | indexes.json is_unique & not PK: 4 satır; Sistem.Kurlar indeksleri PK_Kurlar(Id), IX_KUR_SORT_TARIH(Tarih)…; FN.GetKur 'Select top 1 Alis … Where BirimId=@BirimId' ORDER BY yok; TD-02. | Sistem.Kurlar; Sistem.Birimler; Cari.Hesaplar; Cari.Islemler | PF-005 | 85 |
| ERR-POT-128 | POTANSİYEL | S1 | SQLR-064 Duplicate key: Cari.AcceptTransaction → MERGE INTO Sistem.Activity | İşlem kaydında 'The MERGE statement attempted to UPDATE or DELETE the same row more than once…' — o şubede hiç işlem yapılamaz. | SQL 8672 (MERGE aynı satırı birden fazla kez güncelliyor) Duplicate key | MERGE … ON Target.ActivitySubeId=Source.ActivitySubeId; HOLDLOCK yok, tabloda PK/unique yok. İki eşzamanlı işlem aynı şu | AcceptTransaction: 'MERGE INTO Sistem.Activity AS Target USING (SELECT @subeId …) ON Target.ActivitySubeId=Source.ActivitySubeId …'; tables.json/indexes.json: Sistem.Activity indeks yok (PK'sız 36 tablo listesinde). | Sistem.Activity (PK yok, 4 satır) | 80 | |
| ERR-OBS-251 | GÖZLEMLENMİŞ | S2 | SQLR-065 Identity: dbo.sp_DevirIslemiYap (IDENTITY_INSERT Cari.Islemler ON); Devir.vb TRUNCATE + yeniden INSERT; Sistem.Devir | Devir sonrası silme gerekçeleri/transfer/provizyon kayıtları yanlış işlemle ilişkilenir; raporlar tutarsız. | SQL 544 / 8101 / (sessiz çakışma) Identity | TRUNCATE Cari.Islemler kimliği tohuma sıfırlar; yeniden eklenen/yeni işlemler 1'den başlar. Boşaltılmayan IslemId taşıya | Devir.vb:76-80 'Truncate Table Cari.Islemler … Cari.IslemDetaylari'; sp_DevirIslemiYap satır 214 'SET IDENTITY_INSERT Cari.Islemler ON'; TD-29, TD-42. | Cari.Islemler; Cari.IslemDetaylari; Sistem.SilAciklama; Cari.Transferler; Sistem.SilOnay; Genel.IptalOnay; Cari.RSReferans; Cari.Provizyon; Cari.IslemEmtiaDetayi; MüşteriŞemasıA.IslemFiyatlar | PF-036 | 85 |
| ERR-SIL-029 | SESSİZ MANTIK / HESAPLAMA | S3 | SQLR-066 Identity: Sistem.SirketOlustur; Sistem.Users Id=1 varsayımı | Yeni şirket kurulumunda ADMIN ile giriş yapılamaz / şube-kasa ataması yok. | SQL (sessiz) Identity | SirketOlustur tüm tabloları TRUNCATE edip ADMIN kullanıcısını ekler ve UserDetails'e UserId=1 yazar; Users kimliği TRUNC | modules.json Sistem.SirketOlustur; FrmMainForm.vb:706 'If LoginInformation.User.Id = 1 AndAlso e.Shift…'. | Sistem.Users; Sistem.UserDetails | PF-008 | 70 |
| ERR-POT-129 | POTANSİYEL | S1 | SQLR-067 Subquery returned more than 1 value: Cari.AcceptTransaction; Uretim.TrBakiyeHesapla; Repair.BalanceRepair | "Subquery returned more than 1 value…" — hiçbir işlem kaydedilemez. | SQL 512 Subquery returned more than 1 value | 'Declare @HasBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select HasSymbol From Sis | subq.py: AcceptTransaction/TrBakiyeHesapla/BalanceRepair 8'er skaler alt sorgu; tables.json Sistem.Settings rows=1, indeks yok; Birimler yalnız PK_Birimler(Id). | Sistem.Settings (PK yok, 1 satır); Sistem.Birimler (Kodu benzersiz değil) | 90 | |
| ERR-POT-130 | POTANSİYEL | S3 | SQLR-068 Subquery returned more than 1 value: Cari.HesapInsert; Cari.HesapUpdate (Cari.Hesaplar tetikleyicileri) | Toplu hesap aktarımında 'Subquery returned more than 1 value'; bazı kullanıcı gruplarında (4,6) hesap düzenlemede 'Yetkiniz yoktur!'; 'Aynı Vergi No ya sahip başka bir hesap mevcuttur!'. | SQL 512 Subquery returned more than 1 value | 'SubeId = (select SubeId from inserted)', 'Id <> (select Id from deleted)', 'SET @UserID=(select UserId from inserted)' | modules.json Cari.HesapInsert / Cari.HesapUpdate metinleri. | Cari.Hesaplar | PF-013 | 90 |
| ERR-POT-131 | POTANSİYEL | S3 | SQLR-069 Subquery returned more than 1 value: Sistem.GetIslemKodu; FN.GetKur; Cari.IslemDetayiEkle; POS.Sabit | Nadir 'Subquery returned more than 1 value' (RSReferans); kur değeri beklenenden farklı (sessiz). | SQL 512 / (sessiz TOP 1) Subquery returned more than 1 value | GetIslemKodu: 'Where I.Id=@tpIslemId' PK ile tek satır → güvenli (Left Join tu on tu.Id=@tpTurId PK). FN.GetKur: 'Select | modules.json FN.GetKur, Sistem.GetIslemKodu, Cari.IslemDetayiEkle; indexes.json PK listesi. | Sistem.CariIslemKodu/Turu/Tipi (PK Id); Sistem.GetKurListesi; Cari.RSReferans (PK yok); POS.Sabitler | 85 | |
| ERR-SIL-030 | SESSİZ MANTIK / HESAPLAMA | S3 | SQLR-070 Subquery returned more than 1 value: Cari.UpdateTransaction; Siparis.Kontrol; MüşteriŞemasıA tetikleyicisi | Hata yok; iptal edilen fişin bazı satırlarının belge detayı (fatura no/ETTN) silinmez, raporlarda görünür. | SQL (sessiz — tek satır varsayımı) Subquery returned more than 1 value | UpdateTransaction 'Select @IsDeleted=I.IsDeleted, @IslemId=D.IslemId, @Ettn=D.ETTN from inserted I Left Join Cari.IslemD | modules.json Cari.UpdateTransaction metni; sql_frags çok satırlı UPDATE'ler. | Cari.Islemler → Cari.IslemDetaylari; Siparis.Siparisler | PF-007 | 85 |
| ERR-POT-132 | POTANSİYEL | S1 | SQLR-071 Dynamic SQL / injection: (kod) string-birleştirmeli SQL | 'Unclosed quotation mark after the character string' / 'Incorrect syntax near …'; arama sonuç vermez. | SQL 102 (tek tırnak) / injection Dynamic SQL / injection | Kullanıcı metninde tek tırnak (') → 102 'Incorrect syntax' ya da 105 'Unclosed quotation mark'; bilinçli girdi → SQL inj | dyn.py istatistiği (sql_frags kaynak satırları okunarak); TD-09, TD-10, TD-37. | — | 95 | |
| ERR-POT-133 | POTANSİYEL | S2 | SQLR-072 Dynamic SQL / injection: Agent.RunAgent; AifaDev.ExQueryBuilder; Cari.GetHesapExtresi; Sistem.FromERP; Sistem.SirketOlustur; dbo.sp_DevirIslemiYap (6 modül) | Hesap ekstresi: 'Incorrect syntax near ]' ya da zaman aşımı; SirketOlustur yanlışlıkla çalıştırılırsa tüm veriler silinir. | SQL 102 / injection Dynamic SQL / injection | Tablo içeriği doğrudan SQL metnine ekleniyor: Agent.Agent.ConditionQuery (serbest SQL, sp_executesql); FieldName/Owner k | analysis_db.json dyn_mods (6 nesne); modules.json metinleri (GetHesapExtresi pivot, FromERP exec(@HesapQuery)). | Agent.Agent.ConditionQuery; AifaDev.RepositoryItems.FieldName/Owner; Cari.BakiyeKodlari.Kodu; @Database; sys.tables | PF-071 | 90 |
| ERR-POT-134 | POTANSİYEL | S2 | SQLR-073 Transaction count mismatch: Cari.AcceptTransaction | 'BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR…' + 'The transaction ended in the trigger. The batch has been aborted.'; nadiren 'A cursor with the name IslemCursor already exists' (16915) sonraki denemede (TD | SQL 3609 (The transaction ended in the trigger. The batch has been aborted.) / 266 Transaction count mismatch | 13 ROLLBACK, 5 RETURN. Eksik evrak (satır ~119), Şube/Kasa/Hesap=0 (~182), takoz kontrolleri (~229,~243) dallarında ROLL | modules.json AcceptTransaction: ROLLBACK 13 / RETURN 5 (TD-04); DECLARE IslemCursor … CLOSE/DEALLOCATE yalnız normal akışta (TD-03). | Cari.Islemler | 90 | |
| ERR-POT-135 | POTANSİYEL | S2 | SQLR-074 Deadlock / timeout: Cari.AcceptTransaction + InsertTransaction + UpdateTransaction (Cari.Islemler); Cari.GetHesapExtresi; Stok.GetOrtMilyem (cursor'lı skaler fonksiyon) | 'Transaction (Process ID …) was deadlocked … has been chosen as the deadlock victim' ya da 'Timeout expired'; işlem kaydedildi mi belirsiz (InternalDb Nothing döner). | SQL 1205 / -2 (Timeout expired) Deadlock / timeout | Tek INSERT için: 4 AFTER trigger, satır başına cursor, 2× Cari.GetGerekliEvraklar (3 tablo + cross-DB view), Stok.GetTak | indexes.json (Cari.Islemler 26 indeks; StokHaraketleri 9, çiftler); tables.json satır sayıları; trg.json 4 tetikleyici Cari.Islemler; AcceptTransaction cursor. | Cari.Islemler (1,58M satır, 26 indeks); Cari.BakiyeIslem (1,46M, 12 indeks, PK yok); Stok.StokHaraketleri (1,62M, 9 indeks); Cari.History (1,64M) | 70 | |
| ERR-POT-136 | POTANSİYEL | S2 | SQLR-075 Recursive trigger: Cari.AcceptTransaction → Cari.Hesaplar UPDATE → Cari.HesapUpdate; Cari.Transferler UPDATE → TransferUpdateSTatus → Stok.StokHaraketleri; Sistem.Subeler INSERT → CreateKasa → Sistem.Kasalar (tetikleyici yok); Uretim.UretimIslemleri → TrBakiyeHesapla | İşlem girerken beklenmedik 'Aynı Vergi No ya sahip başka bir hesap mevcuttur!!' hatası. | SQL 217 (nesting 32) — düşük; iç içe tetikleme Recursive trigger | AcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate()' → HesapUpdate tetiklenir (nesting 2): VergiNo mükerrerli | AcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate() Where Id=@HesapId'; HesapUpdate metni; trg.json trigger→tablo eşlemesi. | Cari.Hesaplar; Stok.StokHaraketleri; Sistem.Kasalar | PF-067 | 80 |
| ERR-POT-137 | POTANSİYEL | S1 | SQLR-076 Disabled trigger: 12 tetikleyici (trg.json) | Kapalıysa: işlem kaydedilir ama bakiye/stok değişmez, History boş. | SQL Disabled trigger | DB1 kataloğunda 12 tetikleyicinin tamamı is_disabled=False. TD-32 'demo kopyasında 4 Islemler tetikleyicisi DISABLED' id | trg.json 12 satır is_disabled=False; TD-32 metni (AS-DOCUMENTED). | Cari.Islemler(4), Cari.Hesaplar(2), Cari.Transferler, Sistem.SilOnay, Sistem.Subeler, Siparis.Siparisler, Uretim.UretimIslemleri, AifaDev.RepositoryItems | PF-034 | 85 |
| ERR-POT-138 | POTANSİYEL | S2 | SQLR-077 Broken dependency: Cari.AcceptTransaction'ın çağırdığı fonksiyonlar: FN.GetKur, FN.Bol, Stok.GetTakozAdet, Cari.GetGerekliEvraklar(→Genel.Dosyalar→DOCUMENTS); Cari.GetKurListesi zinciri; hesaplanan kolon UDF'leri (Sistem.Pariteler.Parite → Sistem.GetIdToBirim; dbo.SyncTickets → FN.Bol [ERPSCHEMA]) | Temizlik sonrası işlem kaydında 'Invalid object name FN.GetKur' vb.; 'Cannot DROP FUNCTION … because it is being referenced by object Pariteler'. | SQL 208 / 4413 Broken dependency | Tetikleyici içinde çağrılan UDF/view zincirinden biri drop/rename edilirse (BASE temizliğinde 'EXCLUDE' adayları) tetikl | deps.json (2026 satır); computed.json Sistem.Pariteler.Parite 'Sistem.GetIdToBirim]([AnaBirimId])'; ERPSCHEMA dbo.SyncTickets computed 'FN.Bol'. | Sistem.Pariteler; Cari.Islemler | 80 | |
| ERR-POT-139 | POTANSİYEL | S3 | SQLR-078 Collation conflict: Pozisyon.Write (COLLATE Turkish_CI_AS); Genel.Dosyalar (cross-DB DOCUMENTS); Sistem.FromERP (<@Database>.dbo.*); ERPGLOBAL.dbo.Company | 'Cannot resolve the collation conflict between … in the equal to operation.' | SQL 468 Collation conflict | Tek açık COLLATE kullanan modül Pozisyon.Write. Cross-DB join'lerde (DOCUMENTS, eski ERP DB, ERPGLOBAL, tempdb #tablolar | modules.json COLLATE taraması: yalnız Pozisyon.Write. | 60 | ||
| ERR-POT-140 | POTANSİYEL | S4 | SQLR-079 Collation conflict: nvarchar(1) kolonlar; text/image legacy tipler; bit'e 'True'/'False' string | Tanım ekranında 'String or binary data would be truncated'; tasarımcıda text tipi hataları. | SQL (veri tipi) 8152/245 Collation conflict | nvarchar(1) kod kolonlarına 2+ karakter → 8152. text/image tipleri: sys.sql_modules/STRING fonksiyonları ile kullanılama | columns.json taraması: nvarchar(1) 4, varchar(1) 2, text 4, image 19. | Sistem.CariIslemTipi.Kod, Sistem.CariIslemTuru.Kod/Yon, Sistem.TakozScala.Kodu (nvarchar(1)); Cari.Islemler.Yon/History.Yon varchar(1); AifaDev.Forms FormCode/ClassCode/DesignerCode (text); Design.For | 90 | |
| ERR-SIL-031 | SESSİZ MANTIK / HESAPLAMA | S3 | SQLR-080 Legacy: Pozisyon.GetOldPozisyon; Sistem.NonUsed_TCMBDovizKurlari; Genel.Dosyalar_; Genel.Experler_; Sistem.AyarEvi_ (DB2); LiveUpdate.VersionHistory_; dbo.Temp; dbo.test; Muhasebe.TEst; FN.GetCariLimitOld; FN.GetKurOldKur; FX.StartSyncOld; Report.BakiyeArtisRaporuOld | Temizlik sonrası Pozisyon ekranı/raporunda 'Invalid object name Pozisyon.GetOldPozisyon'. | SQL Legacy | 'Old' adlı fonksiyon canlı ekran ve rapor tarafından kullanılıyor (BASE-CORE olarak işaretli) — ad yanıltıcı, temizlikte | Legacy referans taraması: code FrmPozisyon.vb:8, dbsql AifaDev.Reports#18, modül Pozisyon.GetHacimRaporu; analysis.json LEGACY 25 nesne. | PF-004 | 85 | |
| ERR-SIL-032 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-001 Bakiye satırı hassasiyeti: Has (5 hane) → Cari.BakiyeIslem.Bakiye decimal(18,2) | Müşteri has bakiyesi ile stok has toplamı (bilanço BAKIYE vs STOK kalemi) arasında açıklanamayan gra | @Has = I.Miktar * Case When AuMilyem=0 Then 1 else AuMilyem end → Insert Into Cari.BakiyeIslem(...,Bakiye) Values(..., | Miktar × AuMilyem üçüncü ondalıkta 5 ve üzeri (ör. 12,34 g × 0,916 = 11,30344 → 11,30); yüksek hacim | Trigger has'ı 5 haneli hesaplar ancak BakiyeIslem.Bakiye 2 haneli olduğu için her satır ±0,005 has yuvarlanır. Aynı işlem için Stok.StokHara | Bir işlemin has bakiye satırı, |Miktar × AuMilyem| değerine 2 hane yuvarlama toleransı içinde eşit o | PF-030 | 92 |
| ERR-SIL-033 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-002 Trigger içinde ROLLBACK sonrası RETURN olmayan dallar (evrak eksik, şube/kasa/hesap=0, takoz stok kontrolü) | Cari.Islemler'de IsDeleted=0 kalan işlemin BakiyeIslem satırları silinmiş (bakiye eksik) ya da IsDel | RAISERROR(...) ; Set @IsError=1 ; ROLLBACK -- RETURN yok (satır 119-123, 180-185, 225-247); döngü başında Set @IsError | Tek UPDATE ile birden çok Cari.Islemler satırı değişirken satırlardan birinin hesabında zorunlu evra | ROLLBACK sonrası trigger yürütmeye devam eder ve sonraki DML'ler autocommit ile kalıcı olur (SQL Server davranışı). Aynı satır için @IsError | Aktif (IsDeleted=0, tip ∉{1,11,12}) ve tutar/has üreten her işlemin en az bir BakiyeIslem satırı olm | PF-034 | 70 |
| ERR-SIL-034 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-003 Limit kontrolü için toplam bakiye (Cari.ToplamBakiye = bugünkü BakiyeIslem + Cari.BakiyeDun) | Limit aşan müşteriye satış/çıkış işlemi sessizce kabul edilir ('limit çalışmıyor'); tersine job gün | Cari.ToplamBakiye = Σ_bugün( Convert(dec(18,2), Bol(Bakiye*Carpan*Kur.Alis, KurHAS.Alis)) )*-1 + Σ Cari.BakiyeDun.Bakiye | Cari.BakiyeDun boş/eski (job çalışmamış); işlem tarihi ≠ bugün; kur listesi HAS satırı 0 | Dünkü ve önceki bakiyeler yalnız Cari.BakiyeDun tablosundan gelir; bu tabloyu dolduran prosedürü çağıran bir job kaynakta yok ve örnek DB'de | Cari.BakiyeDun.Tarih = dün ve limit tanımlı her hesap için satır bulunmalı; ToplamBakiye tüm BakiyeI | PF-030 | 85 |
| ERR-SIL-035 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-004 Limit kontrolü has karşılığı (Satis ÷ HAS kuru) | Limit aşımı sessizce kabul edilir ya da (sembol farkında) her işlem reddedilir | Balance = Satis.Divide(Program.GetKur("HAS")) ; AvaibleLimit = Val(FN.GetCariLimit(HesapId)) ; If Balance > AvaibleLimit | Kur listesinde HAS 0 veya yok; Settings.HasSymbol ≠ 'HAS'; IslemKodu ∉ {1,2,3} | Divide uzantısı bölen 0 ise 0 döndürür: HAS kuru 0/eksikse Balance=0 ve kontrol daima geçer. GetKur birim listede yoksa 1 döner: HasSymbol ' | Aktif işlemde HasKur > 1 ve HasKur ≠ 0 olmalı (has kuru fotoğrafı anlamlı). | PF-030 | 85 |
| ERR-SIL-036 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-005 Kur fotoğrafı (HasKur/GumKur/PltKur/PldKur/EurKur) kaydı | İşlem satırında HasKur=1; takoz/rapor kâr-zarar ve 'işlem günü kur' raporları anlamsız | @HasKur = Program.GetKur(GlobalSettings.HasSymbol) → K.Alis ; birim bulunamazsa 1 | Settings sembolü Birimler'de yok/silinmiş; kur listesi yenileme başarısız; kur tarihi bugün için gir | Sembol kur listesinde yoksa 1 yazılır; takoz bakiyesinde 'Altına Çevir' Fn.Bol((Miktar*AgMilyem)*GumKur, HasKur) HasKur=1 ile has bakiyeyi T | Settings'teki her metal/döviz sembolü Sistem.Birimler'de silinmemiş ve tek satır olarak bulunmalı; a | 90 | |
| ERR-SIL-037 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-006 Sistem.GetKurListesi – günün kuru yoksa son kur (GetLastKur) yedeği; hesaplanan birimlerde yedek yok | Yanlış günün kuruyla TL karşılığı/has karşılığı; türev birimde fiyat 0 (Perakende Fiyat = GetKur × C | Alis = IsNull(Convert(dec(18,4), Kur.Alis*Carpan), L.Alis) ; Kur join: (Case When AnaBirimId=-1 Then 1 Else AnaBirimId E | Gün başında kur girilmeden işlem; hafta sonu/tatil; IsComputed=1 birim; BirimId=1 ≠ HAS olan kurulum | (a) Günün kuru girilmemişse tüm işlemler sessizce en son (dün, hafta sonu öncesi, hatta ileri tarihli) kurla fiyatlanır; ekranda uyarı yoktu | Her aktif, hesaplanmayan birim için bugünün tarihli, silinmemiş tek bir kur satırı bulunmalı; GetKur | PF-023 | 80 |
| ERR-SIL-038 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-007 Sistem.Kurlar benzersizlik/tarih kontrolü yok; FN.GetKur TOP 1 sırasız | Bakiye/pozisyon/bilanço toplamları çift sayılır; rastgele kur ile dönüşüm | FN.GetKur = Select top 1 Alis From Sistem.GetKurListesi(Getdate()) Where BirimId=@BirimId (ORDER BY yok) ; GetLastKur = | Duplicate (BirimId,Tarih); ileri tarihli kur satırı; IsDeleted=1 kur satırı | Aynı birim+tarih için birden çok satır oluşabilir (ekranda Id çözümleme hatası, KOPYALA + elle giriş, dış besleme). GetKurListesi bu durumda | Sistem.Kurlar'da (BirimId, Tarih) çifti silinmemiş satırlar için benzersiz olmalı ve Tarih > bugün o | 85 | |
| ERR-SIL-039 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-008 Kur giriş ekranı: yeni kur satırının Id'si olarak ExecuteNonQuery dönüşü (etkilenen satır sayısı) kullanılıyor | Günün kuru yanlış (ilk girilen) kalır; Id=1'li eski kur satırı bozulur → o günkü arşiv raporları/kur | Id = Db.ExecuteNonQuery("Insert Into Sistem.Kurlar(...) Values(...) SELECT SCOPE_IDENTITY()") → 1 ; sonraki düzenleme: | Aynı ekran oturumunda aynı birim için iki kez değer girme (yazım düzeltmesi) | ExecuteNonQuery eklenen satır sayısını (1) döndürür, SCOPE_IDENTITY sonucunu değil. Grid'deki Id 1 olur; kullanıcı aynı oturumda (yenilemede | Sistem.Kurlar satırında LastModify, Tarih'ten makul süre (≤ birkaç gün) sonra olmalı; Id=1 satırı gü | PF-010 | 85 |
| ERR-SIL-040 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-009 Sistem.KurKopyala – bugünün kurlarını silip son kurla değiştirir | Bugünün kurları önceki güne döner; işlemlerde HasKur/BirimKur eski değer | Delete From Sistem.Kurlar Where Tarih=Convert(Date,GETDATE()) ; Insert … Select GETDATE(),BirimId,Alis,Satis,GETDATE(),0 | Gün içinde kur girildikten sonra KOPYALA'ya basılması; ileri tarihli kur varsa GetLastKur onu getiri | KOPYALA, bugün elle girilmiş tüm kurları siler ve önceki günün kurlarıyla değiştirir; onay/uyarı yoktur, UserId=0 yazılır. Gün içinde kur gü | Günün kur satırları gün içinde sonradan UserId=0 ile yeniden yazılmamalı. | 90 | |
| ERR-SIL-041 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-010 Kur 0/NULL iken Fn.Bol ve .Divide'ın sessiz 0 üretmesi (NET, limit, bilanço, maliyet) | Bakiye ekstresi TOPLAM 0; limit kontrolü etkisiz; maliyet 0 | FN.Bol(a,b) = (a<>0 and b<>0) ? a/b : 0 ; Divide(v1,v2) = (v1<>0 And v2<>0) ? v1/v2 : 0 | Kur satırı 0 (ekran engeller ama SQL/KOPYALA/dış kaynak engellemez) veya birim kur listesinde yok | Sıfıra bölme korunur ancak sonuç 0 olarak akar: kur eksikse NET=0, bilanço kalemi 0, pozisyon 0, limit karşılığı 0 (kontrol geçer), maliyet | Sistem.Kurlar'da silinmemiş hiçbir satırda Alis veya Satis 0/NULL olmamalı. | PF-005 | 90 |
| ERR-SIL-042 | SESSİZ MANTIK / HESAPLAMA | S4 | SLR-011 Kur hassasiyeti: GetKurListesi Convert(Decimal(18,4)) ile kuru 4 haneye yuvarlar (Kurlar 18,5) | TL karşılıklarında küçük ama sistematik sapma; işlem kur fotoğrafı ile Kurlar tablosu farklı | Convert(Decimal(18,4), Kur.Alis * Carpan) as Alis | Kur < 0,01 veya Carpan çarpımı 5. hanede anlamlı; büyük tutarlar | Beşinci ondalık atılır; parite tipi küçük kurlarda (ör. 0,00012 gibi TL-dışı çaprazlar) ve Carpan ile türetilen birimlerde bağıl hata büyür. | GetKurListesi.Alis ile Kurlar.Alis×Carpan farkı 0,00005'i aşmamalı. | 80 | |
| ERR-SIL-043 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-012 IslemTipi 11 (belge takip) ve 12 (MAHSUP) hiç stok/bakiye hareketi üretmez – sayım farkı/açılış girişleri operasyonel stoğa yansımaz | Stok sayım düzeltmesi yapılmış sanılır ama stok eski değerde; bilanço farkı; düzeltme ile bakiye kay | if @IsDeleted='False' And @IsError=0 AND (@IslemTipi <>11 AND @IslemTipi<>12) BEGIN … stok/bakiye üretimi … END | IslemTipi ∈ {11,12}; tip değişikliği ile düzeltme | Kullanıcı dokümanı (A-Z 1.8/2.4, H-123) sayım farkı ve açılış stoğunun MAHSUP ile girilmesini önerir; tetikleyici MAHSUP için Stok.StokHarak | IslemTipi ∈ {11,12} olan işlemlerin BakiyeIslem/StokHaraketleri(Bolum=0) satırı olmamalı; NORMAL→11/ | PF-034 | 95 |
| ERR-SIL-044 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-013 Negatif miktar/adet girişi: bakiye abs() ile yön alır, stok hareketi işaretsiz miktarı taşır | Cari has bakiyesi doğru, stok ters; bilanço BAKIYE≠STOK | Bakiye: Set @Has=0-abs(@Has) / abs(@Has) ; Stok: Miktar = Case When @IslemTuru=0 Then @Miktar When 1 Then 0-@Miktar End | Miktar<0, Adet<0 veya Tutar<0 girilmiş satır | Miktar negatif girilirse bakiye satırı yön kuralına göre düzgün işaret alır ama stok hareketi ters yöne yazılır (giriş stoğu azaltır). Ayrıc | Aktif işlemde Miktar, Adet ve Tutar negatif olmamalı; stok hareketi işareti IslemTuru ile uyumlu olm | PF-034 | 60 |
| ERR-SIL-045 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-014 Stok.GetMadenMaliyeti – son 50 giriş (LIFO), bugünkü kurla bölme, kalan miktara 0 maliyet | Birim maliyet düşük/0; maliyet bir günde sıçrar; kur değişince tarihi maliyet değişir | CURSOR top 50 … Order By IslemId Desc ; ToplamMaliyet += Maliyet (veya orantılı) ; RETURN Convert(dec(18,2), Bol(ToplamM | Stok > son 50 girişin toplamı; geçmiş tarihli rapor; maliyet birimi kuru değişimi; transfer ile gele | Maliyet yalnız girişteki işçilik TL'sidir (metal değeri yoktur); 50 hareket sınırı nedeniyle çok hareketli stokta eski girişler görülmez ve | Eldeki miktar, maliyet hesabına giren giriş hareketleri toplamını aşmamalı (aşarsa maliyet eksik). | PF-034 | 90 |
| ERR-SIL-046 | SESSİZ MANTIK / HESAPLAMA | S4 | SLR-015 Ortalama milyem / maliyet cursor değişkenleri Decimal(18,2) – 5 haneli Has/Miktar kesilir | Ortalama milyem ve has stoğu küsuratta yanlış; stok listesi ile hareket dökümü toplamı farklı | Declare @Miktar Decimal(18,2), @Has Decimal(18,2), @ToplamHas Decimal(18,2) … RETURN Fn.Bol(@ToplamHas,@ToplamMiktar) | Miktar×Milyem 3. ondalıkta anlamlı; çok sayıda küçük hareket | Her hareket 2 haneye yuvarlanarak toplanır; küçük gramajlı çok sayıda hareket (ör. 0,005 g altı has satırları) ortalama milyemi saptırır; st | Stok listesi has/miktar değerleri, hareket toplamına 0,01 toleransla eşit olmalı. | 85 | |
| ERR-SIL-047 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-016 Stok has değeri kart milyemiyle, cari has bakiyesi işlem milyemiyle – stok ve cari türetilmiş kayıtları farklı milyem kullanır | Pozisyon raporunda has farkı; bilanço kâr/zarar hatalı; 'kur değişince bilanço değişiyor' | Stok listesi: Has = Miktar × (MilyemDurumu='False' ? Maden.Milyem : GetOrtMilyem) ; Pozisyon: Sum(Miktar × StabilMilyem) | AuMilyem ≠ Maden.Milyem olan işlemler; MilyemDurumu=True kartlar; negatif işçilikli kart (BR-HESAP-0 | İşçilikli milyem ayrıştırması (BR-HESAP-005) veya elle farklı milyem girilen işlemde bakiyeye Miktar×AuMilyem yazılır; stok ve pozisyon ise | Bir stok kodunun StokHaraketleri.Has toplamı, aynı satırların Miktar×Milyem toplamına eşit olmalı; p | PF-034 | 75 |
| ERR-SIL-048 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-017 Transfer kabulünde stok hareketi üretimi (Cari.TransferUpdateSTatus) – eski satırlar silinmiyor | Aynı transfer stoktan iki (n) kez düşer/çıkar; iptal edilen transferin stoğu geri gelmez | if UPDATE(status): Delete From Stok.StokHaraketleri Where StokTipi=-2 AND IslemId in (inserted) ; Insert … Select 2,Id,1 | Kabul edilmiş (Status=1) transferin düzenlenmesi/yeniden kaydı; transferin sonradan iptali | Silme koşulu StokTipi=-2 (var olmayan tip) olduğundan hiçbir zaman eski Bolum=2 satırı silinmez. Transferler.Update() Status kolonunu her za | Status=1 ve silinmemiş her transfer için tam 2 adet Bolum=2 stok hareketi; diğer durumlarda 0 olmalı | PF-034 | 80 |
| ERR-SIL-049 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-018 Stok.StokHaraketleri.IslemId ad alanı çakışması (Bolum 0 → Cari.Islemler.Id, Bolum 1 → Uretim, Bolum 2 → Transferler.Id) | Stok hareket raporunda transfer satırı yanlış tarih/hesapla; maliyet sırası yanlış | GetStokHareketleri: Left Join Cari.Islemler I on H.IslemId=I.Id (Bolum süzgeci yok) → HesapAdi/Tarih/Fiyat/Tutar başka i | Bolum=2 veya Bolum=1 satırının IslemId'si ile aynı Id'li Cari.Islemler satırı | Transfer/üretim satırlarının IslemId'si Cari.Islemler'deki rastgele bir işlemle çakışır; hareket dökümünde yanlış hesap adı/tarih/tutar görü | Bolum≠0 stok hareketleri Cari.Islemler ile Id üzerinden ilişkilendirilmemeli. | PF-034 | 90 |
| ERR-SIL-050 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-019 Pırlanta stok maliyeti = Tutar × FN.GetKur(BirimId) | Pırlanta maliyeti NULL/yanlış birim kuruyla; bilanço PIRLANTA kalemi eksik | Declare @Maliyet decimal(18,2) = @Tutar * Fn.GetKur(@BirimId) → StokHaraketleri.Maliyet | IslemKodu=8 ve IslemTipi=1; BirimId kur listesinde yok; geçmiş tarihli düzeltme | GetKur eşleşme bulamazsa NULL döner → Maliyet NULL (bilanço PIRLANTA kalemi Sum ile NULL'u atlar). PEŞİN tipte BirimId nakit stok kimliğidir | StokTipi=4 hareketlerde Maliyet NULL olmamalı. | PF-034 | 75 |
| ERR-SIL-051 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-020 Çeşni ve takoz stok listeleri InsertDate ile, stok hareketleri Tarih ile süzülür | Tarihli bilanço/pozisyon farkı; devirde satırın yanlış döneme düşmesi | GetCesniStoklari/GetTakozSubeStoklari: CONVERT(date,InsertDate)<=@Tarih ; StokHaraketleri: Tarih<=@Tarih ; BakiyeIslem.T | Geçmiş tarihli takoz/çeşni işlemi; devir kesim tarihine yakın kayıtlar | Geçmiş tarihe girilen çeşni/takoz işlemi bilançoda kayıt gününe, cari bakiyede işlem gününe düşer; tarihli bilanço iki kalemde farklı kesim | Stok ve bakiye türetimleri aynı tarih alanını (Tarih) esas almalı. | PF-034 | 85 |
| ERR-SIL-052 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-021 Nakit tip 10 (PARİTE) satırı doğrudan kaydedilirse ters işaretli bakiye ve BirimId=0 satırı | Müşteri TL bakiyesi ters işaretli; görünmeyen BirimId=0 bakiye satırı | satır 318-330: Insert BakiyeIslem(BirimId=@BakiyeId, Bakiye=±@Miktar) ; satır 421-425: Insert BakiyeIslem(BirimId=@Birim | IslemTipi=10 olarak kaydedilmiş nakit satırı (düzeltme yolu) | Ekran PARİTE'yi yeni kayıtta iki NORMAL bacağa çevirir; ancak mevcut kayıt düzenlenirken (RecordId≠0) tip PARİTE seçilirse satır IslemTipi=1 | Cari.BakiyeIslem.BirimId ∈ Sistem.Birimler.Id ∪ {-1} olmalı; 0/NULL olmamalı. | PF-023 | 65 |
| ERR-SIL-053 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-022 Çeşni (IslemKodu=14) bakiye satırları yönden bağımsız pozitif yazılır | Çeşni girişinde müşteri alacaklanacağına borçlanır | Values(…,@HasBirimId,@Miktar * @AuMilyem) ; Values(…,@GumBirimId,@Miktar * @AgMilyem) (IslemTuru'na göre işaret yok) | IslemKodu=14 ve IslemTuru∈{0,2,4}; Tutar≠0 çeşni satırı | Ekran her zaman ÇIKIŞ yazdığı için sonuç doğru görünür; ancak satır Düzelt ile tür değiştirilirse ya da seri/sonradan eklenen bir yol GİRİŞ | IslemKodu=14 satırlarında IslemTuru=1 ve Tutar=0 olmalı. | PF-030 | 70 |
| ERR-SIL-054 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-023 Raporsuz takoz bakiyesi: XRF milyemi 0 ise TAKOZ (-1) birimine miktar; değerleme 0,6 varsayımı | Pozisyon 0, bilanço 0,6, bakiye kartı miktar bazlı – üç rapor tutmaz | IsRapor=0 ⇒ @AuMilyem=XRFAuMilyem ; (@AuMilyem=0 And @AgMilyem=0) ⇒ Insert BakiyeIslem(BirimId=-1, Bakiye=∓Miktar) ; Net | IsRapor=0 ve XRF milyemleri 0; rapor sonrası düzeltilmemiş takoz; XRF sonradan güncellenen takoz | Aynı raporsuz takoz üç yerde üç farklı has değeriyle değerlenir (0; 0,6; kart Miktar*0,6 vs bakiye Miktar). Rapor geldiğinde işlem düzeltilm | Raporlu (IsRapor=1) takozun işlemlerinde BirimId=-1 bakiye satırı kalmamalı; raporsuz takoz değerlem | PF-004 | 85 |
| ERR-SIL-055 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-024 İptalin geri alınması / mutabakat gibi her UPDATE'te bakiye ve stoğun güncel referans verisiyle yeniden üretilmesi | Kimse işlem değiştirmeden bakiye değişir (H-105'in kod bağlantısı) | Her UPDATE'te: Delete BakiyeIslem/StokHaraketleri(Bolum=0) → yeniden Insert (XRF milyem, HasBirimId, FN.GetKur bugünkü d | XRF milyemi/Settings/kur değiştikten sonra eski işlemin herhangi bir nedenle güncellenmesi | Türetilmiş kayıtlar işlem satırındaki kur fotoğrafıyla değil o anki referans verilerle (takoz XRF milyemi, Settings sembolleri, pırlanta içi | Bir işlemin BakiyeIslem toplamı, işlem alanları değişmedikçe (History 'Düzeltme' yoksa) sabit kalmal | PF-030 | 75 |
| ERR-SIL-056 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-025 Fiş numarası üretimi MAX(FisNo)+1 (silinmemişler) ve fiş bazlı toplu iptal | Yanlış işlemlerin toplu iptali (bakiye/stok geri alınır); fiş bakiyesi (GetFisBakiye FisNo<=) yanlış | GetNewFisNo = Val(Select Max(FisNo) From Cari.Islemler Where IsDeleted='False') + 1 ; onIptalFisNoClick: Update Cari.Isl | Eşzamanlı kayıt; son fişin iptali; aynı FisNo'ya sahip farklı günlerdeki satırlar | (a) İki kullanıcı aynı anda aynı fiş numarasını alır (yarış). (b) Son fişin tüm satırları iptal edilince numara yeniden kullanılır; iptal ed | Aynı kasada aynı FisNo yalnız tek bir güne ve tek bir hesaba ait olmalı. | 85 | |
| ERR-SIL-057 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-026 Çift kayıt (duplicate posting) – zaman aşımı/ağ kopması sonrası tekrar kayıt | Aynı işlem iki kez bakiye ve stoğa yazılır | Try RecId=db.ExecuteScalar() Catch … End Try ; If RecId>0 Then Id=RecId … Else Return False | Ağ kesintisi/uzun tetikleyici süresi (AcceptTransaction cursor + GetGerekliEvraklar) sırasında kayıt | Sunucu INSERT'i işledikten sonra yanıt istemciye ulaşmazsa (timeout 30 sn, ağ) uygulama hata gösterir ve kayıt başarısız sanılır; kullanıcı | Aynı hesap/tarih/kod/yön/miktar/tutar ile 60 sn içinde ikinci aktif işlem olmamalı. | PF-071 | 75 |
| ERR-SIL-058 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-027 Çok adımlı kayıt zincirlerinde transaction yokluğu (Insert→RsAktar, Save→SendTo karşı bacak, parite iki bacak, Update→Takoz.RaporYaz) | İki hesabın bakiye toplamı sıfırlanmaz; parite ikinci döviz stoğu değişmez | RecId = db.ExecuteScalar() ; If RSAktar … db.ExecuteNonQuery("Cari.RSAktar " & RecId) ; … SendTo: I.Id=0; I.HesapId=karş | Karşı hesapta zorunlu evrak eksik, limit aşımı, şube pasif; ağ kesintisi | İlk bacak yazıldıktan sonra ikinci adım (karşı hesap limiti/evrak/pasif şube nedeniyle trigger reddi, ağ) başarısız olursa uyarı çıkar ama i | Virman (IslemKodu=11) RefNo'su tam iki aktif satır taşımalı; parite birinci bacağının (VaryantId=-1) | PF-004 | 90 |
| ERR-SIL-059 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-028 Cari.UpdateTransaction – çok satırlı UPDATE'te tek satır değişkeni; Mutabakat güncellemesi history üretmez | Belge havuzunda iptal edilmiş işlem 'F' durumunda kalır; history eksik | Select @IsDeleted=I.IsDeleted, @IslemId=D.IslemId, @Ettn=D.ETTN from inserted I Left Join IslemDetaylari D … (tek değer) | Birden çok satırı etkileyen UPDATE; Mutabakat kolonunu içeren UPDATE | RefNo/FisNo ile toplu iptalde yalnız rastgele bir satırın IslemDetaylari kaydı silinir/EIPTAL yapılır; diğer satırların belge detayları akti | İptal edilmiş (IsDeleted=1) ve e-belgesi olmayan işlemin IslemDetaylari satırı kalmamalı; her işlemi | 85 | |
| ERR-SIL-060 | SESSİZ MANTIK / HESAPLAMA | S4 | SLR-029 Uygulama yuvarlama yardımcıları: .Round(n) uzantısı keser (truncate) ve hane parametresini yok sayar; Math.Round banker's; ToNumeric/TextN kültür varsayımı | Vergi tutarı 1 kuruş eksik; ekran ile SQL raporu arasında kuruş farkı; parite TL bacağı ±0,5 TL | Round(Value,Decimals): Values=Value.ToString.Split(".") ; Result=Values(0)+"."+Left(Values(1),2) ; Val(Result) ; ToNumer | BSMV küsuratı 3. hanede ≥5; tutar×fiyat tam yarım kuruş; kültür/ondalık ayarı farklı iş parçacığı | Vadeli ve hızlı satışta BSMV = (Tutar×BSMV/1000).Round(2) her zaman aşağı kesilir (12,999→12,99), hane parametresi 2'ye sabittir, bilimsel g | Kayıtlı BSMV, (Tutar−BSMV)×BSMVOran/1000 değerine ±0,01 toleransla eşit olmalı. | 90 | |
| ERR-SIL-061 | SESSİZ MANTIK / HESAPLAMA | S4 | SLR-030 Nakit BSMV geri hesabı (Tutar'dan fiyat) ileri formülün tersi değil | Belge vergi tutarı ile işlem BSMV alanı farklı; tutar 40 kuruş sapar | İleri: BSMV = Net×BSMV/1000 ; TUTAR = Round(Net+BSMV,2) ; Geri (TxtTutar LostFocus): Net ≈ Tutar − Tutar×BSMV/1000 (br | IsBsmv ve Tutar elle girilmiş; BSMV ayarı Dahil/Hariç | Tutar elle girildiğinde net tutar ve fiyat yaklaşık hesaplanır; ardından TutarHesapla yeniden tetiklenirse Tutar ilk girilenden farklı olur | Nakit satırında Tutar = Miktar×Fiyat + BSMV (±0,01) olmalı. | 85 | |
| ERR-SIL-062 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-031 Maliyet/İşçilik hesabı Double ile; negatif işçilik 0'a çekilir; kur 0 ise işçilik 0 | Kâr raporunda alış iskontosu kaybolur; maliyet 0 | MiktarMaliyeti=(Miktar×AuMilyem)×AnaBirim.Price ; Giriş: Iscilik=(TutarMaliyeti−MiktarMaliyeti).Divide(MaliyetBirim.Pric | TutarMaliyeti < MiktarMaliyeti (iskontolu alış); MaliyetBirim kuru 0; kur listesi eksik | Müşteriden metal değerinin altında alış (negatif işçilik = iskonto) 0 işçilikle kaydedilir; StokHaraketleri.Maliyet (=Iscilik×Kur) 0 olur, g | Girişte Iscilik×IscilikBirimKur ≈ Tutar×BirimKur − Miktar×AuMilyem×HasKur (negatif değer 0'a çekilme | 80 | |
| ERR-SIL-063 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-032 Bilanco.OzetBilanco – kalemler farklı kesim tarihleri ve varsayımlarla toplanır | Bilanço eksi/artı sapar; günlük kâr-zarar yanlış; pozisyon ile bilanço tutmaz | BAKIYE: B.Tarih<=@Tarih … GELIR/GIDER(masraf bakiyesi): Where H.HesapTuru=4 (tarih yok) ; GELİR/GİDER(hizmet): Tarih>S.R | Geçmiş tarih için bilanço; masraf hareketi olan dönem; raporsuz takoz stoğu; kur eksik gün | Geçmiş tarihli bilanço masraf hesaplarının bugüne kadarki tüm bakiyesini içerirken diğer kalemler kesim tarihine kadar alınır; hizmet gelir/ | Aynı kesim tarihi için bilanço yeniden hesaplandığında arşivlenen (Bilancolar) değerle eşit olmalı. | 70 | |
| ERR-SIL-064 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-033 Bilanco.GetIKar – parametre/sabit karışıklığı (KasaId=SubeId, BirimId=1=HAS, Satis kuru, ham bölme) | İşlem bazlı kâr raporu boş/yanlış | Where B.KasaId=@SubeId … Bakiye*Kur.Satis / kur1.Alis (Kur1.BirimId=1) | KasaId≠SubeId kurulum; BirimId 1 ≠ HAS; kur eksik | Kasa kimliği şube kimliği yerine kullanılır (yalnız Id'ler çakışırsa sonuç döner); HAS için Id=1 varsayımı; bakiye satış kuruyla, stok alış | Rapor fonksiyonları HAS birimini Settings.HasSymbol üzerinden çözmeli, sabit Id kullanmamalı. | PF-023 | 75 |
| ERR-SIL-065 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-034 Sistem.Devir (SQL) – açılış satırlarında has/milyem sıfır, takoz/pırlanta stokları ve tarihsiz satırlar düşer, 2 hane yuvarlama | Devir sonrası stok has/milyem/maliyet yanlış; takoz çıkışı engellenir veya eksi adet; bakiye eksik | #TBLStokHaraketleri(Miktar dec(18,2), Has dec(18,2)) ; maden açılış: 0 as Milyem, 0 as Has, Maliyet*K.Alis(bugün) ; trun | Yıl sonu devri; devir öncesi alınıp sonra çıkılan takoz; Tarih NULL kayıt; devirin kesim tarihinden | Devir sonrası maden açılış hareketinin Has=0 ve Milyem=0 olduğu için GetOrtMilyem/GetMadenStok has stoğu ve ortalama milyem sessizce bozulur | Devir açılış satırları (IslemId=-1) StokTipi 1 için Has ve Milyem taşımalı; StokHaraketleri/BakiyeIs | PF-034 | 85 |
| ERR-SIL-066 | SESSİZ MANTIK / HESAPLAMA | S1 | SLR-035 Devir.vb (uygulama devri) – Sum(Milyem) ile açılış satırı, tarih=çalıştırma günü, transaction yok | Devir açılış satırında Milyem>1; stok has/maliyet yanlış; tam veri kaybı riski | INSERT #ERPStok Select -1,0,IslemTuru,Getdate(),SubeId,KasaId,StokTipi,StokId,Sum(Adet),Sum(Miktar),Sum(Milyem),Sum(Has) | Devir.vb ile devir; hareketli stok kartları; devir sırasında hata | Milyem sütunu toplanır (100 satır × 0,916 = 91,6) → NetBakiye hesaplanan sütunu ve GetStokHareketleri'nin Has=Miktar×Milyem gösterimi anlams | StokHaraketleri.Milyem ≤ 1 olmalı; açılış satırında Has = Miktar×Milyem tutmalı. | PF-036 | 85 |
| ERR-SIL-067 | SESSİZ MANTIK / HESAPLAMA | S1 | SLR-036 Repair.BalanceRepair – güncel tetikleyiciden geride kalmış tam yeniden kurma | Tüm bakiyeler ve stoklar sistematik olarak farklı kural setiyle yeniden yazılır; devir/transfer veri | Truncate Cari.BakiyeIslem ; Truncate Stok.StokHaraketleri ; cursor: eski kural seti (tip 11/12 hariç tutma yok; kod 14, | Prosedürün elle çalıştırılması (destek/geliştirici) | Çalıştırılırsa devir (IslemId=-1), transfer (Bolum=2) ve üretim (Bolum=1) satırları kalıcı silinir; tip 11/12 satırları için bakiye/stok üre | Devir (IslemId=-1) ve Bolum≠0 türetilmiş satırlar hiçbir onarımda silinmemeli; onarım kural seti tet | PF-004 | 95 |
| ERR-SIL-068 | SESSİZ MANTIK / HESAPLAMA | S1 | SLR-037 Repair.StokRepair – ikinci FETCH'te değişken sayısı uyumsuz (17 ≠ 18) | Tüm stok hareketleri silinir; stok listeleri boş | Truncate Table Stok.StokHaraketleri ; FETCH NEXT … INTO 18 değişken (ilk) ; döngü sonunda FETCH NEXT … INTO 17 değişken | Prosedürün çalıştırılması | İlk satır işlendikten sonra ikinci FETCH 'number of variables … must match' hatasıyla durur; TRUNCATE zaten autocommit ile kalıcı olduğundan | Onarım prosedürleri TRUNCATE'i yalnız başarılı yeniden kurma ile aynı transaction içinde yapmalı. | PF-034 | 90 |
| ERR-SIL-069 | SESSİZ MANTIK / HESAPLAMA | S1 | SLR-038 Sistem.Settings tek satır varsayımı; Save = TRUNCATE + INSERT (transaction yok) | BirimId NULL bakiye satırları; vergi/uyarı kontrolleri kapanır | GlobalSettings.Save: Truncate Table Sistem.Settings ; Insert Into Sistem.Settings(...) Values('…') ; Trigger: @HasBirimI | Ayar kaydı sırasında hata; elle satır ekleme; sembolün Birimler'de olmaması | INSERT başarısız olursa (tip dönüşümü, kolon uyumsuzluğu) tablo boş kalır: tetikleyici sembolleri NULL alır, takoz/çeşni bakiye satırları Bi | Sistem.Settings tam 1 satır içermeli; sembol kolonları Birimler'de tekil eşleşmeli. | 80 | |
| ERR-SIL-070 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-039 Sistem.Birimler.Kodu benzersiz değil; kur listesi ve bakiye toplamları kod ile birleştirilir | Limit, bilanço ve pozisyon çift sayım | Left Join Sistem.GetKurListesi(Getdate()) Kur on Kur.Birim = Bak.Kodu | Birimler'de aynı Kodu ile IsDeleted=0 iki satır | Aynı kodlu iki birim (silinip yeniden açılan) kur listesinde iki satır üretir; koda göre join yapan bakiye/limit/bilanço/pozisyon sorguları | Sistem.Birimler.Kodu silinmemiş satırlarda benzersiz olmalı. | PF-023 | 85 |
| ERR-SIL-071 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-040 FN.GetKatki daima 0 döndürür; FN.Katsayı tablo dışı milyemde NULL → FN.AyarCevir 0 | Sipariş/üretim miktarı 0 veya katkı 0 | GetKatki: … Set @Result=… ; return 0 ; AyarCevir = Bol(@Miktar, Katsayı(@Milyem1)) * Katsayı(@Milyem2) ; Katsayı: CASE | Milyem tam olarak listedeki 7 değerden biri değilse | Katkı hesabı her koşulda 0; ayar çevirici 0,995/0,9166 gibi listede olmayan milyemlerde 0 döndürür (Bol NULL→0). Sipariş girişinde çevrilen | Ayar çevrimi tanımsız milyemde 0 yerine hata/uyarı üretmeli. | 90 | |
| ERR-SIL-072 | SESSİZ MANTIK / HESAPLAMA | S4 | SLR-041 Uretim.TrBakiyeHesapla – kasa seçimi sırasız TOP 1, has = Tutar×Fiyat | Üretimden gelen stok yanlış kasada; kasa stok listesi tutmaz | @KasaId = (Select Top 1 Id From Sistem.Kasalar Where IsDeleted='False' And SubeId=@SubeId) ; URETIMGIRIS: StokHaraketler | Şubede >1 kasa; üretim modülü kullanan kurulum | Şubede birden çok kasa varsa üretim çıktısı rastgele kasaya yazılır (plan değişince kasa değişir); giriş satırında miktar/milyem alanları Tu | Bolum=1 stok hareketleri deterministik bir kasaya yazılmalı. | PF-030 | 60 |
| ERR-SIL-073 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-042 Trigger hata iletimi ve uygulamanın algısı | Rs aktarımı eksik işlem; takoz raporu yazılmamış giriş; haksız limit reddi | InternalDb.ExecuteScalar: Catch ex → MsgBox(ex.Message); Result=Nothing ; Insert: RecId=0 → Return False | RsAktar/RaporYaz prosedür hatası; FN.GetCariLimit hata | Trigger reddi kullanıcıya SQL metniyle gösterilir (sessiz değil). Ancak RAISERROR olmadan hata yutulan yerler vardır: Insert sonrası 'Cari.R | Insert sonrası ikincil adımlar (RsAktar/RaporYaz) başarısızsa ana kayıt işaretlenmeli veya geri alın | 80 | |
| ERR-SIL-074 | SESSİZ MANTIK / HESAPLAMA | S3 | SLR-043 Nakit NORMAL girişte yalnız karşılık birimi (TL) bakiyeye yazılır; döviz tarafı yalnız kasa stoğuna | Yanlış düzeltme girişleri; çift kayıt | satır 401-432: Tutar satırı (BirimId, ±Tutar) ; has/miktar satırı yok (BakiyeId=0) ; Stok: StokHaraketleri(StokTipi=2, S | Nakit NORMAL/ EMANET dışı işlem; kullanıcı beklentisi | Kullanıcı dokümanı (A-Z 2.6) EUR+TL iki satır bekler; kod yalnız TL yazar. Personel 'işlem eksik' sanıp ikinci kez döviz satırı girebilir (ç | Nakit işlemi (tip≠10) yalnız BirimId'li tek bakiye satırı üretmeli. | PF-023 | 90 |
| ERR-SIL-075 | SESSİZ MANTIK / HESAPLAMA | S2 | SLR-044 PEŞİN (IslemTipi=1) işlemde bakiye/limit muafiyeti ve %5 karşılık toleransı | Bakiyesi olmayan ama karşılığı da tam girilmemiş peşin işlem; kasa/stok farkı; limit aşımı | Cari.GetFisPesinKontrol: Tutar = GIRIS>CIKIS ? (1 − Bol(CIKIS,GIRIS)) × 100 : Bol(CIKIS,GIRIS); sonuç > 5 ise 'karşılık | PesinKontrol kapalı grup; fiş yazdırılmadan kapatılan işlem; %5 altındaki farklar; GIRIS=0 (Bol 0 dö | PEŞİN tip bakiye satırı üretmediği ve limit kontrolünden muaf olduğu için, karşılığı eksik/ yanlış girilmiş peşin fiş sessizce bakiye dışı k | INV-03: IslemTipi=1 işlemin Cari.BakiyeIslem satırı olmamalı; PEŞİN fişte giriş/çıkış karşılığı deng | PF-007 | 75 |
