Melakukan refactor dan penyesuaian form memo penyelesaian agar lebih sesuai dengan kebutuhan bisnis, serta menambahkan fitur perhitungan otomatis Total Biaya PJ.
Perubahan pada Form Input:
- Mengubah field "Judul Memo" menjadi "Nomor Memo" untuk identifikasi memo yang lebih spesifik.
- Menghapus field "Isi Memo" karena tidak relevan dengan proses bisnis saat ini.
- Menambahkan field "Tanggal Pembayaran" untuk tracking proses pembayaran.
- Mengatur "Tanggal Memo" menjadi otomatis mengikuti tanggal hari ini dan disimpan sebagai hidden field untuk keperluan audit.
- Menambahkan field readonly "Total Biaya PJ" untuk menampilkan akumulasi biaya dari NOC terkait permohonan yang dipilih.
Perubahan pada Controller:
- Mengupdate validasi request agar sesuai dengan field baru: `memo_number`, `payment_date`, dan `permohonan_ids`.
- Menghapus validasi `memo_content` karena field tersebut tidak lagi digunakan.
- Menambahkan method `getTotalBiayaPJ()` untuk endpoint AJAX yang menghitung total biaya PJ secara real-time.
- Menggunakan relasi model `Noc` dan `Permohonan` untuk menghitung sum dari `nominal_bayar`.
- Mengupdate method `create()` agar langsung menghitung total biaya PJ saat form dibuka.
- Tetap menggunakan DB transaction untuk memastikan integritas data.
Perubahan pada Database Schema:
- Mengganti field `memo_penyelesaian_title` menjadi `memo_penyelesaian_number`.
- Menghapus field `memo_penyelesaian_content`.
- Menambahkan field baru `memo_penyelesaian_payment_date` untuk menyimpan tanggal pembayaran.
- Mempertahankan field `memo_penyelesaian_date` sebagai audit trail.
Perubahan pada View:
- Menambahkan field readonly "Total Biaya PJ" dengan format mata uang Rupiah.
- Menambahkan icon kalkulator dan styling sesuai dengan tema form.
- Menggunakan AJAX untuk menghitung total biaya PJ ketika user memilih atau mengubah permohonan secara dinamis.
- Menampilkan pesan error dan feedback user secara jelas jika terjadi masalah saat perhitungan.
Routing dan API:
- Menambahkan route `memo.total-biaya-pj` sebagai endpoint untuk kalkulasi biaya PJ berbasis AJAX.
- Tetap menggunakan route resource untuk operasi CRUD memo penyelesaian.
Keamanan dan Validasi:
- Implementasi CSRF protection untuk AJAX request.
- Validasi `permohonan_ids` harus berupa array yang valid dan terfilter dengan baik.
- Penanganan error yang komprehensif baik di sisi controller maupun client-side.
Peningkatan User Experience:
- Form menjadi lebih sederhana, efisien, dan fokus pada input yang memang dibutuhkan oleh proses bisnis.
- Real-time feedback saat memilih permohonan sehingga user langsung mengetahui total biaya PJ.
- Layout form tetap responsive dan mudah digunakan di berbagai perangkat.
- Memberikan pengalaman yang konsisten dengan desain aplikasi lainnya.
Tujuan Perubahan:
- Menyederhanakan proses pembuatan memo penyelesaian sesuai kebutuhan operasional terbaru.
- Memastikan proses input lebih cepat dan akurat dengan kalkulasi otomatis Total Biaya PJ.
- Mengurangi potensi kesalahan input dan mempercepat workflow divisi terkait.
- Meningkatkan maintainability dan konsistensi kode dengan standar sistem yang ada.
Perubahan yang dilakukan:
**Controller MemoController:**
- Menambahkan MemoController untuk mengelola memo penyelesaian permohonan.
- Method index() untuk menampilkan daftar permohonan yang bisa dipilih.
- Method create() untuk form pembuatan memo dengan pemilihan data bulk.
- Method store() untuk menyimpan memo dan mengupdate status permohonan terkait.
- Method show() untuk menampilkan detail memo yang telah dibuat.
- Method dataForDatatables() untuk API datatables dengan filter, search, dan pagination.
- Implementasi DB transaction untuk menjaga integritas data.
- Logging dan error handling komprehensif di setiap method.
**View Template:**
- index.blade.php: Tabel data permohonan dengan fitur checkbox selection (bulk).
- create.blade.php: Form pembuatan memo dari data yang dipilih.
- show.blade.php: Halaman detail memo penyelesaian.
- Menggunakan Bootstrap untuk styling dan interaksi dinamis dengan JavaScript.
- Validasi client-side untuk memastikan data sesuai sebelum dikirim.
**Routing dan Navigasi:**
- Menambahkan route resource untuk operasi CRUD Memo.
- Menambahkan route khusus untuk datatables API dan bulk create.
- Integrasi menu "Memo Penyelesaian" di navigasi utama aplikasi.
- Role-based access control untuk keamanan akses fitur.
**Integrasi Data:**
- Menggunakan model Permohonan sebagai sumber data utama dengan eager loading.
- Relasi dengan tabel user, debitur, branch, dan tujuan penilaian.
- Menambahkan status management untuk mempermudah tracking progress permohonan.
**Keamanan dan Validasi:**
- Validasi input baik di sisi controller maupun client-side.
- CSRF protection dan XSS prevention untuk menjaga keamanan aplikasi.
- Permission checking sesuai level user.
**Performance dan UX:**
- Pagination dan query optimization untuk performa lebih baik.
- Caching strategi untuk data yang sering diakses.
- Interface yang intuitif, dengan loading state dan feedback message.
- Responsive design untuk desktop dan mobile.
- Shortcut keyboard untuk efisiensi power user.
**Teknis dan Testing:**
- Struktur kode mengikuti Laravel best practice dan design pattern.
- Siap untuk unit test dan integration test.
- Logging lengkap untuk monitoring dan debugging.
- Error scenario handling dan fallback yang robust.
Tujuan perubahan:
- Menyediakan fitur pengelolaan memo penyelesaian permohonan secara bulk dengan user experience yang optimal dan performa efisien.
refactor: update laporan user service and views for simplified report
style: improve daftar pustaka views and remove unused code
fix: correct date field names in laporan sla penilai service
- **Controller (NocController)**:
- Perbaikan nama route pada **index()** dari `noc.pembayaran` menjadi `noc.pembayaran.index`.
- Menghapus komentar kode tak terpakai pada logika update **status permohonan** di metode penyimpanan.
- **Blade Views**:
- Perbaikan konsistensi atribut HTML dan struktur elemen di berbagai template: `index.blade.php`, `pembayaran.blade.php`, dan `form.blade.php`.
- Penghapusan spasi yang tidak diperlukan dan optimasi indentasi pada atribut elemen seperti `class`, `data-*`, dan lainnya.
- Perbaikan label input dan placeholder untuk keterbacaan dan kesesuaian desain.
- Penyelarasan nama variabel dan logika validasi berdasarkan kondisi file dan data yang ada.
- **Form NOC**:
- Penyesuaian form handling untuk berbagai atribut seperti `status_pembayar`, `nominal_bayar`, dan `bukti_ksl`.
- Penyesuaian aksi form untuk **update** atau **store** tergantung kondisi form.
- **Datatables**:
- Pengoptimalan tabel untuk hierarki atribut dan nilai default seperti pagination, sorting, atau data filtering.
- Menambahkan metode baru pada `NocController` untuk mendukung pengelolaan NOC pembayaran dan penyelesaian.
- `pembayaran()` untuk menampilkan daftar NOC Pembayaran.
- `penyelesaian()` untuk menampilkan daftar NOC Penyelesaian.
- Menambahkan fitur baru datatables untuk pembayaran dan penyelesaian:
- `dataForDatatablesPembayaran()` untuk filter pembayaran tanpa memo penyelesaian.
- `dataForDatatablesPenyelesaian()` untuk filter penyelesaian dengan memo penyelesaian.
- Memperbarui routing untuk mendukung fitur baru:
- `noc/pembayaran` untuk daftar pembayaran.
- `noc/penyelesaian` untuk daftar penyelesaian.
- Tambah endpoint datatables baru: `/noc/datatables/pembayaran` dan `/noc/datatables/penyelesaian`.
- Menambahkan file blade baru untuk menampilkan daftar NOC pembayaran dan penyelesaian:
- `pembayaran.blade.php`.
- `penyelesaian.blade.php`.
- Menambahkan breadcrumbs untuk fitur pembayaran dan penyelesaian:
- `noc.pembayaran` dan `noc.penyelesaian`.
- Update `module.json` untuk mendukung UI navigasi baru pada NOC:
- Tambahkan submenu "Pembayaran" dan "Penyelesaian".
- Ubah ikon menu NOC dari `ki-two-credit-cart` menjadi `ki-briefcase`.
- Menambahkan validasi, filter, dan sorting baru untuk datatables pembayaran dan penyelesaian.
- Mengoptimalkan tabel datatables sehingga mendukung input pencarian, sorting, dan download file terkait bukti pembayaran atau memo penyelesaian.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Ubah logika default nilai parameter halaman ketika tidak ada input dari request.
- Tambahkan elemen kontrol pagination dan jumlah data per halaman di tampilan UI.
- Pastikan data table kembali ke halaman pertama saat melakukan ekspor data.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan relasi `noc` pada data laporan.
- Memperbarui logika `update` NOC untuk memproses memo penyelesaian.
- Menambahkan tombol "Penyelesaian" pada halaman laporan jika data NOC belum selesai.
- Memperbaiki pengecekan keberadaan file memo dengan disk publik.
- Mengimplementasikan view dan form baru untuk input memo penyelesaian pada NOC.
- Menambahkan routing dan breadcrumbs untuk proses penyelesaian memo NOC.
- Menambahkan validasi dan penyimpanan file memo penyelesaian.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan kolom "Bukti Bayar" dan "Nominal Diterima" pada tampilan daftar noc.
- Menambahkan input untuk bukti bayar dan nominal diterima pada form noc.
- Mengubah logika pengecekan input file bukti KSL agar sesuai kondisi.
- Memperbaiki placeholder dan label form untuk konsistensi.
- Memperbaiki render data bukti bayar pada tabular untuk mendukung tindakan download atau lihat file.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Tambah atribut baru: `tanggal_pembayaran`, `memo_penyelesaian`, `bukti_penyelesaian`, dan `nominal_penyelesaian`.
- Update logika penyimpanan dan update data NOC dengan atribut baru.
- Tambah validasi dan handling untuk memproses pembayaran dan penyelesaian NOC.
- Update form NOC untuk mendukung input penyelesaian, termasuk file memo dan bukti penyelesaian.
- Update tampilan tabel data untuk menampilkan atribut baru di halaman index NOC.
- Tambah logika untuk memeriksa keberadaan memo penyelesaian di view form NOC.
- Penyesuaian endpoint dan logika dalam controller untuk mendukung penyelesaian data NOC.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Tambahkan model NOC ke NocController, PersetujuanPenawaranController, dan validasi pada NocRequest.
- Implementasi penyimpanan data NOC menggunakan `updateOrCreate` di beberapa alur proses.
- Tambahkan properti baru `catatan_noc` pada model, migrasi database, dan form terkait.
- Revisi aturan validasi pada NocRequest dan PersetujuanPenawaranRequest.
- Tingkatkan tampilan form NOC dengan penanganan file upload dan pratinjau file yang sudah diunggah.
- Perbaikan beberapa nama properti seperti `status_bayar` menjadi `status_pembayar`.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- 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>
- Menambahkan model baru untuk tabel `noc` beserta relasinya pada `Permohonan` dan `PersetujuanPenawaran`.
- Menambahkan migrasi untuk membuat tabel `noc` di database.
- Memodifikasi logika dan format data pada `NocController` untuk mendukung data terkait `noc`.
- Mendefinisikan relasi baru di model `Permohonan` dan `PersetujuanPenawaran` untuk mendukung fitur `noc`.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Ganti `isNumeric` dengan `ctype_digit` dan hapus fungsi `isNumeric` yang tidak diperlukan.
- Simplifikasi fungsi `onRomawi` dengan memanfaatkan fungsi `convertToRoman`.
- Hapus fungsi `holidays` karena tidak digunakan lagi dalam kode.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Mengubah inheritance pada semua model di `Modules/Lpj` dari `Model` ke `Base` untuk konsistensi struktur.
- Menghapus model `SLA` beserta migrasi terkait karena tidak lagi digunakan.
- Perbaiki dan konsistenkan penulisan conditional pada `NocController`.
- Sederhanakan logika pengambilan dan mapping data di controller.
- Hapus penggunaan fungsi render di view untuk data yang sudah diolah di controller.
- Refactor partial query logic di `PembayaranController` untuk efisiensi.
- Menambahkan fungsi render untuk kolom bukti kepemilikan pada tabel laporan hasil penilaian.
- Mengganti karakter baris baru dengan tag <br> untuk menampilkan data dalam format HTML.
- Menyediakan nilai default '-' jika tidak ada bukti kepemilikan yang tersedia.
- Menambahkan filter untuk memilih penilai pada halaman laporan hasil penilaian.
- Memperbarui logika kueri untuk menyertakan filter penilai saat mengambil data.
- Memperbaiki tampilan dan struktur HTML untuk mendukung filter baru.
- Menambahkan fungsionalitas untuk menerapkan filter dan mengupdate tabel data secara dinamis.
- Menambahkan filter untuk memilih penilai pada halaman laporan penilaian jaminan.
- Memperbarui query untuk menyertakan filter penilai saat mengambil data.
- Memperbaiki tampilan dengan menambahkan elemen input untuk filter penilai.
- Menambahkan kelas LaporanHasilPenilaianJaminanInternalExternalExport untuk mengelola ekspor data.
- Mengimplementasikan metode collection untuk mengambil data permohonan dengan filter.
- Menambahkan metode map untuk memetakan data permohonan ke format yang sesuai untuk ekspor.
- Menyediakan judul dan heading untuk laporan yang diekspor.
- Mengatur format dan gaya untuk laporan yang dihasilkan.
- Menambahkan method index untuk menampilkan halaman laporan.
- Menambahkan method dataForDatatables untuk mengambil dan memfilter data permohonan.
- Menambahkan method export untuk mengunduh laporan dalam format Excel.
- Mengimplementasikan pencarian dan pengurutan data berdasarkan parameter yang diberikan.
- Menambahkan judul dan informasi cabang pada laporan.
- Menyertakan periode dan tanggal ekspor di laporan.
- Menambahkan informasi pengguna yang melakukan ekspor.
- Memperbaiki format dan gaya header pada laporan.
- Mengatur auto-size kolom dan menambahkan border pada sel data.
- Mengubah query pada metode collection untuk menggunakan Permohonan::query() alih-alih Permohonan::with().
- Mengaktifkan tampilan breadcrumbs pada halaman laporan permohonan.
- Membuat kelas LaporanPenilaianJaminanExport untuk mengekspor data penilaian jaminan.
- Menambahkan filter berdasarkan tanggal, cabang, dan pencarian untuk query.
- Mengimplementasikan metode collection, map, dan headings untuk format ekspor.
- Menambahkan LaporanPenilaianJaminanController untuk mengelola laporan penilaian jaminan.
- Implementasi fungsi index untuk menampilkan halaman laporan.
- Menambahkan fungsi dataForDatatables untuk mengambil dan memfilter data permohonan.
- Menyediakan fungsi export untuk mengunduh laporan dalam format Excel.
- Mengatur ulang urutan penggunaan namespace untuk konsistensi.
- Memperbaiki penanganan kesalahan pada fungsi formatTanggalIndonesia.
- Menambahkan logika untuk memeriksa rentang tanggal aktif pada fungsi checkActiveDateRangePenawaran.
- Memperbaiki dan menyederhanakan logika pada fungsi checkKelengkapanDetailKJPP.
- Memperbarui fungsi generateLpjUniqueCode untuk menghasilkan kode unik dengan format yang lebih baik.
- Menyempurnakan fungsi formatNotifikasi untuk menampilkan pesan yang lebih informatif.
- Menghapus kode yang mengirim notifikasi kepada pengguna setelah permohonan dibuat.
- Memperbaiki alur penyimpanan data dengan mengurangi ketergantungan pada notifikasi.
- Menambahkan pemanggilan fungsi createNotification setelah membuat riwayat permohonan.
- Mengimplementasikan logika untuk mengirim notifikasi kepada pengguna terkait status 'order'.
- Menggunakan kelas PermohonanNotif untuk mengirim pesan notifikasi.
- Menambahkan properti message pada kelas PermohonanNotif.
- Memperbarui konstruktor untuk menerima parameter message.
- Memperbarui metode toArray untuk menyertakan message dalam representasi array notifikasi.
- Menambahkan kelas PermohonanNotif yang mengimplementasikan notifikasi di Laravel.
- Menggunakan saluran pengiriman 'mail' dan 'database'.
- Menyediakan metode untuk mengirim representasi email dan array dari notifikasi.
- Menambahkan fungsi formatNotifikasi untuk memformat data notifikasi.
- Menggunakan json_decode untuk mengubah data menjadi objek.
- Menghasilkan array notifikasi dengan judul dan pesan berdasarkan status permohonan.
- Menambahkan penggunaan notifikasi PermohonanNotif untuk memberitahukan pengguna saat permohonan baru dibuat.
- Mengambil pengguna yang membuat permohonan menggunakan ID dari kolom created_by.
- Menambahkan kelas LaporanPembatalanExport untuk mengelola ekspor data laporan pembatalan.
- Mengimplementasikan filter pencarian berdasarkan nomor registrasi, nama pemohon, dan nama cabang.
- Menyediakan opsi untuk memfilter berdasarkan rentang tanggal, status, dan cabang.
- Menyusun data yang diekspor dengan format yang sesuai untuk laporan.