Merge remote-tracking branch 'composer/feature/senior-officer' into staging
This commit is contained in:
@@ -90,7 +90,7 @@ class PenilaiController extends Controller
|
||||
'inspeksi_id' => $inspeksiId,
|
||||
],
|
||||
[
|
||||
'type_penilai' => 'standard',
|
||||
'type_penilai' => 'sederhana',
|
||||
]
|
||||
);
|
||||
|
||||
@@ -1047,6 +1047,25 @@ class PenilaiController extends Controller
|
||||
// Tentukan tipe berdasarkan kondisi
|
||||
$type = $statusLpj->type_penilai ?? null;
|
||||
|
||||
if ($type === 'memo') {
|
||||
return $this->checkDataMemo($type, $statusLpj);
|
||||
}
|
||||
|
||||
if ($type === 'resume') {
|
||||
return $this->checkDataResume($type, $statusLpj);
|
||||
}
|
||||
|
||||
|
||||
if ($type === 'standard' || $type === 'sederhana') {
|
||||
return $this->checkDataLpj($type, $statusLpj);
|
||||
}
|
||||
|
||||
if ($type === 'rap') {
|
||||
return $this->checkDataRap($type, $statusLpj);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Kembalikan respons dengan tipe yang sesuai
|
||||
return response()->json(['status' => $type]);
|
||||
}
|
||||
@@ -1089,5 +1108,242 @@ class PenilaiController extends Controller
|
||||
}
|
||||
|
||||
|
||||
public function checkDataMemo($type, $statusLpj)
|
||||
{
|
||||
// Ambil data JSON dari statusLpj
|
||||
$data = json_decode($statusLpj->memo, true) ?? [];
|
||||
|
||||
$validationRules = [
|
||||
'memo' => [
|
||||
'kepada',
|
||||
'dari',
|
||||
'nomor_memo',
|
||||
'tanggal',
|
||||
'perihal',
|
||||
'jenis_asset_tidak_sesuai',
|
||||
'lokasi.lokasi',
|
||||
'lokasi.address',
|
||||
'lokasi.province_code',
|
||||
'lokasi.city_code',
|
||||
'lokasi.district_code',
|
||||
'lokasi.village_code',
|
||||
'lokasi.penilai',
|
||||
'terlampir',
|
||||
'hasil_survey',
|
||||
'kesimpulan_saran',
|
||||
],
|
||||
];
|
||||
|
||||
// Validasi data JSON
|
||||
if (isset($validationRules[$type])) {
|
||||
$missingFields = [];
|
||||
|
||||
foreach ($validationRules[$type] as $field) {
|
||||
$keys = explode('.', $field);
|
||||
$value = $data;
|
||||
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($value[$key])) {
|
||||
$missingFields[] = $field;
|
||||
break;
|
||||
}
|
||||
$value = $value[$key];
|
||||
}
|
||||
}
|
||||
|
||||
// Jika ada field yang kosong, kembalikan error
|
||||
if (!empty($missingFields)) {
|
||||
return response()->json([
|
||||
'status' => null,
|
||||
'message' => "Silahkan lengkapi data memo terlebih dahulu.",
|
||||
'missing_fields' => $missingFields,
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
// Jika data valid
|
||||
return response()->json([
|
||||
'status' => $type,
|
||||
'message' => "Data memo valid.",
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function checkDataResume($type, $statusLpj)
|
||||
{
|
||||
// Ambil data JSON dari statusLpj
|
||||
$data = json_decode($statusLpj->resume, true) ?? [];
|
||||
|
||||
$validationRules = [
|
||||
'resume' => [
|
||||
'fakta.fakta_positif',
|
||||
'fakta.fakta_negatif',
|
||||
'fisik',
|
||||
'sesuai_imb',
|
||||
'keterangan'
|
||||
],
|
||||
];
|
||||
|
||||
// Validasi data JSON
|
||||
if (isset($validationRules[$type])) {
|
||||
$missingFields = [];
|
||||
|
||||
foreach ($validationRules[$type] as $field) {
|
||||
$keys = explode('.', $field);
|
||||
$value = $data;
|
||||
|
||||
foreach ($keys as $key) {
|
||||
if (!isset($value[$key])) {
|
||||
$missingFields[] = $field;
|
||||
break;
|
||||
}
|
||||
$value = $value[$key];
|
||||
}
|
||||
|
||||
// Validasi khusus untuk array fisik dan sesuai_imb
|
||||
if ($field === 'fisik' || $field === 'sesuai_imb') {
|
||||
if (empty($value) || !is_array($value)) {
|
||||
$missingFields[] = $field;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Validasi struktur data di dalam array
|
||||
foreach ($value as $item) {
|
||||
$requiredKeys = ['sertifikat', 'luas_tanah', 'luas_bangunan', 'nilai'];
|
||||
foreach ($requiredKeys as $requiredKey) {
|
||||
if (!isset($item[$requiredKey])) {
|
||||
$missingFields[] = $field . '.' . $requiredKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Jika ada field yang kosong, kembalikan error
|
||||
if (!empty($missingFields)) {
|
||||
return response()->json([
|
||||
'status' => null,
|
||||
'message' => "Silahkan lengkapi data resume terlebih dahulu.",
|
||||
'missing_fields' => $missingFields,
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
// Jika data valid
|
||||
return response()->json([
|
||||
'status' => $type,
|
||||
'message' => "Data resume valid.",
|
||||
]);
|
||||
}
|
||||
|
||||
public function checkDataLpj($type, $statusLpj)
|
||||
{
|
||||
// Ambil data JSON dari statusLpj
|
||||
$data = json_decode($statusLpj->lpj, true) ?? [];
|
||||
|
||||
$validationRules = [
|
||||
'lpj' => [
|
||||
'luas_tanah',
|
||||
'nilai_tanah_1',
|
||||
'nilai_tanah_2',
|
||||
'luas_bangunan',
|
||||
'nilai_bangunan_1',
|
||||
'nilai_bangunan_2',
|
||||
'total_nilai_pasar_wajar',
|
||||
'likuidasi',
|
||||
'likuidasi_nilai_1',
|
||||
'likuidasi_nilai_2',
|
||||
'asuransi_luas_bangunan',
|
||||
'asuransi_nilai_1',
|
||||
'asuransi_nilai_2',
|
||||
'npw_tambahan'
|
||||
],
|
||||
];
|
||||
|
||||
// Validasi data JSON
|
||||
if (isset($validationRules[$type])) {
|
||||
$missingFields = [];
|
||||
|
||||
foreach ($validationRules[$type] as $field) {
|
||||
// Penanganan khusus untuk field yang boleh null
|
||||
if (in_array($field, ['sarana_pelengkap_penilai', 'nilai_sarana_pelengkap_1', 'nilai_sarana_pelengkap_2'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($data[$field])) {
|
||||
$missingFields[] = $field;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Validasi khusus untuk npw_tambahan
|
||||
if ($field === 'npw_tambahan' && is_array($data[$field])) {
|
||||
foreach ($data[$field] as $index => $item) {
|
||||
$requiredKeys = ['name', 'luas', 'nilai_1', 'nilai_2'];
|
||||
foreach ($requiredKeys as $key) {
|
||||
if (!isset($item[$key])) {
|
||||
$missingFields[] = "npw_tambahan[$index].$key";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Jika ada field yang kosong, kembalikan error
|
||||
if (!empty($missingFields)) {
|
||||
return response()->json([
|
||||
'status' => null,
|
||||
'message' => "Silahkan lengkapi data LPJ terlebih dahulu.",
|
||||
'missing_fields' => $missingFields,
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
// Jika data valid
|
||||
return response()->json([
|
||||
'status' => $type,
|
||||
'message' => "Data LPJ valid.",
|
||||
]);
|
||||
}
|
||||
|
||||
public function checkDataRap($type, $statusLpj)
|
||||
{
|
||||
// Ambil data JSON dari statusLpj
|
||||
$data = json_decode($statusLpj->rap, true) ?? [];
|
||||
|
||||
$requiredFields = [
|
||||
'dari',
|
||||
'kepada',
|
||||
'perihal',
|
||||
'tanggal',
|
||||
'nomor_rap'
|
||||
];
|
||||
|
||||
// Cek apakah ada field yang kosong
|
||||
$missingFields = [];
|
||||
foreach ($requiredFields as $field) {
|
||||
if (!isset($data[$field]) || empty($data[$field])) {
|
||||
$missingFields[] = $field;
|
||||
}
|
||||
}
|
||||
|
||||
// Jika ada field yang kosong, kembalikan error
|
||||
if (!empty($missingFields)) {
|
||||
return response()->json([
|
||||
'status' => null,
|
||||
'message' => "Silahkan lengkapi data RAP terlebih dahulu.",
|
||||
'missing_fields' => $missingFields
|
||||
], 400);
|
||||
}
|
||||
|
||||
// Jika semua data terisi
|
||||
return response()->json([
|
||||
'status' => $type,
|
||||
'message' => "Data RAP valid."
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<form id="form-lpj" method="post" class="w-full grid gap-5">
|
||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||
<input type="hidden" name="dokument_id" value="{{ request('documentId') }}">
|
||||
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}">
|
||||
<input type="hidden" id="lpj-data" value="{{ json_encode($lpjData ?? []) }}" />
|
||||
@include('lpj::component.form-penilai')
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
|
||||
@@ -48,7 +49,7 @@
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
</a>
|
||||
|
||||
|
||||
<a class="btn btn-primary"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
|
||||
@@ -146,7 +146,8 @@
|
||||
<tr>
|
||||
<td style="width: 20%; padding: 2px;">Tanggal</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
|
||||
<td style="width: 79%; padding: 2px;">
|
||||
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 20%; padding: 2px;">Perihal</td>
|
||||
@@ -159,12 +160,30 @@
|
||||
|
||||
<h2 style="text-transform: uppercase;">Copy Dokumen yang Dilampirkan</h2>
|
||||
<table style="width: 100%;">
|
||||
$senior_officer = null;
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@php
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
$teams = $permohonan->region->teams;
|
||||
|
||||
$teams = $permohonan->region->teams;
|
||||
|
||||
if ($teams) {
|
||||
foreach ($teams as $team) {
|
||||
$team_users = $team->teamsUsers;
|
||||
// print_r($team_users);
|
||||
if ($team_users) {
|
||||
foreach ($team_users as $team_user) {
|
||||
$user = $team_user->user;
|
||||
|
||||
if ($user && $user->hasRole('senior-officer')) {
|
||||
$senior_officer = $user;
|
||||
break 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@endphp
|
||||
@if (isset($dokumen))
|
||||
@@ -219,7 +238,8 @@
|
||||
<td>{{ $forminspeksi['kontraktor'] ?? '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>@isset($forminspeksi['kerjasama_dengan_bank'])
|
||||
<td>
|
||||
@isset($forminspeksi['kerjasama_dengan_bank'])
|
||||
@foreach ($forminspeksi['kerjasama_dengan_bank'] as $item)
|
||||
<div>{{ $item }}</div>
|
||||
@endforeach
|
||||
@@ -234,7 +254,8 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>@isset($forminspeksi['harga_unit'])
|
||||
<td>
|
||||
@isset($forminspeksi['harga_unit'])
|
||||
@foreach ($forminspeksi['harga_unit'] as $item)
|
||||
<div>{{ $item }}</div>
|
||||
@endforeach
|
||||
@@ -249,7 +270,8 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>@isset($forminspeksi['fasus_fasum'])
|
||||
<td>
|
||||
@isset($forminspeksi['fasus_fasum'])
|
||||
@foreach ($forminspeksi['fasus_fasum'] as $item)
|
||||
<div>{{ $item }}</div>
|
||||
@endforeach
|
||||
@@ -257,7 +279,8 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>@isset($forminspeksi['target_market'])
|
||||
<td>
|
||||
@isset($forminspeksi['target_market'])
|
||||
@foreach ($forminspeksi['target_market'] as $item)
|
||||
<div>{{ $item }}</div>
|
||||
@endforeach
|
||||
@@ -302,25 +325,53 @@
|
||||
<p>Demikian kami sampaikan, atas perhatiannya kami ucapkan terima kasih.</p>
|
||||
|
||||
<table style="width: 100%; text-align: center;">
|
||||
<tr>
|
||||
<td style="height: 50px;"></td>
|
||||
<td style="height: 50px;"></td>
|
||||
<td style="height: 50px;"></td>
|
||||
<td style="height: 50px;"></td>
|
||||
</tr>
|
||||
@php
|
||||
use Modules\Usermanagement\Models\User;
|
||||
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
|
||||
$imagePathPenilai = storage_path(
|
||||
'app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign,
|
||||
);
|
||||
$soUser = User::where('id', $senior_officer->id)->first();
|
||||
$imagePathSo = storage_path('app/public/signatures/' . $soUser->id . '/' . $soUser->sign);
|
||||
|
||||
$imagePathDD = storage_path(
|
||||
'app/public/signatures/' .
|
||||
User::role('DD Appraisal')->first()->id .
|
||||
'/' .
|
||||
User::role('DD Appraisal')->first()->sign,
|
||||
);
|
||||
@endphp
|
||||
<tr>
|
||||
<td style="height: 50px;"></td>
|
||||
<td style="height: 50px;">
|
||||
@if (file_exists($imagePathDD))
|
||||
<img src="{{ $imagePathDD }}" alt="{{ $imagePathDD }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
<td style="height: 50px;">
|
||||
@if (file_exists($imagePathSo))
|
||||
<img src="{{ $imagePathSo }}" alt="{{ $imagePathSo }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
<td style="height: 50px;">
|
||||
@if (file_exists($imagePathPenilai))
|
||||
<img src="{{ $imagePathPenilai }}" alt="{{ $imagePathPenilai }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>{{ User::role('DD Appraisal')->first()->name ?? '' }}
|
||||
<br>Deputy Director
|
||||
<br>DEPUTY DIRECTOR
|
||||
</td>
|
||||
<td>
|
||||
<br>SO Region
|
||||
{{ $senior_officer->name ?? '' }}
|
||||
<br> SENIOR OFFICER
|
||||
</td>
|
||||
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}
|
||||
<br>Appraisal
|
||||
<br>PENILAI
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -195,6 +195,7 @@
|
||||
if ($permohonan->debiture && $permohonan->debiture->documents) {
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
|
||||
$teams = $permohonan->region->teams;
|
||||
|
||||
if ($teams) {
|
||||
@@ -241,7 +242,8 @@
|
||||
<tr>
|
||||
<td style="padding: 2px;">Waktu Penyelesaian</td>
|
||||
<td style="padding: 2px;">:</td>
|
||||
<td style="padding: 2px;">{{hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, $tanggalLaporan)}}</td>
|
||||
<td style="padding: 2px;">
|
||||
{{ hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, $tanggalLaporan) }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@@ -293,7 +295,7 @@
|
||||
@foreach ($dokumen->detail as $details)
|
||||
<tr>
|
||||
<td style=" padding: 2px;">
|
||||
{{ $details->jenisLegalitasJaminan->name ?? '' }}
|
||||
{{ $details->jenisLegalitasJaminan->name ?? '' }}
|
||||
</td>
|
||||
<td style=" padding: 2px;">:</td>
|
||||
<td style=" padding: 2px;">
|
||||
@@ -1030,26 +1032,83 @@
|
||||
</table>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<div style="margin-top: 20px;">
|
||||
<label style="font-weight: bold;">DISCLAIMER</label>
|
||||
<div>
|
||||
<ol style="padding-left: 20px; list-style-type: decimal; margin-top: 0;">
|
||||
|
||||
<li style="margin-bottom: 5px;">PENILAIAN INI DIBUAT BERDASARKAN ATURAN YANG
|
||||
BERLAKU DI SUBDIT APPRAISAL</li>
|
||||
<li style="margin-bottom: 5px;">LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY
|
||||
DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA TERSEBUT SESUAI DENGAN
|
||||
DOKUMEN ASLINYA</li>
|
||||
<li style="margin-bottom: 5px;">PENILAI TIDAK MELAKUKAN PEMBUKTIAN LEBIH RINCI ATAU
|
||||
PENGAKUAN TERTULIS DARI PIHAK YANG DITEMUI SAAT PENILAIAN, ATAS INFORMASI YANG
|
||||
DIBERIKAN SECARA LISAN SEHUBUNGAN DENGAN IDENTITAS DIRI DAN HUBUNGAN DI ANTARA
|
||||
PIHAK TERKAIT SAAT MELAKUKAN INSPEKSI OBJEK YANG DINILAI</li>
|
||||
<li style="margin-bottom: 5px;">LAPORAN INI DIGUNAKAN HANYA UNTUK KEPENTINGAN
|
||||
INTERNAL DAN DILARANG MENYEBARKAN KEPADA PIHAK KETIGA</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Demikian laporan penilai jaminan ini di buat secara objektif, tanpa adanya pengaruh baik intern
|
||||
maupun extern</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<table style="width: 100%; text-align: center;" border="1">
|
||||
<table style="width: 100%; border-collapse: collapse; text-align: center;" border="1">
|
||||
@php
|
||||
use Modules\Usermanagement\Models\User;
|
||||
@endphp
|
||||
<tr>
|
||||
<td width="50%">Penilai Dibuat</td>
|
||||
<td width="50%">Di periksa dan menyutujui</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="height: 50px"></td>
|
||||
<td style="height: 50px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
|
||||
Penilai Jaminan
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px">
|
||||
|
||||
</td>
|
||||
<td> {{ $senior_officer->name ?? '' }}</br>
|
||||
Senior Officer
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px"></td>
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px"></td>
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px">
|
||||
@php
|
||||
$imagePath = storage_path('app/public/signature/' . User::role('EO Appraisal')->first()->id . '/'. User::role('EO Appraisal')->first()->sign);
|
||||
|
||||
@endphp
|
||||
@if (file_exists($imagePath))
|
||||
<img src="{{ $imagePath }}" alt="{{ $imagePath }}" class="photo-image">
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 1px solid #000; padding: 4px;">
|
||||
{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
PENILAI
|
||||
</strong>
|
||||
</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;"> {{ $senior_officer->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
SENIOR OFFICER
|
||||
</strong>
|
||||
|
||||
</td>
|
||||
|
||||
<td style="border: 1px solid #000; padding: 4px;">
|
||||
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
EXECUTIVE OFFICER
|
||||
</strong>
|
||||
</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;">
|
||||
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
DEPUTY DIRECTOR
|
||||
</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -1057,7 +1116,7 @@
|
||||
</table>
|
||||
|
||||
<div class="page-break"></div>
|
||||
<table style="width: 100%; border: 1px solid #000;">
|
||||
<table style="width: 100%; border-collapse: collapse; border: 1px solid #000;">
|
||||
<tr>
|
||||
<td style="width:20%; padding: 2px; border: 1px solid #000">Nama Debitur</td>
|
||||
<td style=" width: 1%; padding: 2px; border: 1px solid #000">:</td>
|
||||
@@ -1071,11 +1130,12 @@
|
||||
<tr>
|
||||
<td style="padding: 2px; border: 1px solid #000">Tanggal Laporan</td>
|
||||
<td style="padding: 2px; border: 1px solid #000">:</td>
|
||||
<td style="padding: 2px; border: 1px solid #000">{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}</td>
|
||||
<td style="padding: 2px; border: 1px solid #000">{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="section">
|
||||
<div class="judul" >
|
||||
<div class="judul">
|
||||
<h6 class="border" style="text-align: center">
|
||||
PETA
|
||||
</h6>
|
||||
@@ -1099,8 +1159,7 @@
|
||||
|
||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||
<div style="border: 1px solid #ddd; padding: 10px; text-align: center;">
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}"
|
||||
alt="{{ $type }}"
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
|
||||
style="max-width: 100%; height: auto; margin-bottom: 10px;">
|
||||
<p style="margin: 0; font-size: 14px;">
|
||||
{{ Str::title(str_replace('_', ' ', $type)) }}
|
||||
|
||||
@@ -1524,43 +1524,98 @@
|
||||
|
||||
</table>
|
||||
|
||||
<table style="width: 100%;">
|
||||
<div style="margin-top: 20px;">
|
||||
<label style="font-weight: bold;">DISCLAIMER</label>
|
||||
<div>
|
||||
<ol style="padding-left: 20px; list-style-type: decimal; margin-top: 0;">
|
||||
<li style="margin-bottom: 5px;">PENILAIAN INI DIBUAT BERDASARKAN ATURAN YANG
|
||||
BERLAKU DI SUBDIT APPRAISAL</li>
|
||||
<li style="margin-bottom: 5px;">LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY
|
||||
DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA TERSEBUT SESUAI DENGAN
|
||||
DOKUMEN ASLINYA</li>
|
||||
<li style="margin-bottom: 5px;">PENILAI TIDAK MELAKUKAN PEMBUKTIAN LEBIH RINCI ATAU
|
||||
PENGAKUAN TERTULIS DARI PIHAK YANG DITEMUI SAAT PENILAIAN, ATAS INFORMASI YANG
|
||||
DIBERIKAN SECARA LISAN SEHUBUNGAN DENGAN IDENTITAS DIRI DAN HUBUNGAN DI ANTARA
|
||||
PIHAK TERKAIT SAAT MELAKUKAN INSPEKSI OBJEK YANG DINILAI</li>
|
||||
<li style="margin-bottom: 5px;">LAPORAN INI DIGUNAKAN HANYA UNTUK KEPENTINGAN
|
||||
INTERNAL DAN DILARANG MENYEBARKAN KEPADA PIHAK KETIGA</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table style="width: 100%; text-align: center;" border="1">
|
||||
</table>
|
||||
|
||||
|
||||
<table style="width: 100%; border-collapse: collapse; text-align: center;" border="1">
|
||||
@php
|
||||
use Modules\Usermanagement\Models\User;
|
||||
|
||||
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
|
||||
$imagePathPenilai = storage_path('app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign);
|
||||
|
||||
$soUser = User::where('id', $senior_officer->id)->first();
|
||||
$imagePathSo = storage_path('app/public/signatures/' . $soUser->id . '/' . $soUser->sign);
|
||||
|
||||
|
||||
$imagePathEO = storage_path('app/public/signatures/' . User::role('EO Appraisal')->first()->id . '/'. User::role('EO Appraisal')->first()->sign);
|
||||
|
||||
$imagePathDD = storage_path('app/public/signatures/' . User::role('DD Appraisal')->first()->id . '/'. User::role('DD Appraisal')->first()->sign);
|
||||
@endphp
|
||||
<tr>
|
||||
<td width="30%">Penilai Dibuat</td>
|
||||
<td width="30%">Di periksa</td>
|
||||
<td width="30%">Menyutujui</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px">
|
||||
@if (file_exists($imagePathPenilai))
|
||||
<img src="{{ $imagePathPenilai }}" alt="{{ $imagePathPenilai }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px">
|
||||
@if (file_exists($imagePathSo))
|
||||
<img src="{{ $imagePathSo }}" alt="{{ $imagePathSo }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px">
|
||||
@if (file_exists($imagePathEO))
|
||||
<img src="{{ $imagePathEO }}" alt="{{ $imagePathEO }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;height: 50px">
|
||||
@if (file_exists($imagePathDD))
|
||||
<img src="{{ $imagePathDD }}" alt="{{ $imagePathDD }}" width="80px">
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="height: 50px"></td>
|
||||
<td style="height: 50px"></td>
|
||||
<td style="height: 50px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
|
||||
<td style="border: 1px solid #000; padding: 4px;">{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
PENILAI JAMINAN
|
||||
PENILAI
|
||||
</strong>
|
||||
</td>
|
||||
<td> {{ $senior_officer->name ?? '' }}</br>
|
||||
<td style="border: 1px solid #000; padding: 4px;"> {{ $senior_officer->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
SENIOR OFFICER
|
||||
</strong>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
{{ $permohonan->user->name ?? '' }}</br>
|
||||
|
||||
<td style="border: 1px solid #000; padding: 4px;">
|
||||
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
EXECUTIVE OFFICER
|
||||
</strong>
|
||||
</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;">
|
||||
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
|
||||
<strong style="font-weight: bold; ">
|
||||
DEPUTY DIRECTOR
|
||||
</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-break"></div>
|
||||
<table style="width: 100%; border: 1px solid #000;">
|
||||
<table style="width: 100%; border-collapse: collapse; border: 1px solid #000;">
|
||||
<tr>
|
||||
<td style="width:20%; padding: 2px; border: 1px solid #000">Nama Debitur</td>
|
||||
<td style=" width: 1%; padding: 2px; border: 1px solid #000">:</td>
|
||||
|
||||
@@ -376,7 +376,6 @@
|
||||
</table>
|
||||
|
||||
<table style="width: 100%">
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
<form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5">
|
||||
@csrf
|
||||
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}">
|
||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||
<input type="hidden" name="dokument_id" value="{{ request('documentId') }}">
|
||||
<input type="hidden" name="action" value="rap">
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
<a class="btn btn-outline btn-info "
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }}, 1 )">
|
||||
<i class="ki-filled ki-eye"></i>
|
||||
PRIVIEW
|
||||
PREVIEW
|
||||
</a>
|
||||
|
||||
<a class="btn btn-success"
|
||||
|
||||
@@ -312,15 +312,13 @@
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.status) {
|
||||
// Jika laporan ada, arahkan ke halaman cetak
|
||||
|
||||
window.location.href =
|
||||
`{{ route('penilai.print-out') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}&statusLpj=${statusLpj}&type=${data.status}`;
|
||||
} else {
|
||||
// Jika laporan belum ada, tampilkan pesan peringatan
|
||||
Swal.fire({
|
||||
title: 'Laporan Belum Ada',
|
||||
text: 'Silakan isi laporan terlebih dahulu sebelum mencetak.',
|
||||
text: data.message,
|
||||
icon: 'warning',
|
||||
confirmButtonText: 'OK',
|
||||
confirmButtonColor: '#3085d6',
|
||||
|
||||
Reference in New Issue
Block a user