feat(lpj): Perbaiki ekspor, pencarian, validasi tanggal, transaksi, logging, dan UI

- ActivityController: tambah default order `nomor_registrasi` desc; rapikan komentar & alur sorting
- LaporanHasilPenilaianJaminanInternalExternalController: pencarian debitur case-insensitive via `LOWER(name)`; normalisasi angka LPJ (luas_tanah, nilai_bangunan, likuidasi, NPW); perapihan spacing
- LaporanPenilaiJaminanController: validasi `start_date`/`end_date` dan buat nama file ekspor dinamis via `createNameLaporan`; gunakan `LaporanPenilaiJaminanExport($request)`; helper `getBranchId`
- LaporanPenilaianJaminanController: standarisasi respons JSON datatables; tambah `export(Request)` dengan nama `laporan_penilaian_jaminan_<start>_<end>.xlsx`
- NilaiPlafondController: bungkus proses datatables dalam transaksi DB (commit/rollback) dengan try/catch; tambah logging info/error; rapikan dan standarisasi respons JSON
- PenilaiController: map data pembanding ke `pembanding1/2/3`; tambah `print_out_laporan` dan `showLaporanInspeksi` (penentuan route back); stub `showInspectionReportReview`; perapihan minor
- Views debitur/components/debitur: perbaiki closing textarea, konsistensi event listener `function ()`, rapikan markup error
- Views debitur/components/jaminan: fallback `dokumen_nomor[$index] ?? ''` untuk hindari undefined index
- Views laporan/index: akses aman dengan optional chaining `?.`, fallback tanggal pada `formatDate`, akses `nilaiPlafond` aman
- Views laporan-penilai-jaminan/index + show: JS toggle tab (Laporan vs Hasil Inspeksi), CSS `hidden-tab`, gaya floating button, perapihan
- Views debitur/index: rapikan directive `@if` spacing pada tombol tambah
- Views noc/penyelesaian: perbaiki route key ke `noc.datatables.penyelesaian`
This commit is contained in:
Daeng Deni Mardaeni
2025-11-10 20:47:56 +07:00
parent 42d6e06a48
commit c153990c52
13 changed files with 964 additions and 623 deletions

View File

@@ -151,7 +151,7 @@
user_id: {
title: 'User Pemohon',
render: (item, data) => {
return `${data.user.name}`;
return `${data.user?.name}`;
},
},
tujuan_penilaian_id: {
@@ -180,16 +180,16 @@
jenis_fasilitas_kredit_id: {
title: 'Fasilitas Kredit',
render: (item, data) => {
return `${data.jenis_fasilitas_kredit.name}`;
return `${data.jenis_fasilitas_kredit?.name}`;
}
},
tanggal_survei: {
title: 'Tanggal Survei',
render: (item, data) => {
if (data.penilaian.waktu_penilaian) {
return `${formatDate(new Date(data.penilaian.waktu_penilaian))}`;
if (data.penilaian?.waktu_penilaian) {
return `${formatDate(new Date(data.penilaian?.waktu_penilaian))}`;
}
return `${formatDate(new Date(data.penilaian.created_at))}`;
return `${formatDate(new Date(data.penilaian?.created_at))}`;
},
},
due_date_sla: {
@@ -197,10 +197,10 @@
render: (item, data) => {
const tujuan_penilaian = data.tujuan_penilaian.name;
const tipe_laporan = data.penilai?.type;
const nilai_plafond = data.penilaian.nilaiPlafond?.name;
let waktu_penilaian = new Date(data.penilaian.created_at);
if (data.penilaian.waktu_penilaian) {
waktu_penilaian = new Date(data.penilaian.waktu_penilaian);
const nilai_plafond = data.penilaian?.nilaiPlafond?.name;
let waktu_penilaian = new Date(data.penilaian?.created_at);
if (data.penilaian?.waktu_penilaian) {
waktu_penilaian = new Date(data.penilaian?.waktu_penilaian);
}
if (tujuan_penilaian.name === "RAP") {