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:
@@ -10,6 +10,7 @@ use Illuminate\Support\Facades\DB;
|
|||||||
use Modules\Lpj\Http\Requests\PenilaianRequest;
|
use Modules\Lpj\Http\Requests\PenilaianRequest;
|
||||||
use Modules\Lpj\Models\Authorization;
|
use Modules\Lpj\Models\Authorization;
|
||||||
use Modules\Lpj\Models\JenisPenilaian;
|
use Modules\Lpj\Models\JenisPenilaian;
|
||||||
|
use Modules\Lpj\Models\LaporanAdminKredit;
|
||||||
use Modules\Lpj\Models\Penilaian;
|
use Modules\Lpj\Models\Penilaian;
|
||||||
use Modules\Lpj\Models\PenilaianTeam;
|
use Modules\Lpj\Models\PenilaianTeam;
|
||||||
use Modules\Lpj\Models\Permohonan;
|
use Modules\Lpj\Models\Permohonan;
|
||||||
@@ -473,6 +474,7 @@ class PenilaianController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$permohonan) {
|
if (!$permohonan) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Data permohonan tidak ditemukan.',
|
'message' => 'Data permohonan tidak ditemukan.',
|
||||||
@@ -512,6 +514,35 @@ class PenilaianController extends Controller
|
|||||||
$status = 'done';
|
$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) {
|
if ($approvalField) {
|
||||||
$this->updatePermohonan($permohonan, $status, $approvalField, $request->keterangan);
|
$this->updatePermohonan($permohonan, $status, $approvalField, $request->keterangan);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,12 @@ class Penilaian extends Model
|
|||||||
return $this->hasMany(PenilaianTeam::class, 'penilaian_id', 'id');
|
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()
|
public function permohonan()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user