Merge remote-tracking branch 'composer/feature/senior-officer' into staging

# Conflicts:
#	resources/views/penilai/components/print-resume.blade.php
#	resources/views/surveyor/components/header.blade.php
This commit is contained in:
Daeng Deni Mardaeni
2025-01-24 09:42:49 +07:00
15 changed files with 734 additions and 356 deletions

View File

@@ -346,7 +346,37 @@ class PenilaiController extends Controller
$rap = json_decode($resume->rap, true);
}
return view('lpj::penilai.components.rap-penilai', compact('permohonan', 'rap', 'provinces', 'forminspeksi', 'noLpRAP', 'basicData'));
$cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null;
if ($cekAlamat) {
$provinceCode = $cekAlamat['province_code'] ?? $provinceCode;
$cityCode = $cekAlamat['city_code'] ?? $cityCode;
$districtCode = $cekAlamat['district_code'] ?? $districtCode;
// Ambil data menggunakan kode yang telah ditentukan
}
$cities = City::where('province_code', $provinceCode)->get();
$districts = District::where('city_code', $cityCode)->get();
$villages = Village::where('district_code', $districtCode)->get();
if ($forminspeksi) {
if (isset($forminspeksi['alamat']['sesuai']['province_code'])) {
$cities = City::where('province_code', $forminspeksi['alamat']['sesuai']['province_code'])->get();
}
if (isset($forminspeksi['alamat']['sesuai']['city_code'])) {
$districts = District::where('city_code', $forminspeksi['alamat']['sesuai']['city_code'])->get();
}
if (isset($forminspeksi['alamat']['sesuai']['district_code'])) {
$villages = Village::where('district_code', $forminspeksi['alamat']['sesuai']['district_code'])->get();
}
}
return view('lpj::penilai.components.rap-penilai', compact('permohonan', 'rap', 'provinces', 'cities',
'districts',
'villages','forminspeksi', 'noLpRAP', 'basicData','cekAlamat'));
}
@@ -1145,7 +1175,6 @@ class PenilaiController extends Controller
'perihal',
'jenis_asset_tidak_sesuai',
'lokasi.lokasi',
'lokasi.address',
'lokasi.province_code',
'lokasi.city_code',
'lokasi.district_code',
@@ -1204,7 +1233,6 @@ class PenilaiController extends Controller
'fakta.fakta_positif',
'fakta.fakta_negatif',
'fisik',
'sesuai_imb',
'keterangan'
],
];

View File

