From 48a8623aa2ac15036f8d4db8cb3e2fcd0c914e31 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 17 Mar 2025 13:07:23 +0700 Subject: [PATCH] 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. --- .../LaporanAdminKreditController.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/Http/Controllers/LaporanAdminKreditController.php b/app/Http/Controllers/LaporanAdminKreditController.php index 4d12acc..e2231d0 100644 --- a/app/Http/Controllers/LaporanAdminKreditController.php +++ b/app/Http/Controllers/LaporanAdminKreditController.php @@ -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')); }