- 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
- Menambahkan kolom biaya ke seluruh alur Nilai Plafond (model, request, controller, views, export, dan migrasi)
- Update model NilaiPlafond agar field biaya bisa di-mass assign ($fillable)
- Tambah validasi baru 'biaya' (nullable|numeric|min:0) di NilaiPlafondRequest
- Terapkan transaksi DB (beginTransaction, commit, rollback) pada store/update/destroy di controller
- Tambahkan kolom biaya ke view create, edit, dan datatable index dengan format Rupiah dan tooltip nilai mentah
- Tambah header & mapping kolom biaya di NilaiPlafondExport agar muncul di hasil export Excel
- Tambah migrasi kolom biaya bertipe decimal(15,2) nullable dengan rollback support
- Tambahkan logging detail (Log::info & Log::error) di setiap proses utama controller
- Pastikan pencarian kolom biaya pada datatables menggunakan CAST ke TEXT untuk kompatibilitas PostgreSQL
- Menambahkan auto-fill nominal_bayar dengan nilai biaya_final pada create persetujuan
- Memperbaiki query datatables dengan filter status penawaran lebih spesifik
- Menambahkan whereHas untuk memastikan hanya status 'persetujuan-penawaran' yang ditampilkan
- Menambahkan preview file upload (persetujuan_penawaran, surat_representasi, bukti_bayar)
- Menggunakan Storage::url() untuk generate URL file dengan keamanan optimal
- Menambahkan ikon eye dan badge untuk tampilan preview file
- Memperbaiki fallback nominal_bayar agar otomatis menggunakan biaya_final
- Merapikan struktur HTML dan urutan class Tailwind CSS di index dan form blade
- Mengoptimalkan AJAX request structure dan error handling agar lebih stabil
- Menghapus lebih dari 20 import statements yang tidak digunakan di SurveyorController
- Membersihkan import RedirectResponse, JsonResponse, Response, dan helper tidak relevan
- Menghapus model lama seperti Surveyor, Analisa, dan AnalisaFakta yang tidak digunakan
- Menambahkan import PermohonanHistory untuk fitur catatan revisi survey
- Menambahkan query untuk mengambil catatan revisi terbaru dari PermohonanHistory
- Menampilkan catatan revisi dengan filter status 'revisi-survey' menggunakan latest()
- Mereorganisasi urutan class Tailwind CSS pada detail.blade.php agar lebih konsisten
- Memperbaiki struktur HTML dan indentasi untuk meningkatkan readability
- Mengoptimalkan error handling dan conditional rendering di view untuk tampilan lebih bersih
- Memperbaiki nested condition untuk jenis_penilaian_id == 2 pada PembayaranController
- Memindahkan logika status 'spk' ke blok else yang sesuai
- Menyempurnakan flow status pembayaran agar konsisten dan bebas konflik
- Menghindari benturan status antara 'proses-laporan' dan 'spk'
- Menyusun ulang class Tailwind CSS pada approval.blade.php agar konsisten dan rapi
- Memperbaiki struktur HTML dan layout card untuk meningkatkan readability dan responsivitas
- Menambahkan fallback nominal_bayar dari biaya_final untuk keandalan data
- Mengoptimalkan tampilan tombol action berdasarkan status_bayar dengan null-checking
- Menambahkan fallback values untuk data kosong serta perbaikan spacing & alignment
- Meningkatkan UX dan accessibility agar approval page lebih user-friendly dan stabil
- Form NOC: tambah field nomor rekening lebih bayar (input number, readonly jika ada memo, hidden default, support old value & error handling)
- Foto Lampiran: ubah layout jadi grid 4 kolom dengan shadow & hover effect, perbaikan urutan class Tailwind & judul kategori lebih prominent
- Foto Lampiran: optimasi class container (relative, overflow-hidden, flex) & perbaikan spacing array $fotoTypes
- LPJ Sederhana Standar: konsistensi class grid/flex/input-group, role 'penilai' ditambahkan untuk akses tombol simpan, perbaikan kondisi disabled button
- Resume: optimasi class grid, flex, card-body, card-title, text, dan konsistensi urutan Tailwind di seluruh komponen
- Konsistensi class: perbaikan di form, foto-lampiran, lpj-standar, resume agar mengikuti urutan Tailwind (layout → sizing → styling)
- Struktur HTML: dirapikan untuk layout yang lebih responsif & semantik, dengan grid/flex yang lebih optimal
- UX: tampilan foto lebih rapi, form lebih mudah digunakan, role-based access lebih jelas, field tambahan untuk kebutuhan bisnis
- Dampak: data NOC lebih lengkap (tracking rekening lebih bayar), styling konsisten, UX meningkat, kode lebih maintainable
- 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
- Reorganisasi urutan menu, memindahkan "Laporan Penilaian Jaminan" ke posisi pertama & memperbaiki penamaan menu (SO, LPJ, Monitoring, Tender → Permohonan KJPP, dll.)
- Ubah path "laporan-penilaian-jaminan" menjadi "laporan" untuk konsistensi URL
- Pindahkan menu "Data Debitur" sebelum "Permohonan" & "Pembatalan" ke bawah dengan akses terbatas
- Perbaikan role permissions: hapus `admin` & `senior-officer` dari menu tertentu, tambahkan `penilai` & `surveyor` ke menu Penilaian
- Batasi akses menu "Pembatalan" hanya untuk `administrator` & `pemohon-ao`
- Update ActivityController: tambah role `penilai` pada filter user
- Update LaporanPermohonanController: filter status `done` agar hanya tampil permohonan selesai
- Update PermohonanController: hapus kondisi `jenis_penilaian_id` pada logika pembuatan PersetujuanPenawaran, gunakan `Auth::id()` konsisten
- Validasi DebitureRequest: ubah max karakter `nomor_rekening` dari 50 → 10, serta perbaikan indentasi & format JSON di `module.json`
- Hapus role `pemohon-ao` & `pemohon-eo` dari module.json pada semua menu (dashboard, laporan, permohonan, dsb.)
- Rapikan indentasi role `administrator` dan streamline permissions untuk akses kontrol yang lebih sederhana
- Tambahkan konsistensi role yang dipertahankan: administrator, admin, AO/EO Appraisal, DD Appraisal, Penilai, Surveyor
- Perbaiki class ordering pada input file & error message di `debitur.blade.php` agar sesuai konvensi Tailwind
- Perbaiki struktur div container di `debitur.blade.php` (`flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap`)
- Perbaiki formatting input file & textarea pada `persetujuan_penawaran/form.blade.php` dengan multi-line untuk readability
- Rapikan class ordering error message di form penawaran (`text-sm alert text-danger`)
- Standarisasi formatting & konsistensi layout antar form untuk UX lebih rapi
- Tambah kolom "Kolektibilitas" (min-w 150px) & "Keterangan" (min-w 200px) di tabel index laporan admin kredit
- Dukungan sorting & filtering pada kedua kolom baru dengan integrasi DataTable
- Implementasi truncation keterangan >50 karakter dengan suffix "..." dan fallback "-" jika kosong
- Responsive design di tabel index agar tetap readable di berbagai layar
- Mapping data export Excel ditambahkan field kolektibilitas & keterangan (posisi kolom N & O)
- Update heading Excel: tambah header "Kolektibilitas" & "Keterangan", geser "Created At" ke kolom P
- Tambah format Excel: FORMAT_TEXT untuk kolektibilitas & keterangan, FORMAT_DATE_DATETIME untuk created_at
- Dampak: informasi laporan admin kredit lebih lengkap, mendukung analisis kolektibilitas & dokumentasi tambahan
- Tambah field `keterangan` (TEXT) & `kolektibilitas` (VARCHAR 10) pada tabel laporan_admin_kredit
- Update model LaporanAdminKredit dengan fillable baru
- Tambah dropdown kolektibilitas (1-5: Lancar, DPK, Kurang Lancar, Diragukan, Macet) di form
- Tambah textarea keterangan dengan old() support untuk validasi
- Validasi: `keterangan` nullable|string, `kolektibilitas` nullable|string|in:1..5
- Update controller: simpan field baru dengan DB transaction & error handling
- Migration baru untuk menambah kolom `keterangan` & `kolektibilitas`
- UI/UX: konsistensi styling, responsive grid layout, placeholder informatif
- Testing: form simpan & validasi berhasil, migration jalan tanpa error
- Konsistensi urutan class CSS mengikuti standar Tailwind (layout → sizing → typography → colors)
- Perbaikan indentasi, spacing, whitespace, dan formatting string ("" → '')
- Penyusunan ulang struktur HTML dengan alignment & spacing yang lebih rapi
- Optimalisasi Blade template: perbaikan kondisi `@if (isset($penawaran))` & closing tag
- Standarisasi penggunaan grid layout dan urutan class grid (contoh: `grid grid-cols-1 gap-5 xl:grid-cols-2`)
- Konsistensi typography classes (`font-normal text-gray-700 text-2sm`) dan urutan color classes
- Refaktor struktur tabel: perbaikan class ordering, cell formatting, dan spacing kolom
- Penyusunan ulang komponen accordion dengan indentasi & struktur konten yang konsisten
- Konsistensi class pada tombol accordion & link structure untuk meningkatkan maintainability
- Reorder CSS class sesuai standar Tailwind (layout → sizing → styling)
- Perbaiki indentasi, spacing, dan line breaks untuk readability
- Ganti `else if` menjadi `elseif` pada PHP conditional
- Rapikan multi-line assignment pada nilai luas apartemen-kantor
- Update contoh class: `input w-full` → `w-full input`, `card-title uppercase` → `uppercase card-title`
- Rapikan class ordering pada container flex & grid
- Perbaiki class di button: `btn btn-primary btn-sm mt-5` → `mt-5 btn btn-primary btn-sm`
- Konsistensi class ordering di dynamic HTML generation (JavaScript)
- Fokus pada konsistensi visual tanpa mengubah tampilan UI
- Gabungkan blok kondisional @if pemohon-ao menjadi satu blok dengan else if
- Perbaiki struktur kode untuk menghindari error "Undefined constant data"
- Tambah komentar untuk memperjelas logika bisnis role-based
- Optimasi kondisi nilai_liquidasi dan status_bayar agar lebih efisien
- Rapikan line breaking dan indentasi parameter generateLaporanButton
- Hapus duplikasi logika pemohon-ao → kode lebih maintainable
- Pisahkan logika role pemohon-ao dan role lain agar lebih jelas
- Konsistensi formatting dan readability di Blade template
- Pastikan tombol laporan tampil sesuai role & kondisi tanpa error JS
- Ubah URL dari `laporan-admin-kredit/${data.id}/edit` → `admin-kredit/laporan/${data.id}/edit`
- Perbaiki konsistensi routing pattern agar sesuai dengan definisi route
- Pastikan tombol edit laporan admin kredit mengarah ke halaman edit yang benar
- Konsistensi routing mencegah error 404 dan meningkatkan UX
- Tambah role `pemohon-ao` & `pemohon-eo` untuk upload lampiran di LampiranDokumen.php
- Implementasi kontrol akses role di lampiran-dokumen.blade.php & laporan/index.blade.php (logika khusus nilai_liquidasi)
- Modifikasi query di LaporanController.php: hapus filter approval_eo_at & optimasi kondisi WHERE
- Perbaikan formatting query dengan indentasi lebih rapi & maintainable
- Standardisasi urutan class CSS di beberapa Blade (activity/index, penilaian/otorisator/index-sla & index)
- Pisahkan logika generateLaporanButton jadi function terpisah di laporan/index.blade.php
- Perbaikan tampilan tombol laporan berbasis role + cleanup baris kosong & indentasi
- Konsistensi UI/UX: responsive design lebih baik, interface clean & styling konsisten dengan Tailwind
- Tingkatkan security & maintainability: granular role access, query lebih efisien, code lebih terstruktur
- Ganti `Inspeksi::create()` → `updateOrCreate()` di PenilaiController (2x) & SurveyorController (1x) dengan kondisi upsert (permohonan_id + dokument_id)
- Tambah logging di SaveFormInspesksiService.php (`Log::info`) untuk debugging & validasi action kosong
- Perbaiki error handling dengan pesan lebih informatif `'Gagal menyimpan data : '.$e->getMessage()`
- Refaktor parsing action memakai array_map & array_filter agar lebih efisien
- Rapikan kode: hapus baris kosong tidak perlu & improve readability
- Perbaiki urutan class CSS di beberapa Blade view (rap-penilai, penilai/index, surveyor/inspeksi)
- Perbaiki XSS di rap-penilai.blade.php dengan `{!! json_encode($dokumen->address ?? '') !!}`
- Tingkatkan integritas database: cegah duplikasi data inspeksi via updateOrCreate()
- Tambah keamanan & maintainability: logging, validasi input, perbaikan format, serta pembersihan kode lama
- Memindahkan fungsi showLoadingSwal() dan hideLoadingSwal() ke resources/assets/js/app.js
- Menambahkan fitur timer dan progress bar pada fungsi global loading
- Menghapus duplikasi fungsi showLoadingSwal() dari penilai/index.blade.php (~18 baris)
- Menghapus duplikasi fungsi dari penilaian/otorisator/index-sla.blade.php (~18 baris)
- Menghapus duplikasi fungsi dari penilaian/otorisator/index.blade.php (~18 baris)
- Menghapus duplikasi fungsi dari penilaian/paparan-so.blade.php (~18 baris)
- Memperbaiki syntax error tag HTML di surveyor/components/informasi.blade.php
- Membersihkan duplikasi fungsi & memperbaiki escape string di surveyor/js/utils.blade.php
- Mengurangi ±90 baris kode duplikat, meningkatkan maintainability & UX (loading dialog lebih informatif)
- Menambahkan tombol "SLIK" pada halaman index dan show untuk memindahkan data ke laporan SLIK
- Mengimplementasikan fungsi moveToLaporan() dengan konfirmasi SweetAlert dan proses AJAX
- Melakukan migrasi framework CSS dari Bootstrap ke TailwindCSS pada laporan-slik/show.blade.php
- Memperbaiki struktur layout dengan grid system TailwindCSS yang responsif
- Mengupdate breadcrumbs dengan styling dan route names yang benar
- Menghapus fitur truncate data SLIK dari interface untuk keamanan data
- Memperbaiki route names dari admin-kredit.laporan-slik menjadi laporan-slik
- Mengoptimasi tombol Export dengan penghapusan parameter ID yang tidak diperlukan
- Menambahkan konfigurasi import SLIK di .env.example untuk optimasi performa
- Memperbaiki template download link dengan class styling yang konsisten
- Mengimplementasikan error handling yang komprehensif dengan user feedback
- Menambahkan auto-reload DataTable setelah operasi pemindahan data berhasil
- Melakukan redesign card layout dengan pembagian "Data Debitur" dan "Data Fasilitas"
- Menambahkan feedback visual dengan disable tombol setelah berhasil dipindahkan
- Mengoptimasi konfigurasi DataTable dengan reload functionality
- Menambahkan breadcrumb routes untuk laporan SLIK dengan struktur hierarki
- Mengimplementasikan progress tracking untuk monitoring proses import
- Memperbaiki JavaScript dengan pemisahan fungsi dan penambahan variabel global
- Menstandarisasi framework CSS untuk konsistensi visual
- Mengimplementasikan responsive design yang lebih baik
- Menambahkan tombol aksi "Pindahkan ke Laporan SLIK" pada halaman index & detail
- Integrasi SweetAlert2 untuk konfirmasi, loading state, dan notifikasi sukses/gagal
- Implementasi auto-refresh DataTable setelah pemindahan berhasil
- Disable tombol otomatis setelah sukses untuk mencegah duplikasi data
- LaporanSlikController: method store() dengan transaksi DB & auto-delete dari tabel sliks
- Routing baru untuk index, datatables, store, dan export laporan SLIK
- Penyesuaian views (index & show) dengan tombol, script SweetAlert, dan feedback visual
- Proteksi keamanan: CSRF token, validasi input, transaksi DB, dan error logging
- Testing checklist: pindahkan data, refresh tabel, disable tombol, error handling, responsif mobile/desktop
Mengubah struktur route SLIK agar sesuai dengan arsitektur admin-kredit dengan menambahkan prefix admin-kredit pada semua route.
- Menambahkan route SLIK lengkap dalam group admin-kredit di routes/web.php
- Memperbarui breadcrumb SLIK untuk menggunakan prefix admin-kredit di routes/breadcrumbs.php
- Memperbarui semua referensi route di view index.blade.php:
* Breadcrumbs: slik → admin-kredit.slik
* Route datatables: slik.datatables → admin-kredit.slik.datatables
* Route import: slik.import → admin-kredit.slik.import
* Route export: slik.export → admin-kredit.slik.export
* Route download template: admin-kredit.slik.download-template
* Route JavaScript: slik.show → admin-kredit.slik.show
- Memperbarui referensi route di view show.blade.php:
* Breadcrumbs: slik → admin-kredit.slik.show
* Tombol kembali: slik.index → admin-kredit.slik.index
- Menambahkan link download template Excel di modal import
Menambahkan fitur detail SLIK yang menampilkan informasi lengkap debitur dengan desain yang responsive dan user-friendly.
- Menambahkan kolom "Kolektibilitas" dan "Fasilitas" pada tabel DataTable
- Menghapus filter tahun, bulan, dan status yang tidak digunakan
- Menambahkan tombol "Detail" untuk setiap baris data
- Memperbaiki responsive design dengan CSS khusus untuk mobile
- Menambahkan class `min-w-[1200px]` untuk memastikan tabel dapat discroll horizontal
- Memperbarui konfigurasi DataTable untuk menampilkan kolom baru
- Menambahkan fungsi JavaScript `showDetail()` untuk redirect ke halaman detail
- Menghapus modal detail yang tidak digunakan lagi
- Memperbaiki styling dengan Tailwind CSS untuk konsistensi
- Membuat halaman detail baru dengan layout yang responsive
- Menampilkan informasi lengkap debitur dalam format card yang terorganisir
- Menggunakan grid layout 2 kolom untuk desktop dan 1 kolom untuk mobile
- Menampilkan data dalam kategori: Data Debitur, Data Fasilitas, dan Informasi Tambahan
- Menambahkan tombol kembali untuk navigasi mudah
- Menggunakan Tailwind CSS untuk styling yang konsisten dengan halaman index
- Responsive design yang optimal untuk semua ukuran layar
- Hitung total nominal diterima dari semua data yang difilter (bukan hanya halaman aktif)
- Tambahkan field `totalNominalDiterima` pada response JSON DataTable
- Parsing string currency ke numeric value untuk perhitungan akurat
- Tampilkan total di footer tabel dengan format Rupiah (IDR)
- Integrasi real-time backend (NocController) dan frontend (Blade + JS)
- Update otomatis via event listener DataTable saat data berubah atau difilter
- Styling footer dengan TailwindCSS untuk highlight nominal
- Validasi dan fallback aman (0) bila data tidak tersedia
- Transparansi & efisiensi monitoring keuangan secara real-time
- Hitung total nominal diterima dari semua data yang difilter (bukan hanya halaman aktif)
- Tampilkan total dalam format currency Indonesia (IDR) di footer tabel
- Integrasi backend (NocController) dan frontend (Blade + JS) secara real-time
- Update otomatis via event listener DataTable saat data berubah atau difilter
- Validasi dan parsing currency string dengan aman, casting ke float untuk akurasi
- Tambahkan field totalNominalDiterima pada response JSON DataTable
- Footer tabel dengan styling TailwindCSS (text-green-600, font-bold) untuk highlight
- UX lebih transparan: user langsung melihat total pembayaran yang diterima
- Performa terjaga: minimal DOM manipulation, native Intl.NumberFormat, efisien pada filter
Fitur baru ini menambahkan kemampuan filter berdasarkan jenis penilaian pada halaman pembayaran NOC dengan integrasi penuh ke DataTable dan database. Perubahan meliputi:
- Penambahan query jenis penilaian aktif di controller
- Filter whereRelation pada `dataForDatatablesPembayaran()`
- Dropdown dinamis jenis penilaian di view pembayaran
- Event listener JavaScript untuk filter real-time
- Opsi reset "Semua Jenis Penilaian"
- Validasi input client & server dengan XSS protection
- Optimasi query dengan relasi `permohonan.jenisPenilaian`
- Tampilan UI responsive dan konsisten dengan desain existing
- Peningkatan UX untuk pencarian data pembayaran lebih akurat dan efisien
- Ubah validasi permohonan_id dari required menjadi nullable di NocRequest
- Hapus pesan error required untuk permohonan_id di validation messages
- Tambahkan logika kondisional di NocController->store() untuk updateOrCreate berdasarkan keberadaan permohonan_id
- Perbaiki null safety dengan operator ?-> di form.blade.php untuk akses nested properties
- Update logika status pembayar untuk mendukung pembayaran dengan nomor_tiket
- Tambahkan kondisi khusus untuk menentukan status bayar berdasarkan nomor_tiket
- Perbaiki formatting dan spacing di controller untuk readability
- Menambahkan method create() di PembayaranController untuk menampilkan form pembayaran baru
- Menambahkan logika create pembayaran di method store() dengan validasi type 'create'
- Menambahkan penyimpanan data pembayaran baru ke tabel persetujuan_penawaran dan noc
- Menambahkan upload bukti bayar dengan penyimpanan ke storage public
- Menambahkan migration untuk kolom branch_id di tabel noc
- Menambahkan view create.blade.php dengan form pembayaran lengkap dan autocomplete debitur
- Menambahkan validasi JavaScript untuk format file dan ukuran maksimal 2MB
- Menambahkan TomSelect untuk pencarian debitur dengan AJAX real-time
- Menambahkan integrasi dengan API debitur search untuk autocomplete
- Memperbaiki method edit() untuk mendukung parameter tiket dalam pencarian persetujuan penawaran
- Mengubah query dataForDatatables untuk mendukung data dari persetujuan_penawaran dan permohonan
- Menambahkan mapping data yang fleksibel untuk menampilkan informasi dari berbagai sumber
- Menambahkan field nomor_tiket, nominal_bayar, dan catatan pada form create
- Menambahkan validasi client-side untuk memastikan file upload sesuai format
- Menambahkan relasi branch_id pada tabel noc untuk tracking cabang pembuat
- Menambahkan redirect ke pembayaran.index setelah berhasil menyimpan pembayaran baru
- Menambahkan import PhpParser\Node\Expr\Cast\Object_ (perlu dibersihkan)
- Mengoptimalkan query dengan eager loading dan mapping data yang efisien
- Menambahkan support untuk pembayaran tanpa permohonan (standalone payment)
- Menambahkan field is_permohonan untuk membedakan jenis pembayaran
- Menambahkan validasi dan error handling yang komprehensif
- Menambahkan method editLebih() di PembayaranController untuk menampilkan form pengembalian lebih bayar
- Menambahkan logika pengembalian lebih bayar di method store() dengan validasi type 'lebih_bayar'
- Menambahkan penyimpanan bukti KSL lebih bayar dengan upload file ke storage
- Menambahkan update bukti KSL ke tabel noc untuk pengembalian lebih bayar
- Menambahkan filter bukti_ksl_lebih_bayar null pada query dataForDatatablesLebih untuk menampilkan data yang belum diproses
- Menambahkan validasi file upload untuk bukti_ksl_lebih_bayar dengan format pdf,jpg,jpeg,png maksimal 2MB
- Menambahkan view form-lebih.blade.php dengan tampilan detail pembayaran dan form pengembalian
- Menambahkan validasi JavaScript untuk memastikan format dan ukuran file yang diupload
- Menambahkan route pembayaran/{pembayaran}/lebih untuk mengakses form pengembalian lebih bayar
- Mengubah link action di lebih.blade.php dari edit ke lebih untuk mengarahkan ke form pengembalian
- Menambahkan redirect ke pembayaran.lebih.index setelah berhasil menyimpan pengembalian
- Menambahkan field catatan opsional untuk memberikan keterangan tambahan pada proses pengembalian
- Menambahkan validasi client-side untuk memastikan file yang diupload sesuai format dan ukuran
- Menambahkan informasi detail pembayaran yang komprehensif di form pengembalian
- Menambahkan styling yang konsisten dengan form kurang bayar untuk user experience yang baik
- Menambahkan method editKurang() di PembayaranController untuk menampilkan form pelunasan kurang bayar
- Menambahkan logika pelunasan kurang bayar di method store() dengan validasi type 'kurang_bayar'
- Menambahkan penyimpanan bukti KSL kurang bayar dengan upload file ke storage
- Menambahkan update nominal pelunasan dan bukti KSL ke tabel noc dan persetujuan_penawaran
- Menambahkan filter bukti_ksl_kurang_bayar null pada query dataForDatatablesKurang untuk menampilkan data yang belum dilunasi
- Menambahkan validasi file upload untuk bukti_ksl_kurang_bayar dengan format pdf,doc,docx maksimal 10MB
- Menambahkan kolom nominal_pelunasan dan debiture_id pada migration persetujuan_penawaran
- Menambahkan view form-kurang.blade.php dengan tampilan detail pembayaran dan form pelunasan
- Menambahkan validasi JavaScript untuk memastikan nominal pelunasan tidak melebihi nominal kurang bayar
- Menambahkan route pembayaran/{pembayaran}/kurang untuk mengakses form pelunasan kurang bayar
- Mengubah link action di kurang.blade.php dari edit ke kurang untuk mengarahkan ke form pelunasan
- Menambahkan redirect ke pembayaran.kurang.index setelah berhasil menyimpan pelunasan
- Menambahkan rollback migration untuk menghapus kolom yang ditambahkan jika diperlukan
- Ganti parameter kosong ('') dengan placeholder ':id' pada route helper
- Implementasi JavaScript replace() untuk substitusi parameter dinamis
- Perbaiki fungsi otorisasiPenawaranKJPP di editextjs.blade.php
- Meningkatkan keamanan dan konsistensi route generation
- Menghindari error Laravel route dengan parameter kosong
- Kompatibel dengan Laravel route caching mechanism
- Menjaga konsistensi dengan perbaikan pada modul prosespenawaran
- Ganti parameter kosong ('') dengan placeholder ':id' pada route helper
- Implementasi JavaScript replace() untuk substitusi parameter dinamis
- Perbaiki fungsi updateulang dan updateKJPPStatus di editeulangxtjs.blade.php
- Meningkatkan keamanan dan konsistensi route generation
- Menghindari error Laravel route dengan parameter kosong
- Kompatibel dengan Laravel route caching mechanism
- Tambah method kurang() & lebih() di PembayaranController untuk halaman khusus
- Implementasi dataForDatatablesKurang() & dataForDatatablesLebih() untuk listing data
- Optimasi query dengan filter status + mapping nominal ke format rupiah
- Cleanup code: hapus import & komentar tidak dipakai, rapikan indentasi
- Update module.json: ubah akses menu pembayaran ke "pemohon-ao", tambahkan role "admin" untuk menu NOC
- Tambah route pembayaran/datatables-kurang & pembayaran/datatables-lebih di routes/registrasi.php
- Filtering & sorting data konsisten dengan pagination DataTables
- Format tampilan data finansial distandarisasi (rupiah 2 desimal)
- Menambahkan fungsi `updateCheckboxStatus()` untuk evaluasi kondisi real-time.
- Checkbox otomatis disabled jika total_harus_bayar = nominal_bayar = total_pembukuan.
- Checkbox **status_kurang_bayar** aktif jika nominal/pembukuan < total_harus_bayar.
- Checkbox **status_lebih_bayar** aktif jika nominal/pembukuan > total_harus_bayar.
- Menambahkan event listeners pada field nominal_bayar dan total_pembukuan.
- Memastikan initial state dicek saat halaman dimuat.
- Menambahkan logging untuk debugging dan monitoring.
- Meningkatkan UX dengan mencegah input data tidak logis.
- Menambahkan field input **nomor_tiket** setelah `nomor_registrasi` untuk konsistensi.
- Menambahkan validasi dan error handling khusus untuk field **nomor_tiket**.
- Memperbaiki struktur form dengan indentasi dan penamaan konsisten.
- Mengoptimalkan penggunaan **TailwindCSS** untuk responsivitas dan maintainability.
- Menambahkan placeholder **"Nomor Tiket"** untuk meningkatkan UX.
- Menggunakan **old()** atau data permohonan sebagai value default.
- Memperbaiki error styling, spacing, dan alignment untuk tampilan form yang rapi.
- Menambahkan logika menghapus format ribuan (titik) sebelum perhitungan luas.
- Mengonversi koma menjadi titik untuk parsing **float** dengan benar.
- Menggunakan **toLocaleString('id-ID')** untuk hasil sesuai format Indonesia.
- Mendukung input angka dengan format Indonesia dan internasional.
- Menambahkan JavaScript untuk mutual exclusive selection antara status kurang bayar dan lebih bayar
- Hanya satu status yang bisa dipilih pada satu waktu untuk mencegah konflik data
- Implementasi fungsi resetFields() untuk membersihkan field yang tidak dipilih
- Menambahkan event handler untuk toggle visibility field berdasarkan pilihan status
- Menambahkan logging untuk tracking perubahan status pembayaran
- Field nominal dan bukti pengembalian otomatis direset ketika status berubah
- Mempertahankan UI existing dengan checkbox namun menambahkan logika mutual exclusive
- Menambahkan validasi client-side untuk mencegah input data yang tidak konsisten
- Support untuk readonly mode ketika memo penyelesaian sudah ada
- Implementasi function-level comments untuk dokumentasi kode
Menambahkan field total_pembukuan ke dalam sistem NOC untuk mendukung pencatatan pembukuan yang lebih akurat.
Perubahan yang dilakukan:
- Menambahkan migration untuk field total_pembukuan di tabel noc dengan tipe decimal(10,2)
- Menambahkan total_pembukuan ke dalam fillable array di model Noc
- Mengintegrasikan field total_pembukuan ke dalam NocController untuk proses store dan update
- Menambahkan input field "Jumlah Pembukuan" di form NOC dengan validasi error handling
- Mengubah label "Nominal Bayar" menjadi "Jumlah Yang Harus Disetor" untuk kejelasan
- Mengubah label "Nominal Diterima" menjadi "Jumlah Yang Disetor" untuk konsistensi
- Mengubah title menu dari "Pembayaran" menjadi "Pembukuan" di module.json
- Menambahkan readonly attribute pada field total_pembukuan ketika sudah ada memo
- Mengimplementasikan old() helper untuk mempertahankan nilai input saat validation error
- Menambahkan placeholder text "Masukkan total pembukuan" untuk user guidance
Perubahan yang dilakukan:
- Menghapus validasi input pada method `preview()` untuk mendukung fleksibilitas data preview
- Mengganti eager loading dari `tujuanPenilaian` menjadi `jenisPenilaian` agar sesuai dengan kebutuhan data dinamis
- Menambahkan method chaining `->get()` pada akhir query untuk memastikan eksekusi query yang benar
- Menambahkan field `jenisPenilaian` ke dalam memoData agar template dapat menampilkan instruksi pembayaran secara dinamis
- Mengimplementasikan checkbox visual yang disabled dengan hidden input untuk tetap mengirim data saat form submit
- Memisahkan antara checkbox untuk tampilan (disabled) dan input data (hidden) untuk meningkatkan UX
- Mengubah lebar label dari 80px menjadi 200px pada template PDF dan preview untuk layout yang lebih baik
- Mengganti informasi jaminan menjadi statis "Tanah & Bangunan" pada template PDF dan preview
- Menambahkan conditional rendering untuk menampilkan instruksi pembayaran sesuai dengan jenis penilaian (Internal/KJPP)
- Menyesuaikan layout dan formatting pada template PDF dan preview agar lebih konsisten secara visual
- Menambahkan logika text dinamis untuk jenis penilaian pada bagian instruksi pembayaran
- Mengoptimalkan struktur query agar lebih efisien dan menghindari duplikasi
Tujuan perubahan:
- Mendukung proses memo penyelesaian dengan jenis penilaian yang lebih fleksibel (Internal/KJPP)
- Meningkatkan pengalaman pengguna dengan tampilan checkbox yang jelas namun tetap menyimpan data dengan aman
- Menyederhanakan layout dan formatting agar lebih profesional dan konsisten di preview maupun PDF
- Memastikan proses generate memo berjalan sesuai kebutuhan bisnis dengan instruksi pembayaran yang tepat
Perubahan yang dilakukan:
- Menambahkan dropdown filter "Jenis Penilaian" (Internal/External) pada halaman index memo penyelesaian
- Mengimplementasikan filter gabungan menggunakan separator '|' untuk kombinasi filter dan search
- Memperbaiki fungsi clearSelectedCheckboxes dengan selector '#memo-table thead input[type="checkbox"]' agar lebih spesifik
- Menambahkan event listener untuk filter jenis penilaian yang terintegrasi dengan fungsi search datatable
- Mengupdate MemoController untuk memisahkan parameter filter menjadi jenis penilaian dan search term menggunakan explode('|')
- Menambahkan log untuk debugging filter dan proses checkbox
- Memodifikasi tampilan dengan class `gap-2` pada container filter untuk spacing yang lebih baik
- Menambahkan console.log pada fungsi handleCheckboxChange untuk tracking interaksi user
- Memperbaiki error handling pada fungsi clearSelectedCheckboxes untuk memastikan checkbox ter-reset dengan benar
- Menampilkan jumlah item terpilih pada tombol "Create Memo" untuk meningkatkan feedback user
Tujuan perubahan:
- Mempermudah pengguna dalam memfilter data berdasarkan jenis penilaian langsung di datatable memo
- Memastikan fungsi checkbox selection berjalan dengan konsisten dan lebih robust
- Meningkatkan user experience dengan feedback visual yang lebih jelas saat filter dan selection digunakan
- Menyederhanakan interaksi user sekaligus menjaga akurasi proses pembuatan memo penyelesaian
Perubahan yang dilakukan:
- Menambahkan kembali kolom checkbox "select-all" di header tabel dengan atribut disabled
- Menambahkan kembali input checkbox di setiap baris permohonan dengan status disabled
- Menjaga struktur tabel tetap konsisten dengan design system yang ada
- Mempertahankan value checkbox untuk kebutuhan form submission meskipun tidak interaktif
- Menggunakan class `checkbox-sm` untuk ukuran checkbox yang sesuai tampilan
Tujuan perubahan:
- Memberikan indikasi visual bahwa semua permohonan dianggap sudah terpilih secara otomatis
- Memastikan user memahami bahwa selection tidak perlu dilakukan secara manual
- Meningkatkan konsistensi UI sekaligus menjaga flow proses pembuatan memo penyelesaian
- Menyederhanakan interaksi user dengan feedback visual yang jelas tanpa menghilangkan elemen penting
Perubahan yang dilakukan:
- Menghapus kolom checkbox "select-all" dari header tabel pada halaman create memo penyelesaian
- Menghapus input checkbox di setiap baris permohonan dalam tabel untuk menghilangkan fitur selection
- Menyederhanakan tampilan tabel menjadi daftar permohonan tanpa opsi pilih banyak
- Memperbaiki user experience dengan interface yang lebih bersih dan sederhana
- Mengurangi kompleksitas form dengan menghilangkan proses multiple selection
- Menambahkan field memo_penyelesaian_pdf_path ke tabel noc untuk menyimpan path file PDF
- Membuat migrasi baru untuk menambahkan field PDF path ke tabel noc
- Menambahkan field memo_penyelesaian_pdf_path ke model Noc dalam fillable array
- Memodifikasi fungsi generatePdf di MemoController untuk menyimpan path PDF ke database
- Menambahkan route baru memo.download-pdf untuk download file PDF memo penyelesaian
- Membuat method downloadPdf di MemoController dengan validasi file dan error handling
- Memodifikasi kolom select di datatables untuk disable checkbox jika sudah ada memo
- Menambahkan tooltip pada checkbox yang disabled untuk memberikan informasi kepada user
- Memodifikasi kolom actions untuk menampilkan tombol download PDF jika memo sudah ada
- Menampilkan informasi nomor memo dan tanggal memo di kolom actions
- Memodifikasi fungsi handleCheckboxChange untuk mengabaikan checkbox yang disabled
- Menambahkan styling untuk tombol download dengan icon dan warna yang sesuai
- Menambahkan logging untuk tracking aktivitas download PDF memo penyelesaian
- Menambahkan validasi keberadaan file di storage sebelum mengizinkan download
- Menggunakan Storage facade untuk operasi file yang lebih aman dan konsisten
Melakukan sinkronisasi tampilan memo penyelesaian antara preview dan PDF serta memperbaiki struktur layout bagian tanda tangan untuk kompatibilitas PDF.
Perubahan yang dilakukan:
- Menyesuaikan header dan logo dengan ukuran yang sama (53.55px) untuk preview dan PDF.
- Mengubah judul memo menjadi "Memo Instruksi Penyelesaian Rekening Escrow / KSL Penilai Jaminan".
- Menyesuaikan informasi memo (Kepada, Dari, Perihal) agar konsisten antara preview dan PDF.
- Menggunakan format tabel yang konsisten untuk detail memo dan lampiran.
- Menambahkan daftar lampiran dengan kolom Nomor Registrasi dan AO sesuai format preview.
- Mengimplementasikan fungsi `terbilang()` untuk konversi angka ke teks dalam lampiran.
- Menyesuaikan font size, spacing, dan styling agar seragam di semua output.
- Menambahkan page break yang presisi antara halaman memo utama dan lampiran.
Perbaikan section tanda tangan:
- Mengganti struktur flexbox dengan table layout pada bagian tanda tangan untuk stabilitas PDF.
- Menggunakan 3 kolom dengan lebar 33.33% untuk pembagian tanda tangan yang rata.
- Menambahkan `vertical-align: top` untuk posisi tanda tangan yang konsisten secara vertikal.
- Menambahkan padding horizontal agar antar kolom tanda tangan tidak saling berdekatan.
- Memastikan garis tanda tangan tetap center dengan `margin: auto`.
- Mengoptimalkan layout agar kompatibel dengan berbagai PDF viewer dan environment printing.
Tujuan perubahan:
- Menjamin konsistensi tampilan antara preview di aplikasi dan file PDF yang dihasilkan.
- Memastikan dokumen tercetak rapi, profesional, dan sesuai dengan format dokumen resmi perbankan.
- Meningkatkan kompatibilitas layout untuk berbagai perangkat dan proses cetak.
Memperbaiki tampilan preview memo penyelesaian agar sesuai dengan standar dokumen resmi bank.
Perubahan yang dilakukan:
- Mengganti logo placeholder AGI dengan logo resmi Bank Artha Graha Internasional.
- Mengubah layout dari card-based menjadi full-width format A4 untuk preview, print, dan PDF.
- Menambahkan header controls dengan class `no-print` agar tersembunyi saat dicetak atau di-generate PDF.
- Memperbaiki struktur header bank dengan logo dan nama perusahaan yang proper.
- Menyesuaikan judul memo menjadi lebih compact dan professional.
- Memperbaiki struktur tabel informasi memo dengan penggunaan inline styling untuk konsistensi PDF.
- Menambahkan helper `dateFormat()` untuk penulisan tanggal yang lebih rapi.
- Memperbaiki posisi tanda tangan agar lebih proporsional dan sesuai format resmi.
- Menambahkan class `page-memo` untuk styling halaman memo secara khusus.
- Menyempurnakan responsive design dengan flex layout yang lebih baik.
- Menambahkan path logo: `assets/media/images/logo-arthagraha.png` untuk keperluan cetak dan PDF.
- Memperbaiki typography dan spacing agar sesuai dengan standar dokumen resmi.
- Menambahkan kontrol print-friendly menggunakan class `no-print`.
Tujuan perubahan:
- Menjamin tampilan memo penyelesaian sesuai standar corporate identity bank.
- Memastikan output PDF dan print preview konsisten dengan dokumen resmi.
- Meningkatkan profesionalitas tampilan dan mempermudah proses administrasi.