316 lines
17 KiB
Markdown
316 lines
17 KiB
Markdown
|
|
# İK › Eğitimler (`App.Hr.Trainings`)
|
|||
|
|
|
|||
|
|
Şirket içi ve dışı eğitimlerin kaydı: eğitim tipi → konu tanımları, eğitim oturumu (tarih/saat,
|
|||
|
|
süre, yer, eğitmen, maliyet, kazandırdığı yetkinlikler), katılımcılar (katılım durumu, puan,
|
|||
|
|
katılım belgesi) ve eğitim dosyaları. Tamamı konfigürasyondur (Wizard + rapor şablonu); 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 / eğitim sorumlusu | Tip ve konu tanımlar, eğitim açar, katılımcı ekler, katılım/puan girer, dosya yükler, katılım belgesi basar | Eğitim Tipleri · Eğitim Konuları · Eğitimler |
|
|||
|
|
| Yönetim | Eğitim adedi, açık/kapalı durum ve toplam maliyeti izler (widget, Pivot, Chart) | Eğitimler |
|
|||
|
|
|
|||
|
|
Kapsam: kiracı (`IsTenant`). Eğitim bir şubeye bağlıdır (`BranchId` zorunlu); satır süzmesi yoktur.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Analiz ve kararlar
|
|||
|
|
|
|||
|
|
> Modül §0.13 kuralından önce üretildi; keşif turu kaydı yoktur. Kararlar artefaktlardan
|
|||
|
|
> (wizard, SQL, seed, commit `36546d0c` "Human Resources -> Eğitim bilgileri") okunmuştur.
|
|||
|
|
|
|||
|
|
| Konu | Karar |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Yol | Wizard ekranları; eğitim kaydının altında Katılımcılar ve Dosyalar sekmeleri (menüsüz alt formlar) |
|
|||
|
|
| Tanımlar | Tip ve konu tanımları İK › Tanımlar'da değil **Eğitimler** dalının içindedir; konu bir tipe bağlıdır ve tip seçimine göre süzülür |
|
|||
|
|
| Süre | `Toplam Süre (saat) = gün sayısı (bitiş dahil) × günlük saat (bitiş – başlangıç saati)` — formda hesaplanır |
|
|||
|
|
| Maliyet | Altı kalem (yer, eğitmen, konaklama, ulaşım, ikram, diğer) toplanarak `CostTotal` formda hesaplanır |
|
|||
|
|
| Yetkinlik | Eğitimin kazandırdığı yetkinlikler `SkillIds` (çok değerli, `Hr_T_Skill`) olarak saklanır; çalışan profiline (`Adm_T_UserSkill`) **yazılmaz** |
|
|||
|
|
| Katılımcı | Personel seçilince işe giriş tarihi, departman ve pozisyon kullanıcı kaydından kopyalanır (eğitim anındaki hâli saklanır) |
|
|||
|
|
| Katılım durumu | Attended / NotAttended / Excused; varsayılan **Attended** |
|
|||
|
|
| Katılım belgesi | Yalnızca `Attended` satırda görünen satır butonu → **Katılım Belgesi** raporu (`DynamicReport`) |
|
|||
|
|
| Dosyalar | Belge türü `Hr_T_DocumentType` (ortak İK tanımı); dosya içeriği base64 (`dxImageUpload`) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Menü ve ekranlar
|
|||
|
|
|
|||
|
|
`İnsan Kaynakları › Eğitimler` (`App.Hr.Trainings`, ikon `FcGraduationCap`)
|
|||
|
|
|
|||
|
|
| Sıra | Menü (TR / EN) | `ListFormCode` | Alt formlar | Görünümler | Widget'lar |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| 1 | Eğitim Tipleri / Training Types | `App.Hr.TrainingType` | — | Grid, Card, Pivot, Chart | Toplam · Aktif · Pasif |
|
|||
|
|
| 2 | Eğitim Konuları / Training Subjects | `App.Hr.TrainingSubject` | — | Grid, Card, Pivot, Chart | Toplam · Aktif · Pasif |
|
|||
|
|
| 3 | Eğitimler / Trainings | `App.Hr.Training` | `TrainingParticipant`, `TrainingFile` (`Id → TrainingId`, menüsüz) | Grid, Card, Pivot, Chart | Toplam · Açık · Kapalı · Toplam Maliyet |
|
|||
|
|
|
|||
|
|
Seed verisi: 8 eğitim tipi (Oryantasyon, İş Başı, Teknik Oryantasyon, Grup, Firma Dışı, Eğitim
|
|||
|
|
İçerikli Sosyal Faaliyet, Akademi, Rotasyon) ve 18 eğitim konusu (`data/App.Hr.{TrainingType,TrainingSubject}.json`).
|
|||
|
|
|
|||
|
|
Satır butonu: Katılımcılar › **Katılım Belgesi** — rapor `3840a20d-3233-4d17-bc06-ccfd8d87b32a`,
|
|||
|
|
görünürlük `AttendanceStatus === 'Attended'`.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Veri modeli
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Hr_T_TrainingType ──< Hr_T_TrainingSubject
|
|||
|
|
│ │
|
|||
|
|
└──────< Hr_T_Training >──── Sas_T_Branch
|
|||
|
|
├──< Hr_T_TrainingParticipant >── AbpUsers (+ Department, JobPosition)
|
|||
|
|
└──< Hr_T_TrainingFile >── Hr_T_DocumentType
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
| Tablo | Önemli kolonlar | Kural |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `Hr_T_TrainingType` | `Name`, `IsActive` | — |
|
|||
|
|
| `Hr_T_TrainingSubject` | `TrainingTypeId`, `Name`, `IsEvaluated` (değerlendirilsin mi), `IsActive` | — |
|
|||
|
|
| `Hr_T_Training` | `TrainingTypeId`, `TrainingSubjectId` (tipe göre cascade), `EntryDate`, `BranchId`, `StartDate`, `EndDate`, `StartTime`, `EndTime`, `TotalHours`, `Status` (Open/Closed), `TrainerName`, `TrainingPlace`, `TrainingInstitution`, `Description`, `SkillIds`, `CostPlace`, `CostTrainer`, `CostAccommodation`, `CostTransport`, `CostCatering`, `CostOther`, `CostTotal` | Bitiş başlangıçtan önce olamaz (form) |
|
|||
|
|
| `Hr_T_TrainingParticipant` | `TrainingId`, `UserId`, `HireDate`, `DepartmentId`, `JobPositionId`, `AttendanceStatus`, `EvaluationScore`, `ExamScore`, `LeaveDate`, `Note` | — |
|
|||
|
|
| `Hr_T_TrainingFile` | `TrainingId`, `DocumentTypeId`, `FileDate`, `FileName`, `FileContent` | Dosya zorunlu |
|
|||
|
|
|
|||
|
|
Tablo düzeyinde CHECK ya da tekil indeks yoktur; kurallar formdadır.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. İş kuralları ve hesaplar
|
|||
|
|
|
|||
|
|
Hesapların tamamı `EditorScript`'tir (sunucu tarafında after-command yoktur):
|
|||
|
|
|
|||
|
|
| Alan | Kural |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `EntryDate` | Yeni kayıtta bugün |
|
|||
|
|
| `Status` | Yeni kayıtta `Open` |
|
|||
|
|
| `TotalHours` | Başlangıç/bitiş tarihi ya da saatlerinden biri değişince `round(days(StartDate, EndDate) × hours(StartTime, EndTime), 2)`; dört alan dolu olmalı |
|
|||
|
|
| `EndDate` | Başlangıçtan önceyse uyarı + değişiklik geri alınır |
|
|||
|
|
| `CostTotal` | Altı maliyet kaleminden biri değişince toplam |
|
|||
|
|
| Katılımcı `UserId` | Seçilince `HireDate`, `DepartmentId`, `JobPositionId` kopyalanır |
|
|||
|
|
| `AttendanceStatus` | Yeni satırda `Attended` |
|
|||
|
|
| Dosya `FileDate` | Yeni satırda bugün |
|
|||
|
|
| Tip/Konu `IsActive`, `IsEvaluated` | Yeni kayıtta `true` |
|
|||
|
|
|
|||
|
|
Saat hesabı aynı günlük saat aralığının her gün tekrarlandığını varsayar; gün sayısına bitiş günü dahildir.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Yetki ve görünürlük
|
|||
|
|
|
|||
|
|
İzin grubu `App.Hr`, modül `Sas|Hr`. Yetki ağacı menüyü izler: `App.Hr.Trainings` ara yetkisinin
|
|||
|
|
altında üç ekranın kökü + `.Create/.Update/.Delete/.Export/.Import/.Note`; `TrainingParticipant` ve
|
|||
|
|
`TrainingFile` `App.Hr.Training` altındadır. Satır süzmesi yoktur. Hiçbir yetki role otomatik atanmaz.
|
|||
|
|
|
|||
|
|
| Rol | Yetkiler |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Eğitim sorumlusu | `App.Hr.Trainings` dalının tamamı |
|
|||
|
|
| Bölüm yöneticisi (izleme) | `App.Hr.Training` + `App.Hr.TrainingParticipant` (salt okuma) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Entegrasyonlar
|
|||
|
|
|
|||
|
|
| Kaynak | Kullanım |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `Sas_T_Branch` | Eğitimin şubesi |
|
|||
|
|
| `AbpUsers` | Katılımcı; işe giriş tarihi, departman, pozisyon kopyası |
|
|||
|
|
| `Hr_T_Department`, `Hr_T_JobPosition` | Katılımcının o anki birimi (Pivot kırılımı) |
|
|||
|
|
| `Hr_T_Skill` / `Hr_T_SkillType` | Eğitimin kazandırdığı yetkinlikler |
|
|||
|
|
| `Hr_T_DocumentType` | Eğitim dosyası türü |
|
|||
|
|
| Raporlar | Katılım Belgesi (`DynamicReport`, `Raporlar` kategorisi) |
|
|||
|
|
| Performans Yönetimi | Gelişim planı aksiyonu bir eğitime bağlanabilir (`Hr_T_DevelopmentPlan.TrainingId`); çalışan o eğitimde **Attended** ise aksiyon kayıtta kendiliğinden tamamlanır (`Hr_S_DevelopmentPlanSync`, bkz. `HrPerformance.md`). Eğitimler ekranı bu bağı bilmez |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Akış örneği
|
|||
|
|
|
|||
|
|
1. İK **Eğitimler**'de "İş Sağlığı ve Güvenliği" kaydını açar: tip Grup Eğitimi, konu İSG, şube
|
|||
|
|
Merkez, 3–4 Kasım 09:00–17:00 → toplam süre 16 saat; eğitmen ve yer maliyetini girer → toplam
|
|||
|
|
maliyet hesaplanır; kazandırdığı yetkinliği (İSG) seçer.
|
|||
|
|
2. **Katılımcılar** sekmesine personeli ekler; departman/pozisyon kopyalanır, durum Katıldı.
|
|||
|
|
3. Gelmeyen personeli **Katılmadı**, raporlu olanı **Mazeretli** yapar; sınav/değerlendirme puanlarını girer.
|
|||
|
|
4. Katılanların satırından **Katılım Belgesi** basılır; imzalı liste **Dosyalar** sekmesine yüklenir.
|
|||
|
|
5. Eğitim **Kapalı** yapılır; widget'taki toplam maliyete eklenir.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Sık sorulanlar
|
|||
|
|
|
|||
|
|
**Toplam süre hesaplanmıyor.** Başlangıç/bitiş tarihi ve başlangıç/bitiş saatinin dördü de dolu olmalı.
|
|||
|
|
|
|||
|
|
**Katılım belgesi butonu görünmüyor.** Yalnızca katılım durumu "Katıldı" olan satırda çıkar.
|
|||
|
|
|
|||
|
|
**Eğitim konusu listesi boş.** Konu, seçilen eğitim tipine göre süzülür; önce tip seçin.
|
|||
|
|
|
|||
|
|
**Eğitimdeki yetkinlik çalışan profiline yazılıyor mu?** Hayır; `SkillIds` eğitimin bilgisidir. Profil, Performans Yönetimi'nde tamamlanan değerlendirmeden güncellenir.
|
|||
|
|
|
|||
|
|
**Katılımcının departmanı sonradan değişti, eğitimde eski görünüyor.** Bilinçli: eğitim anındaki birim saklanır.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. Dosyalar ve geri alma
|
|||
|
|
|
|||
|
|
| Dosya | İçerik |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `configs/seeds/host/sql/object/Hr_T_{TrainingType,TrainingSubject,Training,TrainingParticipant,TrainingFile}.sql` | Tablolar |
|
|||
|
|
| `configs/seeds/host/wizard/{TrainingType,TrainingSubject,Training,TrainingParticipant,TrainingFile}.json` | 5 wizard |
|
|||
|
|
| `configs/seeds/host/data/App.Hr.{TrainingType,TrainingSubject}.json` | Tanım verisi |
|
|||
|
|
| `configs/seeds/host/data/App.Reports.ReportTemplates.json` | Katılım Belgesi şablonu |
|
|||
|
|
| `configs/seeds/host/data/App.Menus.Menu.json`, `Abp.Identity.Permissions.json`, `App.Languages.LanguageText.json` | Menü, yetki, dil satırları |
|
|||
|
|
|
|||
|
|
Kurulum: DB Migrate. Geri alma: Wizard Manager'dan alt formlar (`TrainingParticipant`, `TrainingFile`)
|
|||
|
|
önce, sonra `Training`, `TrainingSubject`, `TrainingType` silinir; tablolar yalnızca onayda seçilirse
|
|||
|
|
düşer. Gelişim planlarındaki `TrainingId` bağları silinmez, boşa düşer.
|
|||
|
|
|
|||
|
|
<!-- 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.
|
|||
|
|
|
|||
|
|
### Eğitim Tipleri — `App.Hr.TrainingType`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/TrainingType.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | `App.Hr.Trainings` › `App.Hr.TrainingType` (sıra 1) |
|
|||
|
|
| Yetki | `App.Hr.TrainingType` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Eğitim Tipleri — eğitimlerin türü (oryantasyon, iş başı, grup, firma dışı, akademi, rotasyon…). |
|
|||
|
|
| Geliştirme talebi | Human Resources -> Eğitim |
|
|||
|
|
| Kaynak | `Hr_T_TrainingType` · 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.TrainingType.json` |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `Name` | Adı | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | script |
|
|||
|
|
|
|||
|
|
### Eğitim Konuları — `App.Hr.TrainingSubject`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/TrainingSubject.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | `App.Hr.Trainings` › `App.Hr.TrainingSubject` (sıra 2) |
|
|||
|
|
| Yetki | `App.Hr.TrainingSubject` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Eğitim Konuları — bir eğitim tipine bağlı konu başlıkları (İSG, siber güvenlik, iş başı eğitimi…). |
|
|||
|
|
| Geliştirme talebi | Human Resources -> Eğitim |
|
|||
|
|
| Kaynak | `Hr_T_TrainingSubject` · 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.TrainingSubject.json` |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `TrainingTypeId` | Eğitim Tipi | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_TrainingType |
|
|||
|
|
| `Name` | Eğitim Konusu | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `IsEvaluated` | Değerlendirilsin mi? | dxCheckBox | ✓ | ✓ | script |
|
|||
|
|
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | script |
|
|||
|
|
|
|||
|
|
### Eğitimler — `App.Hr.Training`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/Training.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | `App.Hr.Trainings` › `App.Hr.Training` (sıra 3) |
|
|||
|
|
| Yetki | `App.Hr.Training` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Eğitimler — düzenlenen her eğitim oturumu: tarih/saat, süre, yer, eğitmen, maliyet, kazandırdığı yetkinlikler, katılımcılar ve dosyalar. |
|
|||
|
|
| Geliştirme talebi | Human Resources -> Eğitim |
|
|||
|
|
| Kaynak | `Hr_T_Training` · 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.TrainingParticipant` (Id → TrainingId), `App.Hr.TrainingFile` (Id → TrainingId) |
|
|||
|
|
| Widget'lar | `App.Widget.Total`, `App.Hr.Training.Widget.Open`, `App.Hr.Training.Widget.Closed`, `App.Hr.Training.Widget.Cost` |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `TrainingTypeId` | Eğitim Tipi | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_TrainingType |
|
|||
|
|
| `TrainingSubjectId` | Eğitim Konusu | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_TrainingSubject (← TrainingTypeId) |
|
|||
|
|
| `EntryDate` | Giriş Tarihi | dxDateBox | ✓ | ✓ | script |
|
|||
|
|
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
|
|||
|
|
| `StartDate` | Eğitim Baş. Tarihi | dxDateBox | ✓ | ✓ | script |
|
|||
|
|
| `EndDate` | Bit. Tarihi | dxDateBox | ✓ | ✓ | script |
|
|||
|
|
| `StartTime` | Eğitim Baş. Saati | dxDateBox | | ✓ | script |
|
|||
|
|
| `EndTime` | Bit. Saati | dxDateBox | | ✓ | script |
|
|||
|
|
| `TotalHours` | Top. Eğitim Süresi (Saat) | dxNumberBox | | ✓ | |
|
|||
|
|
| `Status` | Durum | dxRadioGroup | ✓ | ✓ | liste: Open, Closed · script |
|
|||
|
|
| `TrainerName` | Eğitim Veren Kişi | dxTextBox | | ✓ | |
|
|||
|
|
| `TrainingPlace` | Eğitim Yeri | dxTextBox | | ✓ | |
|
|||
|
|
| `TrainingInstitution` | Eğitim Veren Kurum | dxTextBox | | ✓ | |
|
|||
|
|
| `Description` | Açıklama | dxTextArea | | ✓ | |
|
|||
|
|
| `SkillIds` | Yetkinlikler | dxTagBox | | ✓ | sorgu: Hr_T_Skill |
|
|||
|
|
| `CostPlace` | Eğitim Yeri Maliyeti | dxNumberBox | | ✓ | script |
|
|||
|
|
| `CostTrainer` | Eğitmen Maliyeti | dxNumberBox | | ✓ | script |
|
|||
|
|
| `CostAccommodation` | Konaklama | dxNumberBox | | ✓ | script |
|
|||
|
|
| `CostTransport` | Ulaşım | dxNumberBox | | ✓ | script |
|
|||
|
|
| `CostCatering` | İkram | dxNumberBox | | ✓ | script |
|
|||
|
|
| `CostOther` | Diğer | dxNumberBox | | ✓ | script |
|
|||
|
|
| `CostTotal` | Toplam Maliyet | dxNumberBox | | ✓ | |
|
|||
|
|
|
|||
|
|
### Katılımcılar — `App.Hr.TrainingParticipant`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/TrainingParticipant.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | Menüsüz (alt form) |
|
|||
|
|
| Yetki | `App.Hr.TrainingParticipant` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Katılımcılar — eğitime katılan personel ve katılım sonucu. |
|
|||
|
|
| Geliştirme talebi | Human Resources -> Eğitim |
|
|||
|
|
| Kaynak | `Hr_T_TrainingParticipant` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
| Butonlar | `App.Hr.TrainingParticipant.Certificate` |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `TrainingId` | Eğitim | dxSelectBox | | | sorgu: Hr_T_Training |
|
|||
|
|
| `UserId` | Adı Soyadı | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
|
|||
|
|
| `HireDate` | İşe Giriş Tarihi | dxDateBox | | ✓ | |
|
|||
|
|
| `DepartmentId` | Bölüm | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
|
|||
|
|
| `JobPositionId` | Görevi | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
|
|||
|
|
| `AttendanceStatus` | Katılım Durumu | dxSelectBox | ✓ | ✓ | liste: Attended, NotAttended, Excused · script |
|
|||
|
|
| `EvaluationScore` | Değerlendirme Puanı | dxNumberBox | | ✓ | |
|
|||
|
|
| `ExamScore` | Sınav Notu | dxNumberBox | | ✓ | |
|
|||
|
|
| `LeaveDate` | Ayrılma Tarihi | dxDateBox | | ✓ | |
|
|||
|
|
| `Note` | Not | dxTextArea | | ✓ | |
|
|||
|
|
|
|||
|
|
### Dosyalar — `App.Hr.TrainingFile`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/TrainingFile.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | Menüsüz (alt form) |
|
|||
|
|
| Yetki | `App.Hr.TrainingFile` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Eğitim Dosyaları — eğitime ait doküman ve dijital kaynaklar (sunum, imzalı katılım listesi, sertifika örneği…). |
|
|||
|
|
| Geliştirme talebi | Human Resources -> Eğitim |
|
|||
|
|
| Kaynak | `Hr_T_TrainingFile` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `TrainingId` | Eğitim | dxTextBox | | | |
|
|||
|
|
| `DocumentTypeId` | Dosya Türü | dxSelectBox | | ✓ | sorgu: Hr_T_DocumentType |
|
|||
|
|
| `FileDate` | Tarih | dxDateBox | ✓ | ✓ | script |
|
|||
|
|
| `FileName` | Dosya Adı | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `FileContent` | Dosya | dxImageUpload | ✓ | ✓ | |
|
|||
|
|
|
|||
|
|
<!-- module-doc:auto:end -->
|