Commit Graph

34 Commits

Author SHA1 Message Date
Daeng Deni Mardaeni
4c6a6d8cea feat(holidaycalendar): implement full feature set for holiday calendar management
- Mengganti namespace model `HolidayCalendar` dari `Entities` ke `Models`.
- Menambahkan validasi izin untuk semua aksi CRUD dan ekspor pada `HolidayCalendarController`.
- Mengintegrasikan fitur izin pada tombol aksi (create, update, delete, export) di view `index.blade.php`.
- Mengupdate logika form view `create.blade.php` untuk mendukung pengelolaan izin dan action dinamis.
- Menambahkan class test `HolidayCalendarControllerTest` dengan pengujian lengkap mencakup:
  - Hak akses untuk membaca, membuat, memperbarui, menghapus, dan mengekspor data.
  - Validasi data saat penyimpanan/pembaruan.
  - Validasi respon HTTP untuk setiap aksi berdasarkan izin.
- Memastikan user tanpa izin akan menerima pesan atau pembatasan akses yang relevan (HTTP 403).
- Fitur ekspor CSV hanya dapat diakses oleh user dengan izin `basic-data.export`.
- Memperbaiki rendering tindakan pada data tabel di `index.blade.php` agar responsif terhadap izin user.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-17 11:34:12 +07:00
Daeng Deni Mardaeni
52b48263a2 feat(basicdata): tambah otorisasi berbasis peran dan pengujian pada BranchController
- Implementasi otorisasi berbasis peran untuk seluruh aksi di BranchController seperti index, create, store, edit, update, delete, dan export.
- Tambahan utilitas `getUser` untuk mendapatkan pengguna yang diautentikasi dan mempermudah pengecekan otorisasi.
- Semua aksi pada controller sekarang memeriksa izin pengguna sebelum melanjutkan:
  - `basic-data.read` untuk melihat data.
  - `basic-data.create` untuk membuat cabang baru.
  - `basic-data.update` untuk memperbarui data cabang.
  - `basic-data.delete` untuk menghapus data cabang.
  - `basic-data.export` untuk mengekspor data cabang.
- Penyesuaian pada view:
  - Tombol aksi seperti `Save`, `Delete Selected`, dan `Export to Excel` hanya tampil jika pengguna memiliki izin terkait.
- Tambahan pengujian (unit test) pada `BranchControllerTest` untuk memastikan logika otorisasi:
  - Pengguna dengan izin dapat melakukan aksi sesuai dengan perannya.
  - Pengguna tanpa izin mendapatkan respon 403 atau dicegah melakukan aksi tertentu.
- Update logika tombol aksi di datatables untuk mendukung pengecekan izin sebelum menampilkan opsi edit/hapus.
- Update respons JSON dalam aksi hapus tunggal dan hapus banyak untuk kejelasan struktur pesan.

