- Menambahkan kolom `parent_id` pada tabel `branches` dengan migrasi baru.
- Update model `Branch`:
- Menambahkan relasi `parent()` untuk mendapatkan cabang induk.
- Menambahkan relasi `children()` untuk mendapatkan anak cabang.
- Update `BranchController`:
- Menampilkan daftar cabang induk saat membuat atau mengedit cabang.
- Cek validasi agar cabang tidak bisa menjadi induk dirinya sendiri.
- Tambahkan larangan hapus cabang jika memiliki anak cabang, baik untuk hapus tunggal maupun multiple.
- Update validation rules pada `BranchRequest` untuk memastikan validitas `parent_id`.
- Update tampilan:
- Formulir pembuatan/edit cabang: Menampilkan dropdown untuk memilih cabang induk.
- Daftar cabang: Menampilkan kolom untuk cabang induk.
- Tambahkan test unit:
- Validasi relasi parent-child pada penyimpanan dan pembaruan cabang.
- Melarang penghapusan cabang yang memiliki anak.
- Memastikan perilaku relasi parent-child sesuai ekspektasi.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan validasi Role-based Access Control (RBAC) untuk tindakan CRUD mata uang:
1. Validasi untuk `read`, `create`, `update`, dan `delete` pada CurrencyController.
2. Menambahkan metode `getUser()` untuk memperoleh user terautentikasi.
3. Menangani respon dengan HTTP status `403 Forbidden` jika tidak memiliki izin.
- Memperbaiki rute dan logika `store` serta `update`:
1. Validasi terhadap atribut `code` disesuaikan dengan skenario update (menggunakan ID).
2. Menambahkan metode `authorize()` pada CurrencyRequest untuk memastikan izin aksi sesuai role (CRUD spesifik).
- Perubahan pada view blade:
1. Menambahkan validasi izin sebelum rendering tombol `Tambah`, `Hapus`, `Export`, dan `Edit`.
2. Menambahkan logika dinamis untuk izin terkait.
- Tambahan logika pada export ke Excel:
1. Validasi izin untuk `basic-data.export` sebelum mengunduh file.
- Test Feature dengan PHPUnit:
1. Menambahkan test coverage untuk tindakan CRUD, validasi izin role, dan ekspor data.
2. Menggunakan database segar dengan RefreshDatabase.
- Refactor penggunaan model Currency di `CurrencyExport` agar sesuai namespace setelah modifikasi.
- Respon di `destroy` dan `deleteMultiple` dikembalikan dalam format JSON untuk standardisasi.
- Memastikan test mencakup berbagai skenario:
1. User dengan izin vs tanpa izin.
2. Operasi data valid dan tidak valid.
Penyesuaian ini meningkatkan keamanan dan manajemen peran pada modul Currency, serta memastikan pengujian yang mendalam terhadap semua fitur baru.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan kolom simbol pada tabel mata uang di halaman index.
- Menambahkan input simbol pada form pembuatan mata uang.
- Memperbarui aturan validasi untuk simbol pada CurrencyRequest.
- Memperbarui model Currency untuk menyertakan atribut simbol.
- Memperbarui migrasi untuk menambahkan kolom simbol pada tabel currencies.
- Memperpanjang panjang maksimum kode cabang dari 3 menjadi 10 karakter.
- Menggunakan aturan unik yang mempertimbangkan kolom deleted_at untuk menghindari konflik dengan cabang yang dihapus.
Membuat file request baru HolidayCalendarRequest untuk validasi input pada form penambahan kalender liburan. Request ini memeriksa keabsahan data tanggal, deskripsi, dan tipe yang diperbolehkan ('national_holiday' atau 'collective_leave'). Pesan kustom ditambahkan untuk menangani kesalahan validasi.