🔧(backend): Perbaikan & optimasi controller serta view untuk modul penilai dan surveyor

- PenilaiController: tambah eager loading relasi `penawaran` untuk kurangi N+1 query
- RegistrasiFinalController: ubah filter status dari `spk` → `registrasi-final`
- SurveyorController: perbaiki pengecekan jenisPenilaian dengan `in_array` (support External/Eksternal, case-insensitive)
- SurveyorController: ubah field `tanggal_laporan` → `tgl_final_laporan` sesuai DB baru
- SurveyorController: sanitasi koordinat lat/lon dengan menghapus koma untuk valid format
- SurveyorController: perbaiki exception handling (`Exeception` → `\Exception`, `$th` → `$e`, tambah namespace lengkap)
- SurveyorController: konsistensi penggunaan `Auth::user()` alih-alih `auth()->user()`
- View pembayaran/index.blade.php: tambahkan safe navigation `data.debiture?.name` untuk hindari null error
- View penilai/index.blade.php: cleanup baris kosong & perbaiki logika status pakai `data.penawaran?.status`
This commit is contained in:
Daeng Deni Mardaeni
2025-09-21 21:17:19 +07:00
parent 006dd44c64
commit c4bb3bea28
5 changed files with 27 additions and 20 deletions

View File

@@ -218,9 +218,6 @@
}
}
return formatDate(waktu_penilaian);
},
@@ -228,7 +225,11 @@
status: {
title: 'Status',
render: (item, data) => {
return `<span class="flex justify-center uppercase badge badge-sm badge-default">${data.status.replace(/-/g, ' ')}</span>`;
if (data.penawaran) {
return `<span class="flex justify-center uppercase badge badge-sm badge-default">${data.penawaran?.status.replace(/-/g, ' ')}</span>`;
}
//return `<span class="flex justify-center uppercase badge badge-sm badge-default">${data.status.replace(/-/g, ' ')}</span>`;
},
},
actions: {
@@ -238,7 +239,7 @@
.status === 'paparan' || data.status === 'proses-paparan' || data.status ===
'paparan' || data.status == 'revisi-laporan' || data.status === 'done' || data
.status === 'revisi-paparan' || data.status === 'unfreeze-sla' || data.status ===
'reject-freeze') {
'reject-freeze' || data.penawaran?.status === 'registrasi-final') {
return `
<div class="flex flex-nowrap gap-1.5 justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="penilai/${data.id}/show">