Commit ini mengamankan BranchController dari akses tak sah dan meningkatkan fleksibilitas sistem terkait kendali peran dan izin.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-17 11:32:06 +07:00
Daeng Deni Mardaeni
32e620299b feat(currency): implement role-based access control, exports, and tests for currency management
- 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>
2025-05-17 11:28:17 +07:00
Daeng Deni Mardaeni
3a4c5bf4ca feat(basicdata): tambahkan helper untuk penghitungan hari kerja dan pembaruan format mata uang
- 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`.
2025-05-04 19:17:04 +07:00
Daeng Deni Mardaeni
9049075b0f feat(basicdata): tambahkan helper format_currency
- 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.
2025-04-27 19:08:41 +07:00
Daeng Deni Mardaeni
7742df5d67 fix(currency): perbaiki logika pagination dan pencarian
- 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.
2025-04-27 19:03:11 +07:00
Daeng Deni Mardaeni
1b5a5b59b6 feat(basicdata): tambahkan pemanggilan seeder untuk data dasar
- Menambahkan pemanggilan seeder untuk:
  - BranchesSeeder
  - CurrencySeeder
  - HolidayCalendarSeeder
2025-04-26 19:38:17 +07:00
Daeng Deni Mardaeni
996041d1dd feat(holiday_calendar): tambahkan seeder untuk data kalender libur
- Menambahkan seeder untuk mengisi tabel holiday_calendars dengan data libur nasional dan cuti bersama tahun 2025.
- Setiap entri mencakup tanggal, deskripsi, jenis libur, serta timestamp untuk created_at dan updated_at.
2025-04-26 19:38:12 +07:00
Daeng Deni Mardaeni
2341f202bf feat(currency): tambahkan seeder untuk data mata uang
- Menambahkan seeder baru untuk mengisi tabel currencies dengan data mata uang.
- Memperbarui daftar mata uang dengan simbol dan detail lainnya.
- Menggunakan Carbon untuk timestamp created_at dan updated_at.
2025-04-26 19:36:43 +07:00
Daeng Deni Mardaeni
1b7474131d feat(branches): tambahkan seeder untuk data cabang
- Menambahkan kelas BranchesSeeder untuk mengisi tabel branches.
- Menggunakan Carbon untuk menetapkan waktu pembuatan dan pembaruan.
- Memasukkan data cabang dengan atribut kode, nama, status, dan timestamp.
2025-04-26 19:35:40 +07:00
Daeng Deni Mardaeni
1b692215b8 feat(currency): tambahkan atribut simbol dan perbarui tampilan
- 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.
2025-04-26 19:34:44 +07:00
Daeng Deni Mardaeni
2e52155eda fix(branch): perbarui aturan validasi kode cabang
- 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.
2025-03-13 09:41:23 +07:00
Daeng Deni Mardaeni
6abea3a826 fix(export): perbaiki penggunaan model Branch pada ekspor cabang
- Mengubah namespace model Branch dari Modules\Lpj\Models\Branch
  menjadi Modules\Basicdata\Models\Branch
- Memastikan ekspor data cabang menggunakan model yang benar
2025-03-13 09:31:22 +07:00
Daeng Deni Mardaeni
58672dada3 fix(branch): perbaiki pesan konfirmasi penghapusan cabang
- Mengubah pesan konfirmasi dari 'User has been deleted.' menjadi 'Branch has been deleted.'
- Memastikan pesan yang ditampilkan sesuai dengan konteks penghapusan data cabang.
2025-03-13 09:06:48 +07:00
Daeng Deni Mardaeni
f8c6452bcf Perbarui atribut ikon pada menu Basic Data
- Menambahkan kelas `text-primary` pada atribut ikon di menu `Basic Data` dalam file `module.json`.
- Perubahan ini bertujuan untuk meningkatkan styling visual dengan warna ikon yang lebih menonjol (`text-primary`).
- Tidak ada logika atau fungsi lain yang terdampak oleh perubahan ini.
2024-12-22 16:15:27 +07:00
Daeng Deni Mardaeni
0891e11051 Tambahkan fitur hapus beberapa data hari libur
- 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.
2024-12-21 08:15:53 +07:00
Daeng Deni Mardaeni
9efafa6921 Tambahkan fitur hapus data mata uang secara batch
- 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.
2024-12-21 08:12:28 +07:00
Daeng Deni Mardaeni
ecdca382c4 Tambahkan fitur penghapusan banyak data cabang
- 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".
2024-12-21 08:07:45 +07:00
Daeng Deni Mardaeni
8ff24e84c8 Update jumlah default item per halaman pada tabel menjadi 10
Mengubah atribut `data-datatable-page-size` dari nilai default 5 menjadi 10 pada tabel di view `branch`, `currency`, dan `holidaycalendar`. Perubahan ini ditujukan untuk menampilkan lebih banyak data secara default di tiap tabel, sehingga meningkatkan pengalaman pengguna.
2024-12-21 05:30:07 +07:00
Daeng Deni Mardaeni
ed97ab4b5d Update peran pengguna di module.json
Menghapus peran "pemohon-ao", "pemohon-eo", dan "surveyor", serta menyederhanakan daftar ke peran "admin" pada beberapa bagian. Menambahkan peran "admin" sebagai pelengkap pada entitas dengan peran "administrator".
2024-12-18 14:58:32 +07:00
Daeng Deni Mardaeni
2120b3d079 Perbaiki rute dan nama variabel pada form dan aksi edit
Mengubah `holidayCalendar` menjadi `holiday` di variable form untuk konsistensi.
Juga memperbaiki rute `href` pada view index agar sesuai dengan rute yang benar.
2024-11-15 11:32:08 +07:00
Daeng Deni Mardaeni
83850273a8 Perbaiki duplikasi kode dalam migrasi
Menghapus duplikasi kode dalam fungsi `up` di file migrasi `create_holiday_calendars_table.php`. Kode yang ada sebelumnya memiliki nested `Schema::create` yang tidak diperlukan. Dengan perubahan ini, kode menjadi lebih jelas dan bersih tanpa adanya duplikasi yang membingungkan.
2024-11-15 10:12:09 +07:00
Daeng Deni Mardaeni
ec0fd90ed3 Add "Hari Libur" section in module.json
Menambahkan entri baru "Hari Libur" dalam module.json di bawah "basicdata.holidaycalendar". Entri ini hanya dapat diakses oleh peran "administrator".
2024-11-15 09:50:04 +07:00
Daeng Deni Mardaeni
f344d3ae9b Tambah fitur kalender hari libur
Menambahkan routing dan breadcrumbs untuk modul kalender hari libur. Ditambahkan HolidayCalendarController dengan metode index, create, store, edit, update, dan destroy, serta endpoints untuk datatables dan export.
2024-11-15 09:49:51 +07:00
Daeng Deni Mardaeni
ad2644f57e Tambah halaman untuk pembuatan dan daftar hari libur
Telah ditambahkan halaman baru untuk pembuatan (create.blade.php) dan daftar (index.blade.php) hari libur. Halaman pembuatan mencakup form untuk menambah atau mengedit hari libur, sementara halaman daftar mendukung fitur pencarian dan penghapusan data hari libur.
2024-11-15 09:49:34 +07:00
Daeng Deni Mardaeni
19b12dee55 Tambah HolidayCalendarController
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.
2024-11-15 09:49:21 +07:00
Daeng Deni Mardaeni
20bae06ab6 Tambah fitur ekspor kalender libur
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.
2024-11-15 09:49:08 +07:00
Daeng Deni Mardaeni
ed7553a200 Tambah HolidayCalendarRequest
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.
2024-11-15 09:48:54 +07:00
Daeng Deni Mardaeni
5a03ece927 Tambah model HolidayCalendar
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.
2024-11-15 09:48:43 +07:00
Daeng Deni Mardaeni
023626d791 Tambah migrasi baru untuk tabel "holiday_calendars"
Menambahkan file migrasi untuk membuat tabel "holiday_calendars" yang menyimpan informasi tanggal libur beserta deskripsi dan jenisnya (libur nasional atau cuti bersama). Tabel ini juga memiliki kolom untuk pencatatan waktu pembuatan, update, soft delete, serta pencatatan pengguna yang melakukan perubahan.
2024-11-15 09:48:33 +07:00
Daeng Deni Mardaeni
eecc4e6b95 Fix Breadcrumb and Router 2024-10-29 11:56:13 +07:00
putrakuningan
e2a40f9eb3 Update composer.json 2024-10-29 03:52:44 +00:00
Daeng Deni Mardaeni
a67bb63a62 Add Module Branch and Currency 2024-10-29 10:49:23 +07:00
Daeng Deni Mardaeni
750ee4aec4 initial commit 2024-10-29 07:38:29 +07:00