Jadwal Karyawan & Timesheet Kalender (Employee Timesheet)
Menu Timesheet (/schedule_employee) adalah pusat operasional pengelolaan jadwal presensi harian seluruh karyawan berbasis kalender matriks (Interactive Calendar Grid). Melalui halaman ini, HR Administrator dapat memantau ketersediaan jadwal, memodifikasi jam kerja per tanggal secara fleksibel (Drag-and-Drop Shift Reordering), menetapkan cuti langsung dari sel kalender, serta melakukan sinkronisasi otomatis (Generate Ulang Jadwal).
1. Antarmuka Kontrol & Toolbar Timesheet
Navigasi ke menu Jadwal Kerja > Timesheet:

Komponen Kontrol Utama:
- Kartu Ringkasan Ketersediaan Jadwal (Availability Summary Cards):
- Total Karyawan: Jumlah seluruh personil aktif dalam cakupan filter.
- Terjadwal Penuh: Rasio personil yang telah memiliki alokasi jam kerja lengkap sepanjang rentang tanggal aktif.
- Belum Terjadwal: Jumlah personil yang masih memiliki hari kerja kosong tanpa shift.
- Pemilih Periode Fleksibel (Multi-Mode Date Picker):
- Mendukung mode pemilihan Bulan Penuh (Month View), Rentang Tanggal Kustom (Custom Date Range), atau Hari Tunggal (Single Date).
- Tombol panah navigasi cepat untuk berpindah ke periode bulan sebelumnya atau berikutnya.
- Toggle Mode Tampilan (Schedule View Switcher):
- Off (Default / Shift View): Sel kalender menampilkan kode/nama Shift harian (contoh:
Pagi,Malam,Normal). - On (Schedule View): Sel kalender beralih menampilkan nama Master Pola Jadwal dasar karyawan (contoh:
Senin - Jumat 5 Hari Kerja).
- Off (Default / Shift View): Sel kalender menampilkan kode/nama Shift harian (contoh:
- Bilah Filter Dinamis (Filter Toolbar):
- Aktifkan sakelar "Tampilkan Filter" untuk menyaring matriks berdasarkan Kantor Cabang, Departemen, Master Jadwal, Jabatan, atau Pencarian Nama/PIN.
- Tombol Aksi Operasional:
- Generate Ulang: Menerapkan kembali pola master jadwal ke seluruh sel tanggal kerja karyawan.
- Impor: Mengunggah penugasan shift massal dari berkas spreadsheet Excel.
- Ekspor: Mengunduh rekaman matriks jadwal kalender aktif ke format Excel (.xlsx).
2. Tampilan Matriks Kalender (Timesheet Grid)

Penjelasan Indikator Visual Sel Kalender (Sesuai Legenda Sistem):
-
Badge Jam Kerja (Shift Badge): Warna badge pada sel secara otomatis membedakan Tipe Shift yang berlaku:
- Badge Hijau / Toska (Fixed Shift): Jam kerja reguler dengan jam masuk dan pulang tetap (contoh:
NORMAL,PAGI,SIANG). - Badge Oranye / Kuning (Flexible Shift): Jam kerja fleksibel dengan pemenuhan target durasi kerja harian.
- Badge Biru / Indigo (Interval Shift): Jam kerja berbasis akumulasi interval scan.
- Ikon Jam Lembur: Jika shift berstatus shift lembur, badge menampilkan ikon lembur kecil di sisi kiri kode shift.
- Badge Hijau / Toska (Fixed Shift): Jam kerja reguler dengan jam masuk dan pulang tetap (contoh:
-
Status Hari Libur & Non-Kerja (Weekend / Holiday / No Work):
- Background Kolom Abu-Abu (Weekend / Off Day): Menandakan hari istirahat mingguan terjadwal (Sabtu/Minggu atau hari libur siklus kerja).
- Ikon Pita Merah (Holiday): Menandakan tanggal tersebut bertepatan dengan Hari Libur Nasional atau Libur Khusus Perusahaan.
- Ikon Titik (Today): Indikator penunjuk tanggal hari ini (current active date).
-
Indikator Cuti & Izin (Leave Stripe Bar): Status cuti atau izin direpresentasikan oleh garis vertikal berwarna (Stripe Bar) di sisi kiri sel tanggal:
- Garis Ungu / Lavender (Company Leave): Cuti kebijakan internal perusahaan (contoh: Cuti Tahunan).
- Garis Merah / Pink (Government Leave): Cuti bersama atau hari libur ketetapan pemerintah.
- Garis Hijau / Toska (Personal Leave): Izin urusan pribadi atau izin sakit (Sick Leave).
- Tooltip Rincian: Arahkan kursor (hover) ke sel tanggal untuk melihat rincian nama cuti, jenis cuti, serta shift terkait.
3. Interaksi Edit Shift Harian (Double-Click Cell)
Untuk mengubah atau menyusun kombinasi shift pada suatu tanggal kerja tertentu, klik dua kali (Double Click) pada sel tanggal karyawan yang dituju. Jendela popup Pengaturan Harian (Daily Shift Setting) akan terbuka:

Opsi Konfigurasi Harian:
- Tandai sebagai Hari Libur (Force Mark as Holiday): Mengubah status tanggal kerja menjadi hari libur non-kerja (Off) tanpa menghapus master jadwal dasar.
- Hitung Lembur pada Hari Libur (Overtime on Holiday): Mengaktifkan penghitungan lembur otomatis jika karyawan melakukan presensi pada hari libur tersebut.
- Multi Shift / Auto Shift:
- Nonaktif (Multi Shift): Karyawan ditugaskan bekerja pada beberapa shift yang berbeda dalam 1 hari yang sama secara berurutan.
- Aktif (Auto Shift): Sistem secara cerdas mencocokkan jam kedatangan karyawan dengan shift yang paling sesuai dari daftar shift terpilih.
- Multi Auto Shift: Memungkinkan sistem mengenali lebih dari satu siklus shift otomatis dalam rentang 24 jam.
Menyusun & Mengurutkan Shift (Drag-and-Drop):
- Pilih Shift: Centang satu atau beberapa shift dari daftar shift yang tersedia di bagian bawah popup.
- Ubah Urutan Prioritas (Reorder): Klik dan tahan ikon titik pegangan (
::), lalu geser (Drag & Drop) baris shift ke atas atau ke bawah untuk menentukan prioritas urutan jam kerja. - Klik di luar popup (Backdrop Click) untuk menyimpan perubahan. Sel kalender akan otomatis terupdate.
4. Menetapkan Cuti & Izin Langsung (Right-Click Cell)
HR Administrator dapat langsung menetapkan cuti atau izin karyawan tanpa harus berpindah ke menu permohonan. Klik kanan (Right Click) pada sel tanggal kerja yang diinginkan untuk membuka popup Ajukan Cuti / Izin:

Langkah Penetapan Cuti:
- Pencarian & Pemilihan Kategori Cuti:
- Sistem menampilkan seluruh daftar cuti yang dapat diakses oleh karyawan beserta indikator sisa kuota (contoh:
0/12 Hari,1 Tahunsiklus reset). - Pilih jenis cuti yang ingin diberikan (contoh: Cuti Tahunan).
- Sistem menampilkan seluruh daftar cuti yang dapat diakses oleh karyawan beserta indikator sisa kuota (contoh:
- Tentukan Rentang Tanggal (Leave Date Range):
- Tentukan tanggal mulai dan tanggal selesai pengambilan cuti.
- Catatan Permohonan (Note):
- Tambahkan keterangan atau alasan cuti (opsional).
- Validasi Kuota Otomatis:
- Jika jumlah hari cuti yang dipilih melebihi sisa kuota karyawan, sistem akan memunculkan dialog konfirmasi peringatan kuota minus sebelum mengizinkan penyimpanan.
- Simpan: Klik tombol "AJUKAN CUTI". Sel tanggal pada matriks kalender akan seketika berubah menampilkan label cuti.
- Membatalkan / Menghapus Cuti: Klik kanan kembali pada sel cuti yang telah aktif, lalu klik ikon Sampah (Trash Icon) berwarna merah di sudut kanan bawah popup.
5. Fitur Generate Ulang Jadwal (Regenerate Schedule)
Fitur Generate Ulang digunakan untuk menerapkan ulang pola dari Master Jadwal ke sel-sel kalender (misalnya setelah menambahkan jadwal kerja baru, mengubah pola rotasi shift, atau memasukkan karyawan baru):
- Pada toolbar timesheet, klik tombol Generate ulang.
- Dialog konfirmasi akan muncul:

Dua Opsi Eksekusi pada Dialog Konfirmasi:
- 1. Tombol "Simpan Perubahan" (Save Changes):
- Mengisi tanggal-tanggal yang masih kosong sesuai pola Master Jadwal aktif.
- Mempertahankan modifikasi manual: Seluruh perubahan shift yang telah diedit secara manual oleh HR Administrator pada kalender tidak akan ditimpa atau dihapus.
- 2. Tombol "Generate Ulang" (Regenerate):
- Mengembalikan seluruh tanggal kerja ke bentuk baku murni sesuai Master Jadwal dasar.
- Seluruh pengubahan shift manual harian akan direset ulang mengikuti alokasi master jadwal karyawan.
- Proteksi Cuti & Izin: Seluruh tanggal yang telah memiliki status Cuti atau Izin resmi yang disetujui dijamin 100% aman dan tidak akan terhapus oleh kedua opsi di atas.
6. Impor & Ekspor Jadwal Timesheet
Impor Jadwal via Excel (.xlsx):
- Klik tombol Impor pada toolbar.
- Unduh template spreadsheet resmi yang disediakan oleh sistem.
- Isi kode shift untuk masing-masing PIN karyawan pada kolom tanggal yang sesuai.
- Unggah kembali berkas Excel ke sistem untuk memproses penugasan jadwal secara instan.
Ekspor Matriks Jadwal:
- Atur rentang periode dan filter karyawan yang ingin diunduh.
- Klik tombol Ekspor.
- Sistem akan menghasilkan berkas Excel berformat tabel matriks lengkap yang siap dicetak atau diintegrasikan ke laporan operasional departemen.