2026-10-04 15:04:16 +00:00
<!-- module - doc: claims=App.Hr.PerformanceRating -->
# İK › Performans Yönetimi (`App.Hr.Performance`)
Dönem bazlı performans süreci: İK dönemi açar, çalı şan hedeflerini ve öz değerlendirmesini yapar,
yönetici değerlendirir, isteğe bağlı 360 derece geri bildirim toplanı r, İK kalibre eder, sonuç
gelişim planı na ve çalı şanı n yetkinlik profiline yansı r. **İnsan Kaynakları menüsü İK
departmanı nı ndı r** (şartları belirler, değerlendirmeleri takip eder ve girer); çalı şan ve yönetici
kendisiyle ilgili her şeyi **Intranet › Dashboard** 'daki widget'lardan takip eder. Tamamı konfigürasyondur (Wizard + Custom
Component + SQL nesneleri); yeni entity, migration ya da React kodu yoktur.
> 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. Amaç ve kapsam
| Persona | Ne yapar | Ekran |
| --- | --- | --- |
| İK | Dönem ve yetkinlik seti tanı mlar, tüm değerlendirmeleri izler, 360 değerlendiricisi atar, kalibre eder, gelişim planları nı izler | Dönemler · Tüm Değerlendirmeler · Kalibrasyon · Gelişim Planları · Performans Dereceleri |
| Çalı şan | Hedeflerini girer, gerçekleşeni ve öz değerlendirmesini yazar, yöneticiye gönderir, gelişim aksiyonları nı n ilerlemesini günceller | Intranet panosu: **Performansı m** widget'ı → Değerlendirmelerim · Gelişim Planı m |
| Yönetici | Hedefleri onaylar, yetkinlik seviyesini ve yorumunu verir, kalibrasyona gönderir, gelişim aksiyonu planlar | Intranet panosu: **Ekibimin Performansı ** widget'ı → Ekibimin Değerlendirmeleri |
| 360 değerlendiricisi | Kendisine atanan çalı şanı n yetkinliklerini puanlar ve gönderir | Intranet panosu: **360 Taleplerim** widget'ı → 360 Taleplerim |
Kapsam: kiracı (`IsTenant`). Şube/birim kı rı lı mı yoktur.
---
## 2. Analiz ve kararlar
### 2.1 Talep
> İnsan Kaynakları › Performans Yönetimi: değerlendirme dönemi tanı mı , hedefler (KPI/OKR, ağı rlı k %,
> gerçekleşme), yetkinlik değerlendirmesi (Skill Types üzerinden), öz değerlendirme + yönetici
> değerlendirmesi, isteğe bağlı 360 derece, kalibrasyon ekranı , gelişim planı ; uygulamanı n diğer
> özellikleriyle entegre.
### 2.2 Depodan okunanlar (sorulmadı )
- Çalı şan = `AbpUsers` (`DepartmentId`, `JobPositionId` taşı r).
- Yetkinlik zinciri `Hr_T_SkillType → Hr_T_Skill → Hr_T_SkillLevel` (`Progress` 0– 100); çalı şan profili `Adm_T_UserSkill` (`Level` 1– 5).
- Kök menü `App.Hr` , izin grubu `App.Hr` , modül `Hr` ; tanı mlar `App.Hr.Definitions` altı nda.
- **Yönetici ilişkisi ne `AbpUsers` 'ta ne `Hr_T_Department` 'ta vardı r** — bu yüzden sorudur.
### 2.3 Keşif turu cevapları
| # | Soru | Seçilen | Gerekçe |
| --- | --- | --- | --- |
| 1 | Ekran yapı sı | Wizard ekranları + çalı şana ait özet (Custom Component) | Liste/form kalı bı na sı ğan her şey Wizard; özet ilk sürümde İK menüsünde "Performansı m" panosuydu, §2.4'teki kararla Intranet widget'ları na taşı ndı |
| 2 | Yönetici nereden gelir | Değerlendirme kaydı nda seçilir (`ManagerId`, `AbpUsers` lookup) | Platform tablosu şeması değişmez (çerçeve içi) |
| 3 | Genel puan formülü | Dönemde ağı rlı k tanı mlı : Genel = Hedef puanı × a + Yetkinlik puanı × b | Dönem bazı nda değiştirilebilir (varsayı lan 60/40) |
| 4 | Akı ş | Durum alanı yla, onaysı z (WorkflowDto yok) | Geçiş kuralları prosedürde |
| 5 | Yetkinlik ölçeği | `SkillLevel` + `Progress %` ; tamamlanı nca `UserSkill` 'e yazı lı r | Skill Types'ı n kendi seviyeleri kullanı lı r, profil güncel kalı r |
| 6 | Hedef gerçekleşme | Yönlü, %150 tavanlı | Artan/Azalan hedef ayrı mı , aşı m ödüllendirilir ama sı nı rlı dı r |
| 7 | 360 | Dönem bayrağı , bilgi amaçlı | Ortalama gösterilir, genel puana girmez |
| 8 | Görünürlük | Rol + kullanı cı süzmesi | İK hepsini, diğerleri kendi/ekibinin kaydı nı görür |
### 2.4 Onaylanan tariften sapmalar (üretimde verilen kararlar)
| Tarifte | Üretilen | Neden |
| --- | --- | --- |
| Gelişim planı nda Gantt | **Scheduler** (takvim) + Todo | Gantt `ParentIdExpr` ister; aksiyonlar arası nda hiyerarşi yok |
| Derece ölçeği "Performans › Tanı mlar" | **İK › Tanı mlar** (`App.Hr.Definitions`) | İK tanı mları nı n (aday kaynağı , değerlendirme kriteri…) mevcut yeri |
| Dönem ekranı nda "Değerlendirmeler" sekmesi | Yalnı z **Yetkinlik Seti** sekmesi | Widget'lı menü ekranı alt form olamaz (standing default 13); değerlendirmeler Tüm Değerlendirmeler'de döneme göre süzülür |
| Persona alt formları | Hedef/yetkinlik/gelişim için İK, çalı şan, yönetici olmak üzere **üçer ayrı menüsüz ekran** | Alan kilidi ve satı r süzmesi ekran bazı ndadı r |
| Todo kart başlı ğı | `EmployeeName` kolonu eklendi (prosedür doldurur) | Todo başlı ğı metin kolon ister (İşe Alı m'daki `CandidateName` kalı bı ) |
| Eğitim entegrasyonu | Plan eğitime katı lı mcı **yazmaz** ; çalı şan eğitime "Katı ldı " işlenmişse plan kendiliğinden tamamlanı r | `Hr_T_TrainingParticipant.AttendanceStatus` "planlandı " değeri taşı mı yor |
| "Performansı m" panosu ve persona listeleri İK › Performans Yönetimi menüsünde | Persona listeleri **menüsüz** ; özetleri Intranet › Dashboard'da üç ayrı widget (Performansı m, Ekibimin Performansı , 360 Taleplerim), widget'taki bağlantı listeyi açar | İK menüsü İK departmanı nı ndı r; çalı şan kendisiyle ilgili bilgiyi Intranet'ten takip eder (kullanı cı kararı , 2026-10-04). Widget içeriği özet + bağlantı dı r; pano kolonları dar olduğu için liste gömülmez |
### 2.5 Varsayı lan kalanlar
- Derece ölçeği (host seed'i): 1 Beklentinin Çok Altı nda 0– 50 (%5) · 2 Geliştirilmeli 50– 70 (%15) · 3 Beklenen Düzeyde 70– 90 (%60) · 4 Beklentinin Üstünde 90– 110 (%15) · 5 Olağanüstü 110+ (%5). Alt sı nı r dahil, üst sı nı r hariç.
- Ağı rlı k toplamı 100 değilse kayı t engellenmez; yalnı zca hedef belirleme aşaması ndan çı kı ş engellenir.
- Bildirim kanalları : `UiActivity` + `UiToast` .
---
## 3. Menü ve ekranlar
### 3.1 İK menüsü
`İnsan Kaynakları › Performans Yönetimi` (`App.Hr.Performance`, ikon `FcBullish` ) — yalnı z İK.
| Sı ra | Menü (TR / EN) | `ListFormCode` | Wizard dosyası | Alt formlar | Görünümler |
| --- | --- | --- | --- | --- | --- |
| 1 | Değerlendirme Dönemleri / Review Periods | `App.Hr.PerformancePeriod` | `PerformancePeriod.json` | `PerformancePeriodSkill` | Grid, Card, Pivot, Chart |
| 2 | Tüm Değerlendirmeler / All Reviews | `App.Hr.PerformanceReview` | `PerformanceReview.json` | `PerformanceGoal` , `PerformanceCompetency` , `PerformanceFeedback` (→ `PerformanceFeedbackScore` ), `ReviewDevelopmentPlan` | Grid, Card, Pivot, Chart, Todo |
| 3 | Kalibrasyon / Calibration | `App.Hr.PerformanceCalibration` | `PerformanceCalibration.json` | — | Grid, Card, Pivot, Chart |
| 4 | Gelişim Planları / Development Plans | `App.Hr.DevelopmentPlan` | `DevelopmentPlan.json` | — | Grid, Card, Pivot, Chart, Todo, Scheduler |
| — | Performans Dereceleri (İK › Tanı mlar) | `App.Hr.PerformanceRating` | `PerformanceRating.json` | — | Grid, Card, Pivot, Chart; veri `data/App.Hr.PerformanceRating.json` ile aynalı |
Widget şeritleri:
| Ekran | Kartlar |
| --- | --- |
| Dönemler | Toplam · Aktif · Kalibrasyonda · Kapanan |
| Tüm Değerlendirmeler | Toplam · Hedef/Öz Değerlendirme · Yönetici Değerlendirmesinde · Kalibrasyonda · Tamamlanan |
| Kalibrasyon | Kalibrasyonda · Tamamlanan · Ortalama Puan · Ortalama Kalibre Puan |
| Gelişim Planları | Toplam · Açı k Aksiyon · Geciken · Tamamlanan |
### 3.2 Çalı şana ait ekranlar (menüsüz)
Menüde yer almazlar; Intranet panosundaki widget'tan `/admin/list/{ListFormCode}` adresiyle açı lı rlar.
Menüsüz wizard oldukları ndan widget şeritleri yoktur (deploy menüsüz ekranı n `Widgets` 'ı nı düşürür);
özetleri panodaki widget'tadı r.
| Ekran (TR / EN) | `ListFormCode` | Wizard dosyası | Satı r süzmesi | Alt formlar | Görünümler |
| --- | --- | --- | --- | --- | --- |
| Değerlendirmelerim / My Reviews | `App.Hr.MyPerformanceReview` | `MyPerformanceReview.json` | `EmployeeId = @USERID` | `MyPerformanceGoal` , `MyPerformanceCompetency` , `MyDevelopmentPlan` | Grid, Card, Pivot, Chart, Todo |
| Ekibimin Değerlendirmeleri / Team Reviews | `App.Hr.TeamPerformanceReview` | `TeamPerformanceReview.json` | `ManagerId = @USERID` | `TeamPerformanceGoal` , `TeamPerformanceCompetency` , `TeamDevelopmentPlan` | Grid, Card, Pivot, Chart, Todo |
| 360 Taleplerim / My 360 Requests | `App.Hr.My360Feedback` | `My360Feedback.json` | `ReviewerId = @USERID` | `My360FeedbackScore` | Grid, Card, Pivot, Chart |
| Gelişim Planı m / My Development Plan | `App.Hr.MyDevelopmentPlan` | `MyDevelopmentPlan.json` | `EmployeeId = @USERID` | — (Değerlendirmelerim'in sekmesi; widget'tan tek liste olarak da açı lı r) | Grid |
### 3.3 Intranet › Dashboard widget'ları
`Sas_T_IntranetWidget` kayı tları (`data/App.DeveloperKit.IntranetWidgets.json`, `SourceType: 1` =
Custom) üç custom component'i sağ kolona (`Column: 2`) yerleştirir. Widget'ı yalnı z `PermissionName`
yetkisi olan kullanı cı alı r (sunucu süzer, `IntranetAppService.GetWidgetsAsync` ); kullanı cı panoda
yerini değiştirebilir, gizleyebilir.
| `Code` · sı ra | Bileşen | `PermissionName` | Gösterir | Açtı ğı liste |
| --- | --- | --- | --- | --- |
| `my-performance` · 70 | `MyPerformanceWidget` | `App.Hr.MyPerformanceReview` | Aktif (tamamlanmamı ş) değerlendirmenin aşaması ve hedef/yetkinlik/genel puanı ; tamamlanan sayı sı ve ortalama puanı ; `App.Hr.MyDevelopmentPlan` yetkisi varsa açı k ve geciken gelişim aksiyonu | Değerlendirmelerim, Gelişim Planı m |
| `team-performance` · 80 | `TeamPerformanceWidget` | `App.Hr.TeamPerformanceReview` | Değerlendirmemi bekleyen (`ManagerReview`), hedef/öz değerlendirmede, tamamlanan, toplam; bekleyen ilk 5 çalı şanı n adı | Ekibimin Değerlendirmeleri |
| `my-360-feedback` · 90 | `My360FeedbackWidget` | `App.Hr.My360Feedback` | Bekleyen ve gönderilen 360 talebi | 360 Taleplerim |
Bileşenler code modundadı r ve rotası zdı r (`RoutePath: null`). Veriyi ekranı n kendi sorgusundan okur
(`GET /api/app/list-form-select/select?listFormCode=…`): satı r süzmesi (`DefaultFilter`), kiracı ve
liste yetkisi ListForm'da kalı r, bileşen yalnı zca sayar — ayrı endpoint ya da SQL yoktur. Başlı klar
`App.DashboardWidget.{MyPerformance,TeamPerformance,My360Feedback}` , boş durum ve aktif değerlendirme
metinleri `App.DashboardWidget.Performance.*` ; kart etiketleri İK şeritlerindeki
`App.Hr.Performance.Widget.*` anahtarları dı r.
---
## 4. Veri modeli
Hepsi `sql/object/Hr_T_*.sql` ; kiracı + tam audit + `IsActive` , `Guid` anahtar.
```
Hr_T_PerformancePeriod ──< Hr_T_PerformancePeriodSkill > ── Hr_T_Skill
│
└──< Hr_T_PerformanceReview > ── AbpUsers (EmployeeId, ManagerId)
│ └── Hr_T_PerformanceRating (RatingId)
├──< Hr_T_PerformanceGoal
├──< Hr_T_PerformanceCompetency > ── Hr_T_Skill / Hr_T_SkillLevel × 3
├──< Hr_T_PerformanceFeedback ─ ─ < Hr_T_PerformanceFeedbackScore > ── Hr_T_SkillLevel
└──< Hr_T_DevelopmentPlan > ── Hr_T_Skill / Hr_T_Training / Hr_T_Certificate / AbpUsers (Mentor)
```
| Tablo | Önemli kolonlar | Tekillik / kural |
| --- | --- | --- |
| `Hr_T_PerformanceRating` | `Level` , `Name` , `MinScore` , `MaxScore` , `Color` , `TargetDistribution` | `(TenantId, Level)` tekil; `MinScore < MaxScore` |
| `Hr_T_PerformancePeriod` | `StartDate` , `EndDate` , `SelfReviewDueDate` , `ManagerReviewDueDate` , `GoalWeight` , `CompetencyWeight` , `Is360Enabled` , `Status` | Ağı rlı k toplamı = 100 (CHECK); `Status` ∈ Planned, Active, Calibration, Closed |
| `Hr_T_PerformancePeriodSkill` | `PeriodId` , `SkillId` , `ExpectedLevelId` | `(PeriodId, SkillId)` tekil |
| `Hr_T_PerformanceReview` | `PeriodId` , `EmployeeId` , `EmployeeName` , `ManagerId` , `DepartmentId` , `JobPositionId` , `Status` , `LastStatus` , `GoalScore` , `CompetencyScore` , `Feedback360Score` , `OverallScore` , `CalibratedScore` , `RatingId` , yorumlar, gönderim tarihleri | `(PeriodId, EmployeeId)` tekil; `Status` ∈ GoalSetting, SelfReview, ManagerReview, Calibration, Completed; `CalibratedScore` 0– 150 |
| `Hr_T_PerformanceGoal` | `GoalType` (KPI/OKR), `Title` , `Direction` (Increasing/Decreasing), `Unit` , `TargetValue` , `ActualValue` , `Weight` , `AchievementRate` | `TargetValue > 0` , `0 < Weight ≤ 100` |
| `Hr_T_PerformanceCompetency` | `SkillId` , `ExpectedLevelId` , `SelfLevelId` , `ManagerLevelId` , `Score` | `(ReviewId, SkillId)` tekil |
| `Hr_T_PerformanceFeedback` | `ReviewerId` , `Relation` (Peer/Subordinate/Superior/InternalCustomer), `Status` (Pending/Submitted), `Score` , `Comment` , `SubmittedDate` | `(ReviewId, ReviewerId)` tekil |
| `Hr_T_PerformanceFeedbackScore` | `FeedbackId` , `SkillId` , `LevelId` , `Comment` | `(FeedbackId, SkillId)` tekil |
| `Hr_T_DevelopmentPlan` | `EmployeeId` , `ReviewId` , `SkillId` , `Title` , `ActionType` , `TrainingId` , `CertificateId` , `MentorId` , `StartDate` , `DueDate` , `Status` , `Progress` | `ActionType` ∈ Training, Mentoring, Project, Reading, Certificate, Other; `Status` ∈ Planned, InProgress, Completed, Cancelled; `Progress` 0– 100 |
Seviye listeleri (`ExpectedLevelId`, `SelfLevelId` , `ManagerLevelId` , `LevelId` ) seçilen yetkinliğin
`SkillTypeId` 'sine göre süzülür (lookup cascade `SkillId` → `@param0` ).
---
## 5. İş kuralları ve hesaplar
### 5.1 Formüller (`Hr_S_PerformanceReviewRecalc`)
| Değer | Formül |
| --- | --- |
| Hedef gerçekleşme % | Artan: `Gerçekleşen / Hedef × 100` · Azalan: `Hedef / Gerçekleşen × 100` (gerçekleşen ≤ 0 ise 150) · sonuç **0– 150** aralı ğı na kı rpı lı r · gerçekleşen boşsa boş |
| Hedef puanı | `Σ(Gerçekleşme% × Ağı rlı k) / 100` (gerçekleşmesi boş hedef 0 sayı lı r; hedef yoksa boş) |
| Yetkinlik satı r puanı | Yönetici seviyesinin `Hr_T_SkillLevel.Progress` değeri |
| Yetkinlik puanı | Puanı dolu yetkinlik satı rları nı n ortalaması |
| 360 satı r puanı | Değerlendiricinin verdiği seviyelerin `Progress` ortalaması |
| 360 ortalaması | `Status = Submitted` geri bildirimlerin ortalaması — **genel puana girmez** |
| Genel puan | `(Hedef puanı × GoalWeight + Yetkinlik puanı × CompetencyWeight) / 100` (eksik bileşen 0; ikisi de boşsa boş) |
| Derece | `COALESCE(KalibrePuan, GenelPuan)` değerinin düştüğü aralı k (`MinScore ≤ x < MaxScore `, aynı kiracı nı n aktif dereceleri ) |
Formda gerçekleşme % anlı k önizlenir (`ActualValue`/`TargetValue`/`Direction` alanları nı n
`EditorScript` 'i); kalı cı değer her kayı tta prosedürle yeniden hesaplanı r. Dönemde ağı rlı k
alanları ndan biri değişince diğeri `100 - x` olur (`EditorScript`).
### 5.2 Durum akı şı (`Hr_S_PerformanceReviewAfterSave`)
```
GoalSetting ──(Yönetici)──▶ SelfReview ──(Çalı şan)──▶ ManagerReview ──(Yönetici)──▶ Calibration ──(İK)──▶ Completed
▲ ◀──(Yönetici iade)──┘ ◀──(Yönetici iade)──┘
```
| Aktör (ekran) | İzinli geçişler |
| --- | --- |
| İK (Tüm Değerlendirmeler, Kalibrasyon) | Her geçiş |
| Çalı şan (Değerlendirmelerim) | SelfReview → ManagerReview |
| Yönetici (Ekibimin Değerlendirmeleri) | GoalSetting → SelfReview · SelfReview → GoalSetting · ManagerReview → SelfReview · ManagerReview → Calibration |
- **GoalSetting'ten çı kı ş** için en az bir hedef olmalı ve ağı rlı k toplamı tam **100** olmalı dı r (her aktör için).
- İzinsiz geçiş hata vermez, **kayı t sonrası durum `LastStatus`'a geri alı nı r** (kayı t yenilenince eski aşama görünür).
- Geçiş damgaları : → ManagerReview `SelfSubmittedDate` , → Calibration `ManagerSubmittedDate` , → Completed `CompletedDate` .
- → **Completed** : yönetici seviyeleri `Adm_T_UserSkill` 'e yazı lı r (`Level = ⌈Progress / 20⌉`, 1– 5; var olan kayı t güncellenir, `Note = "Performans: {Dönem}"` ).
- Her kayı tta: `EmployeeName` /`DepartmentId`/`JobPositionId` çalı şandan tamamlanı r, dönemin eksik yetkinlikleri eklenir, puanlar yeniden hesaplanı r.
- Todo panosunda kartı sürüklemek de aynı kuraldan geçer.
### 5.3 Satı r ve aşama güvenliği (`Hr_S_PerformanceGuard`, before-command)
Persona ekranları satı rı `DefaultFilter` ile süzer; kayı t uçları satı rı yalnı zca `Id` ile
güncellediği için aynı kural yazma tarafı nda prosedürle uygulanı r. Kural dı şı istek
`THROW 51000– 51005` ile reddedilir.
| Aktör | Sahiplik | Değerlendirme kaydı | Hedef / Yetkinlik | Gelişim planı | 360 |
| --- | --- | --- | --- | --- | --- |
| Çalı şan | `EmployeeId = kullanı cı ` | GoalSetting, SelfReview | GoalSetting, SelfReview | Her aşama (yalnı z ilerleme/not) | — |
| Yönetici | `ManagerId = kullanı cı ` | GoalSetting, SelfReview, ManagerReview | aynı | Her aşama | — |
| Değerlendirici | `Feedback.ReviewerId = kullanı cı ` | — | — | — | GoalSetting → ManagerReview arası |
| İK | — | Serbest | Serbest | Serbest | Serbest |
Dönem `Closed` ise İK dı şı ndaki her yazma reddedilir. "Gelişim Planı m" guard prosedüründen değil,
yalnı zca satı rı n `EmployeeId` 'sini denetleyen komuttan geçer (`THROW 51020`); aksiyon dönemden
bağı msı z olabildiği için kapalı dönemde de ilerleme güncellenebilir.
**Alan kilidi:** persona ekranı nda çalı şanı n/yöneticinin değiştirmemesi gereken alanlar salt
okunur çizilir **ve** yazma yetkisi İK ekranı nı n `.Create` /`.Update` yetkisine bağlanı r;
sunucu, kullanı cı nı n yetkisi olmayan alanı güncelleme isteğinden düşürür (`ListFormFieldManager.CanUpdate`).
| Ekran | Düzenlenebilir alanlar |
| --- | --- |
| Değerlendirmelerim | `Status` , `SelfComment` |
| Hedeflerim | Yönetici yorumu ve gerçekleşme % dı şı nda hepsi |
| Yetkinliklerim | `SelfLevelId` , `SelfComment` (ekleme/silme yok) |
| Gelişim Planı m | `Status` , `Progress` , `EmployeeNote` (ekleme/silme yok) |
| Ekibimin Değerlendirmeleri | `Status` , `ManagerComment` |
| Ekip Hedefleri | Öz yorum ve gerçekleşme % dı şı nda hepsi |
| Ekip Yetkinlikleri | Öz seviye ve öz yorum dı şı nda hepsi (ekleme/silme var) |
| Ekip Gelişim Planı | Çalı şan notu dı şı nda hepsi |
| 360 Taleplerim | `Status` , `Comment` ; puan satı rları nda `LevelId` , `Comment` |
| Kalibrasyon | `Status` , `CalibratedScore` , `CalibrationNote` |
### 5.4 Kancalar
| Ekran | Komut | Ne çalı şı r |
| --- | --- | --- |
| Dönemler | Insert/UpdateAfter | `Hr_S_PerformancePeriodActivate` — dönem **Active** ise kiracı nı n aktif her kullanı cı sı na değerlendirme açar (var olana dokunmaz), dönemin yetkinlik setini eksik değerlendirmelere kopyalar, yeni açı lanlara bildirim gönderir |
| Yetkinlik Seti | Insert/UpdateAfter | Aynı prosedür (sonradan eklenen yetkinlik açı k değerlendirmelere eklenir) |
| Değerlendirme ekranları | InsertAfter / UpdateAfter | `Hr_S_PerformanceReviewAfterSave @rid, @kullanı cı , N'Hr' \| 'Employee' \| 'Manager'` |
| Persona ekranları | Insert/Update/DeleteBefore | `Hr_S_PerformanceGuard` |
| Hedef / Yetkinlik / 360 ekranları | After | `Hr_S_PerformanceReviewRecalc` |
| 360 (İK) | InsertBefore | Dönemde 360 kapalı ysa ya da değerlendirici çalı şanı n kendisiyse reddeder |
| 360 (İK) | InsertAfter | `Hr_S_PerformanceFeedbackOpen` — değerlendirmenin yetkinlikleri için puan satı rları nı açar, değerlendiriciye bildirim gönderir |
| 360 ekranları | UpdateAfter | `Status = Submitted` iken `SubmittedDate` damgalanı r, puan yeniden hesaplanı r |
| Gelişim planı ekranları | Insert/UpdateAfter | `Hr_S_DevelopmentPlanSync` — eğitime "Katı ldı " işlenen ya da `Completed` aksiyonu %100 ve Tamamlandı yapar |
Güncelleme komutunda `@Id` bir dizidir (`IN @Id ` ile açı lı r); aktör ` UpdateFieldsDefaultValue`
ile yazı lan `@LastModifierId` 'den okunur. Ekleme komutunda `@Id` tekildir, aktör `@CreatorId` 'dir.
---
## 6. Yetki ve görünürlük
İzin grubu `App.Hr` , modül `Sas|Hr` . Her ekranı n kök yetkisi + `.Create/.Update/.Delete/.Export/.Import/.Note`
Menüsüz alt formları n yetkisi ana ekranı n altı ndadı r; menüsüz persona ekranları nı n
(Değerlendirmelerim, Ekibimin Değerlendirmeleri, 360 Taleplerim) yetkisi menü dalı olmadı ğı ndan
`App.Hr` grubunun kökündedir (deploy menüsüz ekranı böyle yazar).
**Hiçbir yetki role otomatik atanmaz** — rol ekranı ndan verilir.
Önerilen dağı tı m:
| Rol | Verilecek yetkiler |
| --- | --- |
| Tüm çalı şanlar | `App.Hr.MyPerformanceReview` (+ `.Update` ), `App.Hr.MyPerformanceGoal` (+ `.Create/.Update/.Delete` ), `App.Hr.MyPerformanceCompetency` (+ `.Update` ), `App.Hr.MyDevelopmentPlan` (+ `.Update` ), `App.Hr.My360Feedback` (+ `.Update` ), `App.Hr.My360FeedbackScore` (+ `.Update` ) |
| Yöneticiler | Yukarı dakiler + `App.Hr.TeamPerformanceReview` (+ `.Update` ), `App.Hr.TeamPerformanceGoal` , `App.Hr.TeamPerformanceCompetency` , `App.Hr.TeamDevelopmentPlan` (+ `.Create/.Update/.Delete` ) |
| İK | `App.Hr.Performance` dalı nı n tamamı + `App.Hr.PerformanceRating` |
Persona ekranları ndaki kilitli alanlar İK ekranı nı n yetkisine bağlı olduğundan, çalı şan/yönetici
rolüne **İK ekranları nı n `.Update`/`.Create` yetkisi verilmez** ; verilirse persona ekranları nda
kilitli alanlar o kullanı cı için yazı labilir hâle gelir.
Intranet widget'ı listenin okuma yetkisiyle görünür: Performansı m `App.Hr.MyPerformanceReview` ,
Ekibimin Performansı `App.Hr.TeamPerformanceReview` , 360 Taleplerim `App.Hr.My360Feedback` . Ayrı
widget yetkisi yoktur — listeyi açamayan kullanı cı ya özet de gösterilmez.
---
## 7. Entegrasyonlar
| Kaynak | Kullanı m |
| --- | --- |
| `AbpUsers` | Çalı şan, yönetici, değerlendirici, mentor; departman/pozisyon kopyası |
2026-10-04 21:18:13 +00:00
| Kullanı cı detayı › Performans | Değerlendirmeler ve Gelişim Planları ekranları çalı şana süzülmüş açı lı r (`HrPersonnel.md`) |
2026-10-04 15:04:16 +00:00
| `Hr_T_Department` , `Hr_T_JobPosition` | Değerlendirmenin organizasyon kı rı lı mı (Pivot/Chart) |
| `Hr_T_SkillType` / `Hr_T_Skill` / `Hr_T_SkillLevel` | Dönem yetkinlik seti, beklenen/öz/yönetici/360 seviyeleri, puan (`Progress`) |
| `Adm_T_UserSkill` | Tamamlanan değerlendirmenin yönetici seviyeleri kullanı cı profiline yazı lı r |
| `Hr_T_Training` / `Hr_T_TrainingParticipant` | Gelişim aksiyonu bir eğitime bağlanı r; katı lı m "Katı ldı " ise aksiyon tamamlanı r |
| `Hr_T_Certificate` | Sertifika aksiyonları |
| Bildirimler | Tipler `PerformansDurumDegisti` , `Performans360Talebi` ; kurallar `Custom` + `UiActivity` /`UiToast` (yalnı z kanalı belirler). Metinler `App.Hr.Performance.Notification.{Status,Feedback}.{Subject,Message}` (TR), yer tutucular `[Employee]` , `[Period]` , `[Status]` . Yazan: `Hr_S_PerformanceNotify` |
Bildirim alı cı ları : → GoalSetting / SelfReview / Completed çalı şana; → ManagerReview / Completed
yöneticiye; dönem aktivasyonunda yeni açı lan her değerlendirmenin çalı şanı na; 360 eklenince
değerlendiriciye.
---
## 8. Akı ş örneği
1. İK **Yetkinlik Seti** 'ni hazı rlar (ör. İletişim → beklenen B2), **Dönemler** 'de "2026 Yı l Sonu"nu
60/40 ağı rlı k ve 360 açı k olarak girer, durumu **Aktif** yapar → tüm aktif çalı şanlara
değerlendirme açı lı r, yetkinlikler kopyalanı r, çalı şanlar bildirim alı r.
2. İK **Tüm Değerlendirmeler** 'de her kaydı n **Yönetici** 'sini seçer.
3. Çalı şan Intranet panosundaki **Performansı m** widget'ı ndan **Değerlendirmelerim** 'i açar,
**Hedeflerim** 'de hedeflerini girer (ağı rlı k toplamı 100).
4. Yönetici **Ekibimin Performansı ** widget'ı ndan **Ekibimin Değerlendirmeleri** 'ni açar, hedefleri gözden geçirir, durumu **Öz Değerlendirme**
yapar → çalı şan bildirim alı r.
5. Çalı şan gerçekleşenleri, öz seviyelerini ve yorumunu girer, durumu **Yönetici Değerlendirmesi**
yapar → yönetici bildirim alı r.
6. İK 360 sekmesinde değerlendirici ekler → değerlendiriciler panodaki **360 Taleplerim** widget'ı ndan talebi açı p puanlayı p gönderir.
7. Yönetici seviyeleri ve yorumu girer, gelişim aksiyonu planlar (ör. "İleri Excel" eğitimi),
durumu **Kalibrasyon** yapar.
8. İK **Kalibrasyon** 'da dağı lı mı (Chart/Pivot, derece × departman) hedef dağı lı mla karşı laştı rı r,
gerekenlerin **Kalibre Puan**ı nı girer, durumu **Tamamlandı ** yapar → derece kesinleşir,
yetkinlikler `UserSkill` 'e yazı lı r, çalı şan ve yönetici bildirim alı r.
9. Çalı şan eğitime "Katı ldı " işlendiğinde gelişim aksiyonu bir sonraki kayı tta kendiliğinden tamamlanı r.
---
## 9. Sı k sorulanlar
**Durumu değiştirdim ama kayı t eski aşamaya döndü.** O geçiş sizin rolünüze açı k değil (§5.2) ya da
hedef belirlemeden çı karken ağı rlı k toplamı 100 değil. Geçersiz geçiş hata vermez, geri alı nı r.
**"Değerlendirme bu aşamada bu işlem için açı k değil" hatası .** Guard tablosu (§5.3): çalı şan
yönetici değerlendirmesi başladı ktan sonra hedef/yetkinlik değiştiremez; kalibrasyon ve sonrası
yalnı z İK'dadı r; dönem kapalı ysa yalnı z İK yazar.
**Genel puan neden hedef puanı ndan düşük/yüksek?** Genel = (Hedef × GoalWeight + Yetkinlik ×
CompetencyWeight) / 100. Yetkinlik puanı yalnı zca yönetici seviyesinden gelir; öz seviye ve 360
puana girmez.
**Gerçekleşme %150'de kalı yor.** Tavan bilinçlidir (§2.3, karar 6).
**Derece boş.** Kiracı da derece ölçeği tanı mlı değil. Host seed'i (`data/App.Hr.PerformanceRating.json`)
host içindir; her kiracı İK › Tanı mlar › Performans Dereceleri'ni kendisi girer.
**Teknik yetkinlikte seviye listesi boş.** Seed'de "Technical Skills" tipine seviye tanı mlı değildir
(`HrOrganization.md` §9). İK › Tanı mlamalar › Yetenek Tipleri › Teknik Yetenekler › Seviyeler'e
`Progress` değerli seviyeler eklenmeden bu yetkinlikler puanlanamaz.
**Yöneticiyi kim belirliyor?** İK, değerlendirme kaydı ndaki `ManagerId` alanı ndan. Platformda
kullanı cı /departman üzerinde yönetici ilişkisi yoktur (§2.2).
**Yeni işe giren çalı şana değerlendirme nası l açı lı r?** Aktif dönem kaydı nı yeniden kaydetmek
eksik değerlendirmeleri açar; ya da İK Tüm Değerlendirmeler'den elle ekler.
**360 puanı neden genel puanda yok?** Karar 7: bilgi amaçlı dı r; `Feedback360Score` olarak gösterilir.
**Bildirim gelmiyor.** Kiracı da `PerformansDurumDegisti` / `Performans360Talebi` tipi ve `Custom`
kuralları olmalı ; yeni kiracı ya host seed'inden kopyalanı r, mevcut kiracı da Administration ›
Bildirimler'den eklenir.
**Değerlendirmelerim / Ekibimin Değerlendirmeleri menüde yok.** Bilinçli: İK menüsü İK içindir (§2.4).
Çalı şan ve yönetici Intranet › Dashboard'daki widget'tan açar. Widget görünmüyorsa rolüne liste
yetkisi verilmemiştir (§6) ya da kullanı cı widget'ı panoda gizlemiştir (tasarı m modundan geri açı lı r).
**Çalı şan kendi gelişim aksiyonunu ekleyemiyor.** "Gelişim Planı m" ekleme kapalı dı r; aksiyonu
yönetici (Ekip Gelişim Planı ) ya da İK açar.
---
## 10. Dosyalar ve geri alma
| Dosya | İçerik |
| --- | --- |
2026-10-05 12:58:59 +00:00
| `configs/seeds/sql/object/Hr_T_Performance{Rating,Period,PeriodSkill,Review,Goal,Competency,Feedback,FeedbackScore}.sql` , `Hr_T_DevelopmentPlan.sql` | Tablolar, CHECK ve tekil indeksler |
| `configs/seeds/sql/object/Hr_S_Performance{Notify,ReviewRecalc,PeriodActivate,Guard,ReviewAfterSave,FeedbackOpen}.sql` , `Hr_S_DevelopmentPlanSync.sql` | Prosedürler |
| `configs/seeds/wizard/{PerformanceRating,PerformancePeriodSkill,PerformancePeriod,PerformanceGoal,PerformanceCompetency,PerformanceFeedbackScore,PerformanceFeedback,ReviewDevelopmentPlan,PerformanceReview,MyPerformanceGoal,MyPerformanceCompetency,MyDevelopmentPlan,MyPerformanceReview,TeamPerformanceGoal,TeamPerformanceCompetency,TeamDevelopmentPlan,TeamPerformanceReview,My360FeedbackScore,My360Feedback,PerformanceCalibration,DevelopmentPlan}.json` | 21 wizard (List) |
| `configs/seeds/data/App.DeveloperKit.CustomComponents/{b2d9fa60-b052-5039-a0fc-146f4e5b2e8c,98a5c0b9-c8d6-5e83-ae76-d9ccb5b70cba,d669129d-52fe-56e1-972d-d20fe1b3360e}.json` | `MyPerformanceWidget` , `TeamPerformanceWidget` , `My360FeedbackWidget` (code modu, rotası z) |
| `configs/seeds/data/App.DeveloperKit.IntranetWidgets.json` | `my-performance` , `team-performance` , `my-360-feedback` pano kayı tları |
| `configs/seeds/data/App.Hr.PerformanceRating.json` | 5 kademeli derece ölçeği |
| `configs/seeds/data/App.Menus.Menu.json` , `Abp.Identity.Permissions.json` , `App.Languages.LanguageText.json` | Menü, yetki, dil satı rları (wizard'lara ait) |
| `configs/seeds/data/App.Notifications.Notification{Types,Rules}.json` | 2 tip, 4 kural |
2026-10-04 15:04:16 +00:00
| `ui/safelist.txt` | Widget bileşenlerinin Tailwind sı nı fları (`twSafelistGenerator` derlemede yeniler) |
Kurulum: DB Migrate (tablolar/prosedürler `sql/object` , ekranlar `WizardDataSeeder` , satı rlar
`ListFormSeedDataApplier` ). Ardı ndan rollere yetki verilir (§6).
Geri alma: Wizard Manager'dan talebin wizard'ları silinir (alt formlar önce); tabloyu düşürmek
yalnı zca onayda seçilirse olur. Widget bileşenleri ve pano kayı tları , bildirim tip/kural satı rları , derece seed'i ve
`Hr_S_*` prosedürleri elle kaldı rı lı r. `Adm_T_UserSkill` 'e yazı lmı ş seviyeler kullanı cı verisidir,
geri alı nmaz.
<!-- module - doc:auto:begin -->
## Ek — Ekran envanteri (otomatik)
> Wizard dosyaları ndan üretilir; deploy, silme, tasarı mcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.
### Değerlendirme Dönemleri — `App.Hr.PerformancePeriod`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformancePeriod.json` |
| Yol | Liste (Wizard) |
| Menü | `App.Hr.Performance` › `App.Hr.PerformancePeriod` (sı ra 1) |
| Yetki | `App.Hr.PerformancePeriod` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Değerlendirme Dönemleri — performans değerlendirmesinin yapı ldı ğı dönem (ör. 2026 Yı l Sonu), puan ağı rlı kları ve 360 derece ayarı . |
| Kaynak | `Hr_T_PerformancePeriod` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.PerformancePeriodSkill` (Id → PeriodId) |
| Widget'lar | `App.Widget.Total` , `App.Hr.Performance.Widget.ActivePeriod` , `App.Hr.Performance.Widget.Calibration` , `App.Hr.Performance.Widget.ClosedPeriod` |
| Komutlar | InsertAfter: `Hr_S_PerformancePeriodActivate` · UpdateAfter: `Hr_S_PerformancePeriodActivate` |
| Form varsayı lanları | Status=Planned, GoalWeight=60, CompetencyWeight=40, Is360Enabled=false, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `Name` | Ad | dxTextBox | ✓ | ✓ | |
| `Status` | Durum | dxRadioGroup | ✓ | ✓ | liste: Planned, Active, Calibration, Closed |
| `StartDate` | Başlangı ç Tarihi | dxDateBox | ✓ | ✓ | |
| `EndDate` | Bitiş Tarihi | dxDateBox | ✓ | ✓ | |
| `SelfReviewDueDate` | Öz Değerlendirme Son Tarihi | dxDateBox | | ✓ | |
| `ManagerReviewDueDate` | Yönetici Değerlendirmesi Son Tarihi | dxDateBox | | ✓ | |
| `GoalWeight` | Hedef Ağı rlı ğı % | dxNumberBox | ✓ | ✓ | script |
| `CompetencyWeight` | Yetkinlik Ağı rlı ğı % | dxNumberBox | ✓ | ✓ | script |
| `Is360Enabled` | 360 Derece Açı k | dxCheckBox | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
2026-10-04 19:17:16 +00:00
| `Description` | Açı klama | dxTextBox | | ✓ | |
2026-10-04 15:04:16 +00:00
### Tüm Değerlendirmeler — `App.Hr.PerformanceReview`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceReview.json` |
| Yol | Liste (Wizard) |
| Menü | `App.Hr.Performance` › `App.Hr.PerformanceReview` (sı ra 2) |
| Yetki | `App.Hr.PerformanceReview` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Tüm Değerlendirmeler — bütün dönemlerin bütün çalı şan değerlendirmeleri; İK süreci uçtan uca buradan izler ve yönetir. |
| Kaynak | `Hr_T_PerformanceReview` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart, Todo (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.PerformanceGoal` (Id → ReviewId), `App.Hr.PerformanceCompetency` (Id → ReviewId), `App.Hr.PerformanceFeedback` (Id → ReviewId), `App.Hr.ReviewDevelopmentPlan` (Id → ReviewId, EmployeeId → EmployeeId) |
| Widget'lar | `App.Widget.Total` , `App.Hr.Performance.Widget.InGoalOrSelf` , `App.Hr.Performance.Widget.ManagerReview` , `App.Hr.Performance.Widget.Calibration` , `App.Hr.Performance.Widget.Completed` |
| Todo | başlı k `EmployeeName` , durum `Status` (GoalSetting,SelfReview,ManagerReview,Calibration,Completed) |
| Komutlar | InsertAfter: `Hr_S_PerformanceReviewAfterSave` · UpdateAfter: `Hr_S_PerformanceReviewAfterSave` |
| Form varsayı lanları | Status=GoalSetting, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `PeriodId` | Dönem | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_PerformancePeriod |
| `EmployeeId` | Çalı şan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `EmployeeName` | Çalı şan Adı | dxTextBox | | | |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: GoalSetting, SelfReview, ManagerReview, Calibration, Completed |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `GoalScore` | Hedef Puanı | dxNumberBox | | ✓ | |
| `CompetencyScore` | Yetkinlik Puanı | dxNumberBox | | ✓ | |
| `Feedback360Score` | 360 Ortalaması | dxNumberBox | | ✓ | |
| `OverallScore` | Genel Puan | dxNumberBox | | ✓ | |
| `CalibratedScore` | Kalibre Puan | dxNumberBox | | ✓ | |
| `RatingId` | Derece | dxSelectBox | | ✓ | sorgu: Hr_T_PerformanceRating |
| `SelfComment` | Öz Değerlendirme Yorumu | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `CalibrationNote` | Kalibrasyon Notu | dxTextArea | | ✓ | |
| `SelfSubmittedDate` | Öz Değerlendirme Gönderimi | dxDateBox | | ✓ | |
| `ManagerSubmittedDate` | Yönetici Değerlendirmesi Gönderimi | dxDateBox | | ✓ | |
| `CompletedDate` | Tamamlanma | dxDateBox | | ✓ | |
### Kalibrasyon — `App.Hr.PerformanceCalibration`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceCalibration.json` |
| Yol | Liste (Wizard) |
| Menü | `App.Hr.Performance` › `App.Hr.PerformanceCalibration` (sı ra 3) |
| Yetki | `App.Hr.PerformanceCalibration` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Kalibrasyon — yöneticilerin gönderdiği değerlendirmelerin İK tarafı ndan birlikte gözden geçirilip puanları n dengelenmesi. |
| Kaynak | `Hr_T_PerformanceReview` · filtre `"IsDeleted" = 'false' AND "Status" IN ('Calibration', 'Completed')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Hr.Performance.Widget.Calibration` , `App.Hr.Performance.Widget.Completed` , `App.Hr.Performance.Widget.AverageScore` , `App.Hr.Performance.Widget.AverageCalibrated` |
| Komutlar | UpdateAfter: `Hr_S_PerformanceReviewAfterSave` |
| Form varsayı lanları | Status=GoalSetting, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `PeriodId` | Dönem | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_PerformancePeriod |
| `EmployeeId` | Çalı şan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `EmployeeName` | Çalı şan Adı | dxTextBox | | | |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: GoalSetting, SelfReview, ManagerReview, Calibration, Completed |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `GoalScore` | Hedef Puanı | dxNumberBox | | ✓ | |
| `CompetencyScore` | Yetkinlik Puanı | dxNumberBox | | ✓ | |
| `Feedback360Score` | 360 Ortalaması | dxNumberBox | | ✓ | |
| `OverallScore` | Genel Puan | dxNumberBox | | ✓ | |
| `CalibratedScore` | Kalibre Puan | dxNumberBox | | ✓ | |
| `RatingId` | Derece | dxSelectBox | | ✓ | sorgu: Hr_T_PerformanceRating |
| `SelfComment` | Öz Değerlendirme Yorumu | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `CalibrationNote` | Kalibrasyon Notu | dxTextArea | | ✓ | |
| `SelfSubmittedDate` | Öz Değerlendirme Gönderimi | dxDateBox | | ✓ | |
| `ManagerSubmittedDate` | Yönetici Değerlendirmesi Gönderimi | dxDateBox | | ✓ | |
| `CompletedDate` | Tamamlanma | dxDateBox | | ✓ | |
### Gelişim Planları — `App.Hr.DevelopmentPlan`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/DevelopmentPlan.json` |
| Yol | Liste (Wizard) |
| Menü | `App.Hr.Performance` › `App.Hr.DevelopmentPlan` (sı ra 4) |
| Yetki | `App.Hr.DevelopmentPlan` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Gelişim Planları — bütün çalı şanları n gelişim aksiyonları ; yetkinlik, eğitim ve sertifikalarla bağlantı lı . |
| Kaynak | `Hr_T_DevelopmentPlan` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart, Scheduler, Todo (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total` , `App.Hr.Performance.Widget.Open` , `App.Hr.Performance.Widget.Overdue` , `App.Hr.Performance.Widget.Completed` |
| Todo | başlı k `Title` , durum `Status` (Planned,InProgress,Completed,Cancelled) |
| Komutlar | InsertAfter: `Hr_S_DevelopmentPlanSync` · UpdateAfter: `Hr_S_DevelopmentPlanSync` |
| Form varsayı lanları | ActionType=Training, Status=Planned, Progress=0, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `EmployeeId` | Çalı şan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers |
| `ReviewId` | Değerlendirme | dxSelectBox | | ✓ | sorgu: Hr_T_PerformanceReview |
| `Title` | Aksiyon | dxTextBox | ✓ | ✓ | |
| `ActionType` | Aksiyon Türü | dxSelectBox | ✓ | ✓ | liste: Training, Mentoring, Project, Reading, Certificate, Other |
| `SkillId` | Yetkinlik | dxSelectBox | | ✓ | sorgu: Hr_T_Skill |
| `TrainingId` | Eğitim | dxSelectBox | | ✓ | sorgu: Hr_T_Training |
| `CertificateId` | Sertifika | dxSelectBox | | ✓ | sorgu: Hr_T_Certificate |
| `MentorId` | Mentor | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `StartDate` | Başlangı ç Tarihi | dxDateBox | | ✓ | |
| `DueDate` | Bitiş Tarihi | dxDateBox | | ✓ | |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: Planned, InProgress, Completed, Cancelled |
| `Progress` | İlerleme % | dxNumberBox | | ✓ | |
| `EmployeeNote` | Çalı şan Notu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Performans Dereceleri — `App.Hr.PerformanceRating`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceRating.json` |
| Yol | Liste (Wizard) |
| Menü | `App.Hr.Definitions` › `App.Hr.PerformanceRating` (sı ra 16) |
| Yetki | `App.Hr.PerformanceRating` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Performans Dereceleri — genel performans puanı nı n hangi dereceye karşı lı k geldiğini ve kalibrasyonda hedeflenen dağı lı mı tanı mlayan ölçek. |
| Kaynak | `Hr_T_PerformanceRating` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Form varsayı lanları | IsActive=true |
| Veri aynası | `data/App.Hr.PerformanceRating.json` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `Level` | Seviye | dxNumberBox | ✓ | ✓ | |
| `Name` | Ad | dxTextBox | ✓ | ✓ | |
| `MinScore` | Alt Puan | dxNumberBox | ✓ | ✓ | |
| `MaxScore` | Üst Puan (hariç) | dxNumberBox | ✓ | ✓ | |
| `TargetDistribution` | Hedef Dağı lı m % | dxNumberBox | | ✓ | |
| `Color` | Renk | dxColorBox | | ✓ | |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Yetkinlik Seti — `App.Hr.PerformancePeriodSkill`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformancePeriodSkill.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.PerformancePeriodSkill` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Yetkinlik Seti — dönemde her çalı şanı n değerlendirileceği yetkinlikler ve beklenen seviyeleri. |
| Kaynak | `Hr_T_PerformancePeriodSkill` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertAfter: `Hr_S_PerformancePeriodActivate` · UpdateAfter: `Hr_S_PerformancePeriodActivate` |
| Form varsayı lanları | IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `PeriodId` | Dönem | dxTextBox | | | |
| `SkillId` | Yetkinlik | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Skill |
| `ExpectedLevelId` | Beklenen Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Hedefler — `App.Hr.PerformanceGoal`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceGoal.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.PerformanceGoal` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Hedefler — değerlendirmenin ağı rlı klı KPI / OKR hedefleri ve gerçekleşmeleri (İK görünümü). |
| Kaynak | `Hr_T_PerformanceGoal` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertAfter: `Hr_S_PerformanceReviewRecalc` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | GoalType=KPI, Direction=Increasing, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `GoalType` | Tür | dxRadioGroup | ✓ | ✓ | liste: KPI, OKR |
| `Title` | Hedef | dxTextBox | ✓ | ✓ | |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `Direction` | Yön | dxSelectBox | ✓ | ✓ | liste: Increasing, Decreasing · script |
| `Unit` | Birim | dxTextBox | | ✓ | |
| `TargetValue` | Hedef Değer | dxNumberBox | ✓ | ✓ | script |
| `Weight` | Ağı rlı k % | dxNumberBox | ✓ | ✓ | |
| `ActualValue` | Gerçekleşen | dxNumberBox | | ✓ | script |
| `AchievementRate` | Gerçekleşme % | dxNumberBox | | ✓ | |
| `SelfComment` | Öz Yorum | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Yetkinlikler — `App.Hr.PerformanceCompetency`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceCompetency.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.PerformanceCompetency` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Yetkinlikler — değerlendirmede yetkinliklerin beklenen, öz ve yönetici seviyeleri (İK görünümü). |
| Kaynak | `Hr_T_PerformanceCompetency` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertAfter: `Hr_S_PerformanceReviewRecalc` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `SkillId` | Yetkinlik | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Skill |
| `ExpectedLevelId` | Beklenen Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `SelfLevelId` | Öz Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `ManagerLevelId` | Yönetici Seviyesi | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `Score` | Puan | dxNumberBox | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `SelfComment` | Öz Yorum | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
### 360 Puanları — `App.Hr.PerformanceFeedbackScore`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceFeedbackScore.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.PerformanceFeedbackScore` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | 360 Puanları — 360 derece değerlendiricisinin yetkinlik bazı nda verdiği seviyeler (İK görünümü). |
| Kaynak | `Hr_T_PerformanceFeedbackScore` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertAfter: `Hr_S_PerformanceReviewRecalc` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `FeedbackId` | Geri Bildirim | dxTextBox | | | |
| `SkillId` | Yetkinlik | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Skill |
| `LevelId` | Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `Comment` | Yorum | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### 360 Derece — `App.Hr.PerformanceFeedback`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/PerformanceFeedback.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.PerformanceFeedback` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | 360 Derece — değerlendirmeye atanan 360 derece değerlendiriciler (akran, ast, üst, iç müşteri). |
| Kaynak | `Hr_T_PerformanceFeedback` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.PerformanceFeedbackScore` (Id → FeedbackId) |
| Komutlar | InsertBefore: SQL · InsertAfter: `Hr_S_PerformanceFeedbackOpen` , `Hr_S_PerformanceReviewRecalc` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | Relation=Peer, Status=Pending, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxSelectBox | | | sorgu: Hr_T_PerformanceReview |
| `ReviewerId` | Değerlendirici | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers |
| `Relation` | İlişki | dxSelectBox | ✓ | ✓ | liste: Peer, Subordinate, Superior, InternalCustomer |
| `Status` | Durum | dxRadioGroup | ✓ | ✓ | liste: Pending, Submitted |
| `Score` | Puan | dxNumberBox | | ✓ | |
| `SubmittedDate` | Gönderim Tarihi | dxDateBox | | ✓ | |
| `Comment` | Yorum | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Gelişim Planı — `App.Hr.ReviewDevelopmentPlan`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/ReviewDevelopmentPlan.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.ReviewDevelopmentPlan` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Gelişim Planı — değerlendirmeden çı kan gelişim aksiyonları (İK görünümü). |
| Kaynak | `Hr_T_DevelopmentPlan` · filtre `"IsDeleted" = 'false'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertAfter: `Hr_S_DevelopmentPlanSync` · UpdateAfter: `Hr_S_DevelopmentPlanSync` |
| Form varsayı lanları | ActionType=Training, Status=Planned, Progress=0, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `EmployeeId` | Çalı şan | dxTextBox | | | |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `Title` | Aksiyon | dxTextBox | ✓ | ✓ | |
| `ActionType` | Aksiyon Türü | dxSelectBox | ✓ | ✓ | liste: Training, Mentoring, Project, Reading, Certificate, Other |
| `SkillId` | Yetkinlik | dxSelectBox | | ✓ | sorgu: Hr_T_Skill |
| `TrainingId` | Eğitim | dxSelectBox | | ✓ | sorgu: Hr_T_Training |
| `CertificateId` | Sertifika | dxSelectBox | | ✓ | sorgu: Hr_T_Certificate |
| `MentorId` | Mentor | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `StartDate` | Başlangı ç Tarihi | dxDateBox | | ✓ | |
| `DueDate` | Bitiş Tarihi | dxDateBox | | ✓ | |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: Planned, InProgress, Completed, Cancelled |
| `Progress` | İlerleme % | dxNumberBox | | ✓ | |
| `EmployeeNote` | Çalı şan Notu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Hedeflerim — `App.Hr.MyPerformanceGoal`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/MyPerformanceGoal.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.MyPerformanceGoal` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Hedeflerim — çalı şanı n kendi değerlendirmesindeki hedefler. |
| Kaynak | `Hr_T_PerformanceGoal` · filtre `"IsDeleted" = 'false' AND "ReviewId" IN (SELECT "Id" FROM "Hr_T_PerformanceReview" WHERE "EmployeeId" = '@USERID')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertBefore: `Hr_S_PerformanceGuard` · InsertAfter: `Hr_S_PerformanceReviewRecalc` · UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteBefore: `Hr_S_PerformanceGuard` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | GoalType=KPI, Direction=Increasing, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `GoalType` | Tür | dxRadioGroup | ✓ | ✓ | liste: KPI, OKR |
| `Title` | Hedef | dxTextBox | ✓ | ✓ | |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `Direction` | Yön | dxSelectBox | ✓ | ✓ | liste: Increasing, Decreasing · script |
| `Unit` | Birim | dxTextBox | | ✓ | |
| `TargetValue` | Hedef Değer | dxNumberBox | ✓ | ✓ | script |
| `Weight` | Ağı rlı k % | dxNumberBox | ✓ | ✓ | |
| `ActualValue` | Gerçekleşen | dxNumberBox | | ✓ | script |
| `AchievementRate` | Gerçekleşme % | dxNumberBox | | ✓ | |
| `SelfComment` | Öz Yorum | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Yetkinliklerim — `App.Hr.MyPerformanceCompetency`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/MyPerformanceCompetency.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.MyPerformanceCompetency` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Yetkinliklerim — çalı şanı n yetkinlik öz değerlendirmesi. |
| Kaynak | `Hr_T_PerformanceCompetency` · filtre `"IsDeleted" = 'false' AND "ReviewId" IN (SELECT "Id" FROM "Hr_T_PerformanceReview" WHERE "EmployeeId" = '@USERID')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Komutlar | UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `SkillId` | Yetkinlik | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Skill |
| `ExpectedLevelId` | Beklenen Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `SelfLevelId` | Öz Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `ManagerLevelId` | Yönetici Seviyesi | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `Score` | Puan | dxNumberBox | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `SelfComment` | Öz Yorum | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
### Gelişim Planı m — `App.Hr.MyDevelopmentPlan`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/MyDevelopmentPlan.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.MyDevelopmentPlan` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Gelişim Planı m — çalı şanı n kendi gelişim aksiyonları . |
| Kaynak | `Hr_T_DevelopmentPlan` · filtre `"IsDeleted" = 'false' AND "EmployeeId" = '@USERID'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Komutlar | UpdateBefore: SQL · UpdateAfter: `Hr_S_DevelopmentPlanSync` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `EmployeeId` | Çalı şan | dxTextBox | | | |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `Title` | Aksiyon | dxTextBox | ✓ | ✓ | |
| `ActionType` | Aksiyon Türü | dxSelectBox | ✓ | ✓ | liste: Training, Mentoring, Project, Reading, Certificate, Other |
| `SkillId` | Yetkinlik | dxSelectBox | | ✓ | sorgu: Hr_T_Skill |
| `TrainingId` | Eğitim | dxSelectBox | | ✓ | sorgu: Hr_T_Training |
| `CertificateId` | Sertifika | dxSelectBox | | ✓ | sorgu: Hr_T_Certificate |
| `MentorId` | Mentor | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `StartDate` | Başlangı ç Tarihi | dxDateBox | | ✓ | |
| `DueDate` | Bitiş Tarihi | dxDateBox | | ✓ | |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: Planned, InProgress, Completed, Cancelled |
| `Progress` | İlerleme % | dxNumberBox | | ✓ | |
| `EmployeeNote` | Çalı şan Notu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Değerlendirmelerim — `App.Hr.MyPerformanceReview`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/MyPerformanceReview.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.MyPerformanceReview` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Değerlendirmelerim — oturum açan çalı şanı n kendi performans değerlendirmeleri. |
| Kaynak | `Hr_T_PerformanceReview` · filtre `"IsDeleted" = 'false' AND "EmployeeId" = '@USERID'` |
| Görünümler | Grid, Card, Pivot, Chart, Todo (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.MyPerformanceGoal` (Id → ReviewId), `App.Hr.MyPerformanceCompetency` (Id → ReviewId), `App.Hr.MyDevelopmentPlan` (Id → ReviewId, EmployeeId → EmployeeId) |
| Todo | başlı k `EmployeeName` , durum `Status` (GoalSetting,SelfReview,ManagerReview,Calibration,Completed) |
| Komutlar | UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewAfterSave` |
| Form varsayı lanları | Status=GoalSetting, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `PeriodId` | Dönem | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_PerformancePeriod |
| `EmployeeId` | Çalı şan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `EmployeeName` | Çalı şan Adı | dxTextBox | | | |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: GoalSetting, SelfReview, ManagerReview, Calibration, Completed |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `GoalScore` | Hedef Puanı | dxNumberBox | | ✓ | |
| `CompetencyScore` | Yetkinlik Puanı | dxNumberBox | | ✓ | |
| `Feedback360Score` | 360 Ortalaması | dxNumberBox | | ✓ | |
| `OverallScore` | Genel Puan | dxNumberBox | | ✓ | |
| `CalibratedScore` | Kalibre Puan | dxNumberBox | | ✓ | |
| `RatingId` | Derece | dxSelectBox | | ✓ | sorgu: Hr_T_PerformanceRating |
| `SelfComment` | Öz Değerlendirme Yorumu | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `CalibrationNote` | Kalibrasyon Notu | dxTextArea | | ✓ | |
| `SelfSubmittedDate` | Öz Değerlendirme Gönderimi | dxDateBox | | ✓ | |
| `ManagerSubmittedDate` | Yönetici Değerlendirmesi Gönderimi | dxDateBox | | ✓ | |
| `CompletedDate` | Tamamlanma | dxDateBox | | ✓ | |
### Ekip Hedefleri — `App.Hr.TeamPerformanceGoal`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/TeamPerformanceGoal.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.TeamPerformanceGoal` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Ekip Hedefleri — yöneticinin, ekibindeki çalı şanı n hedefleri üzerindeki görünümü. |
| Kaynak | `Hr_T_PerformanceGoal` · filtre `"IsDeleted" = 'false' AND "ReviewId" IN (SELECT "Id" FROM "Hr_T_PerformanceReview" WHERE "ManagerId" = '@USERID')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertBefore: `Hr_S_PerformanceGuard` · InsertAfter: `Hr_S_PerformanceReviewRecalc` · UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteBefore: `Hr_S_PerformanceGuard` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | GoalType=KPI, Direction=Increasing, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `GoalType` | Tür | dxRadioGroup | ✓ | ✓ | liste: KPI, OKR |
| `Title` | Hedef | dxTextBox | ✓ | ✓ | |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `Direction` | Yön | dxSelectBox | ✓ | ✓ | liste: Increasing, Decreasing · script |
| `Unit` | Birim | dxTextBox | | ✓ | |
| `TargetValue` | Hedef Değer | dxNumberBox | ✓ | ✓ | script |
| `Weight` | Ağı rlı k % | dxNumberBox | ✓ | ✓ | |
| `ActualValue` | Gerçekleşen | dxNumberBox | | ✓ | script |
| `AchievementRate` | Gerçekleşme % | dxNumberBox | | ✓ | |
| `SelfComment` | Öz Yorum | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Ekip Yetkinlikleri — `App.Hr.TeamPerformanceCompetency`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/TeamPerformanceCompetency.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.TeamPerformanceCompetency` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Ekip Yetkinlikleri — yöneticinin yetkinlik değerlendirmesi; yönetici seviyesi yetkinlik puanı nı belirler. |
| Kaynak | `Hr_T_PerformanceCompetency` · filtre `"IsDeleted" = 'false' AND "ReviewId" IN (SELECT "Id" FROM "Hr_T_PerformanceReview" WHERE "ManagerId" = '@USERID')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertBefore: `Hr_S_PerformanceGuard` · InsertAfter: `Hr_S_PerformanceReviewRecalc` · UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` · DeleteBefore: `Hr_S_PerformanceGuard` · DeleteAfter: `Hr_S_PerformanceReviewRecalc` |
| Form varsayı lanları | IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `SkillId` | Yetkinlik | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Skill |
| `ExpectedLevelId` | Beklenen Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `SelfLevelId` | Öz Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `ManagerLevelId` | Yönetici Seviyesi | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `Score` | Puan | dxNumberBox | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `SelfComment` | Öz Yorum | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
### Ekip Gelişim Planı — `App.Hr.TeamDevelopmentPlan`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/TeamDevelopmentPlan.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.TeamDevelopmentPlan` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Ekip Gelişim Planı — yöneticinin ekibindeki çalı şan için planladı ğı gelişim aksiyonları . |
| Kaynak | `Hr_T_DevelopmentPlan` · filtre `"IsDeleted" = 'false' AND "ReviewId" IN (SELECT "Id" FROM "Hr_T_PerformanceReview" WHERE "ManagerId" = '@USERID')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertBefore: `Hr_S_PerformanceGuard` · InsertAfter: `Hr_S_DevelopmentPlanSync` · UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_DevelopmentPlanSync` · DeleteBefore: `Hr_S_PerformanceGuard` |
| Form varsayı lanları | ActionType=Training, Status=Planned, Progress=0, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `EmployeeId` | Çalı şan | dxTextBox | | | |
| `ReviewId` | Değerlendirme | dxTextBox | | | |
| `Title` | Aksiyon | dxTextBox | ✓ | ✓ | |
| `ActionType` | Aksiyon Türü | dxSelectBox | ✓ | ✓ | liste: Training, Mentoring, Project, Reading, Certificate, Other |
| `SkillId` | Yetkinlik | dxSelectBox | | ✓ | sorgu: Hr_T_Skill |
| `TrainingId` | Eğitim | dxSelectBox | | ✓ | sorgu: Hr_T_Training |
| `CertificateId` | Sertifika | dxSelectBox | | ✓ | sorgu: Hr_T_Certificate |
| `MentorId` | Mentor | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `Description` | Açı klama | dxTextArea | | ✓ | |
| `StartDate` | Başlangı ç Tarihi | dxDateBox | | ✓ | |
| `DueDate` | Bitiş Tarihi | dxDateBox | | ✓ | |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: Planned, InProgress, Completed, Cancelled |
| `Progress` | İlerleme % | dxNumberBox | | ✓ | |
| `EmployeeNote` | Çalı şan Notu | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### Ekibimin Değerlendirmeleri — `App.Hr.TeamPerformanceReview`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/TeamPerformanceReview.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.TeamPerformanceReview` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Ekibimin Değerlendirmeleri — kullanı cı nı n yönetici olarak atandı ğı çalı şanları n değerlendirmeleri. |
| Kaynak | `Hr_T_PerformanceReview` · filtre `"IsDeleted" = 'false' AND "ManagerId" = '@USERID'` |
| Görünümler | Grid, Card, Pivot, Chart, Todo (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.TeamPerformanceGoal` (Id → ReviewId), `App.Hr.TeamPerformanceCompetency` (Id → ReviewId), `App.Hr.TeamDevelopmentPlan` (Id → ReviewId, EmployeeId → EmployeeId) |
| Todo | başlı k `EmployeeName` , durum `Status` (GoalSetting,SelfReview,ManagerReview,Calibration,Completed) |
| Komutlar | UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewAfterSave` |
| Form varsayı lanları | Status=GoalSetting, IsActive=true |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `PeriodId` | Dönem | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_PerformancePeriod |
| `EmployeeId` | Çalı şan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `EmployeeName` | Çalı şan Adı | dxTextBox | | | |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: GoalSetting, SelfReview, ManagerReview, Calibration, Completed |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `GoalScore` | Hedef Puanı | dxNumberBox | | ✓ | |
| `CompetencyScore` | Yetkinlik Puanı | dxNumberBox | | ✓ | |
| `Feedback360Score` | 360 Ortalaması | dxNumberBox | | ✓ | |
| `OverallScore` | Genel Puan | dxNumberBox | | ✓ | |
| `CalibratedScore` | Kalibre Puan | dxNumberBox | | ✓ | |
| `RatingId` | Derece | dxSelectBox | | ✓ | sorgu: Hr_T_PerformanceRating |
| `SelfComment` | Öz Değerlendirme Yorumu | dxTextArea | | ✓ | |
| `ManagerComment` | Yönetici Yorumu | dxTextArea | | ✓ | |
| `CalibrationNote` | Kalibrasyon Notu | dxTextArea | | ✓ | |
| `SelfSubmittedDate` | Öz Değerlendirme Gönderimi | dxDateBox | | ✓ | |
| `ManagerSubmittedDate` | Yönetici Değerlendirmesi Gönderimi | dxDateBox | | ✓ | |
| `CompletedDate` | Tamamlanma | dxDateBox | | ✓ | |
### Yetkinlik Puanları — `App.Hr.My360FeedbackScore`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/My360FeedbackScore.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.My360FeedbackScore` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | Yetkinlik Puanları — 360 değerlendiricisinin kendi talebinde her yetkinliğe verdiği seviye. |
| Kaynak | `Hr_T_PerformanceFeedbackScore` · filtre `"IsDeleted" = 'false' AND "FeedbackId" IN (SELECT "Id" FROM "Hr_T_PerformanceFeedback" WHERE "ReviewerId" = '@USERID')` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Komutlar | UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `FeedbackId` | Geri Bildirim | dxTextBox | | | |
| `SkillId` | Yetkinlik | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Skill |
| `LevelId` | Seviye | dxSelectBox | | ✓ | sorgu: Hr_T_SkillLevel (← SkillId) |
| `Comment` | Yorum | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
### 360 Taleplerim — `App.Hr.My360Feedback`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/My360Feedback.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `App.Hr.My360Feedback` + `.Create` , `.Update` , `.Delete` , `.Export` , `.Import` , `.Note` |
| Açı klama | 360 Taleplerim — kullanı cı ya değerlendirici olarak atanan 360 derece değerlendirme talepleri. |
| Kaynak | `Hr_T_PerformanceFeedback` · filtre `"IsDeleted" = 'false' AND "ReviewerId" = '@USERID'` |
| Görünümler | Grid, Card, Pivot, Chart (açı lı ş grid) |
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.My360FeedbackScore` (Id → FeedbackId) |
| Komutlar | UpdateBefore: `Hr_S_PerformanceGuard` · UpdateAfter: `Hr_S_PerformanceReviewRecalc` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ReviewId` | Değerlendirme | dxSelectBox | | | sorgu: Hr_T_PerformanceReview |
| `ReviewerId` | Değerlendirici | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers |
| `Relation` | İlişki | dxSelectBox | ✓ | ✓ | liste: Peer, Subordinate, Superior, InternalCustomer |
| `Status` | Durum | dxRadioGroup | ✓ | ✓ | liste: Pending, Submitted |
| `Score` | Puan | dxNumberBox | | ✓ | |
| `SubmittedDate` | Gönderim Tarihi | dxDateBox | | ✓ | |
| `Comment` | Yorum | dxTextArea | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
<!-- module - doc:auto:end -->