AIFA AKADEMI · Kurumsal Wiki
4.330 makale
Ana sayfa Kurumsal Wiki › Hata Bilgi Bankası › EKB-COZUMU-BILINMEYENLER

Çözümü Bilinmeyenler

ERROR_KBERPGOLD_COREACTIVEAIFASOFT_INTERNALDERIVED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Kök nedeni veya çözümü henüz kanıtlanmamış 219 kayıt — ekibin çalışma listesi.

Künye (front-matter) · EKB-COZUMU-BILINMEYENLER · reality [SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
idEKB-COZUMU-BILINMEYENLER
titleÇözümü Bilinmeyenler
entity_typeERROR_KB
moduleMOD-KALITE
audience[SUPPORT, DEVELOPER, QA]
confidentialityAIFASOFT_INTERNAL
product_scopeERPGOLD_CORE
customer_scopeALL
reality[SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
lifecycleACTIVE
confidenceMEDIUM
version_fromVERSION_UNKNOWN
version_to-
created_at2026-09-13
last_verified2026-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[Çözümü Bilinmeyenler]
tags[error-kb]
wiki_versionv1.5
source_packageERPGOLD_HATA_BILGI_BANKASI_v1 / Wiki_23_Hata_Bilgi_Bankasi

Çözümü bilinmeyenler (219 kayıt). Kök nedeni veya çözümü henüz kanıtlanmamış kayıtlar. Bu sayfa ekibin çalışma listesidir; "[Ekip tarafından doldurulacak]" alanları bilinçli boşluktur, tahmin yazılmamıştır.

Özet

KategoriKayıt
E02 — SQL Server Hatası61
E06 — Algoritma Hatası39
E07 — Finansal Hesaplama Hatası33
E01 — Uygulama / Kod Exception21
E08 — Yuvarlama / Hassasiyet Hatası11
E09 — Konfigürasyon Hatası9
E05 — Transaction Hatası6
E11 — Kullanıcı / Yetki Hatası6
E16 — Eksik Türetilmiş Kayıt5
E20 — Bilinmeyen / Araştırılması Gereken4
E14 — UI / İş Akışı Hatası4
E04 — Trigger / Dependency Hatası4
E15 — Duplicate / Çift İşlem4
E03 — Veri Bütünlüğü Hatası4
E17 — Eski Veri / Legacy Problemi3
E12 — Entegrasyon Hatası2
E19 — Raporlama Hatası2
E13 — Performans / Timeout / Deadlock1

Kayıtlar

IDSınıfSev.BaşlıkKategoriKök neden (analiz)ÇözümKalıcı çözümTestSorumluNotlar
ERR-OBS-007GÖZLEMLENMİŞS2Fatura kesilemiyor / fatura basma / fatura problemi (genel)E20 — Bilinmeyen / Araştırılması Gereken[Ekip tarafından doldurulacak] (başlık belirti vermiyor)[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Belirtiyi yeniden üret: fatura problemi; erp fatura problemi; fatura; fatura sorunu; e-döviz fatura sorunu; fatura kontrol raporu[Ekip tarafından atanacak]Yıllara göre: {'2021': 8, '2022': 106, '2023': 88, '2024': 29, '2025': 38, '2026': 26}; kategori: Yazılım Destek / Fatur
ERR-OBS-009GÖZLEMLENMİŞS2ETTN atama / boş ETTN / ETTN güncellemesiE20 — Bilinmeyen / Araştırılması Gereken[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Belirtiyi yeniden üret: ettn no atama; ettn no ataması yapıldı; ettn no; ettn; ettn ataması yapıldı.; ettn no güncelleme[Ekip tarafından atanacak]Yıllara göre: {'2022': 14, '2023': 15, '2024': 73, '2025': 103, '2026': 62}; kategori: Yazılım Destek / Eğitim / Destek
ERR-OBS-014GÖZLEMLENMİŞS2Belgelendirilmiş işlem / ResmiKasa (legacy teknik ad) desteği — belirtisizE20 — Bilinmeyen / Araştırılması Gereken[Ekip tarafından doldurulacak] (başlık yalnız 'resmi işlem' der)[Ekip tarafından doldurulacak]Çağrı kapanışında belirti etiketi zorunlu (SYM-EGITIM kalıcı önlem) — 'resmi işlem' tek başına ölçülemez.Belirtiyi yeniden üret: ticket ifadesi: resmi işlem; ticket ifadesi: resmi; ticket ifadesi: resmi işlemler; ticket ifadesi: resmi kasa girişi; ticket ifadesi: resmi fatura; ticket ifad[Ekip tarafından atanacak]Yıllara göre: {'2021': 5, '2022': 36, '2023': 16, '2024': 16, '2025': 70, '2026': 78}; kategori: Yazılım Destek / Resmi
ERR-OBS-044GÖZLEMLENMİŞS3Genel tanımlama / ayar / düzenleme (belirtisiz)E09 — Konfigürasyon Hatası[Ekip tarafından doldurulacak] (başlık yalnız 'tanımlama'/'düzenleme' der)[Ekip tarafından doldurulacak]Çağrı kapanışında konu etiketi zorunlu.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]Yıllara göre: {'2021': 2, '2022': 11, '2023': 15, '2024': 11, '2025': 22, '2026': 24}; kategori: Yazılım Destek / Eğitim
ERR-OBS-061GÖZLEMLENMİŞS3Barkod ayarı / barkod okuyucu / barkod düzenlemesiE09 — Konfigürasyon Hatası[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]Yıllara göre: {'2021': 3, '2022': 4, '2023': 4, '2024': 6, '2025': 16, '2026': 12}; kategori: Yazılım Destek / Barkod Ay
ERR-OBS-072GÖZLEMLENMİŞS3Hizmet / masraf / komisyon işlemi ve tanımıE14 — UI / İş Akışı HatasıHizmet ekranı davranışları: önceki hizmet/grup yeni kayda taşındı, HAS kuru boş; iade/belge takip tipli (11) hizmet düzeltmede tip yanlış geliyor (H-076, H-077).[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]Yıllara göre: {'2021': 2, '2022': 4, '2023': 5, '2024': 4, '2025': 3, '2026': 8}; kategori: Yazılım Destek / Eğitim / De
ERR-OBS-073GÖZLEMLENMİŞS3Üçüncü parti entegrasyon (NetEkstre, banka, MT5/senkronizasyon)E12 — Entegrasyon Hatası[Ekip tarafından doldurulacak] (wiki'de NetEkstre/MT5 entegrasyonu için bilinen sorun/playbook yok — GAP)[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]Yıllara göre: {'2021': 1, '2022': 3, '2023': 2, '2024': 6, '2025': 6, '2026': 7}; kategori: Teknik Destek / Uzak Bağlant
ERR-OBS-081GÖZLEMLENMİŞS3Diğer / sınıflanamayan (belirtisiz başlık)E20 — Bilinmeyen / Araştırılması Gereken[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Çağrı kapanışında konu etiketi zorunlu (FAQ-076).[Ekip tarafından doldurulacak][Ekip tarafından atanacak]Yıllara göre: {'2021': 1, '2022': 16, '2023': 27, '2024': 22, '2025': 37, '2026': 19}; kategori: Yazılım Destek / Eğitim
ERR-OBS-196GÖZLEMLENMİŞS2H-115 — Açılış (devir) stoğu girildi, DEVİR hesabı alacaklı kaldıE07 — Finansal Hesaplama HatasıNORMAL tipte giriş yapılmış; NORMAL giriş bakiye yazar.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-OBS-237GÖZLEMLENMİŞS3H-156 — Yazıcı hiç yazdırmıyorE09 — Konfigürasyon Hatası[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-OBS-245GÖZLEMLENMİŞS3H-164 — BTrans alma (her ay, mali müşavir için)E12 — Entegrasyon Hatası[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-OBS-249GÖZLEMLENMİŞS3H-168 — Yılbaşı kontrol listesi (Aralık'ta her müşteriye gönderilir)E14 — UI / İş Akışı Hatası[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-OBS-250GÖZLEMLENMİŞS3H-169 — Pazartesi sabahı kontrol listesi (veznedar için)E14 — UI / İş Akışı Hatası[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-001POTANSİYELS1TD-01 — Çok adımlı işlemlerde transaction yokE05 — Transaction HatasıÇ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ı kalır; kopyalama yarım kalır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `Save` zincirlerini tek `SqlConnection` + `SqlTransaction` (veya `TransactionScope`) altında toplayan bir "birim iş" sarmalayıcısı; SP'leri (`FaturaYaz`, `RsAktar`) aynı transaction'da çağırmak; `SendTo` başarısızsa ilk kaydı geri almak.Kod incelemesi ile doğrula: `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,[Ekip tarafından atanacak]
ERR-POT-002POTANSİYELS2TD-02 — `Max(...)+1` ile numara üretimi (yarış koşulu)E17 — Eski Veri / Legacy Problemi`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`, AS-DOCUMENTED) olduğundan çok kullanıcılı/web senaryosunda kesin çakışma.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): SQL `SEQUENCE` veya `Sistem.FaturaSiraNo` benzeri sayaç tablosunda `UPDATE … OUTPUT` ile atomik artırma; fatura serisi bazında ayrı sayaç; benzersiz indeks ile ikinci koruma.Kod incelemesi ile doğrula: `ERPPRO/Class/Ext/Cari.IslemEx.vb:256-260` (`GetNewFisNo`: `Select Max(FisNo) From Cari.Islemler` + 1), `:261-267` (`GetNewSiraNo`: `Cari.GetNewSiraNo(...)` + 1[Ekip tarafından atanacak]
ERR-POT-003POTANSİYELS1TD-03 — `Cari.AcceptTransaction` tetikleyicisinde cursor sızıntısıE05 — Transaction Hatası`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şlemler başarısız olur (AS-DOCUMENTED `§9-4`; kod yolu VERIFIED).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Her hata dalında `CLOSE/DEALLOCATE` veya `DECLARE … CURSOR LOCAL`; uzun vadede cursor'suz küme temelli kural motoru.Kod incelemesi ile doğrula: DB `Cari.AcceptTransaction` (TR, 29.862 karakter) — `DECLARE IslemCursor CURSOR` satır 72, `OPEN` 79; `RAISERROR … ROLLBACK … RETURN` satır 94-97 (şube pasif) v[Ekip tarafından atanacak]
ERR-POT-004POTANSİYELS1TD-04 — Tetikleyicide `ROLLBACK` sonrası `RETURN` yokE04 — Trigger / Dependency HatasıTetikleyicide `ROLLBACK` sonrası `RETURN` yok — VB — `ROLLBACK` sonrası kod akışı devam eder; sonraki `INSERT/UPDATE`'ler transaction dışında (autocommit) çalışabilir.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Her `ROLLBACK`'ten sonra `RETURN`; `THROW` kullanımı.Kod incelemesi ile doğrula: 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).[Ekip tarafından atanacak]
ERR-POT-005POTANSİYELS2TD-05 — Koda gömülü bağlantı dizeleri, `sa` hesabı ve parolalarE11 — Kullanıcı / Yetki Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Sabit değerleri kaldırmak; Windows kimlik doğrulaması veya en az yetkili SQL hesabı; lisans anahtarlarını yapılandırma/gizli depo üzerinden yüklemek; mevcut parolaları döndürmek.Kod incelemesi ile doğrula: `ERPPRO/Class/Module/InternalDb.vb:11` (`ConnStr` varsayılanı: sunucu, `sa`, düz metin parola); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1730` (sunucu IP'si + `sa`)[Ekip tarafından atanacak]
ERR-POT-006POTANSİYELS2TD-06 — Yapılandırma dosyası şifrelemesi zayıfE11 — Kullanıcı / Yetki Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): DPAPI (`ProtectedData`, kullanıcı/makine kapsamı) veya Windows kimlik doğrulaması; ECB yerine kimlik doğrulamalı mod.Kod incelemesi ile doğrula: `ERPPRO/Configuration/ConfigurationForm.vb:301` (okuma), `:325` (yazma), `:331-365` (`AES_Encrypt/AES_Decrypt`: Rijndael **ECB**, MD5 anahtar türetme, **koda gö[Ekip tarafından atanacak]
ERR-POT-007POTANSİYELS2TD-07 — Parolalar geri döndürülebilir şifreliE11 — Kullanıcı / Yetki Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): PBKDF2/bcrypt/Argon2 ile tek yönlü hash + tuz; kart PIN/şifresi için ayrı doğrulama servisi; önbelleğe parola kolonu yüklememek.Kod incelemesi ile doğrula: `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ı `Crypt[Ekip tarafından atanacak]
ERR-POT-008POTANSİYELS2TD-08 — İşlem ekranında sabit yönetici parolasıE11 — Kullanıcı / Yetki Hatasıİşlem ekranında sabit yönetici parolası — GV — kaynak/binari üzerinden parola öğrenen herkes fişleri iptal edebilir; değiştirilemez, denetlenemez.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Yetki grubu bazlı izin (`Usergroup`), parola yerine kullanıcı yeniden kimlik doğrulaması; işlem günlüğü.Kod incelemesi ile doğrula: `ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:722` — `PasswordBox.ShowDialog(Me, "", "")`; doğrulanınca `:723` `Update Cari.Islemler Set IsDeleted='True[Ekip tarafından atanacak]
ERR-POT-009POTANSİYELS1TD-09 — SQL metni birleştirme, string kullanıcı girdileriE11 — Kullanıcı / Yetki Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Tüm sorgular `SqlParameter`; tablo/alan adı gerektiren genel yardımcılar (`FindRecord`) için beyaz liste; grid filtreleri için `SqlParameter` üreten filtre çevirici.Kod incelemesi ile doğrula: 1010/1468 ifade, 311 sınıf (scan). String girdi örnekleri: `ERPPRO/Form/Doviz/FrmDovFaturaEkranı.vb:239-243` (`InputBox` → `RefNo`), `Controls/Islem Ekranı/Ekra[Ekip tarafından atanacak]
ERR-POT-010POTANSİYELS1TD-10 — Serbest SQL editörü ve bağlantı dizesiE11 — Kullanıcı / Yetki Hatası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ı]`.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Üretim derlemesinden çıkarmak veya salt-okunur, yetki ve günlük kaydı ile sınırlamak.Kod incelemesi ile doğrula: `ERPPRO/Form/Tanımlamalar/Sistem/FrmSqlEditor.vb:77-85` (`RadioGroup1` → `InternalDb.ConnStr` veya `TxtConnectionString.Text`), `:86-…` (`TestConnection`, sorgu[Ekip tarafından atanacak]
ERR-POT-011POTANSİYELS2TD-11 — Veritabanındaki kaynak kodun çalışma zamanında derlenmesiE06 — Algoritma Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Özelliği yetkili/ayrı araca taşımak; üretimde kapalı tutmak; kaynak kod yerine bildirimsel form tanımı.Kod incelemesi ile doğrula: `ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:57-74` (`VBCodeProvider.CompileAssemblyFromSource`), `Class/Base/DynamicForm.vb:300-318` (`AifaDev.DynamicForms.Code[Ekip tarafından atanacak]
ERR-POT-012POTANSİYELS2TD-12 — Boş `Catch`E07 — Finansal Hesaplama HatasıBoş `Catch` — VB, BK — `Save` `False` döner ama sebep kaybolur; kur/önbellek yüklenemezse sessizce boş/eski değer kullanılır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Merkezi günlükleme (`Exception` + SQL metni + kullanıcı/şube), boş `Catch` yasağı (analizör kuralı), `Save` sonucuna hata nesnesi eklemek.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-013POTANSİYELS2TD-13 — `InternalDb` yaşam döngüsü kusurlarıE09 — Konfigürasyon Hatası`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ı); aynı örnekte iki `DataTable()` çağrısı satırları çoğaltır (INFERRED sonuç, VERIFIED yapı).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `Dispose` içinde `SqlConnection.Close/Dispose`; her çağrıda `Ds.Clear()` veya yeni `DataTable`; okuyucu için `CommandBehavior.CloseConnection`.Kod incelemesi ile doğrula: `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.F[Ekip tarafından atanacak]
ERR-POT-014POTANSİYELS2TD-14 — Veri katmanı UI açıyorE09 — Konfigürasyon Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Sonuç nesnesi (`Result` + hata/uyarı listesi) döndürmek; onay soruları çağıran ekrana taşınmalı; `InternalDb` yalnız istisna fırlatmalı.Kod incelemesi ile doğrula: `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/Car[Ekip tarafından atanacak]
ERR-POT-015POTANSİYELS2TD-15 — Global durum bağımlılığıE06 — Algoritma HatasıGlobal durum bağımlılığı — BK — birim test ve çoklu oturum imkânsız; şube/kasa bağlamı örtük.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Oturum bağlamı nesnesi (`ISessionContext`) enjeksiyonu; önbelleğin servis arkasına alınması.Kod incelemesi ile doğrula: 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` → `Pro[Ekip tarafından atanacak]
ERR-POT-016POTANSİYELS2TD-16 — Kopyala-yapıştırE15 — Duplicate / Çift İşlemKopyala-yapıştır — BK — bir kural değişikliği 100+ dosyaya dokunur; ekran çiftleri ayrışır (`iFDoviz`/`iFNakit` farkı, mimari referans §9-17).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Genel `Repository(Of T)` + attribute/kaynak üreteci; ekran temel sınıflarında ortak `FormSave`; çakışma dosyasını silmek.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-017POTANSİYELS3TD-17 — Üç veri erişim yolu ve artık referanslarE06 — Algoritma HatasıÜç veri erişim yolu ve artık referanslar — BK — dört farklı kalıp; yeni geliştirici hangisini kullanacağını bilemez.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Tek yol seçmek; XPO referansı, `localhost_Connection`, typed dataset'i kaldırmak.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-018POTANSİYELS2TD-18 — `DBBase.IsValidate` semantiği ters, yalnız 4 tipte doğrulamaE09 — Konfigürasyon Hatası`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ışmadan hiçbir doğrulama yapılmaz.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `Validate` sanal metodu (`Overridable Function Validate() As ValidationResult`); olay tabanlı doğrulamayı kaldırmak.Kod incelemesi ile doğrula: `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` (`[Ekip tarafından atanacak]
ERR-POT-019POTANSİYELS3TD-19 — `DBBase.ActiveKasaId` sonsuz özyinelemeE06 — Algoritma Hatası`DBBase.ActiveKasaId` sonsuz özyineleme — BK — çağrılırsa `StackOverflowException` (süreç çöker). Çağıran yok (grep 0) → latent.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `Return Program.KasaId` veya özelliği silmek.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-020POTANSİYELS3TD-20 — `SQLBase._Query` `Shared`E06 — Algoritma Hatası`SQLBase._Query` `Shared` — VB — ikinci bir `SQLBase` türevi eklendiğinde yanlış tabloya MERGE. Bugün tek türev (`Cari.IFatura`) → gizli.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Tip başına önbellek (`Dictionary(Of Type, String)`) veya örnek alanı.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-021POTANSİYELS2TD-21 — `Program.GetKur` her zaman alış; birim yoksa `1`E07 — Finansal Hesaplama Hatası`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. Mimari referans §9-6 "kur bulunamazsa 0 akıyor" → `Program.GetKur` için **`1`** döner (`CONTRADICTS[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `GetKur(Birim, Yon As Alis|Satis)`; bulunamazsa istisna/uyarı, `1` yerine `Nothing`.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-022POTANSİYELS2TD-22 — Kur fallback sessiz (DB)E07 — Finansal Hesaplama HatasıKur fallback sessiz (DB) — VB — eski kurla işlem; kullanıcı uyarılmaz.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Fallback'te `Tarih`/`IsFallback` kolonu döndürüp ekranda uyarmak; günlük kur girişi zorunluluğu.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-023POTANSİYELS2TD-23 — `Stok.GetMadenMaliyeti` `TOP 50` ve güncel kurE07 — Finansal Hesaplama Hatası`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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Küme temelli (cursor'suz) LIFO/FIFO hesaplama, sınır yok; hareket tarihindeki kur.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-024POTANSİYELS2TD-24 — `DSX` önbelleği tutarlılığıE07 — Finansal Hesaplama Hatası`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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `RecordInserted/Updated/Deleted` olaylarına bağlı artımlı önbellek; olayı tek yerden yükseltmek; yükleme hatasını göstermek.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-025POTANSİYELS3TD-25 — `KurListesi` timer thread güvenliğiE07 — Finansal Hesaplama Hatası`KurListesi` timer thread güvenliği — VB — nadir yarış/`InvalidOperationException` (koleksiyon değiştirildi) riski (INFERRED).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Değişmez liste değişimi (`Interlocked.Exchange`) veya `SynchronizationContext` ile UI thread'e postalama.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-026POTANSİYELS3TD-26 — Magic number karşılaştırmalarıE06 — Algoritma HatasıMagic number karşılaştırmaları — BK — kod tablosu ile enum eşleşmesi kodda dağınık; anlam kaybı.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `tTransferStatus`, `tProvizyonStatus` enum'ları; SQL metinlerinde parametre olarak enum değeri.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-027POTANSİYELS2TD-27 — Combo indeksi doğrudan `IslemTuru` olarak kaydediliyorE19 — Raporlama Hatası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 yön çevirir.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Combo'ya enum değerini `ValueMember` olarak bağlamak; tek dönüştürücü.Kod incelemesi ile doğrula: `ERPPRO/Controls/Islem Ekranı/Ekran/iFBorc.vb:6,56` (`IslemTuru = CmbIslemTuru.SelectedIndex`), `iFBorc.Designer.vb:233` (`Items = {"ALACAK","BORC"}`) — enum `C[Ekip tarafından atanacak]
ERR-POT-028POTANSİYELS2TD-28 — Sabit kodlanmış MASAK eşikleriE06 — Algoritma Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Eşikleri `Sistem.GlobalSettings`/parametre tablosuna almak, yürürlük tarihiyle.Kod incelemesi ile doğrula: `ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:279-280` (`> 7000` TL isimsiz hesap), `:349-350`, `:407` (`> 3000` USD uyarı).[Ekip tarafından atanacak]
ERR-POT-029POTANSİYELS1TD-29 — `Devir.DevirYap`: `TRUNCATE` + yeniden `INSERT`, transaction yokE05 — Transaction Hatası`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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Devir betiğini `BEGIN TRAN … COMMIT` + `TRY/CATCH` içine almak; `TRUNCATE` yerine yeni dönem DB'si oluşturma; `sp_configure` değişikliğini kaldırmak.Kod incelemesi ile doğrula: `ERPPRO/Class/Module/Devir.vb:39-40` (`BACKUP/RESTORE` metinleri string birleştirme), `:76-87` (`Truncate Table Cari.Islemler, Cari.BakiyeIslem, Cari.History, S[Ekip tarafından atanacak]
ERR-POT-030POTANSİYELS1TD-30 — `Repair.BalanceRepair`E09 — Konfigürasyon Hatası`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-referans.md §9-1`, `erpgoldv2-balancerepair-riski.md`).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Prosedürü devre dışı bırakmak/yeniden adlandırmak; "önce raporla sonra uygula" tipi, kapsamı daraltılmış onarım.Kod incelemesi ile doğrula: DB `Repair.BalanceRepair` (P, 18.773 karakter; 2 `TRUNCATE`, cursor), `Repair.StokRepair`. Uygulamadan çağıran yok (`grep "BalanceRepair|StokRepair"` ERPPRO = 0[Ekip tarafından atanacak]
ERR-POT-031POTANSİYELS2TD-31 — `Cari.IslemINS` precision'sız `decimal` parametrelerE08 — Yuvarlama / Hassasiyet Hatası`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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kaldırmak ya da tablo tipleriyle birebir `decimal(18,n)`.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-032POTANSİYELS1TD-32 — `Cari.Islemler` tetikleyicileri demo kopyasında kapalıE07 — Finansal Hesaplama Hatası`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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Üretim DB'sinde tetikleyici durumu teyit `[GAP]`; kural motoru tek yerde.Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-033POTANSİYELS3TD-33 — Uyumluluk seviyesi 100E06 — Algoritma HatasıUyumluluk seviyesi 100 — PF — skaler UDF inlining, yeni kardinalite tahmini yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Test ortamında seviye 150+ ile regresyon; `FN.Bol` yerine `NULLIF` bölme.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-034POTANSİYELS3TD-34 — 45 kullanılmayan tabloE19 — Raporlama Hatası45 kullanılmayan tablo — BK — şema yanıltıcı; rapor yazanlar yanlış tabloya (`dbo.BakiyeIslem` vs `Cari.BakiyeIslem`) bağlanabilir.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Geliştirme ekibiyle "atıl" işareti, `DEPRECATED_` şemasına taşıma, sonra kaldırma.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-035POTANSİYELS2TD-35 — ExLimit PIN üretimi zayıfE06 — Algoritma Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `RNGCryptoServiceProvider` ile 6 haneli PIN, deneme sınırı, süre.Kod incelemesi ile doğrula: `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[Ekip tarafından atanacak]
ERR-POT-036POTANSİYELS3TD-36 — `Sistem.Clients` hard deleteE07 — Finansal Hesaplama Hatası`Sistem.Clients` hard delete — VB — soft-delete kuralının (`IsDeleted`) dışına çıkan tek DAO silmesi; makine adı string birleştirme.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Parametreli sorgu; oturum tablosu için ayrı yaşam döngüsü (süre dolumu).[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-037POTANSİYELS3TD-37 — `Program.AfterSave` ondalık değeri `ToString` ile SQL'e gömüyorE08 — Yuvarlama / Hassasiyet Hatası`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ğrılan thread'de (INFERRED).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `SqlParameter` (decimal) kullanmak.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-038POTANSİYELS3TD-38 — Ölü kod ve artıklarE06 — Algoritma HatasıÖlü kod ve artıklar — BK — okuma yükü, yanlış yol seçimi.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Silmek; derleme uyarısı "kullanılmayan üye" analizörü.[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-039POTANSİYELS2TD-39 — `Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyorE06 — Algoritma Hatası`Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyor[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-040POTANSİYELS2TD-40 — `TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru)E06 — Algoritma Hatası`TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru)[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-041POTANSİYELS2TD-41 — `MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölmeE07 — Finansal Hesaplama Hatası`MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölme[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-042POTANSİYELS2TD-42 — Devir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyorE17 — Eski Veri / Legacy ProblemiDevir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyor[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-043POTANSİYELS2TD-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`E06 — Algoritma Hatası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`[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-044POTANSİYELS2TD-44 — Kod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14E09 — Konfigürasyon HatasıKod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-045POTANSİYELS2TD-45 — 10 ekran canlı DB'de olmayan 8 tabloya yazıyorE14 — UI / İş Akışı Hatası10 ekran canlı DB'de olmayan 8 tabloya yazıyor[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-046POTANSİYELS3TD-46 — ANA MENÜ'de arkasında kod olmayan 25 düğmeE06 — Algoritma HatasıANA MENÜ'de arkasında kod olmayan 25 düğme[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-047POTANSİYELS3TD-47 — Rapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2`E09 — Konfigürasyon HatasıRapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2`[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-048POTANSİYELS1TD-48 — `AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk)E05 — Transaction Hatası`AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk)[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-049POTANSİYELS2TD-49 — İş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE)E07 — Finansal Hesaplama Hatasıİş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE)[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Health Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret[Ekip tarafından atanacak]
ERR-POT-050POTANSİYELS3InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_ClickE01 — Uygulama / Kod ExceptionTry/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryParse) yok. Form Load'da geçerli varsayılanlar atanıyor.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.Koşul: Kullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).[Ekip tarafından atanacak]
ERR-POT-051POTANSİYELS3InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_ClickE01 — Uygulama / Kod ExceptionTry/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryParse) yok. Form Load'da geçerli varsayılanlar atanıyor.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.Koşul: Kullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).[Ekip tarafından atanacak]
ERR-POT-052POTANSİYELS3InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_ClickE01 — Uygulama / Kod ExceptionTry/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryParse) yok. Form Load'da geçerli varsayılanlar atanıyor.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.Koşul: Kullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).[Ekip tarafından atanacak]
ERR-SIL-001SESSİZ MANTIK / HESAPLAMAS4IndexOutOfRangeException / InvalidCastException — FrmBlokTakozGirisi.ListRefreshE06 — Algoritma Hatası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çin istisna HER açılışta oluşur ve yutulur.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Metni Split edip parça sayısı ve Integer.TryParse ile doğrulamak; geçersizse kullanıcıya uyarı verip Exit Sub.Koşul: TxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(0) yok; veya sayısal olmayan parça → Integer'a dönüşüm hatası).[Ekip tarafından atanacak]
ERR-SIL-002SESSİZ MANTIK / HESAPLAMAS4IndexOutOfRangeException / InvalidCastException — FrmBlokTakozGirisi.ListRefreshE06 — Algoritma Hatası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çin istisna HER açılışta oluşur ve yutulur.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Metni Split edip parça sayısı ve Integer.TryParse ile doğrulamak; geçersizse kullanıcıya uyarı verip Exit Sub.Koşul: TxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(1) yok; veya sayısal olmayan parça → Integer'a dönüşüm hatası).[Ekip tarafından atanacak]
ERR-SIL-003SESSİZ MANTIK / HESAPLAMAS4IndexOutOfRangeException / InvalidCastException — FrmBlokTakozGirisi.ListRefreshE06 — Algoritma Hatası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çin istisna HER açılışta oluşur ve yutulur.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Metni Split edip parça sayısı ve Integer.TryParse ile doğrulamak; geçersizse kullanıcıya uyarı verip Exit Sub.Koşul: TxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(2) yok; veya sayısal olmayan parça → Integer'a dönüşüm hatası).[Ekip tarafından atanacak]
ERR-POT-053POTANSİYELS3UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — Dosya.ShowFileE01 — Uygulama / Kod ExceptionFileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.Koşul: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' o[Ekip tarafından atanacak]
ERR-POT-054POTANSİYELS3UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — FrmCariKartEkle.TeminatlarButtonClickE01 — Uygulama / Kod ExceptionFileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.Koşul: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' o[Ekip tarafından atanacak]
ERR-POT-055POTANSİYELS3UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — FrmTeminatEkle.ShowFileE01 — Uygulama / Kod ExceptionFileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.Koşul: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' o[Ekip tarafından atanacak]
ERR-SIL-004SESSİZ MANTIK / HESAPLAMAS4IndexOutOfRangeException — UiForm.LoadDesignerE06 — Algoritma Hatası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 üretilen kod (UiConteiner.vb:332) 6 token üretir, normalde güvenli.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Split(" "c, StringSplitOptions.RemoveEmptyEntries) + uzunluk kontrolü; On Error Resume Next kaldırılıp Try/Catch ile loglama.Koşul: Designer kodundaki 'Friend WithEvents' satırı beklenen 'Friend WithEvents Ad as New Tip' biçiminde değilse (elle düzenlenmiş, fazladan boşluk → Split(" ") boş token üretir) (5) indeksi bulunamaz.[Ekip tarafından atanacak]
ERR-SIL-005SESSİZ MANTIK / HESAPLAMAS4IndexOutOfRangeException — UiForm.LoadDesignerE06 — Algoritma Hatası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 üretilen kod (UiConteiner.vb:332) 6 token üretir, normalde güvenli.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Split(" "c, StringSplitOptions.RemoveEmptyEntries) + uzunluk kontrolü; On Error Resume Next kaldırılıp Try/Catch ile loglama.Koşul: Designer kodundaki 'Friend WithEvents' satırı beklenen 'Friend WithEvents Ad as New Tip' biçiminde değilse (elle düzenlenmiş, fazladan boşluk → Split(" ") boş token üretir) (2) indeksi bulunamaz.[Ekip tarafından atanacak]
ERR-SIL-006SESSİZ MANTIK / HESAPLAMAS4NullReferenceException — EtiketDesignList.SimpleList1_ButtonClickE06 — Algoritma Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `If Item Is Nothing Then Message.Show(NotSelectedRecord) : Exit Sub` eklemek; On Error Resume Next kaldırmak.Koşul: Liste boşken veya satır seçili değilken Düzenle/Sil butonuna basılırsa GetFocusedRow Nothing döner; `New EtiketDesign(Item)` / `Item.Delete` NRE atar.[Ekip tarafından atanacak]
ERR-SIL-007SESSİZ MANTIK / HESAPLAMAS3Tüm istisnalar (maskeleme) — UrunListesi.LoadStokE06 — Algoritma HatasıOn Error Resume Next tüm hataları yutar; liste eksik/boş kalır. Loglama yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): On Error Resume Next yerine Try/Catch + kullanıcıya uyarı.Koşul: DSX.TABLE.ListOfMaden/ListOfEmtia vb. Nothing ise veya öğe eşlemesinde istisna oluşursa[Ekip tarafından atanacak]
ERR-SIL-008SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — EtiketDesignList.SimpleList1_ButtonClickE06 — Algoritma HatasıOn Error Resume Next; NRE ve alt form hataları yutulur.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch + Nothing kontrolü.Koşul: Bkz. satır 17 kaydı[Ekip tarafından atanacak]
ERR-SIL-009SESSİZ MANTIK / HESAPLAMAS4TargetInvocationException / InvalidCastException (maskeleme) — EtiketDetay.GetValueE06 — Algoritma HatasıOn Error Resume Next; Prop IsNot Nothing kontrolü var ancak Item Nothing kontrolü yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch ile alan bazlı hata metni ('#ERR') basmak.Koşul: Item Nothing ise veya FieldName özelliği okunurken istisna oluşursa (Prop.GetValue), Result boş kalır.[Ekip tarafından atanacak]
ERR-SIL-010SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — DataList.DataBindE06 — Algoritma HatasıOn Error Resume Next; SQL hatası InternalDb tarafından MsgBox ile gösterilir, sonrası sessiz.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch; DataTable Nothing kontrolü.Koşul: InternalDb(Query).DataTable Nothing dönerse (SQL hatası) veya DevExpress kolon işlemlerinde istisna olursa[Ekip tarafından atanacak]
ERR-SIL-011SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — DataListBase.DataBindE06 — Algoritma HatasıOn Error Resume Next.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch + loglama.Koşul: ActiveObject Nothing ise veya görsel/veri bağlama hatası[Ekip tarafından atanacak]
ERR-SIL-012SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — SimpleList.RetriveDataE06 — Algoritma HatasıOn Error Resume Next.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch + loglama.Koşul: SQL/DevExpress hataları[Ekip tarafından atanacak]
ERR-SIL-013SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — Appointment.New(Apt)E06 — Algoritma HatasıOn Error Resume Next; nesne kısmen dolu olarak devam eder ve kaydedilebilir.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch, hatalı alan için varsayılan atama ve loglama.Koşul: Apt.ResourceIds / RecurrenceInfo Nothing veya DevExpress persistence helper istisnası[Ekip tarafından atanacak]
ERR-SIL-014SESSİZ MANTIK / HESAPLAMAS4InvalidCastException (CBool("")) — TicketList.GridView1_CustomDrawCellE06 — Algoritma HatasıOn Error Resume Next; hücre renklendirmesi atlanır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Val()/Boolean.TryParse ile güvenli dönüşüm.Koşul: IsActive veya Status hücresi NULL ise `CBool("" & Nothing)` = CBool("") InvalidCastException atar.[Ekip tarafından atanacak]
ERR-SIL-015SESSİZ MANTIK / HESAPLAMAS1NullReferenceException (hata işleyici içinde) — MyApplication.ShowDebugOutputE06 — Algoritma HatasıOn Error Resume Next yalnızca If içindeki satırları kapsar. Loglama yok. ExeptionForm.BtnKapat → `End` (uygulamayı sonlandırır).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): UserSettings Nothing kontrolü; AutoErrorHandle=0 iken de dosyaya loglama; UnhandledException'da e.ExitApplication'ı bilinçli yönetmek.Koşul: 1) Giriş ekranı (FrmLoginForm.New) çalışmadan önce bir istisna oluşursa Program.UserSettings Nothing'dir; satır 15 `Program.UserSettings.AutoErrorHandle` On Error Resume Next'ten ÖNCE çalıştığı için h[Ekip tarafından atanacak]
ERR-SIL-016SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — UiForm.LoadDesignerE06 — Algoritma HatasıOn Error Resume Next; kontroller sessizce atlanır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Try/Catch + hata listesi.Koşul: Designer kodu ayrıştırılırken herhangi bir istisna (Type.GetType Nothing → Activator NRE, Split indeks vb.)[Ekip tarafından atanacak]
ERR-SIL-017SESSİZ MANTIK / HESAPLAMAS4Tüm istisnalar (maskeleme) — Properties.ToStringE06 — Algoritma HatasıOn Error Resume Next; satır atlanır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Tip kontrolü (TypeOf) ile üretim.Koşul: Late-bound .FieldName/.Mask erişimi desteklemeyen kontrol tipinde MissingMemberException[Ekip tarafından atanacak]
ERR-SIL-018SESSİZ MANTIK / HESAPLAMAS2IndexOutOfRangeException (kolon yok) — DBNull yanlış pozitif — ERPFatura.New(RecordId)E06 — Algoritma Hatası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; fHasRecord=True kalır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Alan başına ayrı güvenli okuma (HasColumn + TryGet); Catch'te loglama ve HasRecord=False.Koşul: Convert.ToString(DBNull) "" döndürür, istisna atmaz. Gerçek risk: Muhasebe.GetEFatura sonuç kümesinde 'MADENKODU' kolonu yoksa DR("MADENKODU") IndexOutOfRangeException atar.[Ekip tarafından atanacak]
ERR-SIL-019SESSİZ MANTIK / HESAPLAMAS2ArgumentOutOfRangeException (Substring) — ERPFatura.New(RecordId)E06 — Algoritma HatasıDBNull kontrolü var, uzunluk kontrolü yok. Dış Try/Catch (boş) istisnayı yutar ve satır 82+ alanları (DovizMiktar, DovizTLKuru, DolarKuru zaten okundu ama EntUserName/EntPassword/EBelgeUsdLimit vb.) atlanır.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `If s.Length >= 3 Then s.Substring(0,3) Else s`; Catch'te loglama.Koşul: Cari.IslemDetaylari.DovizKodu 3 karakterden kısa ise (boş string '' NULL değildir → DBNull koruması geçer). DovizKodu FrmEFaturaBas.vb:262 `Left(Transaction.Kodu,3)` ile yazılır; Kodu kısa/boş bir sto[Ekip tarafından atanacak]
ERR-SIL-020SESSİZ MANTIK / HESAPLAMAS2ArgumentOutOfRangeException (Substring) [SUBSTRING adayı, aynı satır] — ERPFatura.New(RecordId)E06 — Algoritma HatasıAynı.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Aynı.Koşul: Bkz. DBNULL_CAST kaydı (aynı satır).[Ekip tarafından atanacak]
ERR-SIL-021SESSİZ MANTIK / HESAPLAMAS3InvalidCastException (CInt(DBNull)) + yutulan SqlException — DBBase.InsertE06 — Algoritma HatasıTry/Catch var; Catch bağlantıyı kapatır, mesaj/log yok → RecId=0 → Insert False döner. Kullanıcıya nedeni gösterilmez.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Catch'te ex.Message'ı göster/logla; ExecuteScalar sonucunu DBNull kontrolüyle oku.Koşul: SCOPE_IDENTITY() NULL dönerse (identity kolonu olmayan tablo) CInt(DBNull) InvalidCastException; ayrıca INSERT'teki her SqlException (kısıt, tip hatası) aynı Catch'e düşer.[Ekip tarafından atanacak]
ERR-POT-056POTANSİYELS4InvalidCastException (CInt(DBNull)) — DynamicData.InsertE01 — Uygulama / Kod ExceptionTry/Catch → MsgBox(ex.Message) + Return False.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): DBNull kontrolü.Koşul: SCOPE_IDENTITY() NULL dönerse[Ekip tarafından atanacak]
ERR-POT-057POTANSİYELS2SqlException / InvalidCastException (yeniden fırlatılır) — ERPFatura.SaveE01 — Uygulama / Kod Exceptionİ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 → Application.ThreadException.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Çağıranlarda Try/Catch + kullanıcı mesajı; Save içinde SqlException'ı özel mesaja çevirmek.Koşul: MERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw New Exception(ex.Message, ex)`.[Ekip tarafından atanacak]
ERR-POT-058POTANSİYELS2NullReferenceException (Dt Nothing) — Lisans.FirstDateE01 — Uygulama / Kod ExceptionNothing kontrolü yok. Çağrı zinciri: Utils.CallLisansControl ← Program.Init (Try/Catch → ShowDebugOutput) ve FrmMainForm.FormInit (IsLicensed, Try yok).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `If Dt IsNot Nothing AndAlso Dt.Rows.Count > 0`.Koşul: 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 InternalDb.DataTable Nothing döner → `Dt.Rows` NRE.[Ekip tarafından atanacak]
ERR-POT-059POTANSİYELS2NullReferenceException (Dt Nothing) — Lisans.FirstDateE01 — Uygulama / Kod ExceptionAynı.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Aynı.Koşul: Aynı.[Ekip tarafından atanacak]
ERR-POT-060POTANSİYELS4ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif — Parameters.CreateDataTableE01 — Uygulama / Kod ExceptionSatı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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `Tb.Rows(0).Item(p.Name) = If(p.Value, DBNull.Value)`.Koşul: Rows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) ile String özellikleri Nothing gelir) DataRow'a Nothing yazılınca ArgumentExcept[Ekip tarafından atanacak]
ERR-POT-061POTANSİYELS2DivideByZeroException (Decimal bölme) — ERPFatura.ValidateOverUsdLimitE01 — Uygulama / Kod ExceptionSı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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `If DolarKuru = 0 Then ErrorText = "USD kuru tanımsız" : Return False`; FormSave'de DolarKuru=0 doğrulaması.Koşul: DolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde `IIf(Transaction.UsdKur=0, Program.GetKur("USD"), UsdKur)` → GetKur, günün USD[Ekip tarafından atanacak]
ERR-POT-062POTANSİYELS2OverflowException (Infinity → Decimal) — Ice.Get_eDoviz_BelgeE01 — Uygulama / Kod ExceptionSıfır kontrolü yok; SendInvoice (Ice.vb:116-194) Try/Catch ile yakalar → DeleteSettings(Auth) + EDovizResponseResult(Message='Hata oluştu!...').[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Gönderim öncesi Dolar_TL_Kuru/Doviz_TL_Kuru/DovizMiktar > 0 doğrulaması ve anlaşılır Türkçe mesaj.Koşul: EDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too large or too small for a Decimal').[Ekip tarafından atanacak]
ERR-POT-063POTANSİYELS2OverflowException (Infinity → Decimal) — Ice.Get_eDoviz_BelgeE01 — Uygulama / Kod ExceptionSendInvoice Try/Catch.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Miktar>0 doğrulaması.Koşul: EDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Cari.Islem.Save Miktar=0'ı reddettiği için (Cari.Islem.vb:513) düşük olasılık.[Ekip tarafından atanacak]
ERR-POT-064POTANSİYELS2DivideByZeroException (Decimal) — Ice.Get_eDoviz_BelgeE01 — Uygulama / Kod ExceptionSendInvoice Try/Catch.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur sıfır kontrolü.Koşul: tlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Vergi=Tutar ise 0.[Ekip tarafından atanacak]
ERR-POT-065POTANSİYELS2OverflowException (Infinity → Decimal) — MySoft.Get_eDoviz_BelgeE01 — Uygulama / Kod ExceptionSendInvoice (MySoft.vb:108-174) Try/Catch.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur > 0 doğrulaması.Koşul: Dolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException.[Ekip tarafından atanacak]
ERR-SIL-022SESSİZ MANTIK / HESAPLAMAS2Sessiz (Double Infinity → JSON) — MySoft.Get_eDoviz_BelgeE06 — Algoritma HatasıKoruma yok; .NET istisnası oluşmaz.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur > 0 doğrulaması.Koşul: Doviz_TL_Kuru = 0 → 1/0 = Infinity (Double, istisna yok) → CalculationRate (Double) Infinity → JSON'a 'Infinity' yazılır → entegratör reddi.[Ekip tarafından atanacak]
ERR-SIL-023SESSİZ MANTIK / HESAPLAMAS3Sessiz (Double Infinity) — MySoft.Get_eDoviz_BelgeE06 — Algoritma HatasıKoruma yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Tutar > 0 doğrulaması.Koşul: VergiHaric_Tutar = 0 → Infinity (Double).[Ekip tarafından atanacak]
ERR-SIL-024SESSİZ MANTIK / HESAPLAMAS2Sessiz (Double Infinity → JSON) — Ticari1.Get_eDoviz_BelgeE06 — Algoritma HatasıKoruma yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur > 0 doğrulaması.Koşul: Doviz_TL_Kuru = 0 → 1/0 Infinity (Double özellik).[Ekip tarafından atanacak]
ERR-SIL-025SESSİZ MANTIK / HESAPLAMAS2Sessiz (Double Infinity/NaN → JSON) — Ticari1.Get_eDoviz_BelgeE06 — Algoritma HatasıKoruma yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur > 0 doğrulaması.Koşul: Dolar_TL_Kuru = 0 → Infinity/NaN.[Ekip tarafından atanacak]
ERR-POT-066POTANSİYELS2FormatException (Convert.ToDecimal("∞")) — Uyumsoft.Get_eDoviz_BelgeE01 — Uygulama / Kod ExceptionSendInvoice (Uyumsoft.vb:141-194) Try/Catch.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur > 0 doğrulaması.Koşul: Dolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException.[Ekip tarafından atanacak]
ERR-POT-067POTANSİYELS2FormatException (Convert.ToDecimal("∞")) — Uyumsoft.Get_eDoviz_BelgeE01 — Uygulama / Kod ExceptionSendInvoice Try/Catch.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kur > 0 doğrulaması.Koşul: SATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException.[Ekip tarafından atanacak]
ERR-POT-068POTANSİYELS4SqlException (tarih boş) — CDate yanlış pozitif — FrmSeriIslem.ListRefreshE01 — Uygulama / Kod ExceptionMetot Try/Catch (boş) içinde; InternalDb.DataTable hatayı MsgBox ile gösterir. Tarih boş kontrolü yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): TxtBTarih.EditValue Is Nothing ise varsayılan tarih atamak.Koşul: TxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001-01-01' gider; parametre DATETIME ise SqlException (InternalDb MsgBox).[Ekip tarafından atanacak]
ERR-POT-069POTANSİYELS4SqlException (tarih boş) — CDate yanlış pozitif — iScreen.ListRefreshE01 — Uygulama / Kod ExceptionTry/Catch (boş, iScreen.vb:960/993); InternalDb MsgBox.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Aynı.Koşul: Aynı desen (BarEditItem DateEdit).[Ekip tarafından atanacak]
ERR-POT-070POTANSİYELS3InvalidCastException (CInt(DBNull)/CInt("")) — FrmSiparisGirisi.SaveDataE01 — Uygulama / Kod ExceptionKontrol yok; SaveData Try/Catch dışında.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): `Val("" & CmbHesap.EditValue)` kullanmak.Koşul: CmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer Id olduğundan düşük olasılık.[Ekip tarafından atanacak]
ERR-POT-071POTANSİYELS2SQLR-001 Invalid object name: Cari.OdemelerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Cari.Odemeler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-072POTANSİYELS2SQLR-002 Invalid object name: Genel.IptalOnayE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Genel.IptalOnay] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-073POTANSİYELS3SQLR-003 Invalid object name: Siparis.FiyatListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Siparis.FiyatListesi] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-074POTANSİYELS3SQLR-004 Invalid object name: Uretim.EritmeE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.Eritme] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-075POTANSİYELS3SQLR-005 Invalid object name: Uretim.FormulE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.Formul] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-076POTANSİYELS3SQLR-006 Invalid object name: Uretim.FormulDetayE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.FormulDetay] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-077POTANSİYELS3SQLR-007 Invalid object name: Uretim.ModelPartiBilgileriE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.ModelPartiBilgileri] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-078POTANSİYELS2SQLR-008 Invalid object name: Uretim.PartilerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.Partiler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-079POTANSİYELS3SQLR-009 Invalid object name: Siparis.GetFiyatListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Siparis.GetFiyatListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-080POTANSİYELS3SQLR-010 Invalid object name: Uretim.GetEritmeListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.GetEritmeListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-081POTANSİYELS3SQLR-011 Invalid object name: Uretim.GetFormulsE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.GetFormuls] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-082POTANSİYELS3SQLR-012 Invalid object name: Uretim.GetModelPartiBilgiListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.GetModelPartiBilgiListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-083POTANSİYELS3SQLR-013 Invalid object name: Uretim.GetPartilerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.GetPartiler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-084POTANSİYELS3SQLR-014 Invalid object name: Cari.GETOdemeKasaOzetiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Cari.GETOdemeKasaOzeti] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-085POTANSİYELS2SQLR-015 Invalid object name: Cari.GETOdemeListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Cari.GETOdemeListesi] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-086POTANSİYELS2SQLR-016 Invalid object name: Organizasyon.GorevlerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Organizasyon.Gorevler] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-087POTANSİYELS3SQLR-017 Invalid object name: Organizasyon.GorevDagitimE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Organizasyon.GorevDagitim] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-088POTANSİYELS4SQLR-018 Invalid object name: Sistem.iExceptionE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Sistem.iException] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-089POTANSİYELS3SQLR-019 Invalid object name: Siparis.PaketHesaplariE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Siparis.PaketHesaplari] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-090POTANSİYELS3SQLR-020 Invalid object name: Siparis.ModelAyarBlackListE02 — SQL Server Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-091POTANSİYELS3SQLR-021 Invalid object name: Siparis.modelayarBlacklistE02 — SQL Server Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-092POTANSİYELS3SQLR-022 Invalid object name: Siparis.GetPaketHesapListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Siparis.GetPaketHesapListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-093POTANSİYELS3SQLR-023 Invalid object name: Siparis.GetUyumluPaketlerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Siparis.GetUyumluPaketler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-094POTANSİYELS3SQLR-024 Invalid object name: Siparis.GetLastPriceE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Siparis.GetLastPrice] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-095POTANSİYELS3SQLR-025 Invalid object name: Uretim.GetFormulDetayE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.GetFormulDetay] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-096POTANSİYELS3SQLR-026 Invalid object name: Uretim.GetPartiModelListesiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Uretim.GetPartiModelListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-097POTANSİYELS2SQLR-027 Invalid object name: Cari.GetRiskRaporuE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Cari.GetRiskRaporu] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-098POTANSİYELS3SQLR-028 Invalid object name: Stok.GetTakozIsciligiE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Stok.GetTakozIsciligi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-099POTANSİYELS3SQLR-029 Invalid object name: Organizasyon.GelenGorevlerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Organizasyon.GelenGorevler] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-100POTANSİYELS3SQLR-030 Invalid object name: Organizasyon.GidenGorevlerE02 — SQL Server Hatasıbasedb/out/code_refs2.json code_only[Organizasyon.GidenGorevler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-101POTANSİYELS1SQLR-031 Invalid object name: Genel.Dosyalar (VIEW)E02 — SQL Server Hatasımodules.json Genel.Dosyalar: 'CREATE View Genel.Dosyalar as Select * from DOCUMENTS.Genel.Dosyalar'; deps.json: Cari.GetGerekliEvraklarGenel.Dosyalar; AcceptTransaction satır ~112: 'SELECT COUNT(*) FROM Cari.GetGerekliEvraklar(@SubeId,@HesapId,'True')'; misc.json database listesi.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): BASE'de Genel.Dosyalar'ın tablo mu view mi olacağı kararı; cross-DB bağımlılığın kaldırılması. AcceptTransaction'daki evrak kontrolünün DOCUMENTS'e bağımlı olmaması. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-102POTANSİYELS4SQLR-032 Invalid object name: LiveUpdate.Version / LiveUpdate.SetVersion / LiveUpdate.Lock / LiveUpdate.UnLockE02 — SQL Server Hatasıanalysis_db.json unresolved[148911602,484912799]='LiveUpdate.VersionHistory_'; analysis.json unresolved_in_base.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Lock/UnLock'un sp_rename ile tablo adı değiştirme yaklaşımı yerine bir kilit kolonu; unresolved referansın BASE build'inde bilinçli bırakılması. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-103POTANSİYELS2SQLR-033 Invalid object name: Sistem.FromERPE02 — SQL Server Hatası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'].[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Eski ERP'den aktarım prosedürü BASE kapsamından çıkarılmalı ya da kolon listesiyle yeniden yazılmalı; @Database için QUOTENAME/whitelist. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-104POTANSİYELS3SQLR-034 Invalid object name: dbo.sp_DevirIslemiYapE02 — SQL Server 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'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): BASE dışı bırakılmalı; devir mantığı tek yerde (Devir.vb vs sp_DevirIslemiYap vs Sistem.Devir çakışıyor). (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-105POTANSİYELS4SQLR-035 Invalid object name: Sistem.MT4OrdersSync / Sistem.MT4TicketsSync / Sistem.ResetE02 — SQL Server Hatasıanalysis_db.json unresolved[1145823194]=['Sistem.MT4Orders'], [1161823251]=['Sistem.MT4tickets'], [1193823365]=['Sistem.MT4Tickets']; dbsql.json Sistem.ERPSCHEMA: Sistem.GetMT4Orders×17, Sistem.MT4EXPO×3.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): MT4/FX nesne kümesi BASE dışında ayrı bir eklenti paketi olarak ele alınmalı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-106POTANSİYELS3SQLR-036 Invalid object name: AifaDev.Reports #16, #19, #29, #30 (DB içinde saklanan rapor SQL'i)E02 — SQL Server Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): AifaDev.Reports satırları katalogla doğrulanıp kırık raporlar pasife alınmalı; BASE seed'ine yalnız çözümlenen raporlar. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-107POTANSİYELS3SQLR-037 Could not find stored procedure: Reports.GetPozisyonDetayE02 — SQL Server Hatasıparameters.json Reports.GetPozisyonDetay: @SubeId,@BasTarih,@SonTarih; FrmPozisyonDurum.vb:15 'Reports.GetPozisyonDetay(''" & DateEdit1… & "'',''" & DateEdit2 …'; PopupGrid#5 'Reports.GetPozisyonDetay(getdate(),Getdate())'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Fonksiyon imzası ile çağrılar eşitlenmeli (DB2'deki imza doğrulanmalı — sürüm kayması işareti). (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-108POTANSİYELS3SQLR-038 Could not find stored procedure: Reports.ResmiPozisyonE02 — SQL Server Hatasıdbsql.json AifaDev.Reports #38–#66 'Select * from Reports.ResmiPozisyon ()'; parameters.json Reports.ResmiPozisyon: @Tarih.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Tekrarlı 29 rapor satırının temizlenmesi; seed'e yalnız #67. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-109POTANSİYELS3SQLR-039 Invalid object name: AifaDev.ExQueryBuilder (TRIGGER on AifaDev.RepositoryItems)E02 — SQL Server Hatası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')".[Ekip tarafından doldurulacak]Öneri (uygulanmadı): OBJECT_ID kontrolünde CREATE/ALTER ayrımı; 'Add Schema' → 'CREATE SCHEMA'. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-110POTANSİYELS2SQLR-040 Invalid column name: Cari.TransferlerE02 — SQL Server Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-111POTANSİYELS3SQLR-041 Invalid column name: Siparis.PaketE02 — SQL Server Hatasısql_frags (ERPPRO/Class/Dao/Siparis.Paket.vb:93 (Insert), :126 (Update)); columns.json Siparis.Paket kolon listesinde 'IsPublic' yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-112POTANSİYELS3SQLR-042 Invalid column name: Siparis.TakimKartlariE02 — SQL Server Hatası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ı.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-113POTANSİYELS4SQLR-043 Invalid column name: Sistem.CariIslemTipiE02 — SQL Server Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-114POTANSİYELS3SQLR-044 Invalid column name: Cari.ProvizyonE02 — SQL Server Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-115POTANSİYELS4SQLR-045 Invalid column name: Sistem.UsersE02 — SQL Server Hatasısql_frags (ERPPRO/Form/Genel/FrmChangeAccount.vb:9); columns.json Sistem.Users kolon listesinde 'SubeId' yok. Şube bilgisi Sistem.UserDetails.SubeId'de.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-116POTANSİYELS2SQLR-046 Invalid column name: Cari.IslemDetaylari / Cari.Islemler (kurulum farkı)E02 — SQL Server Hatası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'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kurulum profiline göre kolon seti (BASE + DÖVİZ eklentisi) ayrımı; kodda ETTN/IsArbitiraj kullanan sorguların profil bayrağıyla korunması. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-117POTANSİYELS3SQLR-047 Invalid column name: Sistem.ERPSCHEMA 'Alter … Add' satırlarıE02 — SQL Server Hatası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'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): ERPSCHEMA ColumnName/DataType içeriği okunup (bu turda alınmadı — GAP) BASE kolon seti ile eşleştirilmeli. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-118POTANSİYELS2SQLR-048 Invalid column name: (kod) ERPFatura.Save → Cari.IslemDetaylariE02 — SQL Server HatasıQA-SQL-QUERY-MAP.md satır 354; ERPFatura.vb:330 metni; :486 'Catch ex As Exception' boş.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Bu DAO'nun canlı yol olup olmadığı (Cari.IFatura/SQLBase MERGE üretimi ana yol) netleştirilip artık önek kaldırılmalı; boş Catch loglanmalı. (Uygulanmadı)Belirtiyi yeniden üret: Fatura/belge detayı kaydedilmez; kullanıcıya hata gösterilmez (ekran 'kaydedilemedi' ya da hiçbir şey).[Ekip tarafından atanacak]
ERR-SIL-026SESSİZ MANTIK / HESAPLAMAS2SQLR-049 Divide by zero: FN.BolE07 — Finansal Hesaplama Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): FN.Bol'un 0 yerine NULL döndürmesi ya da çağıran yerlerde NULLIF ile açık koruma; 0 dönen durumların loglanması. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-119POTANSİYELS3SQLR-050 Divide by zero: Bilanco.GetIKar; Bilanco.GetIBilancoE07 — Finansal Hesaplama Hatasıdiv.py çıktısı: Bilanco.GetIKar 5×, Bilanco.GetIBilanco 4× '/Kur1.Alis' NULLIF yok.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): NULLIF(Kur1.Alis,0) ve kur yokluğu için açık uyarı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-120POTANSİYELS2SQLR-051 Divide by zero: MüşteriŞemasıA.IslemFiyatlar tetikleyicisi (DB2 Cari.Islemler 5. tetikleyici)E07 — Finansal Hesaplama Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Müşteri özel tetikleyicinin eklenti noktasına alınması; NULLIF; set-tabanlı yazım. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-121POTANSİYELS3SQLR-054 Conversion failed: (kod) Cari.Odeme.vb:136 → Cari.IslemlerE02 — SQL Server HatasıCari.Odeme.vb:136 'select Sum(Miktar) … And Convert(int,Tag) =''" & Id & "''' (Cari.Odemeler ekranı zaten 208 ile düşer).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): TRY_CONVERT ya da Tag yerine tipli bir referans kolonu. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-122POTANSİYELS4SQLR-055 Conversion failed: Query.GENELSTOKLAR (VIEW); AifaDev.ExQueryBuilder üretimi Query.* view'larıE02 — SQL Server Hatasımodules.json Query.GENELSTOKLAR 'Convert(int, F.Kimden)'; ExQueryBuilder DataType→Convert eşlemesi.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): TRY_CONVERT; giriş doğrulaması. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-123POTANSİYELS3SQLR-056 Conversion failed: (kod) tırnaklı birleştirme ile tipsiz literal karşılaştırmasıE02 — SQL Server Hatasıdyn.py istatistiği: 1294 cümle; 914 '&' ile birleştirme; 553 tırnaklı ('" & x & "'); 252 parametreli; 133 sabit. TD-37 (ondalık ToString).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Parametreli sorgu (SqlParameter) — TD-09/TD-37 ile birlikte. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-124POTANSİYELS4SQLR-057 Arithmetic overflow: Cari.AcceptTransaction; Cari.History (Fiyat decimal(18,5) ← Islemler.Fiyat decimal(18,8)); Stok.StokHaraketleri.NetBakiye decimal(37,10)E08 — Yuvarlama / Hassasiyet Hatasıcolumns.json: Islemler.Fiyat decimal(18,8) vs History.Fiyat decimal(18,5); AcceptTransaction 'Convert(Decimal(18,2), @StokIsc * @StokIscKur)'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): History ve Islemler kolon tiplerinin eşitlenmesi; ara hesaplarda decimal(28,10). (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-SIL-027SESSİZ MANTIK / HESAPLAMAS3SQLR-058 Conversion failed: (kod) TCMB.Currency.Save → MERGE Sistem.TCMBDovizKurlariE02 — SQL Server Hatası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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): TCMBDovizKurlari'nın tablo mu view mi olacağı kurulum genelinde tek karar; CheckTable'ın view'ı tablo sanmaması. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-125POTANSİYELS3SQLR-059 String or binary data would be truncated: (kod DAO Insert/Update) kısa nvarchar kolonlarE02 — SQL Server HatasıTruncation taraması (300 kolon ≤50 karakter, kod INSERT listelerinde); columns.json uz değerleri (nvarchar byte/2).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): UI MaxLength = kolon uzunluğu eşlemesi; Aciklama kolonlarının uzunluk standardı (TD standardizasyon). (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-126POTANSİYELS3SQLR-061 Cannot insert NULL: Cari.Islemler.FiyatTipi (tfiyattipi NOT NULL, default yok); Cari.History.FiyatTipi; Cari.BakiyeIslem.HesapType (NOT NULL)E03 — Veri Bütünlüğü Hatası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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kolonlara DEFAULT; DAO'da null koruması. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-127POTANSİYELS4SQLR-062 Cannot insert NULL: (kod) Sistem.Clients dinamik INSERTE03 — Veri Bütünlüğü Hatasıfrags.py: Sistem.Clients INSERT listesinde clientname yok (dinamik).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Zorunlu alan kontrolü. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-SIL-028SESSİZ MANTIK / HESAPLAMAS2SQLR-063 Duplicate key: Sistem.Kurlar (BirimId,Tarih); Sistem.Birimler.Kodu; Cari.Hesaplar (VergiNo,SubeId); Cari.Islemler.FisNo; Cari.BakiyeKodlari.KoduE15 — Duplicate / Çift İşlemindexes.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.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): İş anahtarlarına benzersiz indeks (Kurlar(BirimId,Tarih), Birimler(Kodu) filtered IsDeleted=0, Hesaplar(SubeId,VergiNo)); fiş no için SEQUENCE. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-128POTANSİYELS1SQLR-064 Duplicate key: Cari.AcceptTransaction → MERGE INTO Sistem.ActivityE15 — Duplicate / Çift İşlemAcceptTransaction: '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).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Sistem.Activity'ye PK/unique(ActivitySubeId) ve MERGE'e HOLDLOCK; ya da UPDATE/INSERT ayrımı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-OBS-251GÖZLEMLENMİŞS2SQLR-065 Identity: dbo.sp_DevirIslemiYap (IDENTITY_INSERT Cari.Islemler ON); Devir.vb TRUNCATE + yeniden INSERT; Sistem.DevirE03 — Veri Bütünlüğü HatasıDevir.vb:76-80 'Truncate Table Cari.IslemlerCari.IslemDetaylari'; sp_DevirIslemiYap satır 214 'SET IDENTITY_INSERT Cari.Islemler ON'; TD-29, TD-42.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Devirde IDENT_CURRENT korunması (DBCC CHECKIDENT RESEED eski değere) ya da tüm IslemId taşıyan tabloların birlikte ele alınması. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-SIL-029SESSİZ MANTIK / HESAPLAMAS3SQLR-066 Identity: Sistem.SirketOlustur; Sistem.Users Id=1 varsayımıE03 — Veri Bütünlüğü Hatasımodules.json Sistem.SirketOlustur; FrmMainForm.vb:706 'If LoginInformation.User.Id = 1 AndAlso e.Shift…'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): SCOPE_IDENTITY ile UserDetails eklenmesi; Id=1 varsayımının role dayalı yetkiyle değiştirilmesi. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-129POTANSİYELS1SQLR-067 Subquery returned more than 1 value: Cari.AcceptTransaction; Uretim.TrBakiyeHesapla; Repair.BalanceRepairE02 — SQL Server Hatasısubq.py: AcceptTransaction/TrBakiyeHesapla/BalanceRepair 8'er skaler alt sorgu; tables.json Sistem.Settings rows=1, indeks yok; Birimler yalnız PK_Birimler(Id).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Settings'e tek satır kısıtı; Birimler(Kodu) filtered unique; TOP 1. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-130POTANSİYELS3SQLR-068 Subquery returned more than 1 value: Cari.HesapInsert; Cari.HesapUpdate (Cari.Hesaplar tetikleyicileri)E02 — SQL Server Hatasımodules.json Cari.HesapInsert / Cari.HesapUpdate metinleri.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Set-tabanlı tetikleyici (inserted JOIN); yetki kuralının uygulama katmanına taşınması. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-131POTANSİYELS3SQLR-069 Subquery returned more than 1 value: Sistem.GetIslemKodu; FN.GetKur; Cari.IslemDetayiEkle; POS.SabitE02 — SQL Server Hatasımodules.json FN.GetKur, Sistem.GetIslemKodu, Cari.IslemDetayiEkle; indexes.json PK listesi.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): GetKur'a ORDER BY Id DESC; RSReferans'a PK. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-SIL-030SESSİZ MANTIK / HESAPLAMAS3SQLR-070 Subquery returned more than 1 value: Cari.UpdateTransaction; Siparis.Kontrol; MüşteriŞemasıA tetikleyicisiE02 — SQL Server Hatasımodules.json Cari.UpdateTransaction metni; sql_frags çok satırlı UPDATE'ler.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Set-tabanlı DELETE/UPDATE (inserted JOIN). (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-132POTANSİYELS1SQLR-071 Dynamic SQL / injection: (kod) string-birleştirmeli SQLE02 — SQL Server Hatasıdyn.py istatistiği (sql_frags kaynak satırları okunarak); TD-09, TD-10, TD-37.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Parametreli sorguya geçiş (TD-09); en azından serbest metin girişlerinde Replace("'","''"). (Uygulanmadı)Belirtiyi yeniden üret: 'Unclosed quotation mark after the character string' / 'Incorrect syntax near …'; arama sonuç vermez.[Ekip tarafından atanacak]
ERR-POT-133POTANSİYELS2SQLR-072 Dynamic SQL / injection: Agent.RunAgent; AifaDev.ExQueryBuilder; Cari.GetHesapExtresi; Sistem.FromERP; Sistem.SirketOlustur; dbo.sp_DevirIslemiYap (6 modül)E02 — SQL Server Hatasıanalysis_db.json dyn_mods (6 nesne); modules.json metinleri (GetHesapExtresi pivot, FromERP exec(@HesapQuery)).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): QUOTENAME; SirketOlustur ve sp_DevirIslemiYap'ın BASE'den çıkarılıp yönetici betiğine alınması. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-134POTANSİYELS2SQLR-073 Transaction count mismatch: Cari.AcceptTransactionE05 — Transaction Hatasımodules.json AcceptTransaction: ROLLBACK 13 / RETURN 5 (TD-04); DECLARE IslemCursor … CLOSE/DEALLOCATE yalnız normal akışta (TD-03).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Her ROLLBACK'ten sonra RETURN; THROW; cursor'un TRY/CATCH ile deallocate edilmesi. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-135POTANSİYELS2SQLR-074 Deadlock / timeout: Cari.AcceptTransaction + InsertTransaction + UpdateTransaction (Cari.Islemler); Cari.GetHesapExtresi; Stok.GetOrtMilyem (cursor'lı skaler fonksiyon)E13 — Performans / Timeout / Deadlockindexes.json (Cari.Islemler 26 indeks; StokHaraketleri 9, çiftler); tables.json satır sayıları; trg.json 4 tetikleyici Cari.Islemler; AcceptTransaction cursor.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Mükerrer indekslerin (IsDeleted,IslemKodu ×4; StokHaraketleri IX_1/IX_Pozisyon01, IX_2/IX_3, IX_4/IX_5 çiftleri) sadeleştirilmesi; StokHaraketleri(IslemId) indeksi; tetikleyicinin set-tabanlı yazımı. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-136POTANSİYELS2SQLR-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 → TrBakiyeHesaplaE04 — Trigger / Dependency HatasıAcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate() Where Id=@HesapId'; HesapUpdate metni; trg.json trigger→tablo eşlemesi.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): HesapUpdate'in yalnız VergiNo/TCNo değiştiğinde (IF UPDATE(VergiNo)) çalışması. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-137POTANSİYELS1SQLR-076 Disabled trigger: 12 tetikleyici (trg.json)E04 — Trigger / Dependency Hatasıtrg.json 12 satır is_disabled=False; TD-32 metni (AS-DOCUMENTED).[Ekip tarafından doldurulacak]Öneri (uygulanmadı): Kurulum doğrulama kontrol listesine sys.triggers is_disabled sorgusu. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-138POTANSİYELS2SQLR-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])E04 — Trigger / Dependency Hatasıdeps.json (2026 satır); computed.json Sistem.Pariteler.Parite 'Sistem.GetIdToBirim]([AnaBirimId])'; ERPSCHEMA dbo.SyncTickets computed 'FN.Bol'.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): build_order.json zincirinin BASE build'inde korunması; drop öncesi sys.sql_expression_dependencies kontrolü. (Uygulanmadı)Doğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt[Ekip tarafından atanacak]
ERR-POT-139POTANSİYELS3SQLR-078 Collation conflict: Pozisyon.Write (COLLATE Turkish_CI_AS); Genel.Dosyalar (cross-DB DOCUMENTS); Sistem.FromERP (<@Database>.dbo.*); ERPGLOBAL.dbo.CompanyE02 — SQL Server Hatasımodules.json COLLATE taraması: yalnız Pozisyon.Write.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): BASE kurulumunda DB harmanlamasının sabitlenmesi (Turkish_CI_AS) ve tempdb/cross-DB için COLLATE DATABASE_DEFAULT. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-POT-140POTANSİYELS4SQLR-079 Collation conflict: nvarchar(1) kolonlar; text/image legacy tipler; bit'e 'True'/'False' stringE02 — SQL Server Hatasıcolumns.json taraması: nvarchar(1) 4, varchar(1) 2, text 4, image 19.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): text/image → nvarchar(max)/varbinary(max); nvarchar(1) kodların standardı. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-SIL-031SESSİZ MANTIK / HESAPLAMAS3SQLR-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.BakiyeArtisRaporuOldE17 — Eski Veri / Legacy ProblemiLegacy referans taraması: code FrmPozisyon.vb:8, dbsql AifaDev.Reports#18, modül Pozisyon.GetHacimRaporu; analysis.json LEGACY 25 nesne.[Ekip tarafından doldurulacak]Öneri (uygulanmadı): GetOldPozisyon'un LEGACY listesine alınmaması (kullanımda); NonUsed_/_ son ekli nesnelerin EXCLUDE_LEGACY olarak kalması. (Uygulanmadı)[Ekip tarafından doldurulacak][Ekip tarafından atanacak]
ERR-SIL-032SESSİZ MANTIK / HESAPLAMAS3SLR-001 Bakiye satırı hassasiyeti: Has (5 hane) → Cari.BakiyeIslem.Bakiye decimal(18,2)E08 — Yuvarlama / Hassasiyet Hatası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.StokHaraketleri.Has 5 haneli yazılır; cari has toplamı ile stok has toplamı aynı hareket kümesinde farklılaşır. Binlerce satırda birikimli fark oluşur, hiçbir hata üret[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Islemler.Miktar decimal(18,2), AuMilyem decimal(18,5); trigger @Has Decimal(18,5) · Formül: @Has = I.Miktar * Case When AuMilyem=0 Then 1 else AuMilyem end → Insert Into Cari.BakiyeIslem(...,Bakiye) Values(...,@Has) [Bakiye decimal(18,2)] · Sınır: Miktar × AuMilyem üçüncü ondalıkta 5 [Ekip tarafından atanacak]
ERR-SIL-033SESSİZ MANTIK / HESAPLAMAS2SLR-002 Trigger içinde ROLLBACK sonrası RETURN olmayan dallar (evrak eksik, şube/kasa/hesap=0, takoz stok kontrolü)E16 — Eksik Türetilmiş KayıtROLLBACK 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=1 olduğundan BakiyeIslem'e dokunulmaz; ancak Inserted çok satırlıysa sonraki satırlarda @IsError sıfırlanır: bu satırların BakiyeIslem/StokHaraketleri kayıtlar[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Inserted (çok satırlı UPDATE: DeleteAt RefNo, İptal FişNo, FrmHesapTemizle, FrmProvizyonKabul), Cari.GetGerekliEvraklar, Stok.GetTakozAdet · Formül: RAISERROR(...) ; Set @IsError=1 ; ROLLBACK -- RETURN yok (satır 119-123, 180-185, 225-247); döngü başında Set @IsError=0 (satır 90) · Sınır: T[Ekip tarafından atanacak]Çözüm adayı: kod kanıtı: her ROLLBACK'ten sonra RETURN eklenmesi gerektiği kitapçık 2.7'de not edilmiş; uygulanmamış
ERR-SIL-034SESSİZ MANTIK / HESAPLAMAS2SLR-003 Limit kontrolü için toplam bakiye (Cari.ToplamBakiye = bugünkü BakiyeIslem + Cari.BakiyeDun)E07 — Finansal Hesaplama Hatası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 tablo 0 satır. Boşsa kalan limit = Limit + (yalnız bugünkü hareketler) + 3 olur; müşterinin birikmiş borcu yok sayılır. BakiyeIslem.Tarih işlem tarihi olduğund[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.BakiyeIslem (Tarih = işlem tarihi), Cari.BakiyeDun (Bakiye.DunkiBakiyeler prosedürüyle dolar), Sistem.GetKurListesi(Getdate()) · Formül: Cari.ToplamBakiye = Σ_bugün( Convert(dec(18,2), Bol(Bakiye*Carpan*Kur.Alis, KurHAS.Alis)) )*-1 + Σ Cari.BakiyeDun.Bakiye ; FN.GetCariLimit = IsNull(H [Ekip tarafından atanacak]
ERR-SIL-035SESSİZ MANTIK / HESAPLAMAS2SLR-004 Limit kontrolü has karşılığı (Satis ÷ HAS kuru)E16 — Eksik Türetilmiş KayıtDivide 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 'HAS' dışında tanımlıysa (kod sabit 'HAS' kullanıyor) Balance = Satis (TL) olur ve HAS cinsinden limitle kıyaslanır. Kontrol yalnız IslemKodu 1,2,3 ÇIKIŞ ve tip≠[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Islem.Satis (MaliyetHesapla, Double), Program.GetKur("HAS") (bellek kur listesi Alis), FN.GetCariLimit · Formül: Balance = Satis.Divide(Program.GetKur("HAS")) ; AvaibleLimit = Val(FN.GetCariLimit(HesapId)) ; If Balance > AvaibleLimit Then red · Sınır: Kur listesinde HAS 0 veya yok; Settings.H[Ekip tarafından atanacak]
ERR-SIL-036SESSİZ MANTIK / HESAPLAMAS2SLR-005 Kur fotoğrafı (HasKur/GumKur/PltKur/PldKur/EurKur) kaydıE07 — Finansal Hesaplama HatasıSembol kur listesinde yoksa 1 yazılır; takoz bakiyesinde 'Altına Çevir' Fn.Bol((Miktar*AgMilyem)*GumKur, HasKur) HasKur=1 ile has bakiyeyi TL değerine eşitler. Liste yenileme hatası sessizce yutulur (boş Catch) ve eski kur kullanılmaya devam eder; hesaplanan (IsComputed) birimler için GetLastKur yed[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Program.KurListesi (15 sn'de bir arka planda yenilenen liste), GlobalSettings.*Symbol · Formül: @HasKur = Program.GetKur(GlobalSettings.HasSymbol) → K.Alis ; birim bulunamazsa 1 · Sınır: Settings sembolü Birimler'de yok/silinmiş; kur listesi yenileme başarısız; kur tarihi bugün için girilmemi[Ekip tarafından atanacak]
ERR-SIL-038SESSİZ MANTIK / HESAPLAMAS3SLR-007 Sistem.Kurlar benzersizlik/tarih kontrolü yok; FN.GetKur TOP 1 sırasızE07 — Finansal Hesaplama HatasıAynı birim+tarih için birden çok satır oluşabilir (ekranda Id çözümleme hatası, KOPYALA + elle giriş, dış besleme). GetKurListesi bu durumda birimi iki kez döndürür; FN.GetKur rastgele satırı alır, uygulama listesi son okunanı alır, ToplamBakiye/OzetBilanco Birim koduyla join yaptığından bakiye iki[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Sistem.Kurlar (BirimId,Tarih) – unique index yok (indexes.json), IsDeleted süzgeci yok · Formül: FN.GetKur = Select top 1 Alis From Sistem.GetKurListesi(Getdate()) Where BirimId=@BirimId (ORDER BY yok) ; GetLastKur = MAX(Tarih) per BirimId (ileri · Sınır: Duplicate (BirimId,Tarih); ileri tar[Ekip tarafından atanacak]
ERR-SIL-039SESSİZ MANTIK / HESAPLAMAS3SLR-008 Kur giriş ekranı: yeni kur satırının Id'si olarak ExecuteNonQuery dönüşü (etkilenen satır sayısı) kullanılıyorE07 — Finansal Hesaplama Hatası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 (yenilemeden) aynı birimi ikinci kez düzeltirse Kurlar tablosundaki Id=1 olan tarihi kur satırı güncellenir, günün satırı ilk değerde kalır. Hata mesajı çıkmaz.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: VwKurListesi satırı (Id, BirimId, Alis, Satis), Tarih · Formül: Id = Db.ExecuteNonQuery("Insert Into Sistem.Kurlar(...) Values(...) SELECT SCOPE_IDENTITY()") → 1 ; sonraki düzenleme: Update Sistem.Kurlar Set Alis= · Sınır: Aynı ekran oturumunda aynı birim için iki kez değer girme (yazım düze[Ekip tarafından atanacak]
ERR-SIL-040SESSİZ MANTIK / HESAPLAMAS3SLR-009 Sistem.KurKopyala – bugünün kurlarını silip son kurla değiştirirE07 — Finansal Hesaplama Hatası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üncellendikten sonra basılırsa güncel kurlar kaybolur; işlemler eski kurla devam eder.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Sistem.Kurlar (Tarih=bugün), Sistem.GetLastKur · Formül: Delete From Sistem.Kurlar Where Tarih=Convert(Date,GETDATE()) ; Insert … Select GETDATE(),BirimId,Alis,Satis,GETDATE(),0 From Sistem.GetLastKur · Sınır: Gün içinde kur girildikten sonra KOPYALA'ya basılması; ileri tarihli kur varsa GetL[Ekip tarafından atanacak]
ERR-SIL-042SESSİZ MANTIK / HESAPLAMAS4SLR-011 Kur hassasiyeti: GetKurListesi Convert(Decimal(18,4)) ile kuru 4 haneye yuvarlar (Kurlar 18,5)E08 — Yuvarlama / Hassasiyet Hatası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. Uygulama, işlem kur fotoğrafı ve tüm SQL NET hesapları bu 4 haneli değeri kullanır.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Sistem.Kurlar.Alis/Satis decimal(18,5), Carpan decimal(18,5) · Formül: Convert(Decimal(18,4), Kur.Alis * Carpan) as Alis · Sınır: Kur < 0,01 veya Carpan çarpımı 5. hanede anlamlı; büyük tutarlar[Ekip tarafından atanacak]
ERR-SIL-043SESSİZ MANTIK / HESAPLAMAS2SLR-012 IslemTipi 11 (belge takip) ve 12 (MAHSUP) hiç stok/bakiye hareketi üretmez – sayım farkı/açılış girişleri operasyonel stoğa yansımazE07 — Finansal Hesaplama Hatası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.StokHaraketleri satırı yazmaz. İşlem listede görünür, hata yoktur, ancak stok listesi/bilanço/pozisyon değişmez. Üstelik mevcut NORMAL bir satır Düzelt ile 11/12'ye çevr[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Islemler.IslemTipi · Formül: if @IsDeleted='False' And @IsError=0 AND (@IslemTipi <>11 AND @IslemTipi<>12) BEGIN … stok/bakiye üretimi … END · Sınır: IslemTipi ∈ {11,12}; tip değişikliği ile düzeltme[Ekip tarafından atanacak]Çözüm adayı: ürün kararı gerektirir: MAHSUP'un operasyonel stok etkisi
ERR-SIL-044SESSİZ MANTIK / HESAPLAMAS2SLR-013 Negatif miktar/adet girişi: bakiye abs() ile yön alır, stok hareketi işaretsiz miktarı taşırE07 — Finansal Hesaplama Hatası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ıca tip PEŞİN nakit satırı ve pırlanta maliyeti aynı biçimde ters işaret alır. Uygulama yalnız Miktar=0'ı engeller.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Islemler.Miktar/Adet (DevExpress numeric mask; negatif engeli kodda yok), IslemTuru · Formül: Bakiye: Set @Has=0-abs(@Has) / abs(@Has) ; Stok: Miktar = Case When @IslemTuru=0 Then @Miktar When 1 Then 0-@Miktar End (abs yok) · Sınır: Miktar<0, Adet<0 veya Tutar<0 girilmiş satır[Ekip tarafından atanacak]
ERR-SIL-046SESSİZ MANTIK / HESAPLAMAS4SLR-015 Ortalama milyem / maliyet cursor değişkenleri Decimal(18,2) – 5 haneli Has/Miktar kesilirE08 — Yuvarlama / Hassasiyet Hatası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; stok listesi Miktar/Has 2 haneye yuvarlanır ancak StokHaraketleri toplamı 5 hanelidir → liste toplamı ≠ hareket toplamı.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Stok.StokHaraketleri.Miktar/Has decimal(18,5) · Formül: Declare @Miktar Decimal(18,2), @Has Decimal(18,2), @ToplamHas Decimal(18,2) … RETURN Fn.Bol(@ToplamHas,@ToplamMiktar) · Sınır: Miktar×Milyem 3. ondalıkta anlamlı; çok sayıda küçük hareket[Ekip tarafından atanacak]
ERR-SIL-047SESSİZ MANTIK / HESAPLAMAS3SLR-016 Stok has değeri kart milyemiyle, cari has bakiyesi işlem milyemiyle – stok ve cari türetilmiş kayıtları farklı milyem kullanırE16 — Eksik Türetilmiş Kayıtİşç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 kart milyemini kullanır. Pozisyon.Write değişken milyemli (MilyemDurumu=True, hurda) kartlarda da sabit kart milyemini alır. Sonuç: BAKIYE ve STOK kalemleri far[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Stok.Maden.Milyem/MilyemDurumu, Cari.Islemler.AuMilyem, Stok.StokHaraketleri.Milyem · Formül: Stok listesi: Has = Miktar × (MilyemDurumu='False' ? Maden.Milyem : GetOrtMilyem) ; Pozisyon: Sum(Miktar × StabilMilyem) (=Maden.Milyem her durumda) ; · Sınır: AuMilyem ≠ Maden.Milyem olan işlemler; [Ekip tarafından atanacak]
ERR-SIL-048SESSİZ MANTIK / HESAPLAMAS2SLR-017 Transfer kabulünde stok hareketi üretimi (Cari.TransferUpdateSTatus) – eski satırlar silinmiyorE07 — Finansal Hesaplama HatasıSilme koşulu StokTipi=-2 (var olmayan tip) olduğundan hiçbir zaman eski Bolum=2 satırı silinmez. Transferler.Update() Status kolonunu her zaman yazdığı için UPDATE(status) doğru döner ve Status=1 olan bir transfer her düzenlendiğinde iki stok hareketi daha eklenir. Transferin IsDeleted=1 yapılması v[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Transferler (Status), Stok.StokHaraketleri Bolum=2 · Formül: if UPDATE(status): Delete From Stok.StokHaraketleri Where StokTipi=-2 AND IslemId in (inserted) ; Insert … Select 2,Id,1,…,CikanKasaId,…,Adet*-1,Mikta · Sınır: Kabul edilmiş (Status=1) transferin düzenlenmesi/yeniden kaydı; tra[Ekip tarafından atanacak]
ERR-SIL-050SESSİZ MANTIK / HESAPLAMAS3SLR-019 Pırlanta stok maliyeti = Tutar × FN.GetKur(BirimId)E07 — Finansal Hesaplama Hatası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, birim kimliği değil; yanlış birimin kuru uygulanır. Kur, işlem tarihinin değil bugünün kurudur; düzeltmede de bugünkü kurla yeniden yazılır. Uygulama tarafı ([Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: @Tutar, @BirimId (PEŞİN'de nakit stok Id'si, diğerlerinde birim Id'si), FN.GetKur (bugünün kur listesi) · Formül: Declare @Maliyet decimal(18,2) = @Tutar * Fn.GetKur(@BirimId) → StokHaraketleri.Maliyet · Sınır: IslemKodu=8 ve IslemTipi=1; BirimId kur listesinde yok; geçmiş tarihli düzeltme[Ekip tarafından atanacak]
ERR-SIL-051SESSİZ MANTIK / HESAPLAMAS3SLR-020 Çeşni ve takoz stok listeleri InsertDate ile, stok hareketleri Tarih ile süzülürE08 — Yuvarlama / Hassasiyet Hatası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 kullanır ve tutmaz. Ayrıca trigger değişkeni @InsertDate aslında I.Tarih'i taşır (isim yanıltıcı); devir kesimi bu alana dayanır.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Islemler.InsertDate vs Tarih; Stok.StokHaraketleri.Tarih · Formül: GetCesniStoklari/GetTakozSubeStoklari: CONVERT(date,InsertDate)<=@Tarih ; StokHaraketleri: Tarih<=@Tarih ; BakiyeIslem.Tarih = I.Tarih · Sınır: Geçmiş tarihli takoz/çeşni işlemi; devir kesim tarihine yakın kayıtlar[Ekip tarafından atanacak]
ERR-SIL-052SESSİZ MANTIK / HESAPLAMAS2SLR-021 Nakit tip 10 (PARİTE) satırı doğrudan kaydedilirse ters işaretli bakiye ve BirimId=0 satırıE07 — Finansal Hesaplama Hatası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=10 ile kaydedilir. Trigger bu satır için BirimId=0 (Birimler'de yok) bir bakiye satırı ve normal nakit kuralının tersi işaretli tutar satırı yazar. Bakiye kartı[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: IslemKodu=3, IslemTipi=10, BakiyeId (nakitte daima 0 – Cari.IslemEx.vb:291-303), Tutar · Formül: satır 318-330: Insert BakiyeIslem(BirimId=@BakiyeId, Bakiye=±@Miktar) ; satır 421-425: Insert BakiyeIslem(BirimId=@BirimId, Bakiye=@Tutar*-1) · Sınır: IslemTipi=10 olarak kaydedilmiş nakit satırı [Ekip tarafından atanacak]
ERR-SIL-053SESSİZ MANTIK / HESAPLAMAS3SLR-022 Çeşni (IslemKodu=14) bakiye satırları yönden bağımsız pozitif yazılırE07 — Finansal Hesaplama Hatası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İŞ çeşnisi yazarsa bakiye yine borç (+) olarak kalır. Ayrıca çeşni satırı IslemKodu∉{0,1,2,4,5,6,9} olduğu için 'diğer stok işlemi' bloğuna da girer; Tutar≠0 ise e[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: IslemKodu=14, Miktar, AuMilyem, AgMilyem, IslemTuru · Formül: Values(…,@HasBirimId,@Miktar * @AuMilyem) ; Values(…,@GumBirimId,@Miktar * @AgMilyem) (IslemTuru'na göre işaret yok) · Sınır: IslemKodu=14 ve IslemTuru∈{0,2,4}; Tutar≠0 çeşni satırı[Ekip tarafından atanacak]
ERR-SIL-054SESSİZ MANTIK / HESAPLAMAS3SLR-023 Raporsuz takoz bakiyesi: XRF milyemi 0 ise TAKOZ (-1) birimine miktar; değerleme 0,6 varsayımıE07 — Finansal Hesaplama Hatası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üzeltilmezse bakiye TAKOZ satırında kalır; düzeltme (Geri Al/Düzelt) anındaki XRF değerleri orijinal kayıttan farklıysa bakiye yeniden üretimde değişir.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Stok.Takoz.XRFAuMilyem/XRFAgMilyem, IsRapor, Miktar(+CesniMiktar girişte) · Formül: IsRapor=0 ⇒ @AuMilyem=XRFAuMilyem ; (@AuMilyem=0 And @AgMilyem=0) ⇒ Insert BakiyeIslem(BirimId=-1, Bakiye=∓Miktar) ; NetBakiye = Bakiye*0.6 ; Bakiye.G · Sınır: IsRapor=0 ve XRF milyemleri 0; rapor sonrası düze[Ekip tarafından atanacak]Çözüm adayı: ürün kararı: raporsuz takoz has varsayımı
ERR-SIL-055SESSİZ MANTIK / HESAPLAMAS3SLR-024 İptalin geri alınması / mutabakat gibi her UPDATE'te bakiye ve stoğun güncel referans verisiyle yeniden üretilmesiE16 — Eksik Türetilmiş KayıtTü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çin bugünkü kur) yeniden hesaplanır. 'Geri Alındı', mutabakat, hesap birleştirme gibi işlem tutarını değiştirmeyen güncellemelerde bile bakiye satırları değişebil[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Inserted (herhangi bir kolon güncellemesi), Stok.Takoz XRF milyemleri, Sistem.Settings sembolleri, Fn.GetKur(bugün) · Formül: Her UPDATE'te: Delete BakiyeIslem/StokHaraketleri(Bolum=0) → yeniden Insert (XRF milyem, HasBirimId, Fn.GetKur bugünkü değerlerle) · Sınır: XRF milyemi/Settings/kur de[Ekip tarafından atanacak]
ERR-SIL-056SESSİZ MANTIK / HESAPLAMAS2SLR-025 Fiş numarası üretimi MAX(FisNo)+1 (silinmemişler) ve fiş bazlı toplu iptalE07 — Finansal Hesaplama Hatası(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 edilen fişle yeni fiş aynı numarayı paylaşır. (c) Fiş-No ile iptal, tarih süzgeci olmadan kasadaki aynı numaralı tüm satırları (farklı günler dahil) sessizce ipta[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Islemler.FisNo (unique değil, IX_FisNo), IsDeleted; Program.KasaId · Formül: GetNewFisNo = Val(Select Max(FisNo) From Cari.Islemler Where IsDeleted='False') + 1 ; onIptalFisNoClick: Update Cari.Islemler Set IsDeleted='True' Whe · Sınır: Eşzamanlı kayıt; son fişin iptali; aynı FisNo'ya sa[Ekip tarafından atanacak]
ERR-SIL-057SESSİZ MANTIK / HESAPLAMAS2SLR-026 Çift kayıt (duplicate posting) – zaman aşımı/ağ kopması sonrası tekrar kayıtE15 — Duplicate / Çift İşlemSunucu 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ı tekrar F2 basar. RefNo her nesnede yeni GUID olduğundan ve FisNo/hesap/tutar için benzersizlik yoktur, ikinci satır sessizce kabul edilir.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Insert (InternalDb.ExecuteScalar → hata MsgBox, RecId=0), RefNo (her nesnede yeni GUID), unique index yok · Formül: Try RecId=db.ExecuteScalar() Catch … End Try ; If RecId>0 Then Id=RecId … Else Return False · Sınır: Ağ kesintisi/uzun tetikleyici süresi (AcceptTransaction cursor + GetGerekliE[Ekip tarafından atanacak]
ERR-SIL-059SESSİZ MANTIK / HESAPLAMAS3SLR-028 Cari.UpdateTransaction – çok satırlı UPDATE'te tek satır değişkeni; Mutabakat güncellemesi history üretmezE16 — Eksik Türetilmiş KayıtRefNo/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ı aktif kalır (belge havuzu görünümü iptal edilmiş işlemi belgeli sayabilir). Mutabakat ve Mutabakat ile birlikte başka alan değişen güncellemelerde hiç history yazıl[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Inserted/Deleted (çok satır), Cari.IslemDetaylari.ETTN · Formül: Select @IsDeleted=I.IsDeleted, @IslemId=D.IslemId, @Ettn=D.ETTN from inserted I Left Join IslemDetaylari D … (tek değer) ; Set @Status=(Select top 1 … · Sınır: Birden çok satırı etkileyen UPDATE; Mutabakat kolonunu içeren UPDATE[Ekip tarafından atanacak]
ERR-SIL-060SESSİZ MANTIK / HESAPLAMAS4SLR-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ıE08 — Yuvarlama / Hassasiyet Hatası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österim (1E-05) ve kültür ayarı '.' değilse Catch ile yuvarlanmadan döner. Nakit/parite ekranı Math.Round (bankacı yuvarlama) kullanırken SQL Convert(decimal(18[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Double değerler (BSMV, tutar), Utils.Culture (ondalık '.', binlik ',') · Formül: Round(Value,Decimals): Values=Value.ToString.Split(".") ; Result=Values(0)+"."+Left(Values(1),2) ; Val(Result) ; ToNumeric = Val(Replace(Value,",","") · Sınır: BSMV küsuratı 3. hanede ≥5; tutar×fiyat tam yarım ku[Ekip tarafından atanacak]
ERR-SIL-061SESSİZ MANTIK / HESAPLAMAS4SLR-030 Nakit BSMV geri hesabı (Tutar'dan fiyat) ileri formülün tersi değilE07 — Finansal Hesaplama HatasıTutar elle girildiğinde net tutar ve fiyat yaklaşık hesaplanır; ardından TutarHesapla yeniden tetiklenirse Tutar ilk girilenden farklı olur (100.000 → 99.999,60). Kayıtlı BSMV ile Tutar arasındaki ilişki işlemden işleme değişir; e-belge vergi matrahı (Calc.BSMV) farklı formülle (BSMVOran) hesaplandı[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: TxtTutar (BSMV dahil), GlobalSettings.BSMV (binde), IsBsmv · Formül: İleri: BSMV = Net×BSMV/1000 ; TUTAR = Round(Net+BSMV,2) ; Geri (TxtTutar LostFocus): Net ≈ Tutar − Tutar×BSMV/1000 (brütten kesinti) · Sınır: IsBsmv ve Tutar elle girilmiş; BSMV ayarı Dahil/Hariç[Ekip tarafından atanacak]
ERR-SIL-062SESSİZ MANTIK / HESAPLAMAS3SLR-031 Maliyet/İşçilik hesabı Double ile; negatif işçilik 0'a çekilir; kur 0 ise işçilik 0E08 — Yuvarlama / Hassasiyet HatasıMüşteriden metal değerinin altında alış (negatif işçilik = iskonto) 0 işçilikle kaydedilir; StokHaraketleri.Maliyet (=Iscilik×Kur) 0 olur, gerçek kazanç maliyet raporunda görünmez. Maliyet birimi kuru 0/eksikse Divide 0 döndürür ve işçilik sessizce 0 yazılır. Tüm hesap Double'dır; decimal(18,2) kolo[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Miktar, AuMilyem, AnaBirim.Price, TutarBirim.Price, MaliyetBirim.Price (bellek kur listesi Alis) · Formül: MiktarMaliyeti=(Miktar×AuMilyem)×AnaBirim.Price ; Giriş: Iscilik=(TutarMaliyeti−MiktarMaliyeti).Divide(MaliyetBirim.Price) ; If Iscilik<0 Then Iscilik · Sınır: TutarMaliyeti < MiktarMali[Ekip tarafından atanacak]
ERR-SIL-063SESSİZ MANTIK / HESAPLAMAS3SLR-032 Bilanco.OzetBilanco – kalemler farklı kesim tarihleri ve varsayımlarla toplanırE08 — Yuvarlama / Hassasiyet Hatası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/gideri yalnız kesim günü toplanır; raporsuz takoz bilançoda 0,6, pozisyonda 0 ile değerlenir; kur listesi eksikse Net 0. Uygulama KÂR/ZARAR = TOPLAM−DEVİR olara[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.BakiyeIslem (Tarih<=@Tarih), masraf hesapları (HesapTuru=4, tarih süzgeci yok), IslemKodu=5 GELİR/GİDER (Tarih=@Tarih tek gün), takoz 0,6, GetKur · Formül: BAKIYE: B.Tarih<=@Tarih … GELIR/GIDER(masraf bakiyesi): Where H.HesapTuru=4 (tarih yok) ; GELİR/GİDER(hizmet): Tarih>S.RevCostDate A[Ekip tarafından atanacak]
ERR-SIL-064SESSİZ MANTIK / HESAPLAMAS3SLR-033 Bilanco.GetIKar – parametre/sabit karışıklığı (KasaId=SubeId, BirimId=1=HAS, Satis kuru, ham bölme)E07 — Finansal Hesaplama Hatası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ış kuruyla değerlenir; FN.Bol yerine ham bölme (kur 0'da hata – sessiz değil ama kur yoksa NULL çarpımı sessiz NULL).[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.BakiyeIslem.KasaId (SubeId parametresiyle karşılaştırılır), GetKurListesi BirimId=1, Kur.Satis · Formül: Where B.KasaId=@SubeId … Bakiye*Kur.Satis / kur1.Alis (Kur1.BirimId=1) · Sınır: KasaId≠SubeId kurulum; BirimId 1 ≠ HAS; kur eksik[Ekip tarafından atanacak]
ERR-SIL-066SESSİZ MANTIK / HESAPLAMAS1SLR-035 Devir.vb (uygulama devri) – Sum(Milyem) ile açılış satırı, tarih=çalıştırma günü, transaction yokE08 — Yuvarlama / Hassasiyet Hatası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ız; giriş/çıkış satırları ayrı toplandığı için LIFO maliyet/ortalama milyem yalnız giriş satırlarını görür; takoz/pırlanta yine düşer; Tarih=GETDATE (kesim deği[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Stok.StokHaraketleri (StokTipi 1,2), Cari.BakiyeIslem · Formül: INSERT #ERPStok Select -1,0,IslemTuru,Getdate(),SubeId,KasaId,StokTipi,StokId,Sum(Adet),Sum(Miktar),Sum(Milyem),Sum(Has),Sum(Maliyet),VaryantId … Grou · Sınır: Devir.vb ile devir; hareketli stok kartları; devir sırasında hata[Ekip tarafından atanacak]
ERR-SIL-068SESSİZ MANTIK / HESAPLAMAS1SLR-037 Repair.StokRepair – ikinci FETCH'te değişken sayısı uyumsuz (17 ≠ 18)E07 — Finansal Hesaplama Hatasıİlk satır işlendikten sonra ikinci FETCH 'number of variables … must match' hatasıyla durur; TRUNCATE zaten autocommit ile kalıcı olduğundan stok hareket tablosu tek satırla kalır. Prosedür hata verir ancak veri kaybı gerçekleşmiştir.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Cari.Islemler (IsDeleted=0) · Formül: Truncate Table Stok.StokHaraketleri ; FETCH NEXT … INTO 18 değişken (ilk) ; döngü sonunda FETCH NEXT … INTO 17 değişken (@VaryantId eksik) · Sınır: Prosedürün çalıştırılması[Ekip tarafından atanacak]Çözüm adayı: çalıştırılmamalı
ERR-SIL-069SESSİZ MANTIK / HESAPLAMAS1SLR-038 Sistem.Settings tek satır varsayımı; Save = TRUNCATE + INSERT (transaction yok)E05 — Transaction Hatası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ı BirimId NULL ile yazılır (bakiye kartında görünmez), uygulama varsayılanlarla (BSMV=0, OnsCarpan=31,1035, IslemKurFarki=0) çalışır – kur farkı uyarısı ve BSMV ses[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Sistem.Settings (HasSymbol, GumSymbol, PltSymbol, PldSymbol, BSMV, OnsCarpan, IslemKurFarki…) · Formül: GlobalSettings.Save: Truncate Table Sistem.Settings ; Insert Into Sistem.Settings(...) Values('…') ; Trigger: @HasBirimId=(Select Id From Birimler Whe · Sınır: Ayar kaydı sırasında hata; el[Ekip tarafından atanacak]
ERR-SIL-071SESSİZ MANTIK / HESAPLAMAS3SLR-040 FN.GetKatki daima 0 döndürür; FN.Katsayı tablo dışı milyemde NULL → FN.AyarCevir 0E07 — Finansal Hesaplama Hatası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 miktar sessizce 0 olur.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Milyem1, Milyem2 (yalnız 0.333/0.375/0.417/0.585/0.750/0.875/0.916 tanımlı) · Formül: GetKatki: … Set @Result=… ; return 0 ; AyarCevir = Bol(@Miktar, Katsayı(@Milyem1)) * Katsayı(@Milyem2) ; Katsayı: CASE … END (ELSE yok → NULL) · Sınır: Milyem tam olarak listedeki 7 değerden biri değilse[Ekip tarafından atanacak]
ERR-SIL-072SESSİZ MANTIK / HESAPLAMAS4SLR-041 Uretim.TrBakiyeHesapla – kasa seçimi sırasız TOP 1, has = Tutar×FiyatE07 — Finansal Hesaplama HatasıŞ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ı Tutar/Fiyat ile doldurulduğundan alan anlamı ekrana bağlıdır.[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: Sistem.Kasalar (SubeId), UretimIslemleri · Formül: @KasaId = (Select Top 1 Id From Sistem.Kasalar Where IsDeleted='False' And SubeId=@SubeId) ; URETIMGIRIS: StokHaraketleri(…, Miktar=@Tutar, Milyem=@Fi · Sınır: Şubede >1 kasa; üretim modülü kullanan kurulum[Ekip tarafından atanacak]
ERR-SIL-073SESSİZ MANTIK / HESAPLAMAS3SLR-042 Trigger hata iletimi ve uygulamanın algısıE07 — Finansal Hesaplama HatasıTrigger reddi kullanıcıya SQL metniyle gösterilir (sessiz değil). Ancak RAISERROR olmadan hata yutulan yerler vardır: Insert sonrası 'Cari.RSAktar' ve Update sonrası 'Takoz.RaporYaz' hataları MsgBox ile geçilir ve ana kayıt tamam sayılır; GetCariLimit ExecuteScalar hatası Val('')=0 ile 'limit 0' gib[Ekip tarafından doldurulacak][Ekip tarafından doldurulacak]Girdi: RAISERROR(…,16,1)+ROLLBACK → SqlException 3609; InternalDb MsgBox; Cari.Islem.Insert Catch · Formül: InternalDb.ExecuteScalar: Catch ex → MsgBox(ex.Message); Result=Nothing ; Insert: RecId=0 → Return False · Sınır: RsAktar/RaporYaz prosedür hatası; FN.GetCariLimit hata[Ekip tarafından atanacak]