Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into tender

This commit is contained in:
2025-04-24 08:42:49 +07:00
2 changed files with 74 additions and 44 deletions

View File

@@ -4,9 +4,9 @@
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Exports\LaporanHasilPenilaianJaminanInternalExternalExport; use Modules\Lpj\Exports\LaporanHasilPenilaianJaminanInternalExternalExport;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Permohonan;
use Maatwebsite\Excel\Facades\Excel;
class LaporanHasilPenilaianJaminanInternalExternalController extends Controller class LaporanHasilPenilaianJaminanInternalExternalController extends Controller
{ {
@@ -47,7 +47,7 @@
} }
if (isset($search->penilai_id) && !empty($search->penilai_id)) { if (isset($search->penilai_id) && !empty($search->penilai_id)) {
$query->whereHas('penilaian._user_penilai.userPenilaiTeam', function($q) use ($search) { $query->whereHas('penilaian._user_penilai.userPenilaiTeam', function ($q) use ($search) {
$q->where('user_id', $search->penilai_id); $q->where('user_id', $search->penilai_id);
}); });
} }
@@ -93,11 +93,11 @@
$data = $query->with(['debiture.branch'])->get(); $data = $query->with(['debiture.branch'])->get();
$data = $data->map(function ($permohonan) { $data = $data->map(function ($permohonan) {
$luas_tanah = 0; $luas_tanah = 0;
$luas_bangunan = 0; $luas_bangunan = 0;
$nilai_tanah = 0; $nilai_tanah = 0;
$nilai_bangunan = 0; $nilai_bangunan = 0;
$npw = 0; $npw = 0;
$nilai_liquidasi = 0; $nilai_liquidasi = 0;
if (isset($permohonan->penilai->lpj)) { if (isset($permohonan->penilai->lpj)) {
@@ -107,59 +107,82 @@
$luas_tanah = $lpj['luas_tanah'] ?? 0; $luas_tanah = $lpj['luas_tanah'] ?? 0;
$luas_bangunan = $lpj['luas_bangunan'] ?? 0; $luas_bangunan = $lpj['luas_bangunan'] ?? 0;
// Calculate nilai_tanah dynamically by looking for all keys that start with 'nilai_tanah_' // Calculate nilai_tanah dynamically by looking for all keys that start with 'nilai_tanah_'
$nilai_tanah = str_replace('.', '', $lpj['nilai_tanah_2'] ?? 0); $nilai_tanah = str_replace('.', '', $lpj['nilai_tanah_2'] ?? 0);
$nilai_bangunan = str_replace('.', '', $lpj['nilai_bangunan_2'] ?? 0); $nilai_bangunan = str_replace('.', '', $lpj['nilai_bangunan_2'] ?? 0);
$nilai_liquidasi = str_replace('.', '', $lpj['likuidasi_nilai_2'] ?? 0); $nilai_liquidasi = str_replace('.', '', $lpj['likuidasi_nilai_2'] ?? 0);
} }
return [ return [
'id' => $permohonan->id, 'id' => $permohonan->id,
'nomor_registrasi' => $permohonan->nomor_registrasi, 'nomor_registrasi' => $permohonan->nomor_registrasi,
'jenis_penilaian' => $permohonan->jenisPenilaian?->name, 'jenis_penilaian' => $permohonan->jenisPenilaian?->name,
'tujuan_penilaian' => $permohonan->tujuanPenilaian?->name, 'tujuan_penilaian' => $permohonan->tujuanPenilaian?->name,
'jenis_fasilitas_kredit' => $permohonan->jenisFasilitasKredit?->name, 'jenis_fasilitas_kredit' => $permohonan->jenisFasilitasKredit?->name,
'branch' => $permohonan->debiture->branch?->name, 'branch' => $permohonan->debiture->branch?->name,
'pemohon' => $permohonan->creator?->name, 'pemohon' => $permohonan->creator?->name,
'cif' => $permohonan->debiture->cif, 'cif' => $permohonan->debiture->cif,
'name' => $permohonan->debiture?->name, 'name' => $permohonan->debiture?->name,
'jenis_agunan' => $permohonan->documents?->pluck('jenisJaminan.name')->unique()->implode(', '), 'jenis_agunan' => $permohonan->documents?->pluck('jenisJaminan.name')
'alamat_agunan' => $permohonan->documents?->map(function ($document) { ->unique()
->implode(', '),
'alamat_agunan' => $permohonan->documents?->map(function ($document) {
return formatAlamat($document); return formatAlamat($document);
})->unique()->implode(', '), })->unique()->implode(', '),
'bukti_kepemilikan' => $permohonan->documents?->flatMap(function ($document) { 'bukti_kepemilikan' => (function() use ($permohonan) {
return $document->detail->map(function ($detail) { $legalitasItems = $permohonan->documents?->flatMap(function ($document) {
return (!empty($detail->dokumen_nomor) && is_array($detail->dokumen_nomor)) return $document->detail->map(function ($detail) {
? ($detail->jenisLegalitasJaminan->name ?? '') . "\n" . implode(', ', $detail->dokumen_nomor) // Jika tidak ada jenis legalitas jaminan, lewati
: null; if (empty($detail->jenisLegalitasJaminan)) {
}); return null;
})->filter()->unique()->implode(', '), }
'nama_pemilik' => $permohonan->documents?->pluck('pemilik.name')->unique()->implode(', '),
'luas_tanah' => $luas_tanah . ' m²', // Hanya tampilkan detail yang memiliki dokumen_jaminan
'nilai_tanah' => formatRupiah($nilai_tanah,2), if (empty($detail->dokumen_jaminan)) {
'luas_bangunan' => $luas_bangunan . ' m²', return null;
'nilai_bangunan' => formatRupiah($nilai_bangunan,2), }
'nilai_njop' => formatRupiah($permohonan->nilai_njop,2),
'nilai_pasar_wajar' => formatRupiah($npw,2), // Tampilkan nama legalitas jaminan saja
'nilai_likuidasi' => formatRupiah($nilai_liquidasi,2), return $detail->jenisLegalitasJaminan->name ?? '';
'tanggal_documen_diterima' => $permohonan->documents?->map(function ($document) { });
})->filter()->unique()->values()->toArray();
// Buat daftar bernomor
$result = '';
foreach ($legalitasItems as $index => $item) {
$result .= ($index + 1) . '. ' . $item . "\n";
}
return $result;
})(),
'nama_pemilik' => $permohonan->documents?->pluck('pemilik.name')
->unique()
->implode(', '),
'luas_tanah' => $luas_tanah . ' m²',
'nilai_tanah' => formatRupiah($nilai_tanah, 2),
'luas_bangunan' => $luas_bangunan . ' m²',
'nilai_bangunan' => formatRupiah($nilai_bangunan, 2),
'nilai_njop' => formatRupiah($permohonan->nilai_njop, 2),
'nilai_pasar_wajar' => formatRupiah($npw, 2),
'nilai_likuidasi' => formatRupiah($nilai_liquidasi, 2),
'tanggal_documen_diterima' => $permohonan->documents?->map(function ($document) {
return $document->created_at->format('d-m-Y'); return $document->created_at->format('d-m-Y');
}), }),
'tanggal_spk' => '', 'tanggal_spk' => '',
'nomor_spk' => '', 'nomor_spk' => '',
'tanggal_rencana_kunjunagn' => '', 'tanggal_rencana_kunjunagn' => '',
'tanggal_kunjungan' => '', 'tanggal_kunjungan' => '',
'taggal_delivered' => '', 'taggal_delivered' => '',
'jangka_waktu_sla' => '', 'jangka_waktu_sla' => '',
'nama_penilai' => $permohonan->penilaian?->_user_penilai?->userPenilaiTeam?->name, 'nama_penilai' => $permohonan->penilaian?->_user_penilai?->userPenilaiTeam?->name,
'nama_team_leader' => $permohonan->penilaian?->teams, 'nama_team_leader' => $permohonan->penilaian?->teams,
'saran' => '', 'saran' => '',
'catatan' => '', 'catatan' => '',
'tanggal_permohonan' => $permohonan->tanggal_permohonan, 'tanggal_permohonan' => $permohonan->tanggal_permohonan,
'tanggal_laporan' => $permohonan->approval_dd_at ?? $permohonan->approval_eo_at ?? '', 'tanggal_laporan' => $permohonan->approval_dd_at ?? $permohonan->approval_eo_at ?? '',
'tanggal_review' => $permohonan->penilaian?->tanggal_kunjungan ?? '', 'tanggal_review' => $permohonan->penilaian?->tanggal_kunjungan ?? '',
]; ];
}); });

View File

@@ -292,6 +292,13 @@
}, },
bukti_kepemilikan: { bukti_kepemilikan: {
title: 'Bukti Kepemilikan', title: 'Bukti Kepemilikan',
render: (item, data) => {
if (data.bukti_kepemilikan) {
// Ganti karakter baris baru dengan tag <br> untuk HTML
return data.bukti_kepemilikan.split('\n').join('<br>');
}
return '-';
},
}, },
nama_pemilik: { nama_pemilik: {
title: 'Nama Pemilik', title: 'Nama Pemilik',