# 🕒 Overtime Management

Menu ini digunakan untuk mengelola **pengajuan lembur (Overtime)** oleh karyawan. Sistem ini mencakup proses pengajuan, persetujuan, pengelolaan data, serta hak akses berdasarkan role dan status lembur.

---

## 📤 Overtime Request

**Setiap karyawan** dapat mengajukan lembur melalui halaman **Dashboard** dengan cara:

1. Klik tombol **`Request Overtime`**.
2. Isi formulir pengajuan:
   - Tanggal & Jam Overtime
   - Alasan Lembur
   - Keterangan Tambahan (Opsional)
3. Submit untuk dikirim ke Approver.

> 💡 *Overtime yang sudah diajukan akan masuk ke daftar Overtime di halaman menu **Time Management → Overtime** dengan status `Pending`.*

overtime yang diinput langsung menghitung upah lembur
Perhitungan upah lembur:
Jika tipe overtimenya adalah Normal, maka
    untuk jam lembur kurang dari sama dengan 4 jam:
        Total amount = (upah lembur per jam * 1.5) ..
---

## 📋 List Data Overtime

Menu: `Time Management → Overtime`

Fitur ini menampilkan seluruh data pengajuan lembur oleh karyawan. Data yang tampil **difilter otomatis** berdasarkan role dan hak akses user:

- **Karyawan**: Hanya dapat melihat data overtime miliknya sendiri.

---

## ✏️ Edit & ❌ Delete Overtime

Karyawan dapat melakukan **Edit** dan **Hapus** pengajuan overtime dengan syarat:

- Status overtime masih **`Pending`**
- Belum ada aksi **approval**

> ⚠️ Setelah overtime di-approve, maka pengajuan tidak dapat diubah atau dihapus.

---

## 🔍 Detail Overtime

Setiap entry di list overtime memiliki link pada kolom **`Kode Overtime`**.

- Klik kode tersebut untuk membuka halaman **Detail Overtime**.
- Detail mencakup:
  - Informasi karyawan
  - Waktu pengajuan
  - Alasan lembur
  - Status & Riwayat Approval

---

## ✅ Approval Workflow

Overtime approval mengikuti alur:

1. **SPV / Atasan Langsung** melakukan approval pertama.
2. **HRD** melakukan final approval.

> ✅ Status akan berubah menjadi:
> - `Approved` jika lolos seluruh tahap
> - `Rejected` jika salah satu approver menolak

---

## 👨‍💼 List Data untuk User Approver

Menu: `My Approvals → Overtime`

User yang berperan sebagai **Approver** (SPV atau HRD) akan melihat list pengajuan yang:

- Masih berstatus `Pending`
- Menunggu tindakan approve / reject

Fitur yang tersedia untuk Approver:
- Tombol **`Approve`** dan **`Reject`**
<!-- - Komentar atau catatan saat approval -->

- **SPV/Manager/HRD/Approver**: Dapat melihat data bawahan sesuai hierarki dan struktur organisasinya.

---

## 📘 Tips & Best Practices

- 🧾 Selalu isi alasan lembur dengan detail dan jelas.
- 📆 Pastikan waktu lembur tidak tumpang tindih dengan shift kerja.
- 🔒 Hanya user dengan role akses `view seluruh data overtime` yang memiliki akses penuh terhadap semua data overtime.

---

## 🛠️ Developer Notes

- Data overtime disimpan dalam tabel `overtime_requests`
- Approval line ditentukan berdasarkan struktur organisasi (relasi `user → supervisor/approval line → HR`)
- Status yang tersedia: `Pending`, `Approved`, `Rejected`

---

> 📝 *Dokumentasi ini dibuat untuk mendukung pemahaman dan penggunaan fitur Overtime secara optimal di lingkungan kerja.* 

---

📝 **Terakhir diperbarui**: 19 Juni 2025
✍️ **Dokumentasi oleh**: Tim Development