@@ -1256,20 +1256,33 @@ class SurveyorController extends Controller
$needsSave = true;
}
// Fields untuk alamat dalam asset
// Fields untuk alamat dalam asset
elseif (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) {
if (!isset($dataForm['asset']['alamat'])) {
$dataForm['asset']['alamat'] = [];
$dataForm['asset']['alamat'] = [
'sesuai' => [
'address' => '',
'village_code' => '',
'district_code' => '',
'city_code' => '',
'province_code' => ''
]
];
}
$alamatStatus = $dataForm['asset']['alamat'] == 'sesuai' ? 'sesuai' : 'tidak sesuai';
// Tentukan status alamat (sesuai/tidak sesuai)
$alamatStatus = isset($dataForm['asset']['alamat']['sesuai']) ? 'sesuai' : 'tidak sesuai';
// Update nilai dalam status yang ada
if (!isset($dataForm['asset']['alamat'][$alamatStatus])) {
$dataForm['asset']['alamat'][$alamatStatus] = [];
}
// Update nilai field yang sesuai
$dataForm['asset']['alamat'][$alamatStatus][$field] = $newValue;
}
// Jenis asset dalam asset
elseif ($field === 'jenis_asset') {
$assetStatus = $request->input('asset_status', 'sesuai');
@@ -2586,11 +2599,94 @@ class SurveyorController extends Controller
private function getRapData($data, $request): array
{
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
->where('dokument_id', $request->input('dokument_id'))
->first();
$dataForm = json_decode($inspeksi->data_form, true);
$perizinanData = isset($dataForm['perizinan']) ? $dataForm['perizinan'] : [];
if ($request->has('perizinan')) {
foreach ($request->perizinan as $key => $perizinanName) {
// Cek apakah ada file baru yang diupload
if ($request->hasFile("perizinan_file.{$key}")) {
// Jika ada file baru, tambahkan/update data
$file = $request->file("perizinan_file.{$key}");
$path = $file->store('perizinan', 'public');
// Cek apakah perizinan dengan nama yang sama sudah ada
$existingIndex = array_search($perizinanName, array_column($perizinanData, 'perizinan'));
if ($existingIndex !== false) {
// Update file untuk perizinan yang sudah ada
$perizinanData[$existingIndex] = [
'perizinan' => $perizinanName,
'perizinan_file' => $path
];
} else {
// Tambah perizinan baru
$perizinanData[] = [
'perizinan' => $perizinanName,
'perizinan_file' => $path
];
}
}
}
}
$data['perizinan'] = $perizinanData;
$partisiResult = [];
if (isset($data['partisi'])) {
foreach ($data['partisi'] as $name => $values) {
if (!empty($values['value'])) {
$partisiResult[$name] = [
'nama' => $values['nama'],
'value' => $values['value']
];
}
}
}
$brosurData = isset($dataForm['brosur_price_list']) ? $dataForm['brosur_price_list'] : [];
if ($request->has('brosur_price_list')) {
foreach ($request->brosur_price_list as $key => $jenis) {
// Cek apakah ada file baru yang diupload
if ($request->hasFile("brosur_price_list_file.{$key}")) {
// Jika ada file baru, tambahkan/update data
$file = $request->file("brosur_price_list_file.{$key}");
$path = $file->store('brosur-pricelist', 'public');
// Cek apakah jenis brosur yang sama sudah ada
$existingIndex = array_search($jenis, array_column($brosurData, 'jenis'));
if ($existingIndex !== false) {
// Update file untuk jenis yang sudah ada
$brosurData[$existingIndex] = [
'jenis' => $jenis,
'file_path' => $path
];
} else {
// Tambah jenis brosur baru
$brosurData[] = [
'jenis' => $jenis,
'file_path' => $path
];
}
}
}
}
$data['brosur_price_list'] = $brosurData;
$rapData = [
'perizinan' => $data['perizinan'] ?? null,
'perizinan_file' => $data['perizinan_file'] ?? null,
'brosur_price_list' => $data['brosur_price_list'] ?? null,
'brosur_price_file' => $data['brosur_price_file'] ?? null,
'perizinan' => $perizinanData ?? null,
'brosur_price_list' => $brosurData ?? null,
'pengalaman_developer' => $data['pengalaman_developer'] ?? null,
'developer_anggota' => $data['developer_anggota'] ?? null,
'lainnya_developer' => $data['lainnya_developer'] ?? null,
@@ -2603,7 +2699,7 @@ class SurveyorController extends Controller
'pusat_keramaian' => $data['pusat_keramaian'] ?? null,
'transportasi_umum' => $data['transportasi_umum'] ?? null,
'lainnya_kondisi' => $data['lainnya_kondisi'] ?? null,
'partisi' => $data['partisi'] ?? null,
'partisi' => $partisiResult ?? null,
'jumlah_unit' => $data['jumlah_unit'] ?? null,
'batas_batas_perumahan' => $data['batas_batas_perumahan'] ?? null,
'fasus_fasum' => $data['fasus_fasum'] ?? null,

View File

@@ -567,6 +567,7 @@ class FormSurveyorRequest extends FormRequest
{
return [
'permohonan_id' => 'required',
'dokument_id' => 'required',
'type' => 'required',
'nomor_registrasi' => 'required',
'nomor_nib' => 'nullable',
@@ -633,10 +634,18 @@ class FormSurveyorRequest extends FormRequest
private function getRapRules()
{
return [
'perizinan.*' => 'required',
'perizinan_file.*' => 'required',
'brosur_price_list.*' => 'required',
'brosur_price_file.*' => 'required',
'perizinan' => 'nullable|array',
'perizinan.*' => 'nullable|string',
'perizinan_file' => 'nullable|array',
'perizinan_file.*' => 'nullable|file|mimes:pdf,docx',
'brosur_price_list' => 'nullable|array',
'brosur_price_list.*' => 'nullable|string',
'brosur_price_list_file' => 'nullable|array',
'brosur_price_list_file.*' => 'nullable|file|mimes:pdf,docx',
'pengalaman_developer' => 'nullable',
'developer_anggota' => 'nullable',
'lainnya_developer.*' => 'nullable',
@@ -649,7 +658,13 @@ class FormSurveyorRequest extends FormRequest
'pusat_keramaian' => 'nullable',
'transportasi_umum' => 'nullable',
'lainnya_kondisi.*' => 'nullable',
'partisi_.*' => 'nullable',
// Validasi untuk partisi yang diperbarui
'partisi' => 'nullable|array',
'partisi.*' => 'nullable|array',
'partisi.*.nama' => 'nullable|string',
'partisi.*.value' => 'nullable|string|max:255',
'jumlah_unit.*' => 'nullable',
'batas_batas_perumahan' => 'nullable',
'fasus_fasum.*' => 'nullable',
@@ -658,6 +673,7 @@ class FormSurveyorRequest extends FormRequest
'target_market.*' => 'nullable',
'kerjasama_dengan_bank' => 'nullable',
'rute_menuju_lokasi' => 'nullable',
'peruntukan' => 'nullable',
'kdb' => 'nullable',
'kdh' => 'nullable',
'gsb' => 'nullable',

View File

@@ -3,11 +3,11 @@
<div class="bg-white rounded-lg overflow-hidden shadow-xl transform transition-all min-w-3xl w-[1280px] h-[768px]">
<div class="p-4 h-full flex flex-col">
<div class="flex justify-between items-center mb-4">
<button id="downloadBtn" class="btn btn-primary btn-sm">
<button type="button" id="downloadBtn" class="btn btn-primary btn-sm">
<i class="ki-duotone ki-cloud-download me-1"><span class="path1"></span><span class="path2"></span></i>
Download File
</button>
<button onclick="closePreviewModal()" class="text-2xl">
<button type="button" onclick="closePreviewModal()" class="text-2xl">
<i class="ki-filled ki-cross-square text-red-600"></i>
</button>
</div>

View File

@@ -0,0 +1,10 @@
<!-- resources/views/signatures/components/signature-pad.blade.php -->
<div class="text-center border">
<h3 class="signature-title">{{ ucfirst($type) }}</h3>
<canvas id="signature-pad-{{ $type }}" class="signature-pad" width="400" height="200"></canvas>
<div class="button-container py-2">
<button type="button" id="save-{{ $type }}" class="btn btn-xs btn-primary">Simpan</button>
<button type="button" id="clear-{{ $type }}" class="btn btn-xs btn-danger">Hapus</button>
</div>
<div id="status-{{ $type }}" class="status-message"></div>
</div>

View File

@@ -175,7 +175,7 @@
<div class="flex flex-wrap items-baseline w-full">
<input type="date" id="tanggal_survey" name="tanggal_survey"
class="input w-full" placeholder="Masukkan Tanggal Survey"
value="{{ $memo->tanggal_survey ?? old('tanggal_survey') }}">
value="{{ $memo->lokasi->tanggal_survey ?? old('tanggal_survey') }}">
</div>
</div>

View File

@@ -253,18 +253,23 @@
@endif
</tr>
<tr>
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
<td style="">
{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px;">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">:</td>
<td style="">{{ $value ?? '' }} <sup> m2</sup></td>
<td style="">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endif
</tr>
@endforeach
@endif
@@ -275,6 +280,7 @@
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
@if (!empty($memo['lokasi']['address']))
<tr>
<td style="width: 20%; padding: 2px;">Lokasi Jaminan</td>
<td style="width: 1%; padding: 2px;">:</td>
@@ -282,6 +288,7 @@
{{ $alamat['village_code'] ?? '' }} {{ $alamat['district_code'] ?? '' }},
{{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }} </td>
</tr>
@endif
</table>

View File

@@ -186,28 +186,81 @@
}
@endphp
@if (isset($dokumen))
@foreach ($dokumen->detail as $index => $details)
@endforeach
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
<td>
{{ $index + 1 }}. {{ $details->jenisLegalitasJaminan->name ?? '' }}
@if (isset($details->dokumen_jaminan))
@if (isset($detail->dokumen_jaminan))
<td style="width: 20%; padding: 2px;">
{{ $detail->name ?? '' }}
</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">
@if (isset($detail->dokumen_jaminan))
@php
$dokumen_nomor = is_array(json_decode($details->dokumen_nomor))
? json_decode($details->dokumen_nomor)
: ($details->dokumen_nomor
? [$details->dokumen_nomor]
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
@endphp
@foreach ($dokumen_nomor as $nomor)
<div>{{ $nomor }}</div>
@foreach ($dokumen_jaminan as $index => $dokumen)
<div>
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
</div>
@endforeach
@endif
</td>
@endif
</tr>
<tr>
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<td style="width: 20%; padding: 2px;">
{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
@endif
@endforeach
@endif
@endif
</tr>
@endforeach
@endif
@if (isset($forminspeksi['perizinan']) && count($forminspeksi['perizinan']) > 0)
@foreach ($forminspeksi['perizinan'] as $perizinan)
<tr>
<td style="width: 20%; padding: 2px;">Perizinan</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $perizinan['perizinan'] }}</td>
</tr>
@endforeach
@endif
@if (isset($forminspeksi['brosur_price_list']) && count($forminspeksi['brosur_price_list']) > 0)
@foreach ($forminspeksi['brosur_price_list'] as $perizinan)
<tr>
<td style="width: 20%; padding: 2px;">Brosur & Pricelist</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $perizinan['jenis'] }}</td>
</tr>
@endforeach
@endif
</table>
<h2 style="text-transform: uppercase;">DESKRIPSI DEVELOPER</h2>
@@ -280,16 +333,22 @@
<h2 style="text-transform: uppercase;">PARTISI BANGUNAN</h2>
<table>
@isset($forminspeksi['jumlah_unit'])
@foreach ($forminspeksi['jumlah_unit'] as $item)
@isset($forminspeksi['partisi'])
@foreach ($forminspeksi['partisi'] as $key => $item)
<tr>
<td>
{{ $item }}
{{ $item['nama'] }}
</td>
</tr>
<tr>
<td>
{{ $item['value'] }}
</td>
</tr>
@endforeach
@endisset
</table>
<h2 style="text-transform: uppercase;">JUMLAH UNIT, BLOK, TYPE DAN LUAS BANGUNAN</h2>
<table>
@isset($forminspeksi['jumlah_unit'])
@@ -385,18 +444,41 @@
</table>
<h2 style="text-transform: uppercase;">ATURAN TATA KOTA</h2>
<table>
@php
$informasi = [
'peruntukan',
'kdb',
'kdh',
'gsb',
'max_lantai',
'klb',
'gss',
'pelebaran_jalan',
'nama_petugas',
];
@endphp
@foreach ($informasi as $key)
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
<p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
{{ $forminspeksi['fakta'][$key] }}</p>
@endif
@endforeach
<h2 style="text-transform: uppercase;">CATATAN LAINNYA</h2>
<table>
@isset($forminspeksi['keterangan'])
@foreach ($forminspeksi['keterangan'] as $item)
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $keterangan)
<tr>
<td>
{{ $item }}
<p>{!! nl2br(e($keterangan)) !!}</p>
</td>
</tr>
@endforeach
@endisset
</table>

View File

@@ -328,14 +328,15 @@
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
<td style="">
{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
@if (!is_null($value) && $value !== '')
<td style=" padding: 2px;">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">:</td>
<td style="">{{ $value ?? '' }}
@if ($key == 'luas_tanah' || $key == 'luas_bangunan')
M<sup>2</sup>
<td style=" padding: 2px;">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
@endif
@endforeach
@endif
@endif

View File

@@ -365,7 +365,7 @@
</tr>
<tr>
<td><strong>Pihak Bank selain PJ</strong></td>
<td></td>
<td>{{ $forminspeksi['asset']['pihak_bank'] ?? '' }}</td>
</tr>
</table>
</td>
@@ -497,9 +497,15 @@
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
<td style="">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}
@if (!is_null($value) && $value !== '')
<td style=" padding: 2px;">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
<td style="">{{ $value ?? '' }} <sup>m2</sup></td>
@endif
@endforeach
@endif
@endif
@@ -515,15 +521,15 @@
<tr>
@php
$cekHub =
isset($forminspeksi['asset']['hub_cadeb']) &&
$forminspeksi['asset']['hub_cadeb'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'][$cekHub])
? $forminspeksi['asset']['hub_cadeb'][$cekHub]
// Ambil nilai hub_cadeb langsung
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'])
? $forminspeksi['asset']['hub_cadeb']
: null;
// Jika nilai adalah array dengan key 'sesuai', ambil nilainya
if (is_array($hubCadeb) && isset($hubCadeb['sesuai'])) {
$hubCadeb = $hubCadeb['sesuai'];
}
@endphp
<td style="vertical-align: top;"><strong>Hubungan Pemilik Jaminan dengan Debitur</strong>
</td>
@@ -536,19 +542,17 @@
<td>
<label>
<input type="checkbox"
{{ $item->name === $hubCadeb ? 'checked' : '' }}>
{{ $hubCadeb === $item->name ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@php $count++; @endphp
@if ($count % 3 === 0)
</tr>
<tr> <!-- Membuka baris baru setelah 3 kolom -->
</tr><tr>
@endif
@endforeach
{{-- Isi kolom kosong jika tidak genap --}}
@if ($count % 3 !== 0)
@for ($i = 0; $i < 3 - ($count % 3); $i++)
<td></td>

View File

@@ -156,7 +156,8 @@
<table style="width: 100%">
<tr>
<td style="text-align: center; margin-top: 5px;">
<h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;">Resume
<h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;">
Resume
Penilaian
</h2>
<p style="font-size: 12px; margin: 0;">NO: {{ $nomorLaporan }}</p>
@@ -190,36 +191,29 @@
{{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }}</td>
</tr>
<tr>
<td style="vertical-align: top; padding:2px;">Dokumen</td>
<td style="vertical-align: top; padding:2px;">:</td>
<td style="vertical-align: top; padding:2px;">
<table>
@if (@isset($dokumen))
<td style="vertical-align: top;">Legalitas</td>
<td style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
<table style="margin: 0; padding: 0;">
@if (isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td>
<td>
@if (isset($detail->dokumen_jaminan))
<td style="padding: 0; margin: 0;">
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
: ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<div>
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
</div>
@endforeach
@endif
</td>
@endif
</tr>
@@ -228,15 +222,34 @@
</table>
</td>
</tr>
<tr>
@php
$cekLuas = isset($forminspeksi['tanah']['luas_tanah']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai';
$luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null;
<tr>
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $document)
@foreach ($document->detail as $detail)
@if (isset($detail->details))
@php
$details = json_decode($detail->details, true);
@endphp
<td>Luas Tanah</td>
<td>:</td>
<td>{{ $luas ?? '' }}</td>
@if ($details)
@foreach ($details as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">:</td>
<td style="">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endif
@endforeach
@endforeach
@endif
</tr>
<tr>
<td>Tanggal Survey</td>
@@ -252,7 +265,8 @@
<tr>
<td>Tanggal Resume</td>
<td>:</td>
<td>{{ isset($resumeData['tanggal_resume']) ? formatTanggalIndonesia($resumeData['tanggal_resume']) : '' }}</td>
<td>{{ optional($resumeData)['tanggal_resume'] ? formatTanggalIndonesia($resumeData['tanggal_resume']) : '' }}
</td>
</tr>
</table>
@@ -267,7 +281,7 @@
@isset($resumeData['fakta']['fakta_positif'])
@foreach ($resumeData['fakta']['fakta_positif'] as $key => $item)
<tr>
<td>{{ $key + 1 }} . {{ $item }}</td>
<td>{{ $item }}</td>
</tr>
@endforeach
@endisset
@@ -284,7 +298,7 @@
@isset($resumeData['fakta']['fakta_negatif'])
@foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
<tr>
<td>{{ $key + 1 }} . {{ $item }}</td>
<td>{{ $item }}</td>
</tr>
@endforeach
@endisset
@@ -326,6 +340,7 @@
@endforeach
</table>
@if (!empty($resumeData['sesuai_imb']))
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
@@ -350,7 +365,7 @@
</tr>
@endforeach
</table>
@endif
@if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $index => $item)
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
@@ -374,7 +389,8 @@
<td style="border: 1px solid #000; padding: 4px;">{{ $item['sertifikat'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_tanah'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_bangunan'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($item['nilai']) ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($item['nilai']) ?? '-' }}
</td>
</tr>
</table>
@endforeach
@@ -409,10 +425,12 @@
PELENGKAP DLL AKAN TERCATAT DI LAPORAN PENILAIAN JAMINAN (LPJ) NANTI</li>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA DIGUNAKAN UNTUK KEPENTINGAN
INTERNAL BAGI</li>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA BERLAKU <span style="color:red;">14 HARI KALENDER </span>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA BERLAKU <span
style="color:red;">14 HARI KALENDER </span>
TERHITUNG DARI TANGGAL RESUME INI DIBUAT SESUAI ATURAN YANG BERLAKU, APABILA
LEWAT MAKA HARUS DILAKUKAN ORDER ULANG SESUAI PROSEDUR YANG BERLAKU</li>
<li style="margin-bottom: 5px; text-transform: uppercase;">Apabila sudah melewati 6 bulan, maka harus penilaian
<li style="margin-bottom: 5px; text-transform: uppercase;">Apabila sudah melewati 6
bulan, maka harus penilaian
ulang kembali</li>
</ol>
</div>
@@ -433,14 +451,14 @@
</tr>
<tr>
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
{{ ucwords(strtolower('PENILAI'))}}
{{ ucwords(strtolower('PENILAI')) }}
</td>
<td>
@if ($permohonan->approval_so)
{{ $senior_officer->name ?? '' }}</br>
{{ ucwords(strtolower('SENIOR OFFICER'))}}
{{ ucwords(strtolower('SENIOR OFFICER')) }}
@endif
</td>
@@ -450,13 +468,13 @@
<td>
@if ($permohonan->approval_eo != null)
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('EXECUTIVE OFFICER'))}}
{{ ucwords(strtolower('EXECUTIVE OFFICER')) }}
@endif
</td>
<td>
@if ($permohonan->approval_eo != null)
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('DEPUTY DIRECTOR'))}}
{{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
@endif
</td>

View File

@@ -88,7 +88,7 @@
@endsection
@push('scripts')
<script type="text/javascript">
const rap = @json($rap);
const rap = @json($forminspeksi);
console.log('rap', rap)
function updateAlamatFields(status) {

View File

@@ -212,12 +212,46 @@
<input type="text" name="fisik_sertifikat[]"
class="input number-format">
</td>
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$luas_tanah = '';
$luas_bangunan = '';
if ($item->detail) {
foreach ($item->detail as $luas) {
if (
isset($luas->name) &&
$luas->name === 'Sertifikat'
) {
$details = json_decode($luas->details, true);
$luas_tanah = isset($details['luas_tanah'])
? $details['luas_tanah']
: '';
break;
}
if (
isset($luas->name) &&
$luas->name === 'IMB'
) {
$details = json_decode($luas->details, true);
$luas_bangunan = isset($details['luas_bangunan'])
? $details['luas_bangunan']
: '';
break;
}
}
}
@endphp
@endforeach
@endif
<td class="text-center">
<input type="text" name="fisik_luas_tanah[]"
class="input number-format">
class="input number-format" value="{{ $luas_tanah }}">
</td>
<td class="text-center"> <input type="text" name="fisik_luas_bangunan[]"
class="input number-format"></td>
class="input number-format" value="{{ $luas_bangunan }}"></td>
<td class="text-center">
<input type="text" name="fisik_nilai[]" class="input number-format">
</td>
@@ -299,7 +333,8 @@
<table
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
<input class="input" name="tambahan_nama_kesimpulan[]"
placeholder="Masukkan Nama Kesimpulan" type="text" value="{{ $item['tambahan_nama_kesimpulan'] ?? ''}}">
placeholder="Masukkan Nama Kesimpulan" type="text"
value="{{ $item['tambahan_nama_kesimpulan'] ?? '' }}">
<thead>

View File

@@ -270,7 +270,7 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<label class="form-label font-medium max-w-56">Nomor NIB</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="nomor_nib" class="input w-full" value="{{ $forminspeksi['asset']['nomor_nib'] ?? ""}}"
<input type="text" name="nomor_nib" class="input w-full" value="{{ $forminspeksi['asset']['nomor_nib'] ?? ''}}"
placeholder="Masukkan Nomor NIB">
</div>
</div>

View File

@@ -1,4 +1,3 @@
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
@@ -7,50 +6,133 @@
</div>
<div class="card-body">
<div class="grid gap-5">
<!-- Bagian Perizinan -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<label class="form-label max-w-56">Perizininan Lainnya</label>
<label class="form-label max-w-56">Perizinan Lainnya</label>
<div class="flex-wrap items-stretch w-full">
<div class="flex flex-col items-start gap-4 w-full">
@if (isset($basicData['perizinan']))
@foreach ($basicData['perizinan'] as $item)
<div class="flex items-center w-full">
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="checkbox" name="perizinan[]" type="checkbox">
@foreach ($basicData['perizinan'] as $key => $item)
<div class="flex items-center gap-4 w-full">
<label class="form-label flex items-center gap-2.5 text-nowrap min-w-[200px]">
<input class="checkbox"
name="perizinan[{{ $key }}]"
type="checkbox"
value="{{ $item->name }}"
@checked(in_array($item->name, old('perizinan', [])) ||
(isset($forminspeksi['perizinan']) &&
in_array($item->name, array_column($forminspeksi['perizinan'], 'perizinan'))))>
{{ $item->name }}
</label>
<input class="file-input" name="perizinan_file[]" type="file" />
<div class="grid gap-2.5 w-full">
<div class="flex items-center gap-4 w-full">
@php
$existingFile = isset($forminspeksi['perizinan'])
? collect($forminspeksi['perizinan'])->firstWhere('perizinan', $item->name)
: null;
@endphp
@if ($existingFile)
<div class="flex items-center gap-4 w-full">
<span class="text-sm text-gray-600">
{{ basename($existingFile['perizinan_file']) }}
</span>
<span class="flex-none badge badge-sm badge-outline badge-warning mt-2"
onclick="viewPDF('{{ Storage::url($existingFile['perizinan_file']) }}')">
<i class="ki-filled ki-eye mr-2"></i>Preview
</span>
</div>
@endif
</div>
<div class="flex items-center gap-4 w-full">
<input class="file-input w-full"
name="perizinan_file[{{ $key }}]"
type="file"
accept=".pdf"
data-index="{{ $key }}">
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>
</div>
<!-- Bagian Brosur & Pricelist -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<label class="form-label max-w-56">Brosur & Pricelist</label>
<div class="flex-wrap items-stretch w-full">
@php
$brosurItems = [
[
'label' => 'Brosur',
'name' => 'brosur_price_list',
'inputname' => 'brosur_price_list_file',
],
[
'label' => 'Pricelist',
'name' => 'brosur_price_list',
'inputname' => 'brosur_price_list_file',
],
];
@endphp
<div class="flex flex-col items-start gap-4 w-full">
<div class="flex items-center w-full">
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="checkbox" name="brosur_price_list[]" type="checkbox">
Brosur
@foreach ($brosurItems as $index => $item)
<div class="flex items-center gap-4 w-full">
<label class="form-label flex items-center gap-2.5 text-nowrap min-w-[200px]">
<input class="checkbox"
name="{{ $item['name'] }}[{{ $index }}]"
type="checkbox"
value="{{ $item['label'] }}"
@checked(in_array($item['label'], old('brosur_price_list', [])) ||
(isset($forminspeksi['brosur_price_list']) &&
in_array($item['label'], array_column($forminspeksi['brosur_price_list'], 'jenis'))))>
{{ $item['label'] }}
</label>
<input class="file-input" name="brosur_price_list[]" type="file" />
</div>
<div class="flex items-center w-full">
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="checkbox" name="brosur_price_list_file[]" type="checkbox">
Pricelist
</label>
<input class="file-input" name="brosur_price_list_file[]" type="file" />
<div class="grid gap-2.5 w-full">
<div class="flex items-center gap-4 w-full">
@php
$existingFile = isset($forminspeksi['brosur_price_list'])
? collect($forminspeksi['brosur_price_list'])->firstWhere('jenis', $item['label'])
: null;
@endphp
@if ($existingFile)
<div class="flex items-center gap-4 w-full">
<span class="text-sm text-gray-600">
{{ basename($existingFile['file_path']) }}
</span>
<span class="flex-none badge badge-sm badge-outline badge-warning mt-2"
onclick="viewPDF('{{ Storage::url($existingFile['file_path']) }}')">
<i class="ki-filled ki-eye mr-2"></i>Preview
</span>
</div>
@endif
</div>
<div class="flex items-center gap-4 w-full">
<input class="file-input w-full"
name="{{ $item['inputname'] }}[{{ $index }}]"
type="file"
accept=".pdf"
data-index="{{ $index }}"
id="file_{{ $index }}">
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
<div class="card-header bg-agi-50">
@@ -314,19 +396,20 @@
@if (isset($basicData['spekKategoriBangunan']))
@foreach ($basicData['spekKategoriBangunan'] as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">{{ $item->name }}</label>
<label class="form-label max-w-56">{{ $item->name ?? '' }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="partisi_{{ $item->name }}" class="input"
placeholder="Masukkan {{ $item->name }}">
@error($item->name)
<em class="alert text-danger text-sm"></em>
@enderror
<input type="hidden" name="partisi[{{ $item->name }}][nama]"
value="{{ $item->name ?? '' }}">
<input type="text" name="partisi[{{ $item->name }}][value]" class="input"
placeholder="Masukkan {{ $item->name }}"
value="{{ isset($forminspeksi['partisi'][$item->name]['value']) ? $forminspeksi['partisi'][$item->name]['value'] : old('partisi.' . $item->name . '.value') }}">
</div>
</div>
@endforeach
@endif
</div>
</div>
</div>
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
@@ -590,14 +673,12 @@
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['rute_menuju_lokasi']))
<div class="rute_menuju_lokasi flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="rute_menuju_lokasi" rows="3">{{ old("rute_menuju_lokasi", $forminspeksi['rute_menuju_lokasi']) }}</textarea>
<textarea class="textarea mt-2" name="rute_menuju_lokasi" rows="3">{{ old('rute_menuju_lokasi', $forminspeksi['rute_menuju_lokasi']) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
</div>
@else
<div class="rute_menuju_lokasi flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="rute_menuju_lokasi" rows="3">{{ old('rute_menuju_lokasi') }}</textarea>