151 lines
5.8 KiB
Markdown
151 lines
5.8 KiB
Markdown
|
|
# İ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) |
|
|||
|
|
| --- | --- | --- | --- | --- |
|
|||
|
|
| Ziyaretçiler / Visitors | `App.Hr.Visitor` | `İnsan Kaynakları` (sıra 8, `FcBusinessman`) | Grid, Card, Pivot, Chart | Bugün Gelen · İçeride · Çıkış Yapan |
|
|||
|
|
|
|||
|
|
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) |
|
|||
|
|
| Menü | `App.Hr` › `App.Hr.Visitor` (sıra 3) |
|
|||
|
|
| 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 -->
|