# 📅 Attendance (Absensi Karyawan)

> Menu ini digunakan untuk mengelola data absensi karyawan dengan berbagai fitur mulai dari shift, scheduler, hingga scan dari mesin absensi.

---

## 🖥️ Tampilan Detail Shift

List data yang tampil di halaman **Time Management -> Shift Details** adalah tabel shift schedule dari setiap employee untuk **1 bulan / 1 Periode Kerja**.
Data yang ditampilkan:

* Nama Karyawan
* Shift Schedule masing masing karyawan setiap harinya dalam satu periode.

---

## ⏳ Submenu Lainnya

Pada menu ini, terdapat beberapa tab yang dapat digunakan untuk **mengelola shift dan jadwal kerja karyawan**:

### 🕓 Konfigurasi Kehadiran

Menampilkan daftar data shift, jadwal, serta device yang digunakan oleh perusahaan untuk input kehadiran, terdiri dari:

#### Shift
Shift ini adalah ketentuan yang akan mengatur jam absen masuk dan juga keluar karyawan. Bila karyawan absen lebih dari jam masuk ditambah toleransi, maka akan dianggap telat. Lalu bila karyawan melakukan absen keluar lebih awal dari jam keluar, maka akan dianggap keluar lebih dini. Absensi juga akan bergantung pada lokasi disini, bila karyawan berada diluar radius lokasi maka kehadiran karyawan perlu direview oleh HRD terlebih dahulu sebelum dimasukkan perhitungan sistem. Detail yang ada pada shift sebagai berikut.
* Kode dan nama shift
* Lokasi Absensi
* Jam masuk (in) & keluar (out)
* Jam mulai & akhir istirahat (break)
* Toleransi Keterlambatan
* Warna kode shift
* Status absensi (Karyawan perlu absensi di shift terkait atau tidak, akan berpengaruh pada perhitungan)

#### Schedule / Jadwal

Schedule / Jadwal ini adalah jadwal yang mengatur shift apa yang akan digunakan dalam satu minggu. Pengguna dapat menekan nama jadwal untuk melihat detail lebih lanjut. Detail dari jadwal sebagai berikut.
* Pola Shift 
* Karyawan yang di tugaskan pada jadwal

Pada halaman detail ini, pengguna dapat mengedit data jadwal, export menjadi file xlsx, ataupun menghapus jadwalnya bila perlu.

#### Device / Perangkat

Halaman ini adalah list yang menunjukkan mesin fingescan (fingerspot) terdaftar dan digunakan oleh perusahaan. Detail yang ditunjukkan pada halaman ini adalah sebagai berikut.

* SN
* Nama Mesin
* Tipe Mesin
* IP-Port Mesin
* IP-Port Server
* Kode Aktivasi 

### 📍  Location

Menu ini digunakan untuk:

* Mengatur daftar lokasi tempat karyawan dapat melakukan absensi, lengkap dengan alamat serta titik koordinatnya
* Pengguna dapat mengatur jarak radius yang diperbolehkan dari titik yang ditentukan

---

## 📷 Submenu Scan

Scan data absensi dari mesin dengan memilih salah satu dari lokasi mesin:

* Cirebon
* Soreang
* Kota Bandung
* Madiun

---

## 👆 Absen Melalui Dashboard

Karyawan dapat melakukan absensi dari halaman **Dashboard** dengan klik tombol:

> ✅ **Clock In / Clock Out**

**Syarat:**

* Karyawan harus memiliki shift schedule aktif.
* Karyawan harus telah mengupload **foto profil**.
* Foto profil digunakan untuk **verifikasi selfie attendance** dengan teknologi **face recognition**.

---

### 👤 Verifikasi Selfie Attendance

Saat karyawan melakukan **Clock In** atau **Clock Out**, sistem juga memastikan bahwa:

* Karyawan telah **mengupload foto profil**.
* Foto profil digunakan untuk **verifikasi selfie attendance** dengan teknologi **face recognition**.
* Jika belum ada foto profil, karyawan tidak dapat melakukan absen.

---

## 📅 Generate Schedule

Saat membuat jadwal kerja:

1. Akses menu **Time Management -> Scheduler**
2. Klik **Action -> Generate Schedule**
3. Pilih bulan yang diinginkan
4. Sistem membuat **shift schedule** untuk masing-masing karyawan berdasarkan pola kerja yang diatur di **Employment Employee**.

---

<!-- ## ✏️ Edit Schedule Karyawan

Saat terjadi perubahan shift:

1. Akses menu **Time Management -> Shift Details**
2. Klik kode karyawan dari list yang ditampilkan
3. Lakukan perubahan shift sesuai kebutuhan
4. Klik **Update** untuk menyimpan perubahan

--- -->

## 👁️ View Attendance Detail

Karyawan dapat melihat detail jadwal dan data absensinya dari:

* Dashboard ➔ Klik link **View Attendance**

Detail yang ditampilkan:

* Jadwal kerja untuk 1 bulan
* Log **Clock In** dan **Clock Out**, serta bukti absensi yang mereka kirimkan

---

## ⚡️ Ringkasan Alur

1. **Set Employee Schedule** ➔ Atur pola kerja per minggu
2. **Generate Schedule** ➔ Buat jadwal kerja bulanan dari pola kerja
3. **Check Attendance** ➔ Monitoring daftar shift & status absen
4. **Edit Schedule if Needed** ➔ Ubah shift bila ada kebutuhan khusus
5. **Scan / Clock In & Out** ➔ Absen dari Dashboard atau dari mesin
6. **Review Attendance** ➔ Lihat log dari menu **View Attendance**

---

### 💡 Catatan

* User dengan **hak akses khusus** dapat melihat semua data absen.
* Karyawan biasa hanya dapat melihat dan melakukan absen sesuai dengan shift yang dijadwalkan.

