# Manual WD1 - Penggantian Dosen Karena Force Majeure

Dokumen ini menjelaskan cara kerja dan langkah operasional fitur **Force Majeure** di level **WD1** untuk penggantian:
- Pembimbing
- Penguji

## 1. Tujuan Fitur

Fitur ini dipakai saat dosen yang sudah ditetapkan tidak bisa melanjutkan tugas karena kondisi khusus, misalnya:
- Meninggal dunia
- Sakit berat
- Tugas belajar
- Pensiun
- Alasan force majeure lain

Sistem akan menjaga jejak riwayat penugasan lama dan membuat penugasan pengganti secara audit-able.

## 2. Prinsip Umum

1. Penugasan lama **tidak dihapus**.
2. Penugasan lama ditutup dengan:
   - `status = ENDED`
   - `end_reason = FORCE_MAJEURE`
3. Penugasan dosen pengganti dibuat sebagai assignment aktif.
4. Sistem mencatat approval/audit aksi penggantian force majeure.

## 3. Alur Penggantian Pembimbing (WD1)

### Lokasi Menu
- `WD1 > Pembimbing`
- URL: `/wd1/pembimbing`

### Langkah
1. Pilih proposal lalu klik tombol `Ganti` atau `Tetapkan`.
2. Di modal, aktifkan checkbox `Penggantian karena Force Majeure`.
3. Pilih `Alasan Force Majeure`.
4. Isi `Catatan` bila perlu.
5. Pilih pembimbing pengganti.
6. Klik `Simpan Penggantian Force Majeure`.

### Catatan Penting
- Untuk proposal yang sudah masuk tahap seminar/ujian (`SEMINAR_PROPOSAL`, `SEMINAR_HASIL`, `UJIAN_SKRIPSI`), mode force majeure **wajib** dipakai.
- Status proposal tahap berjalan tetap dipertahankan (tidak diturunkan ke tahap awal).
- SK Pembimbing terbaru diterbitkan sesuai proses saat simpan.

## 4. Alur Penggantian Penguji (WD1)

### Lokasi Menu
- `WD1 > Penguji Sempro`
- `WD1 > Penguji Semhas`
- `WD1 > Penguji Ujian`
- URL:
  - `/wd1/penguji-sempro`
  - `/wd1/penguji-semhas`
  - `/wd1/penguji-ujian`

### Langkah
1. Buka data mahasiswa, klik `Ubah Penguji` / `Tetapkan Penguji`.
2. Di modal, aktifkan checkbox `Penggantian karena Force Majeure`.
3. Pilih `Alasan Force Majeure`.
4. Isi `Catatan` bila perlu.
5. Pilih susunan penguji pengganti.
6. Klik `Simpan Penggantian Force Majeure`.

### Catatan Penting
- Jika jadwal sudah ditetapkan (`SCHEDULED`), penggantian penguji **wajib** mode force majeure.
- Saat penggantian pada kondisi terjadwal, state ujian tidak diturunkan ke state awal penetapan penguji.
- Sistem memberi info bahwa undangan perlu diterbitkan/cetak ulang oleh Prodi.

## 5. Dampak Data (Teknis)

### A. `lecturer_assignments`
- Assignment lama ditutup:
  - `status = ENDED`
  - `end_reason = FORCE_MAJEURE`
- Assignment baru pengganti dibuat `ACTIVE`.

### B. `proposal_approvals`
- Tercatat aksi:
  - `REPLACE_SUPERVISOR_FORCE_MAJEURE` (pembimbing)
  - `REPLACE_EXAMINER_FORCE_MAJEURE` (penguji)

### C. Dokumen
- Penggantian menghasilkan SK terbaru sesuai modul terkait.
- Untuk kasus penguji yang sudah terjadwal, undangan perlu diterbitkan ulang.

## 6. Checklist Setelah Penggantian

1. Pastikan dosen lama berstatus `ENDED` dengan `end_reason = FORCE_MAJEURE`.
2. Pastikan dosen baru masuk sebagai `ACTIVE`.
3. Pastikan SK terbaru terbuat.
4. Pastikan approval log aksi force majeure tercatat.
5. Jika jadwal sudah ada, informasikan Prodi untuk regenerasi undangan.

## 7. Kapan Tidak Pakai Force Majeure

Jangan gunakan force majeure untuk perubahan biasa (misalnya redistribusi beban tanpa kejadian luar biasa).  
Gunakan proses penetapan/ubah biasa selama belum masuk kondisi wajib force majeure.

