# İK › Tanımlamalar (`App.Hr.Definitions`) İK modüllerinin ortak sözlükleri. Bu doküman iki işi görür: (1) Tanımlamalar menüsünün **dizinidir** — her tanımın hangi modüle ait olduğunu ve nerede kullanıldığını gösterir; (2) belirli bir modüle ait olmayan genel tanımları (kurum doktoru, yeterlilik belgesi, hastane, hastane bölümü, evrak türü, izin türü, masraf türü, yan hak türü) anlatır. > Bu doküman modülün tek "nasıl çalışır" kaynağıdır. Modülde yapılan her değişiklik aynı commit'te > buraya yansır (`lowcode.instructions.md` §0.13). --- ## 1. Dizin `İnsan Kaynakları › Tanımlamalar` (`App.Hr.Definitions`, ikon `FcFilingCabinet`) | Sıra | Menü | `ListFormCode` | Kaynak | Ayrıntı | | --- | --- | --- | --- | --- | | 1 | Yetenek Tipleri | `App.Hr.SkillType` | Entity + seeder | [HrOrganization.md](HrOrganization.md) | | 2 | Departmanlar | `App.Hr.Department` | Entity + seeder | [HrOrganization.md](HrOrganization.md) | | 3 | Pozisyonlar | `App.Hr.JobPosition` | Entity + seeder | [HrOrganization.md](HrOrganization.md) | | 4 | Kurum Doktorları | `App.Hr.Doctor` | Wizard | bu doküman · [HrHealthCard.md](HrHealthCard.md) | | 5 | Yeterlilik Belgeleri | `App.Hr.Certificate` | Wizard | bu doküman | | 6 | Hastaneler | `App.Hr.Hospital` | Wizard | bu doküman · [HrHealthCard.md](HrHealthCard.md) | | 7 | Hastane Bölümleri | `App.Hr.HospitalDepartment` | Wizard | bu doküman · [HrHealthCard.md](HrHealthCard.md) | | 8 | Evrak Türleri | `App.Hr.DocumentType` | Wizard | bu doküman | | 9 | İzin Türleri | `App.Hr.LeaveType` | Wizard | bu doküman | | 10 | Masraf Türleri | `App.Hr.ExpenseType` | Wizard | bu doküman | | 11 | Yan Hak Türleri | `App.Hr.BenefitType` | Wizard | bu doküman | | 12 | Ceza Türleri | `App.Hr.DisciplinaryPenaltyType` | Wizard | [HrDisciplinaryCase.md](HrDisciplinaryCase.md) | | 13 | Aday Kaynakları | `App.Hr.CandidateSource` | Wizard | [HrRecruitment.md](HrRecruitment.md) | | 14 | Ret Sebepleri | `App.Hr.RejectionReason` | Wizard | [HrRecruitment.md](HrRecruitment.md) | | 15 | Değerlendirme Kriterleri | `App.Hr.EvaluationCriterion` | Wizard | [HrRecruitment.md](HrRecruitment.md) | | 16 | Performans Dereceleri | `App.Hr.PerformanceRating` | Wizard | [HrPerformance.md](HrPerformance.md) | Tanımlamalar dışında duran tanımlar: Eğitim tipi/konusu → [HrTrainings.md](HrTrainings.md); araç belgesi/masrafı/gidilecek yer → [HrVehicles.md](HrVehicles.md); çalışma takvimi ve vardiya → [HrWorkCalendar.md](HrWorkCalendar.md). --- ## 2. Analiz ve kararlar (genel tanımlar) > §0.13 kuralından önce üretildiler; keşif turu kaydı yoktur. Kararlar wizard ve seed dosyalarından okunmuştur. | Konu | Karar | | --- | --- | | Yol | Her tanım tek Wizard liste ekranı; veri seed dosyasına **aynalanır** (`SeedFilePath = data/App.Hr.{Kod}.json`, ekle/güncelle/sil senkron). Ekrandan yapılan değişiklik dosyaya yazılır, DB sıfırlanınca geri gelir | | Aktif/Pasif | Hepsinde `IsActive` (varsayılan aktif); lookup'lar çoğunlukla yalnız aktifleri listeler | | Kod alanı | İzin, masraf ve yan hak türlerinde iş kodu (`Code`, ör. `Annual`, `Meal`) ayrıca tutulur; yan hak kodu teklifte saklanan değerdir | | Hazırlık tanımları | İzin türü ve masraf türü **henüz bir talep ekranına bağlı değildir** — ileride izin/masraf talep ekranlarının (onaylı talep kalıbı, `lowcode.instructions.md` §10.7) kaynağı olmak üzere tanımlanmıştır. Hastane ve hastane bölümü de şu an kullanılmıyor | --- ## 3. Ekranlar Hepsi Grid, Card, Pivot, Chart görünümlüdür. | Ekran | Alanlar | Widget'lar | Seed | | --- | --- | --- | --- | | Kurum Doktorları | Ad soyad*, diploma no/tarihi, işyeri hekimi belge no/tarihi, T.C. kimlik no, aktif | Toplam · Aktif · Pasif | 1 | | Yeterlilik Belgeleri | Belge adı*, aktif | Toplam · Aktif · Pasif | 16 (operatör belgeleri, kaynakçı, SRC 4, forklift, mezuniyet belgeleri, çıraklık-ustalık…) | | Hastaneler | Kurum adı*, aktif | Toplam · Aktif · Pasif | 45 | | Hastane Bölümleri | Bölüm adı*, aktif | Toplam · Aktif · Pasif | 31 | | Evrak Türleri | Dosya grubu* (Genel / Özlük Evrakları / Sağlık), dosya türü*, zorunlu, aktif | Toplam · Aktif · Pasif · Zorunlu | 48 | | İzin Türleri | Kod*, ad*, cinsiyet* (All/Male/Female), yıllık en fazla gün, ücretli, yıllık izinden düşer, belge gerekir, yarım gün kullanılabilir, bakiye aşılırsa (Engelle/Uyar), aktif | Toplam · Ücretli · Ücretsiz | 9 (Yıllık, Mazeret, Ücretsiz, Hastalık, Doğum 112 gün, Babalık 5, Evlilik 3, Ölüm 3, Süt) | | Masraf Türleri | Kod*, ad*, varsayılan tutar, para birimi, gelir vergisine tabi, SGK'ya tabi, fiş/belge gerekir, aktif | Toplam · Aktif · Pasif | 7 (yemek, yol, konaklama, akaryakıt, telefon, temsil, kırtasiye) | | Yan Hak Türleri | Kod*, ad*, varsayılan tutar, para birimi, gelir vergisine tabi, SGK'ya tabi, aktif | Toplam · Aktif · Pasif | 10 (yemek kartı, ulaşım, özel sağlık sigortası, BES, konut, şirket aracı, telefon, çocuk, yakacak, diğer) | `*` zorunlu. Varsayılanlar: izin türünde ücretli = evet, yıllık izinden düşer/belge/yarım gün = hayır, cinsiyet = Tümü; masraf ve yan hakta para birimi TRY, vergi/SGK = hayır, masrafta fiş gerekir = evet. --- ## 4. Veri modeli Tablolar `sql/object/Hr_T_{Doctor,Certificate,Hospital,HospitalDepartment,DocumentType,LeaveType,ExpenseType,BenefitType}.sql` (entity yok); kiracı + audit + `IsActive`. Kolonlar §3'teki alanlarla aynıdır. Tablo düzeyinde tekil kısıt yoktur. --- ## 5. İş kuralları Hesap yoktur; yalnız form varsayılanları (§3). Seed dosyası aynalandığı için tanımlar ekrandan değiştirildiğinde `configs/seeds/host/data/App.Hr.*.json` dosyası da değişir — bu dosyalar commit'lenmelidir. --- ## 6. Yetki ve görünürlük İzin grubu `App.Hr`, modül `Sas|Hr`. Her tanımın kökü + `.Create/.Update/.Delete/.Export/.Import/.Note`, hepsi `App.Hr.Definitions` ara yetkisinin altında. Tanım ekranlarının yazma yetkisi İK'da kalmalıdır; lookup olarak okunmaları ekran yetkisi gerektirmez. Hiçbir yetki role otomatik atanmaz. --- ## 7. Entegrasyonlar (kim kullanıyor) | Tanım | Kullanan | | --- | --- | | Kurum Doktorları | Sağlık Kartı (periyodik muayene, protokol, sonuç hekimleri) | | Yeterlilik Belgeleri | Kullanıcı detayı › Eğitim ve Yetkinlik (`UserCertificate`), Performans gelişim planı (sertifika aksiyonu) | | Evrak Türleri | Eğitim dosyaları, Disiplin belgeleri | | Yan Hak Türleri | İşe Alım › Teklif (`BenefitCodes`, kod ile) | | İzin Türleri | İzin Yönetimi'nin tür kuralları (cinsiyet, yarım gün, belge, yıllık sınır, yıllık izinden düşme, aşım davranışı); `Sick` kodlu tür Sağlık Kartı istirahatiyle eşlenir — `HrLeave.md` | | Hastaneler, Hastane Bölümleri, Masraf Türleri | Henüz kullanan ekran yok | --- ## 8. Akış örneği 1. İK yeni bir yan hak tanımlar: kod `Gym`, ad "Spor Salonu Üyeliği", varsayılan tutar 1.500 TRY, gelir vergisine tabi. 2. Kayıt `data/App.Hr.BenefitType.json` dosyasına da yazılır. 3. İşe Alım › Teklif formundaki **Yan Haklar** listesinde yeni hak seçilebilir. --- ## 9. Sık sorulanlar **Pasif yaptığım tanım listelerden kayboldu.** Lookup'lar yalnız aktif kayıtları listeler; eski kayıtlarda değer korunur. **İzin talebi nereden girilir?** Henüz izin/masraf talep ekranı yoktur; türler tanım olarak hazırdır. **Evrak Türleri "özlük dosyası" diyor ama özlük dosyası ekranı yok.** Doğru; türler şu an eğitim ve disiplin belgelerinde kullanılır. --- ## 10. Dosyalar | Dosya | İçerik | | --- | --- | | `configs/seeds/host/sql/object/Hr_T_{Doctor,Certificate,Hospital,HospitalDepartment,DocumentType,LeaveType,ExpenseType,BenefitType}.sql` | Tablolar | | `configs/seeds/host/wizard/{Doctor,Certificate,Hospital,HospitalDepartment,DocumentType,LeaveType,ExpenseType,BenefitType}.json` | 8 wizard | | `configs/seeds/host/data/App.Hr.{Doctor,Certificate,Hospital,HospitalDepartment,DocumentType,LeaveType,ExpenseType,BenefitType}.json` | Aynalanan tanım verisi | ## Ek — Ekran envanteri (otomatik) > Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur. ### Kurum Doktorları — `App.Hr.Doctor` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Doctor.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.Doctor` (sıra 4) | | Yetki | `App.Hr.Doctor` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Kurum Doktorları — işyeri hekimleri ve belge bilgileri. | | Geliştirme talebi | Human Resources -> Definitions | | Kaynak | `Hr_T_Doctor` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Veri aynası | `data/App.Hr.Doctor.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `FullName` | Doktor Adı Soyadı | dxTextBox | ✓ | ✓ | | | `DiplomaNo` | Diploma No | dxTextBox | | ✓ | | | `DiplomaDate` | Diploma Tarihi | dxDateBox | | ✓ | | | `OhsCertificateNo` | İşyeri Hekimi Belge No | dxTextBox | | ✓ | | | `OhsCertificateDate` | İşyeri Hekimi Belge Tarihi | dxDateBox | | ✓ | | | `IdentityNo` | T.C. Kimlik No | dxTextBox | | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### Yeterlilik Belgeleri — `App.Hr.Certificate` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Certificate.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.Certificate` (sıra 5) | | Yetki | `App.Hr.Certificate` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Yeterlilik Belgeleri — personelin sahip olabileceği mesleki yeterlilik ve mezuniyet belgeleri. | | Geliştirme talebi | Human Resources -> Definitions | | Kaynak | `Hr_T_Certificate` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Veri aynası | `data/App.Hr.Certificate.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Name` | Belge Adı | dxTextBox | ✓ | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### Hastaneler — `App.Hr.Hospital` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Hospital.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.Hospital` (sıra 6) | | Yetki | `App.Hr.Hospital` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Hastaneler — hastane ve sağlık kurumu tanımları. | | Geliştirme talebi | Human Resources -> Definitions | | Kaynak | `Hr_T_Hospital` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Veri aynası | `data/App.Hr.Hospital.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Name` | Kurum Adı | dxTextBox | ✓ | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### Hastane Bölümleri — `App.Hr.HospitalDepartment` | Özellik | Değer | | --- | --- | | Wizard | `wizard/HospitalDepartment.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.HospitalDepartment` (sıra 7) | | Yetki | `App.Hr.HospitalDepartment` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Hastane Bölümleri — hastane klinik/bölüm tanımları (acil, dahiliye, kardiyoloji…). | | Geliştirme talebi | Human Resources -> Definitions | | Kaynak | `Hr_T_HospitalDepartment` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Veri aynası | `data/App.Hr.HospitalDepartment.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Name` | Bölüm Adı | dxTextBox | ✓ | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### Evrak Türleri — `App.Hr.DocumentType` | Özellik | Değer | | --- | --- | | Wizard | `wizard/DocumentType.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.DocumentType` (sıra 8) | | Yetki | `App.Hr.DocumentType` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Evrak Türleri — personel ve süreç belgelerinin türleri (CV, dilekçe, ibraname, sağlık raporu…), gruplarıyla. | | Geliştirme talebi | Human Resources -> Definitions | | Kaynak | `Hr_T_DocumentType` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive`, `App.Listform.ListformField.IsRequired` | | Veri aynası | `data/App.Hr.DocumentType.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `GroupName` | Dosya Grubu | dxSelectBox | ✓ | ✓ | liste: Genel, Özlük Evrakları, Sağlık | | `Name` | Dosya Türü | dxTextBox | ✓ | ✓ | | | `IsRequired` | Zorunlu | dxCheckBox | ✓ | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### İzin Türleri — `App.Hr.LeaveType` | Özellik | Değer | | --- | --- | | Wizard | `wizard/LeaveType.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.LeaveType` (sıra 9) | | Yetki | `App.Hr.LeaveType` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | İzin Türleri — izin çeşitleri ve kuralları (yıllık, mazeret, ücretsiz, hastalık, doğum, babalık, evlilik, ölüm, süt izni). | | Kaynak | `Hr_T_LeaveType` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Paid`, `App.Widget.Unpaid` | | Form varsayılanları | IsPaid=true, DeductsFromAnnualLeave=false, RequiresDocument=false, AllowHalfDay=false, Gender=All, IsActive=true, BalanceExceedAction=Block | | Veri aynası | `data/App.Hr.LeaveType.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Code` | Kod | dxTextBox | ✓ | ✓ | | | `Name` | Adı | dxTextBox | ✓ | ✓ | | | `Gender` | Cinsiyet | dxSelectBox | ✓ | ✓ | liste: All, Male, Female | | `MaxDaysPerYear` | Yıllık En Fazla Gün | dxNumberBox | | ✓ | | | `IsPaid` | Ücretli | dxCheckBox | ✓ | ✓ | | | `DeductsFromAnnualLeave` | Yıllık İzinden Düşer | dxCheckBox | ✓ | ✓ | | | `RequiresDocument` | Belge Gerekir | dxCheckBox | ✓ | ✓ | | | `AllowHalfDay` | Yarım Gün Kullanılabilir | dxCheckBox | ✓ | ✓ | | | `BalanceExceedAction` | Bakiye Aşılırsa | dxRadioGroup | ✓ | ✓ | liste: Block, Warn | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### Masraf Türleri — `App.Hr.ExpenseType` | Özellik | Değer | | --- | --- | | Wizard | `wizard/ExpenseType.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.ExpenseType` (sıra 10) | | Yetki | `App.Hr.ExpenseType` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Masraf Türleri — personel masraf kalemleri (yemek, yol, konaklama, akaryakıt, telefon, temsil, kırtasiye) ve vergi/SGK özellikleri. | | Kaynak | `Hr_T_ExpenseType` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Form varsayılanları | CurrencyId=TRY, IsTaxable=false, IsSgkSubject=false, RequiresReceipt=true, IsActive=true | | Veri aynası | `data/App.Hr.ExpenseType.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Code` | Kod | dxTextBox | ✓ | ✓ | | | `Name` | Adı | dxTextBox | ✓ | ✓ | | | `DefaultAmount` | Varsayılan Tutar | dxNumberBox | | ✓ | | | `CurrencyId` | Para Birimi | dxSelectBox | | ✓ | sorgu: Sas_H_Currency | | `IsTaxable` | Gelir Vergisine Tabi | dxCheckBox | ✓ | ✓ | | | `IsSgkSubject` | SGK'ya Tabi | dxCheckBox | ✓ | ✓ | | | `RequiresReceipt` | Fiş / Belge Gerekir | dxCheckBox | ✓ | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | ### Yan Hak Türleri — `App.Hr.BenefitType` | Özellik | Değer | | --- | --- | | Wizard | `wizard/BenefitType.json` | | Yol | Liste (Wizard) | | Menü | `App.Hr.Definitions` › `App.Hr.BenefitType` (sıra 11) | | Yetki | `App.Hr.BenefitType` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Yan Hak Türleri — çalışanlara sağlanan yan haklar (yemek kartı, ulaşım, özel sağlık sigortası, BES, konut, şirket aracı, telefon, çocuk ve yakacak yardımı…). | | Kaynak | `Hr_T_BenefitType` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Form varsayılanları | CurrencyId=TRY, IsTaxable=false, IsSgkSubject=false, IsActive=true | | Veri aynası | `data/App.Hr.BenefitType.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Code` | Kod | dxTextBox | ✓ | ✓ | | | `Name` | Adı | dxTextBox | ✓ | ✓ | | | `DefaultAmount` | Varsayılan Tutar | dxNumberBox | | ✓ | | | `CurrencyId` | Para Birimi | dxSelectBox | | ✓ | sorgu: Sas_H_Currency | | `IsTaxable` | Gelir Vergisine Tabi | dxCheckBox | ✓ | ✓ | | | `IsSgkSubject` | SGK'ya Tabi | dxCheckBox | ✓ | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |