## Ringkasan
Melakukan perbaikan pada helper format Rupiah, akses role user, validasi data MIG, serta penyesuaian tampilan laporan dan dokumentasi.
## Perubahan Detail
### 🔧 Helper Function
**app/Helpers/Lpj.php**:
- Menambahkan parameter opsional `withSymbol` pada fungsi `formatRupiah()` untuk kontrol simbol Rp
- Menambahkan handling untuk menghapus titik (.) dari input number sebelum proses
- Memperbaiki return value untuk null/empty string sesuai parameter `withSymbol`
- Mengganti `str_pad()` dengan `sprintf()` untuk generate random number (lebih efisien)
### 🛠️ Service Layer
**app/Services/PreviewLaporanService.php**:
- Memperbaiki validasi data MIG dengan menambahkan pengecekan `is_mig` flag
- Menambahkan null safety pada property `mig_mst_lpj_tot_nilai_pasar`
- Memperbaiki kondisi logic untuk memo dan validasi nilai pasar
### 🎨 View Components
**resources/views/component/print-out-dokument.blade.php**:
- Memperbaiki syntax Blade dari `@isset` menjadi `isset()` yang lebih proper
**resources/views/debitur/components/debitur.blade.php**:
- Memperbaiki role checking dari `hasRole()` menjadi `hasAnyRole()` untuk multiple roles
**resources/views/debitur/index.blade.php**:
- Menambahkan role 'admin' pada kondisi edit dan delete actions
- Memperbaiki permission checking untuk administrator dan admin
**resources/views/laporan/index.blade.php**:
- Menyederhanakan logic tombol laporan dan resume
- Menghapus logic role-based yang kompleks untuk tombol laporan
- Memperbaiki route URL untuk print-out laporan
- Menghapus function `generateLaporanButton()` yang tidak digunakan
**resources/views/penilai/components/lpj-sederhana-standar.blade.php**:
- Menambahkan role 'penilai' pada permission tombol simpan
**resources/views/penilai/components/print-out-sederhana.blade.php**:
- Memperbaiki tampilan data dokumen dengan menambahkan kolom nomor dokumen
- Mengganti `number_format()` dengan `formatRupiah()` untuk konsistensi format
- Menambahkan fallback untuk data tanah dan bangunan ketika `npw_tambahan` tidak tersedia
- Memperbaiki perhitungan total nilai pasar wajar dengan proper parsing
- Memperbaiki format tampilan nilai likuidasi
- Memperbaiki struktur HTML tabel untuk dokumentasi
**resources/views/penilai/components/signature-approval.blade.php**:
- Memperbaiki route dan parameter untuk approval signature
**resources/views/permohonan/index.blade.php**:
- Menambahkan role 'admin' pada permission actions
Ringkas: perluas akses untuk peran admin , rapikan alur status permohonan/pembayaran/SPK, pindahkan sumber LPJ ke relasi penilai, perbaiki parsing/formatting rupiah, dan tambah konten cetak “Catatan yang Perlu Diperhatikan”.
- Perizinan & akses
- Izinkan admin melewati filter cabang pada listing Debitur dan Permohonan.
- Tambah peran admin pada konfigurasi module.json di beberapa menu/fitur.
- Izinkan admin membuat Debitur dan mengakses aksi yang sebelumnya eksklusif untuk administrator dan pemohon-ao .
- Alur bisnis & status
- Ubah status setelah proses pembatalan/penanganan pembayaran dari done menjadi proses-laporan agar konsisten dengan alur pelaporan.
- Nonaktifkan blokir navigasi saat status proses-laporan di PenilaiController (redirect/JSON error dikomentari) agar proses lanjutan tetap bisa diakses bila diperlukan.
- Setelah generate SPK, set Permohonan.status dan PenawaranTender.status menjadi registrasi-final untuk menandai finalisasi registrasi.
- Pada pembuatan permohonan, jika pengguna admin , tetapkan status = preregister untuk proses pra-registrasi.
- Hapus set default branch_id dari PermohonanRequest sehingga pengisian cabang dilakukan eksplisit melalui form (terutama untuk admin).
- Data LPJ & referensi relasi
- Sumber data LPJ dipindah dari permohonan->penilaian->lpj ke permohonan->penilai->lpj baik di controller ( PenilaianController ) maupun view ( penilaian/otorisator/show.blade.php ) untuk menyesuaikan struktur relasi terbaru.
- Dokumen pembayaran
- Ubah cara deteksi “Bukti Bayar” dari documents menjadi dokumenjaminan dan ambil detail berdasarkan name = 'Bukti Bayar' , lalu gunakan dokumen_jaminan yang terenkode JSON sebagai sumber pemrosesan berikutnya.
- Pada UI approval pembayaran, benahi rendering nominal_bayar (hindari pemutusan baris) dan tampilkan tombol otorisator jika status_bayar !== 'sudah_bayar' || !approve_bayar .
- UI & formatting rupiah
- Perbaiki fungsi calculateTotal() pada form-penilai.blade.php agar parsing angka mendukung pemisah ribuan titik dan desimal koma, serta formatting konsisten dengan id-ID .
- Aktifkan kembali fallback tampilan status utama di penilai/index.blade.php .
- Tambahkan blok “Catatan yang Perlu Diperhatikan” pada print-out-sederhana.blade.php , mendukung input string/array dan memformat poin dengan awalan “- ”.
Perubahan berkas (ringkas):
- app/Http/Controllers/DebitureController.php : tambah peran admin pada pengecualian filter cabang.
- app/Http/Controllers/PembayaranController.php : set status = 'proses-laporan' dalam proses terkait pembayaran.
- app/Http/Controllers/PenilaiController.php : longgarkan blokir saat proses-laporan (redirect/JSON error dikomentari).
- app/Http/Controllers/PenilaianController.php : gunakan permohonan->penilai->lpj untuk menghitung NPW.
- app/Http/Controllers/PermohonanController.php :
- set status = 'preregister' untuk user admin saat create,
- tambah peran admin pada pengecualian filter cabang,
- ubah pencarian “Bukti Bayar” ke dokumenjaminan dan gunakan dokumen_jaminan (JSON).
- app/Http/Controllers/SpkController.php : set status = 'registrasi-final' pada Permohonan dan PenawaranTender setelah generate SPK.
- app/Http/Requests/PermohonanRequest.php : hilangkan set default branch_id .
- module.json : tambahkan admin pada beberapa daftar roles .
- resources/views/component/form-penilai.blade.php : dukungan parsing/formatting rupiah dengan pemisah lokal.
- resources/views/debitur/components/debitur.blade.php : perluas akses cabang untuk admin di form Debitur.
- resources/views/debitur/index.blade.php : izinkan admin membuat Debitur.
- resources/views/pembayaran/approval.blade.php : perbaiki render nominal dan visibilitas tombol otorisator.
- resources/views/penilai/components/print-out-sederhana.blade.php : tambah bagian “Catatan yang Perlu Diperhatikan”.
- resources/views/penilai/index.blade.php : gunakan data.status sebagai fallback tampilan status.
- resources/views/penilaian/otorisator/show.blade.php : konsisten gunakan permohonan->penilai->lpj .
- resources/views/permohonan/form.blade.php : penataan ulang kelas Tailwind dan penambahan field Cabang untuk administrator / admin .
Ringkasan:
- Menambahkan halaman hasil inspeksi dan tampilan cetak laporan.
- Mengekstrak komponen detail lokasi ke partial baru agar reusable.
- Menambahkan null-safe access dan perbaikan binding data di view.
- Merapikan tombol cetak dan navigasi agar konsisten antar halaman.
Perubahan utama:
1. activitydetail.blade.php → ubah tombol print jadi route, tambah null-safe user/branch.
2. detail-lokasi.blade.php (baru) → komponen reusable untuk detail lokasi dengan formatLabel & tanggal.
3. form-penilai.blade.php → refactor luas menggunakan match, hapus fungsi debug & Swal loading.
4. print-out-dokument.blade.php → gunakan partial lpj::component.detail-lokasi untuk detail lokasi.
5. show-laporan-inspeksi.blade.php (baru) → tab 'Laporan' & 'Hasil Inspeksi' + tombol cetak dan back.
6. print-out-sederhana / print-out-standar → penyesuaian tampilan & binding data.
7. signature-approval.blade.php → perbaikan layout area tanda tangan.
8. surveyor/components/* → normalisasi tampilan, validasi gambar, dan penyelarasan fakta/lingkungan.
9. routes/web.php → tambah dan ubah rute untuk laporan inspeksi dan cetak laporan.
Catatan:
- Tidak ada perubahan query database; semua modifikasi bersifat tampilan.
- Logging tambahan untuk observabilitas proses render laporan.
- Izinkan penghapusan dokumen jaminan untuk status 'order'/'revisi'
- Longgarkan guard admin sementara (comment response 403) pada aksi hapus
- Tambah transaksi DB saat hapus dokumen (begin/commit/rollback)
- Sesuaikan filter daftar pembayaran; hilangkan blok where `belum_bayar`/`jenis_penilaian=1`
- Tambah metode `handleUpload()` dengan `storeAs` ke disk `public`
- Rap-penilai: tambah tombol Back; peran 'penilai' diizinkan menyimpan
- Authorization: rapikan kelas Tailwind dan validasi keterangan saat revisi
- Persetujuan penawaran: gunakan optional chaining saat render nominal bayar
- Surveyor/tanah: gunakan `detail` alih-alih `details` saat hitung luas
- Komponen lampiran-dokumen: perbaiki atribut `textarea` dan penataan id
- Form Penilai: hapus spasi ganda di class CSS input currency/currency-format
- Konsistensi class Tailwind: gunakan "w-full currency" & "w-full currency-format"
- Hapus console.log tidak perlu, tambah debug log untuk parsing luas
- Optimasi parsing input luas dengan parseFloat + regex sanitasi numerik
- Dashboard: tambahkan pembatasan akses berdasarkan role (!penilai, !surveyor, !pemohon-ao, !pemohon-eo)
- Perbaiki struktur HTML & urutan class Tailwind (grid, flex, spacing, alignment)
- Optimalkan layout header, stats cards, & tabel dengan class yang konsisten
- Hapus class CSS redundan & perbaiki konsistensi penamaan
- Tingkatkan keamanan & UX dengan role-based access + struktur HTML lebih maintainable
- Reformat kode untuk meningkatkan keterbacaan, termasuk penghapusan spasi kosong yang tidak diperlukan.
- Penyesuaian indentasi dan konsistensi format import pada `PermohonanController`.
- Optimasi fungsi data handling pada fungsi-fungsi terkait permohonan seperti `update`, `destroy`, `dataForDatatables`, dan `dataForAuthorization`.
- Penyesuaian pemetaan data output dalam format JSON pada datatables.
- Penghapusan elemen komentar yang tidak relevan atau redundant.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Ubah metode akses nilai keterangan dari `keterangan.value()` menjadi `keterangan.value` untuk memperbaiki kesalahan dalam validasi form.
- Pastikan pesan kesalahan ditampilkan dengan benar jika keterangan tidak diisi.
- Menambahkan opsi "tidak_bayar" pada status bayar.
- Memperbarui logika validasi untuk status bayar di form permohonan.
- Mengubah logika tampilan laporan berdasarkan status bayar.
- Memperbarui migrasi untuk mengubah kolom status bayar di tabel permohonan.
- Menambahkan kondisi untuk menampilkan tombol "Tambah Permohonan" hanya untuk pengguna dengan peran 'administrator' dan 'pemohon-ao'.
- Memperbaiki indentasi dan format HTML untuk tabel permohonan.
- Mengoptimalkan logika untuk menampilkan aksi berdasarkan status permohonan dan peran pengguna.
- Memperbaiki penanganan event input untuk pencarian data.
- Tambahkan atribut otorisasi pada model pembatalan.
- Perbarui tampilan untuk menampilkan status pembatalan yang benar.
- Perbaiki logika validasi pada form otorisasi.
- Ubah path pada module.json untuk konsistensi.
- Menambahkan file konfigurasi VCS untuk Git.
- Menambahkan pengaturan tema material untuk proyek.
- Menambahkan konfigurasi PHP dan alat analisis statis.
- Menghapus file .DS_Store yang tidak perlu.
- Mengubah logika penentuan tanggal saat ini untuk mematuhi aturan yang berlaku.
- Menambahkan tampilan baru untuk LPJ sederhana dan standar.
- Memperbaiki penamaan rute dari 'standard' menjadi 'standar' untuk konsistensi.
- Memperbaiki akses data debitur dengan menggunakan optional chaining.
- Memperbaiki masalah yang menyebabkan kegagalan saat mengupload lampiran.
- Menambahkan validasi untuk memastikan format file yang diupload sesuai.
- Meningkatkan respons server untuk memberikan informasi yang lebih jelas kepada pengguna.
- Menambahkan registrasi_catatan ke dalam tampilan keterangan pada form permohonan.
- Memperbarui logika render keterangan di index untuk menyertakan registrasi_catatan jika ada.
- Mengubah validasi 'status_bayar' dari 'required' menjadi 'nullable'.
- Menambahkan ID wrapper untuk 'status_bayar' di form.
- Menyembunyikan atau menampilkan wrapper 'status_bayar' berdasarkan kondisi tertentu.
- Memperbaiki kesalahan dalam format laporan LPJ
- Menambahkan informasi yang hilang pada paparan SO
- Memperbaiki struktur call report untuk kejelasan
- Tambahkan optional chaining pada akses nama debitur untuk mencegah error jika data debitur tidak ada.
- Perbarui beberapa bagian kode untuk menggunakan debitur dengan aman saat menghapus dan menyetujui jadwal kunjungan.
- Mengubah parameter yang dikirim ke fungsi surveyorRescheduleJadwalSurvey menjadi string
- Memastikan data yang dikirim tidak mengalami kesalahan format
- Mengubah cara pengiriman catatan ditolak dengan menggunakan JSON.stringify.
- Memastikan catatan ditolak dapat diparse kembali di fungsi surveyorRescheduleJadwalSurvey.
- Mengubah pemanggilan dokumen dari $permohonan->debiture->documents menjadi $permohonan->documents di beberapa file.
- Memastikan konsistensi dalam akses data dokumen di seluruh aplikasi.
- Menghapus bagian yang menampilkan nilai NJOP dari beberapa tampilan:
- detail-jaminan.blade.php
- print.blade.php
- show.blade.php
- Memperbaiki tampilan dengan mengurangi elemen yang tidak relevan.
- Menambahkan logika untuk menampilkan pesan "Lengkapi Aset Jaminan" ketika dokumen belum lengkap di tampilan status.
- Memperbaiki query untuk menyertakan relasi 'documents' dalam data Permohonan.
- Menambahkan border dan background pada elemen card dengan class `border-agi-100` dan `bg-agi-50`.
- Perubahan berlaku di berbagai file blade untuk meningkatkan konsistensi UI.
- Menambahkan controller, view, dan route untuk mengelola pembatalan permohonan.
- Memperbarui tampilan daftar permohonan dan menyesuaikan elemen UI terkait pembatalan.
- Integrasi logika validasi dan penyimpanan data pembatalan.
- Membuat endpoint datatable untuk kelola data pembatalan permohonan.
- Menambahkan model, migration, dan relasi untuk tabel pembatalan permohonan.
- Mengubah fungsi delete menjadi pembatalan permohonan dengan konfirmasi pengguna.
- Menambahkan route baru untuk form dan proses pembatalan permohonan.
- Menyediakan form input alasan dan file pendukung untuk pembatalan permohonan.
- Memperbarui tampilan, fungsi controller, dan breadcrumbs terkait pembatalan permohonan.
- Memperbaiki penulisan "bagde-outline" menjadi "badge-outline" di beberapa case pada file `index.blade.php`.
- Menghindari potensi kesalahan tampilan akibat typo pada class CSS.
- Mengganti penggunaan `if-else` dengan `switch-case` untuk menyederhanakan logika.
- Menambahkan kode spesifik (`code`) untuk setiap tipe tujuan penilaian.
- Menambahkan badge baru untuk beberapa tipe tujuan penilaian dengan desain dan warna spesifik.
- Menambahkan badge dengan warna berbeda untuk setiap jenis tujuan penilaian (baru, revaluasi aset, lainnya).
- Meningkatkan kejelasan tampilan data di halaman permohonan untuk mempermudah identifikasi.
- Mengubah `data-datatable-page-size` dari 5 menjadi 10 di berbagai file Blade.
- Perubahan ini bertujuan untuk menampilkan lebih banyak data di setiap halaman tabel untuk meningkatkan pengalaman pengguna.
Mengganti field 'attachment' menjadi 'dokumen' pada model Permohonan dan mengupdate referensi terkait di view dan service. Juga menambahkan dukungan multipart/form-data pada form. Perubahan ini memperbaiki manajemen file yang diunggah dan memastikan integritas data terlindungi saat memperbarui permohonan.
Tambahkan kondisi pengecekan apakah tombol "revisi" ditekan saat memvalidasi pengunggahan file revisi. Ini memastikan pesan kesalahan muncul hanya jika pengguna mencoba mengirimkan tanpa mengunggah file revisi ketika tombol "revisi" ditekan.