feat(laporanAdminKredit): tambahkan logika untuk memperbarui laporan admin kredit

- Mengambil data permohonan dengan relasi yang diperlukan.
- Memproses setiap permohonan untuk menyiapkan data laporan.
- Menggunakan updateOrCreate untuk menyimpan atau memperbarui laporan admin kredit.
- Menyediakan pagination untuk tampilan laporan.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-17 13:07:23 +07:00
parent b2d5747a11
commit 48a8623aa2

View File

@@ -18,6 +18,36 @@
*/
public function index()
{
$permohonan = Permohonan::with(['documents.jenisJaminan','penilaian._user_penilai','penilai','documents.detail.jenisLegalitasJaminan'])->where(['status'=>'done'])->get();
foreach($permohonan as $_permohonan){
if(isset($_permohonan->penilai->lpj)){
$npw = json_decode($_permohonan->penilai->lpj, true);
$npw = $npw['total_nilai_pasar_wajar'] ?? 0;
}
$dataAdk = [
'jenis_agunan' => $_permohonan->documents->pluck('jenisJaminan.name')->unique()->implode(', '),
'alamat_agunan' => $_permohonan->documents->map(function ($document) {
return formatAlamat($document);
})->unique()->implode(', '),
'nama_pemilik' => $_permohonan->documents->pluck('pemilik.name')->unique()->implode(', '),
'tanggal_kunjungan' => $_permohonan->penilaian->tanggal_kunjungan,
'nama_penilai' => $_permohonan->penilaian->_user_penilai->userPenilaiTeam->name,
'nilai_likuidasi' => $_permohonan->nilai_liquidasi,
'nilai_pasar_wajar' => str_replace('.', '', $npw),
'bukti_kepemilikan' => $_permohonan->documents->flatMap(function ($document) {
return $document->detail->map(function ($detail) {
return $detail->jenisLegalitasJaminan->name ?? null;
});
})->filter()->unique()->implode(', '),
];
LaporanAdminKredit::updateOrCreate([
'debiture_id' => $_permohonan->debiture_id,
],$dataAdk);
}
$laporans = LaporanAdminKredit::with('debiture')->paginate(10);
return view('lpj::laporan_admin_kredit.index', compact('laporans'));
}