- 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 helper `workingDays` untuk menghitung jumlah hari kerja antara dua tanggal.
- Menambahkan helper `holidays` untuk mendapatkan daftar tanggal libur.
- Memperbarui fungsi `format_currency` menjadi `currencyFormat` dengan menambahkan dokumentasi yang lebih jelas.
- Mengubah format desimal mata uang IDR menjadi 2 desimal di `CurrencySeeder`.
- Menambahkan file `HolidayCalendar.php` ke dalam daftar autoload di `module.json`.
- Menambahkan proses truncate sebelum insert data di seeder `CurrencySeeder`.
- Menambahkan file helper `Currency.php` untuk format mata uang.
- Menyediakan fungsi `format_currency` yang mendukung parameter angka dan kode mata uang.
- Memperbarui `module.json` untuk memuat file helper secara otomatis.
- Ubah perhitungan jumlah halaman untuk menggunakan jumlah record yang difilter.
- Sesuaikan pengambilan nomor halaman saat ini dari request.
- Ganti event listener pencarian dari 'input' menjadi 'change' untuk meningkatkan performa.
- Tambahkan pemanggilan fungsi untuk mengatur ulang halaman ke 1 saat pencarian dilakukan.
- 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.
- Mengubah namespace model Branch dari Modules\Lpj\Models\Branch
menjadi Modules\Basicdata\Models\Branch
- Memastikan ekspor data cabang menggunakan model yang benar
- Menambahkan endpoint `deleteMultiple` di HolidayCalendarController untuk menghapus beberapa data hari libur sekaligus.
- Menambahkan tombol "Delete Selected" di halaman index holiday calendar, yang terlihat hanya jika ada data yang dipilih.
- Implementasi logika JavaScript untuk menangani pemilihan baris, visibilitas tombol, dan penghapusan data dengan AJAX.
- Memperbarui file `web.php` untuk menambahkan rute POST baru `delete-multiple` guna mendukung fitur ini.
- Menambahkan endpoint `deleteMultiple` pada CurrencyController untuk menghapus beberapa data secara bersamaan.
- Memperbarui tampilan index mata uang untuk mendukung fungsi hapus batch, termasuk tombol "Delete Selected".
- Menambahkan logika pada JavaScript untuk menangani penghapusan batch menggunakan AJAX.
- Memperbarui visibilitas tombol hapus berdasarkan checkbox yang dipilih pada tabel.
- Menambahkan route baru untuk endpoint `deleteMultiple` pada BranchController.
- Update BranchController dengan fungsi `deleteMultiple` untuk menghapus banyak data cabang berdasarkan ID yang diterima.
- Menambahkan tombol "Delete Selected" di halaman cabang untuk memulai proses penghapusan.
- Menambahkan fungsi JavaScript untuk menangani seleksi data, konfirmasi penghapusan menggunakan SweetAlert, dan pengiriman data menggunakan Ajax.
- Memperbarui tampilan untuk mendukung penghapusan multiple dengan kontrol visibilitas tombol "Delete Selected".
Menambahkan controller baru HolidayCalendarController untuk mengelola kalender liburan. Fitur yang disertakan: create, read, update, delete, pengelolaan data dengan pagination dan sorting, serta ekspor data ke format Excel.
Menambahkan kelas `HolidayCalendarExport` yang mengimplementasikan berbagai antarmuka dari Maatwebsite Excel untuk mendukung ekspor data kalender libur. Data yang diekspor mencakup ID, tanggal, deskripsi, tipe, dan tanggal pembuatan serta pembaruan dengan format kolom yang sesuai.
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.
Menambahkan model HolidayCalendar untuk menangani kalender liburan di modul Basicdata. Model ini dilengkapi dengan atribut yang mass assignable seperti 'date', 'description', dan 'type', serta pengaturan untuk casting atribut 'date' sebagai tipe tanggal.