Kaynak:
docs/knowledge-base/quality/hotspots.md— KB-docs.
Hotspot Analizi (ERPPRO kod tabanı)
Gerçeklik türü: AS-IMPLEMENTED. Yalnız rapor; hiçbir kaynak değiştirilmedi, refactor önerileri technical-debt dosyasındadır. Veri kaynağı:
kb_src/erppro/scan.json(statik tarama: 1029 dosya, 345'i Designer; 3426 sınıf; 16043 metot; 372.436 satır; 1468 SQL ifadesi; 679 boşCatch). Tablolar Python (json.load) ile üretildi; satır numaraları depoda (/home/claude/erppro/ERPPRO) grep ile örneklem olarak doğrulandı. Sayımlar taramanın sezgisel kurallarına bağlıdır (ör.tablesalanı tablo ve tablo değerli fonksiyonları birlikte sayar;threadbayrağı web referanslarındaki üretilmişAsyncmetotlarını da işaretler — bunlar aşağıda ayıklandı). Etiketler: VERIFIED (scan + kodda görüldü), INFERRED (sayıdan çıkarım). Veri erişim bağlamı için database-access.
1. En büyük sınıflar
1.1 Designer dahil (scan lines, sınıfın tüm Partial dosyaları) — VERIFIED
İlk 25'in tamamı WinForms/DevExpress tasarımcı çıktısıyla şişmiş form/kontrol sınıflarıdır; InitializeComponent tek başına sınıfın %70-90'ıdır (bkz. §2.1). Gerçek kod yükü için 1.2'ye bakın.
| # | Sınıf | Satır (tüm dosyalar) | Metot | Dosya |
|---|---|---|---|---|
| 1 | FrmExcel |
4185 | 6 | ERPPRO/Form/Application/FrmExcel.Designer.vb |
| 2 | FrmMainForm |
3399 | 25 | ERPPRO/Form/Genel/FrmMainForm.Designer.vb |
| 3 | FrmPirlantaEkle |
3361 | 34 | ERPPRO/Form/Tanımlamalar/Stok/FrmPirlantaEkle.Designer.vb |
| 4 | FrmCariHesapEkle |
3235 | 20 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariHesapEkle.Designer.vb |
| 5 | FrmPersonelEkle |
3171 | 19 | ERPPRO/Form/Tanımlamalar/Personel/FrmPersonelEkle.Designer.vb |
| 6 | iScreen |
3122 | 67 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.Designer.vb |
| 7 | iFTakozGiris |
3109 | 51 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.Designer.vb |
| 8 | FrmTakozGiris |
3026 | 55 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.Designer.vb |
| 9 | FrmDashBoardDesigner |
2828 | 6 | ERPPRO/Designer/DashBoard/FrmDashBoardDesigner.Designer.vb |
| 10 | UiDesigner.DashBoard.DashBoardDesigner |
2825 | 10 | CodeDesigner/CodeDesigner/UiDesigner/Dashboard/DashBoardDesigner.Designer.vb |
| 11 | AIO.Parakende.HizliSatisEkrani |
2712 | 56 | ERPPRO/Controls/Islem Ekranı/Parakende/HizliSatisEkrani.Designer.vb |
| 12 | FrmWorld |
2656 | 6 | ERPPRO/Form/Application/FrmWorld.Designer.vb |
| 13 | tr.com.iceteknoloji.integrationtest.integration |
2651 | 329 | DijitalFatura/Web References/tr.com.iceteknoloji.integrationtest/Reference.vb |
| 14 | GiseEkrani |
2521 | 53 | ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.Designer.vb |
| 15 | frmEditTask |
2331 | 15 | ERPPRO/Organizasyon/TaskList/frmEditTask.designer.vb |
| 16 | FrmEFaturaBas |
2210 | 32 | ERPPRO/Controls/Islem Ekranı/Ekran/FrmEFaturaBas.Designer.vb |
| 17 | FrmReportDesigner |
2074 | 52 | ERPPRO/Designer/ReportManager/FrmReportDesigner.Designer.vb |
| 18 | FrmCariKartEkle |
1985 | 15 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariKartEkle.Designer.vb |
| 19 | FrmGenelStokEkle |
1982 | 10 | ERPPRO/Form/Tanımlamalar/Stok/FrmGenelStokEkle.Designer.vb |
| 20 | FrmModelEkle |
1975 | 35 | ERPPRO/Form/Tanımlamalar/Stok/FrmModelEkle.Designer.vb |
| 21 | ReportViewer |
1961 | 31 | ERPPRO/Designer/ReportManager/Class/ReportViewer.Designer.vb |
| 22 | FrmUretimIslemleri |
1961 | 35 | ERPPRO/Uretim/FrmUretimIslemleri.Designer.vb |
| 23 | FrmModelKartıEkle |
1907 | 18 | ERPPRO/Form/Siparis/FrmModelKartıEkle.Designer.vb |
| 24 | FrmGlobalSettings |
1739 | 10 | ERPPRO/Form/Settings/FrmGlobalSettings.Designer.vb |
| 25 | ParakendeSatis |
1695 | 35 | ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.Designer.vb |
1.2 Designer hariç (yalnız el yazımı dosyalar; üretilmiş web referansları/UBL sınıfları ayıklandı) — VERIFIED
Not: tr.com.iceteknoloji.integrationtest.integration (2651 satır, 329 metot, DijitalFatura/Web References/.../Reference.vb) ve FXData.FXData (1322 satır, ERPPRO/Web References/FXData/Reference.vb) üretilmiş proxy oldukları için listelenmedi.
| # | Sınıf | Satır (Designer hariç) | Metot | SQL | Dosya |
|---|---|---|---|---|---|
| 1 | AIO.Cari.Islem |
1520 | 116 | 13 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
| 2 | iScreen |
1254 | 67 | 8 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb |
| 3 | DijitalFatura.Entegrators.UyumSoft |
1046 | 12 | 0 | DijitalFatura/Entegrators/Uyumsoft.vb |
| 4 | DijitalFatura.ERPFatura |
1026 | 85 | 3 | DijitalFatura/Common/ERPFatura.vb |
| 5 | AIO.Personel.Personel |
910 | 72 | 9 | ERPPRO/Class/Dao/Personel.Personel.vb |
| 6 | AIO.Stok.Pirlanta |
896 | 84 | 9 | ERPPRO/Class/Dao/Stok.Pirlanta.vb |
| 7 | AIO.Cari.Hesap |
894 | 75 | 7 | ERPPRO/Class/Dao/Cari.Hesap.vb |
| 8 | iFVadeli |
887 | 32 | 0 | ERPPRO/Controls/Islem Ekranı/Ekran/iFVadeli.vb |
| 9 | AIO.Parakende.HizliSatisEkrani |
859 | 56 | 0 | ERPPRO/Controls/Islem Ekranı/Parakende/HizliSatisEkrani.vb |
| 10 | FrmTakozGiris |
837 | 55 | 1 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.vb |
| 11 | iFTakozGiris |
837 | 51 | 1 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.vb |
| 12 | Siparis.NetSiparis |
756 | 47 | 7 | ERPPRO/Form/Siparis/NetEntegrator.vb |
| 13 | FrmMainForm |
717 | 25 | 11 | ERPPRO/Form/Genel/FrmMainForm.vb |
| 14 | FrmStokIslem |
695 | 51 | 0 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmStokIslem.vb |
| 15 | AIO.Cari.Kart |
691 | 54 | 7 | ERPPRO/Class/Dao/Cari.Kart.vb |
| 16 | AIO.Dynamic.Field |
688 | 40 | 0 | ERPPRO/Class/Dao/Dynamic/Class/Attribute/Field.vb |
| 17 | AIO.Sistem.Sube |
665 | 57 | 6 | ERPPRO/Class/Dao/Sistem.Sube.vb |
| 18 | Extensions |
644 | 55 | 5 | ERPPRO/Class/Module/Extention.vb |
| 19 | GiseEkrani |
634 | 53 | 2 | ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.vb |
| 20 | AIO.Printing.Fis |
630 | 22 | 14 | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb |
| 21 | FrmUretimIslemleri |
628 | 35 | 7 | ERPPRO/Uretim/FrmUretimIslemleri.vb |
| 22 | DijitalFatura.Entegrators.MySoft |
622 | 9 | 0 | DijitalFatura/Entegrators/MySoft.vb |
| 23 | Common |
620 | 26 | 1 | ERPPRO/Form/Siparis/NetEntegrator.vb |
| 24 | FrmReportDesigner |
618 | 52 | 9 | ERPPRO/Designer/ReportManager/FrmReportDesigner.vb |
| 25 | DSX |
609 | 22 | 18 | ERPPRO/Class/Module/Database.vb |
Okuma: AIO.Cari.Islem (1520 satır, 116 metot; Cari.Islem.vb + Class/Ext/Cari.IslemEx.vb) sistemin çekirdek varlığı olup DAO, iş kuralı (Save içindeki limit/ miktar kontrolleri Cari.Islem.vb:506-531), UI (FrmSilmeOnayAl.ShowDialog :533-535, MessageBox 12 adet) ve SP çağrısını (:696) tek sınıfta toplar. iScreen (1254 satır kod + 1869 satır designer) işlem ekranı temel kontrolüdür ve 37 farklı sınıfa bağımlıdır (§4).
2. En büyük metotlar
2.1 InitializeComponent dahil — VERIFIED
| # | Sınıf.Metot | Satır | Dosya:satır |
|---|---|---|---|
| 1 | FrmExcel.InitializeComponent |
3776 | ERPPRO/Form/Application/FrmExcel.Designer.vb:21-3796 |
| 2 | FrmPirlantaEkle.InitializeComponent |
2827 | ERPPRO/Form/Tanımlamalar/Stok/FrmPirlantaEkle.Designer.vb:21-2847 |
| 3 | FrmCariHesapEkle.InitializeComponent |
2718 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariHesapEkle.Designer.vb:21-2738 |
| 4 | FrmPersonelEkle.InitializeComponent |
2697 | ERPPRO/Form/Tanımlamalar/Personel/FrmPersonelEkle.Designer.vb:21-2717 |
| 5 | FrmDashBoardDesigner.InitializeComponent |
2477 | ERPPRO/Designer/DashBoard/FrmDashBoardDesigner.Designer.vb:21-2497 |
| 6 | FrmMainForm.InitializeComponent |
2438 | ERPPRO/Form/Genel/FrmMainForm.Designer.vb:21-2458 |
| 7 | UiDesigner.DashBoard.DashBoardDesigner.InitializeComponent |
2427 | CodeDesigner/CodeDesigner/UiDesigner/Dashboard/DashBoardDesigner.Designer.vb:22-2448 |
| 8 | FrmWorld.InitializeComponent |
2302 | ERPPRO/Form/Application/FrmWorld.Designer.vb:21-2322 |
| 9 | iFTakozGiris.InitializeComponent |
2152 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.Designer.vb:21-2172 |
| 10 | FrmTakozGiris.InitializeComponent |
2073 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.Designer.vb:21-2093 |
| 11 | frmEditTask.InitializeComponent |
1949 | ERPPRO/Organizasyon/TaskList/frmEditTask.designer.vb:24-1972 |
| 12 | GiseEkrani.InitializeComponent |
1777 | ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.Designer.vb:22-1798 |
| 13 | FrmGenelStokEkle.InitializeComponent |
1750 | ERPPRO/Form/Tanımlamalar/Stok/FrmGenelStokEkle.Designer.vb:21-1770 |
| 14 | AIO.Parakende.HizliSatisEkrani.InitializeComponent |
1745 | ERPPRO/Controls/Islem Ekranı/Parakende/HizliSatisEkrani.Designer.vb:23-1767 |
| 15 | iScreen.InitializeComponent |
1658 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.Designer.vb:21-1678 |
| 16 | FrmEFaturaBas.InitializeComponent |
1651 | ERPPRO/Controls/Islem Ekranı/Ekran/FrmEFaturaBas.Designer.vb:24-1674 |
| 17 | FrmCariKartEkle.InitializeComponent |
1622 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariKartEkle.Designer.vb:21-1642 |
| 18 | FrmModelKartıEkle.InitializeComponent |
1619 | ERPPRO/Form/Siparis/FrmModelKartıEkle.Designer.vb:21-1639 |
| 19 | FrmModelEkle.InitializeComponent |
1592 | ERPPRO/Form/Tanımlamalar/Stok/FrmModelEkle.Designer.vb:21-1612 |
| 20 | ReportViewer.InitializeComponent |
1532 | ERPPRO/Designer/ReportManager/Class/ReportViewer.Designer.vb:21-1552 |
| 21 | FrmGlobalSettings.InitializeComponent |
1498 | ERPPRO/Form/Settings/FrmGlobalSettings.Designer.vb:21-1518 |
| 22 | FrmParcaKartiEkle.InitializeComponent |
1412 | ERPPRO/Form/Siparis/FrmParcaKartiEkle.Designer.vb:21-1432 |
| 23 | FrmReportDesigner.InitializeComponent |
1337 | ERPPRO/Designer/ReportManager/FrmReportDesigner.Designer.vb:21-1357 |
| 24 | FrmSubeEkle.InitializeComponent |
1305 | ERPPRO/Form/Tanımlamalar/Sistem/FrmSubeEkle.Designer.vb:21-1325 |
| 25 | FrmUretimIslemleri.InitializeComponent |
1250 | ERPPRO/Uretim/FrmUretimIslemleri.Designer.vb:21-1270 |
2.2 InitializeComponent hariç (üretilmiş proxy'ler ayıklandı) — VERIFIED
| # | Sınıf.Metot | Satır | Dosya:satır |
|---|---|---|---|
| 1 | DijitalFatura.Entegrators.UyumSoft.Get_eDoviz_Belge |
475 | DijitalFatura/Entegrators/Uyumsoft.vb:623-1097 |
| 2 | FrmMainForm.onMenuSelect |
471 | ERPPRO/Form/Genel/FrmMainForm.vb:60-530 |
| 3 | DijitalFatura.Entegrators.Ice_.eDoviz_Ubl.Create |
351 | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:12-362 |
| 4 | AIO.Personel.Personel.Insert |
216 | ERPPRO/Class/Dao/Personel.Personel.vb:391-606 |
| 5 | AIO.Personel.Personel.Update |
211 | ERPPRO/Class/Dao/Personel.Personel.vb:610-820 |
| 6 | AIO.Cari.Hesap.Insert |
205 | ERPPRO/Class/Dao/Cari.Hesap.vb:327-531 |
| 7 | DijitalFatura.ERPFatura.Save |
200 | DijitalFatura/Common/ERPFatura.vb:449-648 |
| 8 | AIO.Cari.Hesap.Update |
197 | ERPPRO/Class/Dao/Cari.Hesap.vb:535-731 |
| 9 | ERPFatura.Save |
170 | ERPPRO/Class/Dao/Islem/ERPFatura.vb:328-497 |
| 10 | iFVadeli.SaveCashTransaction |
168 | ERPPRO/Controls/Islem Ekranı/Ekran/iFVadeli.vb:504-671 |
| 11 | Siparis.NetSiparis.Save |
168 | ERPPRO/Form/Siparis/NetEntegrator.vb:1857-2024 |
| 12 | AIO.Sistem.Sube.Insert |
166 | ERPPRO/Class/Dao/Sistem.Sube.vb:215-380 |
| 13 | AIO.Siparis.Modelkarti.InsertDate |
157 | ERPPRO/Class/Dao/Siparis.Modelkarti.vb:78-234 |
| 14 | AIO.Sistem.Sube.Update |
157 | ERPPRO/Class/Dao/Sistem.Sube.vb:384-540 |
| 15 | DijitalFatura.Entegrators.Ice.Get_eDoviz_Belge |
156 | DijitalFatura/Entegrators/Ice.vb:329-484 |
| 16 | iFNakit.SaveCashTransaction |
153 | ERPPRO/Controls/Islem Ekranı/Ekran/iFNakit.vb:152-304 |
| 17 | DijitalFatura.Entegrators.MySoft.Get_eDoviz_Belge |
151 | DijitalFatura/Entegrators/MySoft.vb:479-629 |
| 18 | FrmTakozGiris.FormSave |
149 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.vb:234-382 |
| 19 | iFTakozGiris.FormSave |
149 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.vb:192-340 |
| 20 | Common.MappingNetSiparis |
149 | ERPPRO/Form/Siparis/NetEntegrator.vb:3099-3247 |
| 21 | AIO.Cari.Kart.Insert |
148 | ERPPRO/Class/Dao/Cari.Kart.vb:277-424 |
| 22 | AIO.Stok.Pirlanta.Insert |
148 | ERPPRO/Class/Dao/Stok.Pirlanta.vb:504-651 |
| 23 | AIO.Cari.Islem.Update |
146 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb:857-1002 |
| 24 | AIO.Cari.Islem.Insert |
145 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb:566-710 |
| 25 | FrmUretimIslemleri.Kaydet |
145 | ERPPRO/Uretim/FrmUretimIslemleri.vb:415-559 |
Okuma: ilk 25'in 12'si DAO Insert/Update metodudur (145-216 satır) — her alan için If X <> Nothing Then AddWithValue Else DBNull bloğunun tekrarından oluşur; FrmMainForm.onMenuSelect (471 satır) tek bir Select Case ile tüm menüyü yönlendirir (FrmMainForm.vb:60-530).
3. En çok tabloya dokunan sınıflar (scan tables; tablo + TVF) — VERIFIED
| # | Sınıf | Tablo/TVF sayısı | Dosya | Örnek |
|---|---|---|---|---|
| 1 | DSX |
20 | ERPPRO/Class/Module/Database.vb |
Cari.HesapListesi, Genel.Projeler, Personel.CikisNedenleri, Personel.MeslekKodlari, Personel.SSKGrup… |
| 2 | AIO.Printing.Fis |
11 | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb |
AifaDev.ReportLayouts, AifaDev.Reports, Bakiye.GetBakiye, Bakiye.GetFisBakiyesi, Cari.FisIslemDetay… |
| 3 | FrmMainForm |
9 | ERPPRO/Form/Genel/FrmMainForm.vb |
Dov.GetMadenStoklari, Dov.GetNakitStoklari, Personel.CikisNedenleri, Personel.IzinListesi, Personel.MeslekKodlari… |
| 4 | FrmCariHesapEkle |
8 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariHesapEkle.vb |
Cari.GetFiyatListesi, Cari.Hesaplar, Cari.Kartlar, Genel.Adresler, Genel.Yetkililer… |
| 5 | FrmPaketEkle |
7 | ERPPRO/Form/Siparis/FrmPaketEkle.vb |
Siparis.GetPaketDetay, Siparis.GetPaketHesapListesi, Siparis.GetParcaKartlari, Siparis.ModelKarti, Siparis.PaketDetay… |
| 6 | FrmParcaKartiEkle |
7 | ERPPRO/Form/Siparis/FrmParcaKartiEkle.vb |
Siparis.GetKalipKartlari, Siparis.GetTedarikciler, Siparis.KalipDetay, Siparis.ModelKarti, Siparis.ReceteDetay… |
| 7 | FrmModelKartıEkle |
6 | ERPPRO/Form/Siparis/FrmModelKartıEkle.vb |
Siparis.GetReceteDetay, Siparis.GetReceteler, Siparis.ModelAyarBlackList, Siparis.modelayarBlacklist, Stok.Maden… |
| 8 | FrmBankaAltinOperasyonuTanimlama |
6 | ERPPRO/Form/Tanımlamalar/Banka/FrmBankaAltinOperasyonuTanimlama.vb |
Finans.Banka, Finans.BankaAltinOperasyonMasrafi, Finans.BankaHesaplari, Finans.BankaSubeleri, Finans.GetAltinOperasyonIslemleri… |
| 9 | FrmPersonelEkle |
6 | ERPPRO/Form/Tanımlamalar/Personel/FrmPersonelEkle.vb |
Finans.Banka, Finans.BankaSubeleri, Organizasyon.GetTaskList, Personel.GetAileBireyleri, Personel.GetIzinler… |
| 10 | FrmHesapAktar |
6 | ERPPRO/Form/Tanımlamalar/Sistem/FrmHesapAktar.vb |
Cari.Hesaplar, Cari.Islemler, Cari.Kartlar, ERPGENERAL.Dbo, Sistem.Kasalar… |
| 11 | FrmKullaniciEkle |
6 | ERPPRO/Form/Users/FrmKullaniciEkle.vb |
Personel.Personeller, Sistem.GetUsers, Sistem.Sirketler, Sistem.Subeler, Sistem.UserDetails… |
| 12 | UiDesigner.Ribbon.RibbonDesigner |
6 | CodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/RibbonDesigner.vb |
AifaDev.DashBoard, AifaDev.DynamicForms, AifaDev.Forms, AifaDev.Reports, Design.PopupGrid… |
| 13 | AIO.Dynamic.Table |
5 | ERPPRO/Class/Dao/Dynamic/Class/Base/Table.vb |
INFORMATION_SCHEMA.columns, sys.columns, sys.objects, sys.schemas, sys.types |
| 14 | DBUpdate |
5 | ERPPRO/Class/SCHEMA/DBUpdate.vb |
Sistem.ERPSCHEMA, Sistem.ERPSchema, sys.columns, sys.objects, sys.schemas |
| 15 | iScreen |
5 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb |
Cari.GetAccountLog, Cari.HistoryDetails, Cari.HistoryListesi, Cari.IslemListesi, Cari.Islemler |
| 16 | FrmSipModelEkle |
5 | ERPPRO/Form/Siparis/FrmSipModelEkle.vb |
Siparis.GetModelKartlari, Siparis.GetTakimlar, Siparis.GetUyumluPaketler, Siparis.ModelAyarBlackList, Siparis.Receteler |
| 17 | FrmUretimSiparisEkle |
5 | ERPPRO/Form/Siparis/FrmUretimSiparisEkle.vb |
Siparis.GetModelKartlari, Siparis.GetParcaKartlari, Siparis.GetUretimSiparisDetay, Siparis.Receteler, Siparis.UretimSiparisi |
| 18 | FrmBankaOperasyonSkorGirisi |
5 | ERPPRO/Form/Tanımlamalar/Banka/FrmBankaOperasyonSkorGirisi.vb |
Finans.Banka, Finans.BankaHesaplari, Finans.BankaSubeleri, Finans.GetAltinOperasyonIslemleri, Genel.experler |
| 19 | FrmMizanDetayEkle |
5 | ERPPRO/Form/Tanımlamalar/Sistem/FrmMizanDetayEkle.vb |
Cari.Hesaplar, Sistem.MizanDetay, Stok.Hizmet, Stok.Maden, Stok.Nakit |
| 20 | FrmGorevEkle |
5 | ERPPRO/Organizasyon/FrmGorevEkle.vb |
Organizasyon.GelenGorevler, Organizasyon.GetOrganizasyonListesi, Organizasyon.GorevDagitim, Organizasyon.Gorevler, Organizasyon.Organizasyonlar |
Okuma: DSX (önbellek) beklenen liderdir; AIO.Printing.Fis (fiş yazdırma) 11 tablo/TVF'ye dokunup 13 dinamik SQL üretir — rapor mantığının yazdırma sınıfına gömülü olduğunu gösterir. Form sınıflarının (FrmCariHesapEkle, FrmPaketEkle, …) doğrudan 6-8 tabloya SQL göndermesi DAO katmanının atlandığını gösterir.
4. Bağımlılık: en çok kullanılan ve en çok kullanan sınıflar (scan uses ters indeksi) — VERIFIED
4.1 En çok başka sınıf tarafından kullanılan 20 sınıf (tüm sınıflar)
| # | Kullanılan sınıf | Kullanan sınıf sayısı | Tanım dosyası |
|---|---|---|---|
| 1 | InternalDb |
293 | ERPPRO/Class/Module/InternalDb.vb |
| 2 | LabelControl |
189 | ERPPRO/Controls/Editor/LabelControl.vb |
| 3 | TextBoxEdit |
123 | ERPPRO/Controls/Editor/TexBoxEdit.vb |
| 4 | Credits.IDType |
120 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
| 5 | LookUpEdit |
114 | ERPPRO/Controls/Editor/LookUpEdit.vb |
| 6 | Controls.GridControl |
105 | CodeDesigner/CodeDesigner/Controls/Editors/GridControl.vb |
| 7 | ComboBoxEdit |
95 | ERPPRO/Controls/Editor/ComboBoxEdit.vb |
| 8 | DbCombo |
60 | ERPPRO/Controls/Editor/DbCombo.vb |
| 9 | tr.com.iceteknoloji.integrationtest.Login_Request_Header |
60 | DijitalFatura/Web References/tr.com.iceteknoloji.integrationtest/Reference.vb |
| 10 | Credits.DescriptionType |
59 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
| 11 | PictureEdit |
58 | ERPPRO/Controls/Editor/PictureEdit.vb |
| 12 | Credits.PeriodType |
57 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
| 13 | Credits.PartyType |
56 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
| 14 | FormEditBase |
54 | ERPPRO/Form/Base/FormEditBase.vb |
| 15 | Controls.DateEdit |
54 | CodeDesigner/CodeDesigner/Controls/Editors/DateEdit.vb |
| 16 | Controls.MemoEdit |
45 | CodeDesigner/CodeDesigner/Controls/Editors/MemoEdit.vb |
| 17 | AIO.Cari.Islem |
44 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
| 18 | Credits.DocumentReferenceType |
44 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
| 19 | Credits.NoteType |
41 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
| 20 | Credits.NameType1 |
36 | DijitalFatura/Entegrators/Ice/UBL-CreditNote.vb |
4.2 UI kontrolleri ve üretilmiş UBL/proxy tipleri ayıklanınca
| # | Kullanılan sınıf | Kullanan sınıf sayısı | Tanım dosyası |
|---|---|---|---|
| 1 | InternalDb |
293 | ERPPRO/Class/Module/InternalDb.vb |
| 2 | AIO.Cari.Islem |
44 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
| 3 | DataLayout.RepositoryItem |
32 | ERPPRO/DataLayout/Repository.vb |
| 4 | AIO.Sistem.Birim |
30 | ERPPRO/Class/Dao/Sistem.Birim.vb |
| 5 | AIO.Stok.Maden |
14 | ERPPRO/Class/Dao/Stok.Maden.vb |
| 6 | AIO.Cari.Hesap |
12 | ERPPRO/Class/Dao/Cari.Hesap.vb |
| 7 | AIO.Stok.Takoz |
11 | ERPPRO/Class/Dao/Stok.Takoz.vb |
| 8 | DataLayout.Data.DataColumn |
9 | ERPPRO/DataLayout/RepositoryData.vb |
| 9 | AIO.Sistem.ListLayout |
9 | ERPPRO/Class/Dao/Sistem.Listlayout.vb |
| 10 | iFTransaction.iTransactionInfo |
9 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTransaction.vb |
| 11 | AIO.Dynamic.Data |
8 | ERPPRO/Class/Dao/Dynamic/Class/Base/Data.vb |
| 12 | DataLayout.Data.DataRow |
8 | ERPPRO/DataLayout/RepositoryData.vb |
| 13 | DijitalFatura.Base.EDovizResponseResult |
8 | DijitalFatura/Base/EdovizResponseResult.vb |
| 14 | UiDesigner.Form.Form |
7 | CodeDesigner/CodeDesigner/Designer/UserForm.vb |
| 15 | AIO.Dynamic.Field |
6 | ERPPRO/Class/Dao/Dynamic/Class/Attribute/Field.vb |
| 16 | AIO.Design.RibbonItem |
6 | ERPPRO/Class/Dao/Design.RibbonItem.vb |
| 17 | AIO.Cari.View.HesapDetay |
6 | ERPPRO/Class/Dao/Cari.View.Hesaplistesi.vb |
| 18 | AIO.Stok.Nakit |
6 | ERPPRO/Class/Dao/Stok.Nakit.vb |
| 19 | AIO.Design.RibbonGroup |
5 | ERPPRO/Class/Dao/Design.RibbonGroup.vb |
| 20 | AIO.Design.RibbonPage |
5 | ERPPRO/Class/Dao/Design.RibbonPage.vb |
Okuma: InternalDb 293 sınıf tarafından doğrudan kullanılır → veri erişim değişikliği 293 sınıfa dokunur. Alan modeli tarafında en yaygın bağımlılık AIO.Cari.Islem (44) ve AIO.Sistem.Birim (30).
4.3 Yüksek coupling — en çok farklı sınıfa bağımlı 20 sınıf (üretilmiş/UBL hariç)
| # | Sınıf | Farklı uses sayısı |
Dosya |
|---|---|---|---|
| 1 | DijitalFatura.Entegrators.Ice_.eDoviz_Ubl |
62 | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb |
| 2 | DijitalFatura.Entegrators.UyumSoft |
56 | DijitalFatura/Entegrators/Uyumsoft.vb |
| 3 | iScreen |
37 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb |
| 4 | FrmPersonelEkle |
21 | ERPPRO/Form/Tanımlamalar/Personel/FrmPersonelEkle.vb |
| 5 | DSX |
20 | ERPPRO/Class/Module/Database.vb |
| 6 | Program |
20 | ERPPRO/Class/Module/Program.vb |
| 7 | AIO.Parakende.HizliSatisEkrani |
20 | ERPPRO/Controls/Islem Ekranı/Parakende/HizliSatisEkrani.vb |
| 8 | FrmMainForm |
20 | ERPPRO/Form/Genel/FrmMainForm.vb |
| 9 | iFTransaction |
19 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTransaction.vb |
| 10 | FrmSiparisGirisi |
19 | ERPPRO/Form/Siparis/FrmSiparisGirisi.vb |
| 11 | FrmCariHesapEkle |
19 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariHesapEkle.vb |
| 12 | AIO.Printing.Fis |
18 | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb |
| 13 | FrmReportDesigner |
18 | ERPPRO/Designer/ReportManager/FrmReportDesigner.vb |
| 14 | GiseEkrani |
17 | ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.vb |
| 15 | UiDesigner.Form.FormDesigner |
17 | CodeDesigner/CodeDesigner/UiDesigner/FormDesigner/FormDesigner.vb |
| 16 | FrmSipModelEkle |
16 | ERPPRO/Form/Siparis/FrmSipModelEkle.vb |
| 17 | FrmModelKartıEkle |
15 | ERPPRO/Form/Siparis/FrmModelKartıEkle.vb |
| 18 | FrmBankaAltinOperasyonuTanimlama |
15 | ERPPRO/Form/Tanımlamalar/Banka/FrmBankaAltinOperasyonuTanimlama.vb |
| 19 | FrmBankaOperasyonSkorGirisi |
15 | ERPPRO/Form/Tanımlamalar/Banka/FrmBankaOperasyonSkorGirisi.vb |
| 20 | FrmGorevEkle |
15 | ERPPRO/Organizasyon/FrmGorevEkle.vb |
5. Boş Catch — en çok olan 20 dosya — VERIFIED
Toplam 679 boş catch, 273 dosya (scan empty_catch). Projeye göre: ERPPRO 633, AifaDeveloper 41, DigitalFatura 5. Klasöre göre: ERPPRO/Class/Dao 361, Designer/ReportManager 39, Controls/Islem Ekranı 33, Class/Module 30, Class/Ext 24. (Mimari referans §9-6 "348 yerde" der — farklı sayım tabanı; scan Designer ve CodeDesigner dahil sayar.)
| # | Dosya | Boş catch | Örnek metot:satır |
|---|---|---|---|
| 1 | ERPPRO/Designer/DosPrint/DosPrint.vb |
14 | DataBind:74, New:149, TOList:174 |
| 2 | ERPPRO/Form/Siparis/NetEntegrator.vb |
12 | New:1764, TOList:1809, Delete:2110 |
| 3 | ERPPRO/Class/Dao/Dynamic/Class/Base/Data.vb |
8 | Load:96, GetDataTable:153, Insert:192 |
| 4 | ERPPRO/Class/Module/Database.vb |
8 | RetriveOfProjeler:80, RetriveOfTakozTipi:426, RetriveOfVariant:447 |
| 5 | ERPPRO/Class/Ext/Cari.Provizyon.vb |
7 | New:30, TOList:54, Insert:84 |
| 6 | ERPPRO/Class/Dao/Dov.Harcamalar.vb |
6 | New:15, TOList:44, Insert:79 |
| 7 | ERPPRO/Class/Dao/Doviz.StokKartlari.vb |
6 | New:14, TOList:42, Insert:76 |
| 8 | ERPPRO/Class/Dao/Stok.Mutabakat.vb |
6 | New:14, TOList:42, Insert:75 |
| 9 | ERPPRO/Class/Dao/Stok.Variyant.vb |
6 | New:32, TOList:60, Insert:96 |
| 10 | ERPPRO/Class/Dao/Uretim.Bakiye.vb |
6 | New:15, TOList:39, Insert:69 |
| 11 | ERPPRO/Class/Dao/Uretim.Bolumler.vb |
6 | New:15, TOList:46, Insert:83 |
| 12 | ERPPRO/Class/Dao/Uretim.UretimIslemleri.vb |
6 | New:14, TOList:56, Insert:104 |
| 13 | ERPPRO/Class/Module/Extention.vb |
6 | SizeLoad:120, SizeLoad:152, Import:255 |
| 14 | CodeDesigner/CodeDesigner/UiDesigner/FormDesigner/FormDesigner.vb |
6 | LoadProperites:155, AddBookMarks:186, ClearBookMarks:193 |
| 15 | ERPPRO/Class/Dao/Sistem.Clients.vb |
5 | New:24, Insert:146, Update:189 |
| 16 | ERPPRO/Controls/Takvim/Class/Resources.vb |
5 | New:18, ToList:42, ToList:69 |
| 17 | ERPPRO/Designer/ReportManager/Class/FaturaDesign.vb |
5 | New:32, New:53, TOList:74 |
| 18 | ERPPRO/Designer/ReportManager/Class/ReportLayout.vb |
5 | New:31, Load:51, RestoreLayout:145 |
| 19 | ERPPRO/Designer/ReportManager/FrmReportDesigner.vb |
5 | CustomSummary:283, BtnAdd_Click:361 |
| 20 | ERPPRO/Form/Pano/DovizPanosu.vb |
5 | New:15, TOList:40, Save:76 |
Tipik kalıp (DAO): Try … RecId = db.ExecuteScalar … Catch ex As Exception Finally db.SqlConnectionState = Close End Try — hata yutulur, Save False döner (ör. ERPPRO/Class/Dao/Islem/Cari.Islem.vb:694-700, Cari.Fatura.vb:228-234). Database.vb'de önbellek yükleyicileri boş catch içinde: liste yüklenemezse sessizce boş kalır (:105,443,466,487,508,530,550).
6. Kopyala-yapıştır (duplicated code) — VERIFIED
Yöntem: scan'deki Save/Insert/Update/Delete/DeleteAt/SetPropertyValue metot adları ve gövdeleri (normalize edilip kümelendi) + grep.
| Kalıp | Sayı | Kanıt |
|---|---|---|
Save gövdesi If Id = 0 Then Return Insert Else Return Update |
91 / 105 DAO Save (52 Insert/Update, 39 parantezsiz yazım) |
ör. ERPPRO/Class/Dao/Agent.Agent.vb:104, Cari.Transferler.vb:164-166, Cari.DosyaBilgileri.vb:86 |
Insert / Update alan-alan AddWithValue bloğu |
110 / 110 DAO metodu; 142 dosyada 4559 AddWithValue satırı |
Personel.Personel.vb:391-606 (216 satır), Cari.Hesap.vb:327-531 |
SetPropertyValue + GetPropertyValue reflection çifti |
121 dosya (grep "Sub SetPropertyValue(ByVal PropertyName") |
Cari.Fatura.vb:376-392, Cari.Transferler.vb:324, Class/Common/Symbol.vb:97-105, Controls/Takvim/Class/Ticket.vb:329-337 |
Delete + Delete(RecordId) + Shared DeleteAt(Id) üçlüsü (soft delete) |
87 dosya (DBBase türevleri arasında) | Cari.Hesap.vb:749/770/792 — üçü aynı MessageBox metnini taşır |
New(RecordId) + TOList okuyucu kalıbı (If Not Dr.Item(x) Is DBNull.Value Then …) |
118 DBBase türevi | Database.vb:54-79 ile aynı |
Dispose(disposing) boş kalıbı |
162 metot 9 satır (aynı imza) | Class/Dao/Agent.Agent.vb:259, InternalDb.vb:131-141 |
| Aynı dosyanın iki kopyası | CodeDesigner/.../RibbonDesigner/Ribbon.vb ve Ribbon.sync-conflict-20180412-175728-MJL5L7R.vb (her ikisi 11 dinamik SQL) |
dosya sistemi; .vbproj'de yalnız Ribbon.vb derleniyor (grep) |
| Ekran çifti | iFTakozGiris.FormSave (149 satır, iFTakozGiris.vb:192-340) ↔ FrmTakozGiris.FormSave (149 satır, SeriIslemEkrani/FrmTakozGiris.vb:234-382); iFVadeli.SaveCashTransaction ↔ iFNakit.SaveCashTransaction |
scan metot uzunlukları birebir |
7. Dinamik SQL — en çok olan 20 dosya — VERIFIED
Toplam 1010 / 1468 ifade dinamik (%69), 311 sınıf. Satır numaraları ifadenin başladığı satırdır.
| # | Dosya | Dinamik SQL | Satırlar |
|---|---|---|---|
| 1 | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb |
13 | 40, 43, 99, 137, 139, 201, 218, 220… |
| 2 | CodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/Ribbon.sync-conflict-20180412-175728-MJL5L7R.vb |
11 | 16, 83, 130, 159, 183, 208, 305, 332… |
| 3 | CodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/Ribbon.vb |
11 | 18, 84, 131, 160, 184, 209, 306, 333… |
| 4 | ERPPRO/Class/Dao/Dynamic/Class/Base/Table.vb |
10 | 93, 138, 145, 146, 147, 152, 154, 160… |
| 5 | ERPPRO/Class/Module/Database.vb |
9 | 113, 157, 181, 224, 297, 342, 429, 613… |
| 6 | ERPPRO/Designer/ReportManager/BilancoSimpleView.vb |
8 | 118, 150, 166, 167, 182, 185, 187, 190 |
| 7 | ERPPRO/Form/Siparis/FrmPaketEkle.vb |
8 | 7, 53, 67, 90, 131, 158, 167, 170 |
| 8 | ERPPRO/Form/Siparis/NetEntegrator.vb |
8 | 1766, 2113, 2132, 2500, 2633, 2653, 2673, 2905 |
| 9 | ERPPRO/Organizasyon/FrmGorevEkle.vb |
8 | 39, 44, 92, 98, 105, 106, 138 |
| 10 | ERPPRO/Class/Dao/Cari.Fatura.vb |
7 | 32, 313, 316, 333, 336, 356, 359 |
| 11 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
7 | 37, 522, 1055, 1058, 1064, 1072, 1104 |
| 12 | ERPPRO/Class/Dao/Personel.Personel.vb |
7 | 29, 37, 401, 615, 826, 840, 855 |
| 13 | ERPPRO/Class/Dao/Stok.Model.vb |
7 | 32, 248, 288, 300, 484, 499, 515 |
| 14 | ERPPRO/Class/Dao/Stok.Pirlanta.vb |
7 | 32, 444, 454, 469, 803, 818, 834 |
| 15 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb |
7 | 723, 975, 977, 1002, 1028, 1136, 1148 |
| 16 | ERPPRO/Controls/Takvim/Class/Resources.vb |
7 | 21, 73, 177, 215, 243, 258, 273 |
| 17 | ERPPRO/Designer/DosPrint/DosPrint.vb |
7 | 151, 288, 308, 458, 490, 629, 649 |
| 18 | ERPPRO/Form/Tanımlamalar/Banka/FrmBankaAltinOperasyonuTanimlama.vb |
7 | 42, 48, 58, 65, 119, 158, 161 |
| 19 | ERPPRO/Uretim/FrmUretimIslemleri.vb |
7 | 6, 37, 41, 209, 222, 246, 248 |
| 20 | ERPPRO/Class/Dao/Design.PopupGrid.vb |
6 | 30, 170, 231, 283, 297, 312 |
Enjeksiyon açısından string parametre örnekleri: database-access §8.1.
8. Global durum (Program.*, LoginInformation.*, DSX.*) — en çok kullanan 20 sınıf — VERIFIED
Toplam 1175 başvuru, 312 sınıf (Program 763, DSX 322, LoginInformation 87). DAO klasöründeki 162 sınıfın 110'u global durum okur (341 başvuru) → DAO sınıfları oturum/şube bağlamını enjeksiyonla değil statik alandan alır.
| # | Sınıf | Global başvuru | Dağılım | Dosya | Örnek |
|---|---|---|---|---|---|
| 1 | AIO.Printing.Fis |
33 | Program 19, LoginInformation 11, DSX 3 | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb |
LoginInformation.User (Printing.vb:27), Program.SirketId (Printing.vb:27) |
| 2 | AIO.Cari.Islem |
30 | Program 19, DSX 7, LoginInformation 4 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
LoginInformation.Sube (Cari.Islem.vb:506), Program.GetKur (Cari.Islem.vb:506) |
| 3 | iScreen |
29 | Program 15, LoginInformation 11, DSX 3 | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.Designer.vb |
LoginInformation.User (iScreen.vb:4), LoginInformation.User (iScreen.vb:25) |
| 4 | AIO.Dynamic.Field |
28 | DSX 20, Program 8 | ERPPRO/Class/Dao/Dynamic/Class/Attribute/Field.vb |
DSX.TABLE.ListOfAnlikFiyat (Field.vb:488), DSX.TABLE.ListOfBirim (Field.vb:488) |
| 5 | DSX |
28 | DSX 20, Program 8 | ERPPRO/Class/Module/Database.vb |
DSX.TABLE.ListOfProje (Database.vb:80), DSX.TABLE.ListOfBirim (Database.vb:110) |
| 6 | FrmMainForm |
27 | Program 21, LoginInformation 5, DSX 1 | ERPPRO/Form/Genel/FrmMainForm.Designer.vb |
LoginInformation.Sube (FrmMainForm.vb:8), Program.ShadowMode (FrmMainForm.vb:8) |
| 7 | GiseEkrani |
20 | Program 14, DSX 4, LoginInformation 2 | ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.Designer.vb |
DSX.TABLE.ListOfHesap (GiseEkrani.vb:19), Program.GetKur (GiseEkrani.vb:19) |
| 8 | AIO.Parakende.HizliSatisEkrani |
18 | Program 9, DSX 8, LoginInformation 1 | ERPPRO/Controls/Islem Ekranı/Parakende/HizliSatisEkrani.Designer.vb |
DSX.TABLE.ListOfHesap (HizliSatisEkrani.vb:13), DSX.TABLE.ListOfKasalar (HizliSatisEkrani.vb:13) |
| 9 | ParakendeSatis |
17 | DSX 8, Program 8, LoginInformation 1 | ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.Designer.vb |
DSX.TABLE.ListOfHesap (ParakendeSatis.vb:47), DSX.TABLE.ListOfKasalar (ParakendeSatis.vb:47) |
| 10 | FrmTakozGiris |
16 | Program 13, DSX 3 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.Designer.vb |
DSX.TABLE.ListOfBirim (FrmTakozGiris.vb:88), DSX.TABLE.ListOfTakozTipi (FrmTakozGiris.vb:88) |
| 11 | iFTakozGiris |
16 | Program 13, DSX 3 | ERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.Designer.vb |
DSX.TABLE.ListOfBirim (iFTakozGiris.vb:34), DSX.TABLE.ListOfTakozTipi (iFTakozGiris.vb:34) |
| 12 | iFMaden |
12 | Program 6, DSX 5, LoginInformation 1 | ERPPRO/Controls/Islem Ekranı/Ekran/iFMaden.Designer.vb |
DSX.TABLE.ListOfBirim (iFMaden.vb:38), DSX.TABLE.ListOfMaden (iFMaden.vb:38) |
| 14 | FrmUretimIslemleri |
12 | Program 6, DSX 5, LoginInformation 1 | ERPPRO/Uretim/FrmUretimIslemleri.Designer.vb |
Program.SubeId (FrmUretimIslemleri.vb:3), Program.SubeId (FrmUretimIslemleri.vb:31) |
| 15 | Program |
10 | Program 8, DSX 1, LoginInformation 1 | ERPPRO/Class/Module/Program.vb |
Program.Config (Program.vb:78), Program.GlobalSettings (Program.vb:88) |
| 16 | FrmEFaturaBas |
10 | LoginInformation 6, DSX 3, Program 1 | ERPPRO/Controls/Islem Ekranı/Ekran/FrmEFaturaBas.Designer.vb |
DSX.FN.GetIstatistikKodu (FrmEFaturaBas.vb:80), LoginInformation.Sube (FrmEFaturaBas.vb:138) |
| 17 | FrmLoginForm |
10 | Program 9, LoginInformation 1 | ERPPRO/Form/Genel/FrmLoginForm.Designer.vb |
Program.CheckLocalUpdate (FrmLoginForm.vb:2), Program.GlobalSettings (FrmLoginForm.vb:2) |
| 18 | FrmCariHesapEkle |
10 | Program 5, LoginInformation 3, DSX 2 | ERPPRO/Form/Tanımlamalar/Cari/FrmCariHesapEkle.Designer.vb |
Program.SirketId (FrmCariHesapEkle.vb:3), DSX.TABLE.ListOfMaden (FrmCariHesapEkle.vb:31) |
| 19 | AIO.Cari.Provizyon |
9 | DSX 6, Program 3 | ERPPRO/Class/Ext/Cari.Provizyon.vb |
Program.GlobalSettings (Cari.Provizyon.vb:323), DSX.FN.GetKarsiIslemTuru (Cari.Provizyon.vb:384) |
| 20 | iHesapControl |
9 | DSX 5, Program 3, LoginInformation 1 | ERPPRO/Controls/Islem Ekranı/Base Control/iHesapControl.Designer.vb |
DSX.TABLE.ListOfHesap (iHesapControl.vb:12), DSX.TABLE.ListOfProje (iHesapControl.vb:12) |
9. Reflection kullanan yerler — VERIFIED
scan reflection bayrağı 278 metot; dağılım:
| Grup | Yer | Not |
|---|---|---|
DAO SetPropertyValue/GetPropertyValue (Me.GetType.GetProperty) |
121 dosya × 2 metot (§6) | Alan adı string'i ile özellik yazma/okuma; DataLayoutControl/RepositoryItem tarafından çağrılır |
DataLayout.DBBaseClass |
ERPPRO/DataLayout/DBBaseClass.vb:42,88,201-261 |
attribute tabanlı ORM (tek türev RepositoryItem) |
AIO.SQL.SQLBase |
ERPPRO/Class/Dao/_SQLBase/SQLBase.vb:15-26,43,65-95 |
MERGE üretimi (tek türev Cari.IFatura) |
AIO.Dynamic.Data / Compiler / DataProperties |
Class/Dao/Dynamic/Class/Base/Data.vb:34,50,80,88,134,192,240; Class/Compiler.vb:57; Forms/DataProperties.vb:3 |
runtime derleme + Activator |
Generic liste/ağaç Show(Of T) |
Controls/Grid/DataListBase.vb:5,13,21 (Activator.CreateInstance(GetType(ActiveClass))), DataListGrid.vb, DataListTree.vb |
tip parametresinden DAO örneği |
Utils.AddControl, Utils.cVBEvalProvider.Eval |
Class/Module/Utils.vb:141,217 |
Eval çağrılmıyor (ölü) |
| Diğer | Class/Common/Symbol.vb:97-105, Class/Sistem.Login.vb:138-146, Class/Ext/Sistem.Ozelkod.vb:212-220, Controls/Islem Ekranı/OldFis/Etiket.vb:241-249, EtiketDetay.vb:328, Controls/Takvim/Class/{Appointment:480,Resources:289,Ticket:329}.vb, CodeDesigner/.../Designer/UserForm.vb |
aynı çiftin kopyaları |
10. Thread / Timer kullanan yerler — VERIFIED
scan thread 406 metot; 367'si web referansı proxy'lerindeki üretilmiş …Async metotları (ayıklandı). Kalan 39:
| Sınıf.Metot | Dosya:satır |
|---|---|
My.MyApplication.MyApplication_Startup |
ERPPRO/Class/Ext/ApplicationExt.vb:23 |
Backup.InitializeComponent |
ERPPRO/Backup/Backup.Designer.vb:24 |
Backup.Button1_Click |
ERPPRO/Backup/Backup.vb:54 |
AIO.Sistem.DovizPanosu.Start |
ERPPRO/Class/Dao/Sistem.DovizPanosu.vb:46 |
AIO.Kur.KurListesi.Start |
ERPPRO/Class/Dao/Sistem.KurListesi.vb:73 |
EXAProducts.Read |
ERPPRO/Class/Module/EXAProducts.vb:15 |
Extensions.GetDatasource |
ERPPRO/Class/Module/Extention.vb:66 |
Program.CheckLocalUpdate |
ERPPRO/Class/Module/Program.vb:74 |
SQLServers.New |
ERPPRO/Class/Module/SQLServers.vb:4 |
TCMB.Currency.Read |
ERPPRO/Class/Module/TCMB.vb:78 |
Utils.Culture |
ERPPRO/Class/Module/Utils.vb:126 |
Utils.Run |
ERPPRO/Class/Module/Utils.vb:153 |
AIO.Net.Email.Send |
ERPPRO/Class/Net/Email.vb:21 |
iScreen.IHesapButtonClick |
ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:348 |
FrmEFaturaListesi.BtnSendAll_Click |
ERPPRO/Controls/Islem Ekranı/Ekran/FrmEFaturaListesi.vb:53 |
GiseEkrani.InitializeComponent |
ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.Designer.vb:22 |
PanoGrid.FormInit |
ERPPRO/Controls/Islem Ekranı/Parakende/PanoGrid.vb:10 |
Takvim.InitializeComponent |
ERPPRO/Controls/Takvim/Takvim.Designer.vb:21 |
Takvim.RetriveData |
ERPPRO/Controls/Takvim/Takvim.vb:65 |
Takvim.DXTab_HeaderButtonClick |
ERPPRO/Controls/Takvim/Takvim.vb:247 |
DashBoardView.OnStart |
ERPPRO/Designer/DashBoard/DashBoardView.vb:64 |
DashBoardView.OnStop |
ERPPRO/Designer/DashBoard/DashBoardView.vb:72 |
FrmIscreenGrid.FormClose |
ERPPRO/Designer/PopupGrid/FrmIscreenGrid.vb:97 |
ThreadPopupGrid.OnStart |
ERPPRO/Designer/PopupGrid/ThreadPopupGrid.vb:81 |
ThreadPopupGrid.OnStop |
ERPPRO/Designer/PopupGrid/ThreadPopupGrid.vb:90 |
ThreadPopupGrid.FormClose |
ERPPRO/Designer/PopupGrid/ThreadPopupGrid.vb:98 |
BilancoSimpleView.VwBilancoList_DoubleClick |
ERPPRO/Designer/ReportManager/BilancoSimpleView.vb:145 |
FrmNabiz.FormShown |
ERPPRO/Designer/ReportManager/FrmNabiz.vb:218 |
AiWebCam.InitializeComponent |
ERPPRO/Form/Genel/AiWebCam.Designer.vb:24 |
FrmDevir.InitializeComponent |
ERPPRO/Form/Genel/FrmDevir.Designer.vb:23 |
FrmDevir.SimpleButton1_Click |
ERPPRO/Form/Genel/FrmDevir.vb:31 |
RefreshFormBase.FormInit |
ERPPRO/Form/RefreshGrid/RefreshFormBase.vb:85 |
RefreshFormBase.FormClose |
ERPPRO/Form/RefreshGrid/RefreshFormBase.vb:88 |
RefreshFormBase.onRefreshData |
ERPPRO/Form/RefreshGrid/RefreshFormBase.vb:100 |
Common.RefreshData |
ERPPRO/Form/Siparis/NetEntegrator.vb:3285 |
FrmPingCodes.InitializeComponent |
ERPPRO/Form/Tanımlamalar/Cari/FrmPingCodes.Designer.vb:21 |
MutabakatOnay.FormLoad |
ERPPRO/Form/Tanımlamalar/Stok/MutabakatOnay.vb:4 |
UiDesigner.DashBoard.DashBoardView.onRefresh |
CodeDesigner/CodeDesigner/UiDesigner/Dashboard/DashBoardView.vb:55 |
UiDesigner.Form.FormDesigner.ClassCodeChanged |
CodeDesigner/CodeDesigner/UiDesigner/FormDesigner/FormDesigner.vb:152 |
Dikkat çekenler: KurListesi.Start (System.Threading.Timer, 15 sn; liste UI dışından güncellenir, kilit yok — Sistem.KurListesi.vb:62-75,95-123), DovizPanosu.Start (aynı kalıp, Sistem.DovizPanosu.vb:46), Program.CheckLocalUpdate (arka planda Update.exe çalıştırıp End — Program.vb:74-98), SQLServers.New (kurucuda thread), ThreadPopupGrid/RefreshFormBase (grid yenileme thread'leri).
11. UI açan DAO sınıfları — VERIFIED
ERPPRO/Class/Dao altında MessageBox.Show/MsgBox: 45 satır, 19 dosya; Class/Ext: 19 satır, 4 dosya; ayrıca Utils.OnayAl/FrmSilmeOnayAl 10 çağrı. scan messages alanına göre 148 DAO sınıfının 17'si ileti gösterir:
| Sınıf | İleti sayısı | Dosya | Örnek (metot:satır) |
|---|---|---|---|
AIO.Cari.Islem |
12 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
Save:509,514,524; AciklamaIste FrmSilmeOnayAl.ShowDialog :533-535; DeleteAt MessageBox.YesNo :1057,1061 |
AIO.Cari.Fatura |
3 | Cari.Fatura.vb |
DeleteAt:311, Delete:331,354 (onay sorusu DAO içinde) |
AIO.Cari.Hesap |
3 (+ FrmMainForm.MainTabControl erişimi :812) |
Cari.Hesap.vb |
DeleteAt:749, Delete:770,792; CloseAllForm ana form sekmelerini gezer |
AIO.Cari.Kart |
3 | Cari.Kart.vb |
DeleteAt:586, Delete:606,627 |
AIO.Finans.BankaAltinOperasyonu |
3 | Finans.BankaAltinOperasyonu.vb |
DeleteAt:263, Delete:285,307 |
AIO.Siparis.Parcakarti |
3 | Siparis.Parcakarti.vb |
DeleteAt:390, Delete:408,427 |
AIO.Siparis.Modelkarti |
2 | Siparis.Modelkarti.vb |
Insert:248, Update:343 |
AIO.Siparis.Fiyatlistesi, AIO.Siparis.Recete, AIO.Sistem.Pincode, AIO.Sistem.Usergroup, AIO.Sistem.Vadeli, AIO.Stok.Hizmet, AIO.Stok.Maden, AIO.Stok.Model, AIO.Stok.Nakit, AIO.Stok.Pirlanta |
1'er | ilgili Class/Dao/*.vb |
Validate:127, Save:117, New:28, CreateMenu:159, HasRow:271/258/433/293/258/459 |
Ek: InternalDb (veri katmanının kendisi) MessageBox/MsgBox açar (InternalDb.vb:44,61,77,93,106,120); SQLBase.vb:124,144,175; DBBaseClass.vb:136; Class/Dao/Islem/PinShowDialog.vb, FrmExLimit.vb DAO klasöründe form sınıflarıdır.
12. Magic number karşılaştırmaları — VERIFIED
scan magic (yalnız IslemKodu/IslemTuru/IslemTipi/Status/HesapType/StokTipi/Durum alanlarıyla sabit karşılaştırma) 74 ifade; grep ile ek sayım: IslemTipi = n 30 satır/15 dosya, IslemKodu = n 12/10, HesapType = n 11/10, Status = n 8/5, Durum = n 7/7, SetStatus(x, n) 3/1. Enum'lar mevcut (AIO.Cari.Islem.tIslemKodu/tIslemTuru/tIslemTipi) ama SQL metinlerinde ve bazı VB dallarında sayı kullanılır.
| # | Sınıf | Karşılaştırma | Dosya | Örnekler |
|---|---|---|---|---|
| 1 | AIO.Printing.Fis |
8 | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb |
StokTipi=1 (Printing.vb:201); StokTipi=2 (Printing.vb:201); StokTipi=2 (Printing.vb:201) |
| 2 | AIO.Cari.Islem |
5 | ERPPRO/Class/Dao/Islem/Cari.Islem.vb |
IslemKodu = 1 (Cari.Islem.vb:520); IslemKodu = 2 (Cari.Islem.vb:520); IslemKodu = 3 (Cari.Islem.vb:520) |
| 3 | ProvizyonGrid |
4 | ERPPRO/Controls/Grid/ProvizyonGrid.Designer.vb |
Status <> 2 (ProvizyonGrid.vb:261); Status = 2 (ProvizyonGrid.vb:262); Status <> 1 (ProvizyonGrid.vb:276) |
| 4 | FrmStokIslem |
4 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmStokIslem.Designer.vb |
IslemTipi <> -1 (FrmStokIslem.vb:501); IslemTipi <> -1 (FrmStokIslem.vb:505); IslemTipi <> -1 (FrmStokIslem.vb:511) |
| 5 | StokIslem |
4 | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/StokIslem.Designer.vb |
IslemTipi <> -1 (StokIslem.vb:365); IslemTipi <> -1 (StokIslem.vb:369); IslemTipi <> -1 (StokIslem.vb:375) |
| 6 | MutabakatOnay |
4 | ERPPRO/Form/Tanımlamalar/Stok/MutabakatOnay.Designer.vb |
StokTipi =2 (MutabakatOnay.vb:24); StokTipi=1 (MutabakatOnay.vb:24); StokTipi =2 (MutabakatOnay.vb:24) |
| 7 | AIO.Cari.Odeme |
3 | ERPPRO/Class/Dao/Cari.Odeme.vb |
IslemKodu =3 (Cari.Odeme.vb:136); IslemTipi =15 (Cari.Odeme.vb:136); HesapType = 0 (Cari.Odeme.vb:152) |
| 8 | AIO.Cari.ListItem |
3 | ERPPRO/Class/Ext/Cari.ListItem.vb |
IslemTipi = 10 (Cari.ListItem.vb:8); IslemTipi = 11 (Cari.ListItem.vb:8); IslemTipi = 12 (Cari.ListItem.vb:8) |
| 9 | FrmMadenBaglatiListesi |
3 | ERPPRO/Controls/Islem Ekranı/Ekran/FrmMadenBaglatiListesi.Designer.vb |
Status=0 (FrmMadenBaglatiListesi.vb:11); IslemTipi =14 (FrmMadenBaglatiListesi.vb:11); IslemKodu =1 (FrmMadenBaglatiListesi.vb:11) |
| 10 | iFHurda |
3 | ERPPRO/Controls/Islem Ekranı/Ekran/iFHurda.Designer.vb |
IslemTipi = 11 (iFHurda.vb:50); IslemTipi = 11 (iFHurda.vb:52); IslemTipi = 12 (iFHurda.vb:54) |
| 11 | iFMaden |
3 | ERPPRO/Controls/Islem Ekranı/Ekran/iFMaden.Designer.vb |
IslemTipi = 11 (iFMaden.vb:76); IslemTipi = 12 (iFMaden.vb:78); IslemTipi = 14 (iFMaden.vb:80) |
| 12 | FrmBlokTakozGirisi |
2 | ERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.Designer.vb |
IslemKodu =0 (FrmBlokTakozGirisi.vb:23); IslemTuru =1 (FrmBlokTakozGirisi.vb:23) |
| 13 | FrmOdemeGirisi |
2 | ERPPRO/Controls/Islem Ekranı/Ekran/FrmOdemeGirisi.Designer.vb |
IslemKodu =3 (FrmOdemeGirisi.vb:39); IslemTipi =15 (FrmOdemeGirisi.vb:39) |
| 14 | ParakendeSatis |
2 | ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.Designer.vb |
HesapType = 0 (ParakendeSatis.vb:307); HesapType = 0 (ParakendeSatis.vb:380) |
| 15 | iFSeriIslem |
2 | ERPPRO/Controls/Islem Ekranı/Ekran/iFSeriIslem.Designer.vb |
IslemTipi <> -1 (iFSeriIslem.vb:240); IslemTipi <> -1 (iFSeriIslem.vb:243) |
| 16 | FrmBilancoSifirla |
2 | ERPPRO/Form/Genel/FrmBilancoSifirla.Designer.vb |
HesapType = 0 (FrmBilancoSifirla.vb:88); IslemKodu = 999 (FrmBilancoSifirla.vb:93) |
| 17 | BTRANSDOVIZ.GIBBTrans |
1 | ERPPRO/BTRANS/Class/GIBBTRANSDOVIZ.vb |
IslemTipi = 1 (GIBBTRANSDOVIZ.vb:117) |
| 18 | AIO.Cari.Hesap |
1 | ERPPRO/Class/Dao/Cari.Hesap.vb |
HesapType=0 (Cari.Hesap.vb:734) |
| 19 | AIO.Cari.Kart |
1 | ERPPRO/Class/Dao/Cari.Kart.vb |
HesapType=0 (Cari.Kart.vb:571) |
| 20 | AIO.Siparis.Siparis |
1 | ERPPRO/Class/Dao/Siparis.Siparis.vb |
Durum = 0 (Siparis.SiparisEx.vb:46) |
Örnekler:
- AIO.Cari.Transfer.SetStatus(RecordId, 3|1|2) — iptal/kabul/ret için 3/1/2 sabitleri (ERPPRO/Controls/Islem Ekranı/Ekran/FrmTransfer.vb:57,69,80), Cari.Transferler.vb:152 Status='0' koşulu.
- Update Cari.Islemler Set Status=1 Where RefNo='…' (Form/Provizyon/FrmProvizyonKabul.vb:52); I.Status <> 2 / = 0 (Controls/Grid/ProvizyonGrid.vb:261-277).
- IslemKodu = 999 (devir kayıtları) Form/Genel/FrmBilancoSifirla.vb:93; IslemTipi <> -1 sentinel'i 10 yerde (SeriIslemEkrani/FrmStokIslem.vb:501-515, StokIslem.vb:365-379, iFSeriIslem.vb:240,243).
- IslemTipi = 10/11/12 fatura tipleri Class/Ext/Cari.ListItem.vb:8, iFHurda.vb:50-54, iFMaden.vb:76-80; IslemKodu =3 And IslemTipi =15 ödeme Cari.Odeme.vb:136, FrmOdemeGirisi.vb:39.
- MASAK eşikleri sabit: > 7000 TL (ParakendeSatis.vb:279), > 3000 USD (:349,407).
