sozsoft-platform/configs/seeds/host/docs/modules/HrVisitor.md

151 lines
5.8 KiB
Markdown
Raw Normal View History

2026-10-04 15:04:16 +00:00
# İK › Ziyaretçiler (`App.Hr.Visitor`)
Güvenlik/resepsiyon için ziyaretçi giriş–çıkış defteri: kim, hangi firmadan, kimi ziyarete, ne
zaman geldi, hangi kartı aldı, ne zaman çıktı. Tamamı konfigürasyondur (tek Wizard ekranı).
> 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 |
| --- | --- | --- |
| Güvenlik / resepsiyon | Ziyaretçiyi girişte kaydeder, kart verir, çıkışta çıkış saatini işler | Ziyaretçiler |
| İK / idari işler | Günlük ziyaretçi sayısını, içeride kalanları ve geçmişi izler | Ziyaretçiler (widget, Pivot) |
Kapsam: kiracı (`IsTenant`). Her kayıt bir şubeye bağlıdır; satır süzmesi yoktur.
---
## 2. Analiz ve kararlar
> Modül §0.13 kuralından önce üretildi; keşif turu kaydı yoktur. Kararlar wizard ve SQL'den okunmuştur.
| Konu | Karar |
| --- | --- |
| Yol | Tek Wizard liste ekranı |
| Ziyaretçi kimliği | Ziyaretçi ayrı bir kişi kartı değildir; her ziyaret satırında ad soyad serbest metindir (tekrar gelen ziyaretçi yeniden yazılır) |
| Firma | Serbest metin + **otomatik tamamlama** (daha önce girilen firma adlarından) |
| Ziyaretçi tipi | Sabit liste: Ziyaretçi, Müşteri, Tedarikçi, Taşeron, Kurye (değerler Türkçe anahtardır) |
| İçeride mi? | `ExitTime` boşsa ziyaretçi içeride sayılır |
| Bildirim | Ziyaret edilen personele bildirim **gönderilmez** |
---
## 3. Menü ve ekran
| Menü (TR / EN) | `ListFormCode` | Yer | Görünümler | Widget'lar (bugün) |
| --- | --- | --- | --- | --- |
2026-10-04 21:18:13 +00:00
| Ziyaretçiler / Visitors | `App.Hr.Visitor` | `İnsan Kaynakları` (sıra 12, `FcBusinessman`) | Grid, Card, Pivot, Chart | Bugün Gelen · İçeride · Çıkış Yapan |
2026-10-04 15:04:16 +00:00
Widget'lar yalnız **bugünün** (`VisitDate = bugün`) kayıtlarını sayar.
---
## 4. Veri modeli
`Hr_T_Visitor` (`sql/object/Hr_T_Visitor.sql`, entity yok):
| Kolon | Açıklama |
| --- | --- |
| `BranchId` | Şube (zorunlu) |
| `VisitorType` | Ziyaretçi tipi (varsayılan "Ziyaretçi") |
| `VisitDate` | Ziyaret tarihi |
| `EntryTime` / `ExitTime` | Giriş / çıkış zamanı (`datetime`) |
| `CardNo` | Verilen ziyaretçi kartı |
| `VisitorFullName` | Ziyaretçi adı soyadı (zorunlu) |
| `VisitedUserId` | Ziyaret edilen personel (`AbpUsers`, zorunlu) |
| `CompanyName` | Firma |
| `VisitReason` | Ziyaret sebebi |
---
## 5. İş kuralları
| Yer | Kural |
| --- | --- |
| Yeni kayıt | Ziyaret tarihi bugün, giriş saati şimdi, tip "Ziyaretçi" |
| Çıkış | Kayıt düzenlenip çıkış saati girilir; otomatik çıkış yoktur |
---
## 6. Yetki ve görünürlük
İzin grubu `App.Hr`, modül `Sas|Hr`; `App.Hr.Visitor` + `.Create/.Update/.Delete/.Export/.Import/.Note`.
Güvenliğe kök + `.Create/.Update` yeter. Hiçbir yetki role otomatik atanmaz. Ziyaretçi adı kişisel
veridir; saklama süresi için periyodik temizlik yoktur.
---
## 7. Entegrasyonlar
`Sas_T_Branch` (şube), `AbpUsers` (ziyaret edilen personel). Bildirim, rapor ya da zamanlanmış iş yoktur.
---
## 8. Akış örneği
1. Tedarikçi temsilcisi gelir; güvenlik yeni kayıt açar (tarih/saat dolu), tip Tedarikçi, ad soyad,
firma (otomatik tamamlamadan), ziyaret edilen satın alma uzmanı, kart no 12.
2. "İçeride" kartı 1 artar.
3. Çıkışta kayıt açılıp çıkış saati girilir; "Çıkış Yapan" kartı artar.
---
## 9. Sık sorulanlar
**Tekrar gelen ziyaretçinin bilgileri neden dolmuyor?** Ziyaretçi kartı yoktur; yalnız firma adı otomatik tamamlanır.
**Gün sonunda içeride kalanlar nasıl görülür?** Bugünün "İçeride" kartı ya da `ExitTime` boş filtresi.
**Ziyaret edilen kişiye haber gidiyor mu?** Hayır.
---
## 10. Dosyalar ve geri alma
| Dosya | İçerik |
| --- | --- |
| `configs/seeds/host/sql/object/Hr_T_Visitor.sql` | Tablo |
| `configs/seeds/host/wizard/Visitor.json` | Wizard |
Geri alma: Wizard Manager'dan silinir; tablo yalnızca onayda seçilirse 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.
### Ziyaretçiler — `App.Hr.Visitor`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Visitor.json` |
| Yol | Liste (Wizard) |
2026-10-04 21:18:13 +00:00
| Menü | `App.Hr` › `App.Hr.Visitor` (sıra 12) |
2026-10-04 15:04:16 +00:00
| Yetki | `App.Hr.Visitor` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
| Açıklama | Ziyaretçiler — güvenlik/resepsiyonun tuttuğu ziyaretçi giriş-çıkış defteri. |
| Geliştirme talebi | Human Resources -> Ziyaretçi Takip Listesi |
| Kaynak | `Hr_T_Visitor` · 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.Hr.Visitor.Widget.Today`, `App.Hr.Visitor.Widget.Inside`, `App.Hr.Visitor.Widget.Exited` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `VisitDate` | Ziyaret Tarihi | dxDateBox | ✓ | ✓ | script |
| `VisitorType` | Ziyaretçi Tipi | dxSelectBox | ✓ | ✓ | liste: Ziyaretçi, Müşteri, Tedarikçi, Taşeron, Kurye · script |
| `EntryTime` | Giriş Saati | dxDateBox | ✓ | ✓ | script |
| `ExitTime` | Çıkış Saati | dxDateBox | | ✓ | |
| `CardNo` | Kart No | dxTextBox | | ✓ | |
| `VisitedUserId` | Ziyaret Edilen Personel | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers |
| `VisitorFullName` | Ziyaretçi Adı Soyadı | dxTextBox | ✓ | ✓ | |
| `CompanyName` | Firma Adı | dxAutocomplete | | ✓ | sorgu: Hr_T_Visitor |
| `VisitReason` | Ziyaret Sebebi | dxTextArea | | ✓ | |
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
<!-- module-doc:auto:end -->