feat(penilaian): tambahkan logika untuk menyimpan laporan admin kredit

- Menambahkan pemanggilan model LaporanAdminKredit untuk menyimpan data ketika status permohonan adalah 'done'.
- Mengambil data dari permohonan dan penilaian untuk disimpan dalam laporan.
- Menambahkan relasi baru pada model Penilaian untuk mendapatkan informasi penilai.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-17 11:56:50 +07:00
parent c5f18bbf50
commit 7cd4c0a9b7
2 changed files with 37 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ use Illuminate\Support\Facades\DB;
use Modules\Lpj\Http\Requests\PenilaianRequest;
use Modules\Lpj\Models\Authorization;
use Modules\Lpj\Models\JenisPenilaian;
use Modules\Lpj\Models\LaporanAdminKredit;
use Modules\Lpj\Models\Penilaian;
use Modules\Lpj\Models\PenilaianTeam;
use Modules\Lpj\Models\Permohonan;
@@ -473,6 +474,7 @@ class PenilaianController extends Controller
} else {
$permohonan = Permohonan::find($id);
}
if (!$permohonan) {
return response()->json([
'message' => 'Data permohonan tidak ditemukan.',
@@ -512,6 +514,35 @@ class PenilaianController extends Controller
$status = 'done';
}
if($status=='done'){
$_permohonan = Permohonan::with(['documents.jenisJaminan','penilaian._user_penilai','penilai','documents.detail.jenisLegalitasJaminan'])->find(6);
if(isset($_permohonan->penilai->lpj)){
$npw = json_decode($_permohonan->penilai->lpj, true);
$npw = $npw['total_nilai_pasar_wajar'] ?? 0;
}
$dataAdk = [
'debiture_id' => $_permohonan->debiture_id,
'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::create($dataAdk);
}
if ($approvalField) {
$this->updatePermohonan($permohonan, $status, $approvalField, $request->keterangan);
}

View File

@@ -37,6 +37,12 @@ class Penilaian extends Model
return $this->hasMany(PenilaianTeam::class, 'penilaian_id', 'id');
}
public function _user_penilai()
{
return $this->hasOne(PenilaianTeam::class, 'penilaian_id', 'id')
->where('role', 'penilai')
->with('userPenilaiTeam');
}
public function permohonan()
{