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); $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', 'perihal',
'jenis_asset_tidak_sesuai', 'jenis_asset_tidak_sesuai',
'lokasi.lokasi', 'lokasi.lokasi',
'lokasi.address',
'lokasi.province_code', 'lokasi.province_code',
'lokasi.city_code', 'lokasi.city_code',
'lokasi.district_code', 'lokasi.district_code',
@@ -1204,7 +1233,6 @@ class PenilaiController extends Controller
'fakta.fakta_positif', 'fakta.fakta_positif',
'fakta.fakta_negatif', 'fakta.fakta_negatif',
'fisik', 'fisik',
'sesuai_imb',
'keterangan' 'keterangan'
], ],
]; ];

View File

@@ -1256,20 +1256,33 @@ class SurveyorController extends Controller
$needsSave = true; $needsSave = true;
} }
// Fields untuk alamat dalam asset
// Fields untuk alamat dalam asset // Fields untuk alamat dalam asset
elseif (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) { elseif (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) {
if (!isset($dataForm['asset']['alamat'])) { 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])) { if (!isset($dataForm['asset']['alamat'][$alamatStatus])) {
$dataForm['asset']['alamat'][$alamatStatus] = []; $dataForm['asset']['alamat'][$alamatStatus] = [];
} }
// Update nilai field yang sesuai
$dataForm['asset']['alamat'][$alamatStatus][$field] = $newValue; $dataForm['asset']['alamat'][$alamatStatus][$field] = $newValue;
} }
// Jenis asset dalam asset // Jenis asset dalam asset
elseif ($field === 'jenis_asset') { elseif ($field === 'jenis_asset') {
$assetStatus = $request->input('asset_status', 'sesuai'); $assetStatus = $request->input('asset_status', 'sesuai');
@@ -2586,11 +2599,94 @@ class SurveyorController extends Controller
private function getRapData($data, $request): array 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 = [ $rapData = [
'perizinan' => $data['perizinan'] ?? null, 'perizinan' => $perizinanData ?? null,
'perizinan_file' => $data['perizinan_file'] ?? null, 'brosur_price_list' => $brosurData ?? null,
'brosur_price_list' => $data['brosur_price_list'] ?? null,
'brosur_price_file' => $data['brosur_price_file'] ?? null,
'pengalaman_developer' => $data['pengalaman_developer'] ?? null, 'pengalaman_developer' => $data['pengalaman_developer'] ?? null,
'developer_anggota' => $data['developer_anggota'] ?? null, 'developer_anggota' => $data['developer_anggota'] ?? null,
'lainnya_developer' => $data['lainnya_developer'] ?? null, 'lainnya_developer' => $data['lainnya_developer'] ?? null,
@@ -2603,7 +2699,7 @@ class SurveyorController extends Controller
'pusat_keramaian' => $data['pusat_keramaian'] ?? null, 'pusat_keramaian' => $data['pusat_keramaian'] ?? null,
'transportasi_umum' => $data['transportasi_umum'] ?? null, 'transportasi_umum' => $data['transportasi_umum'] ?? null,
'lainnya_kondisi' => $data['lainnya_kondisi'] ?? null, 'lainnya_kondisi' => $data['lainnya_kondisi'] ?? null,
'partisi' => $data['partisi'] ?? null, 'partisi' => $partisiResult ?? null,
'jumlah_unit' => $data['jumlah_unit'] ?? null, 'jumlah_unit' => $data['jumlah_unit'] ?? null,
'batas_batas_perumahan' => $data['batas_batas_perumahan'] ?? null, 'batas_batas_perumahan' => $data['batas_batas_perumahan'] ?? null,
'fasus_fasum' => $data['fasus_fasum'] ?? null, 'fasus_fasum' => $data['fasus_fasum'] ?? null,

View File

@@ -567,6 +567,7 @@ class FormSurveyorRequest extends FormRequest
{ {
return [ return [
'permohonan_id' => 'required', 'permohonan_id' => 'required',
'dokument_id' => 'required',
'type' => 'required', 'type' => 'required',
'nomor_registrasi' => 'required', 'nomor_registrasi' => 'required',
'nomor_nib' => 'nullable', 'nomor_nib' => 'nullable',
@@ -633,10 +634,18 @@ class FormSurveyorRequest extends FormRequest
private function getRapRules() private function getRapRules()
{ {
return [ return [
'perizinan.*' => 'required',
'perizinan_file.*' => 'required',
'brosur_price_list.*' => 'required', 'perizinan' => 'nullable|array',
'brosur_price_file.*' => 'required', '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', 'pengalaman_developer' => 'nullable',
'developer_anggota' => 'nullable', 'developer_anggota' => 'nullable',
'lainnya_developer.*' => 'nullable', 'lainnya_developer.*' => 'nullable',
@@ -649,7 +658,13 @@ class FormSurveyorRequest extends FormRequest
'pusat_keramaian' => 'nullable', 'pusat_keramaian' => 'nullable',
'transportasi_umum' => 'nullable', 'transportasi_umum' => 'nullable',
'lainnya_kondisi.*' => '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', 'jumlah_unit.*' => 'nullable',
'batas_batas_perumahan' => 'nullable', 'batas_batas_perumahan' => 'nullable',
'fasus_fasum.*' => 'nullable', 'fasus_fasum.*' => 'nullable',
@@ -658,6 +673,7 @@ class FormSurveyorRequest extends FormRequest
'target_market.*' => 'nullable', 'target_market.*' => 'nullable',
'kerjasama_dengan_bank' => 'nullable', 'kerjasama_dengan_bank' => 'nullable',
'rute_menuju_lokasi' => 'nullable', 'rute_menuju_lokasi' => 'nullable',
'peruntukan' => 'nullable',
'kdb' => 'nullable', 'kdb' => 'nullable',
'kdh' => 'nullable', 'kdh' => 'nullable',
'gsb' => '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="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="p-4 h-full flex flex-col">
<div class="flex justify-between items-center mb-4"> <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> <i class="ki-duotone ki-cloud-download me-1"><span class="path1"></span><span class="path2"></span></i>
Download File Download File
</button> </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> <i class="ki-filled ki-cross-square text-red-600"></i>
</button> </button>
</div> </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"> <div class="flex flex-wrap items-baseline w-full">
<input type="date" id="tanggal_survey" name="tanggal_survey" <input type="date" id="tanggal_survey" name="tanggal_survey"
class="input w-full" placeholder="Masukkan 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>
</div> </div>

View File

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

View File

@@ -186,28 +186,81 @@
} }
@endphp @endphp
@if (isset($dokumen)) @endforeach
@foreach ($dokumen->detail as $index => $details) @if (@isset($dokumen))
<tr> @foreach ($dokumen->detail as $detail)
<td> <tr>
{{ $index + 1 }}. {{ $details->jenisLegalitasJaminan->name ?? '' }} @if (isset($detail->dokumen_jaminan))
@if (isset($details->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 @php
$dokumen_nomor = is_array(json_decode($details->dokumen_nomor)) $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($details->dokumen_nomor) ? json_decode($detail->dokumen_jaminan)
: ($details->dokumen_nomor : [$detail->dokumen_jaminan];
? [$details->dokumen_nomor] $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []); : []);
@endphp @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 @endforeach
@endif @endif
</td> </td>
</tr> @endif
@endforeach </tr>
@endif
<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 @endforeach
@endif
</table> </table>
<h2 style="text-transform: uppercase;">DESKRIPSI DEVELOPER</h2> <h2 style="text-transform: uppercase;">DESKRIPSI DEVELOPER</h2>
@@ -280,98 +333,104 @@
<h2 style="text-transform: uppercase;">PARTISI BANGUNAN</h2> <h2 style="text-transform: uppercase;">PARTISI BANGUNAN</h2>
<table> <table>
@isset($forminspeksi['jumlah_unit']) @isset($forminspeksi['partisi'])
@foreach ($forminspeksi['jumlah_unit'] as $item) @foreach ($forminspeksi['partisi'] as $key => $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item['nama'] }}
</td> </td>
</tr> </tr>
@endforeach <tr>
<td>
{{ $item['value'] }}
</td>
</tr>
@endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">JUMLAH UNIT, BLOK, TYPE DAN LUAS BANGUNAN</h2> <h2 style="text-transform: uppercase;">JUMLAH UNIT, BLOK, TYPE DAN LUAS BANGUNAN</h2>
<table> <table>
@isset($forminspeksi['jumlah_unit']) @isset($forminspeksi['jumlah_unit'])
@foreach ($forminspeksi['jumlah_unit'] as $item) @foreach ($forminspeksi['jumlah_unit'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">BATAS-BATAS PERUMAHAN</h2> <h2 style="text-transform: uppercase;">BATAS-BATAS PERUMAHAN</h2>
<table> <table>
@isset($forminspeksi['batas_batas_perumahan']) @isset($forminspeksi['batas_batas_perumahan'])
@foreach ($forminspeksi['batas_batas_perumahan'] as $item) @foreach ($forminspeksi['batas_batas_perumahan'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">FASOS/FASUM</h2> <h2 style="text-transform: uppercase;">FASOS/FASUM</h2>
<table> <table>
@isset($forminspeksi['fasus_fasum']) @isset($forminspeksi['fasus_fasum'])
@foreach ($forminspeksi['fasus_fasum'] as $item) @foreach ($forminspeksi['fasus_fasum'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">PROGRES PENJUALAN SAAT INI</h2> <h2 style="text-transform: uppercase;">PROGRES PENJUALAN SAAT INI</h2>
<table> <table>
@isset($forminspeksi['progres_penjualan']) @isset($forminspeksi['progres_penjualan'])
@foreach ($forminspeksi['progres_penjualan'] as $item) @foreach ($forminspeksi['progres_penjualan'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">HARGA UNIT</h2> <h2 style="text-transform: uppercase;">HARGA UNIT</h2>
<table> <table>
@isset($forminspeksi['harga_unit']) @isset($forminspeksi['harga_unit'])
@foreach ($forminspeksi['harga_unit'] as $item) @foreach ($forminspeksi['harga_unit'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">TARGET MARKET</h2> <h2 style="text-transform: uppercase;">TARGET MARKET</h2>
<table> <table>
@isset($forminspeksi['target_market']) @isset($forminspeksi['target_market'])
@foreach ($forminspeksi['target_market'] as $item) @foreach ($forminspeksi['target_market'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">KERJASAMA DENGAN BANK LAIN</h2> <h2 style="text-transform: uppercase;">KERJASAMA DENGAN BANK LAIN</h2>
<table> <table>
@isset($forminspeksi['kerjasama_dengan_bank']) @isset($forminspeksi['kerjasama_dengan_bank'])
@foreach ($forminspeksi['kerjasama_dengan_bank'] as $item) @foreach ($forminspeksi['kerjasama_dengan_bank'] as $item)
<tr> <tr>
<td> <td>
{{ $item }} {{ $item }}
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
</table> </table>
<h2 style="text-transform: uppercase;">RUTE MENUJU LOKASI</h2> <h2 style="text-transform: uppercase;">RUTE MENUJU LOKASI</h2>
@@ -379,98 +438,121 @@
<tr> <tr>
<td> <td>
{{ $forminspeksi['rute_menuju_lokasi'] ?? '' }} {{ $forminspeksi['rute_menuju_lokasi'] ?? '' }}
</td> </td>
</tr> </tr>
</table> </table>
<h2 style="text-transform: uppercase;">ATURAN TATA KOTA</h2> <h2 style="text-transform: uppercase;">ATURAN TATA KOTA</h2>
<h2 style="text-transform: uppercase;">CATATAN LAINNYA</h2>
<table> <table>
@php
$informasi = [
'peruntukan',
'kdb',
'kdh',
'gsb',
'max_lantai',
'klb',
'gss',
'pelebaran_jalan',
'nama_petugas',
];
@endphp
@isset($forminspeksi['keterangan']) @foreach ($informasi as $key)
@foreach ($forminspeksi['keterangan'] as $item) @if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
<tr> <p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
<td> {{ $forminspeksi['fakta'][$key] }}</p>
{{ $item }} @endif
@endforeach
<h2 style="text-transform: uppercase;">CATATAN LAINNYA</h2>
<table>
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $keterangan)
<tr>
<td>
<p>{!! nl2br(e($keterangan)) !!}</p>
</td> </td>
</tr> </tr>
@endforeach @endforeach
@endisset
</table>
<p>Demikian kami sampaikan, atas perhatiannya kami ucapkan terima kasih.</p>
<table style="width: 100%; text-align: center;"> </table>
@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( <p>Demikian kami sampaikan, atas perhatiannya kami ucapkan terima kasih.</p>
'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> <table style="width: 100%; text-align: center;">
@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);
<tr> $imagePathDD = storage_path(
<td></td> 'app/public/signatures/' .
<td>{{ $penilai->userPenilaiTeam->name ?? '' }} User::role('DD Appraisal')->first()->id .
<br>{{ ucwords(strtolower('PENILAI')) }} '/' .
</td> User::role('DD Appraisal')->first()->sign,
<td> );
@if ($permohonan->approval_eo != null) @endphp
{{ $senior_officer->name ?? '' }} <tr>
<br> {{ ucwords(strtolower('SENIOR OFFICER')) }} <td style="height: 50px;"></td>
@endif <td style="height: 50px;">
</td> @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>
<td> </tr>
@if ($permohonan->approval_dd != null)
{{ User::role('DD Appraisal')->first()->name ?? '' }}
<br>{{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
@endif
</td>
</tr>
</table>
<div class="page-break"></div> <tr>
<td></td>
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}
<br>{{ ucwords(strtolower('PENILAI')) }}
</td>
<td>
@if ($permohonan->approval_eo != null)
{{ $senior_officer->name ?? '' }}
<br> {{ ucwords(strtolower('SENIOR OFFICER')) }}
@endif
</td>
<div class="section"> <td>
<div class="judul"> @if ($permohonan->approval_dd != null)
<h6 class="border" style="text-align: center"> {{ User::role('DD Appraisal')->first()->name ?? '' }}
FOTO JAMINAN <br>{{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
</h6> @endif
</td>
</tr>
</table>
<div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center">
FOTO JAMINAN
</h6>
</div>
@include('lpj::penilai.components.foto-jaminan')
</div> </div>
@include('lpj::penilai.components.foto-jaminan')
</div>
</main> </main>
<footer></footer> <footer></footer>

View File

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

View File

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

View File

@@ -156,7 +156,8 @@
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="text-align: center; margin-top: 5px;"> <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 Penilaian
</h2> </h2>
<p style="font-size: 12px; margin: 0;">NO: {{ $nomorLaporan }}</p> <p style="font-size: 12px; margin: 0;">NO: {{ $nomorLaporan }}</p>
@@ -190,53 +191,65 @@
{{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }}</td> {{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top; padding:2px;">Dokumen</td> <td style="vertical-align: top;">Legalitas</td>
<td style="vertical-align: top; padding:2px;">:</td> <td style="vertical-align: top;">:</td>
<td style="vertical-align: top; padding:2px;"> <td style="vertical-align: top;">
<table> <table style="margin: 0; padding: 0;">
@if (@isset($dokumen)) @if (isset($dokumen))
@foreach ($dokumen->detail as $detail) @foreach ($dokumen->detail as $detail)
<tr> <tr>
@if (isset($detail->dokumen_jaminan)) @if (isset($detail->dokumen_jaminan))
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td> <td style="padding: 0; margin: 0;">
<td>
@if (isset($detail->dokumen_jaminan))
@php @php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan) ? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan]; : [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor) ? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor : ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []);
? [$detail->dokumen_nomor]
: []);
@endphp @endphp
@foreach ($dokumen_jaminan as $index => $dokumen) @foreach ($dokumen_jaminan as $index => $dokumen)
<div> @if (!empty($dokumen_nomor[$index]))
@if (!empty($dokumen_nomor[$index])) <span>{{ $dokumen_nomor[$index] }}</span>
<span>{{ $dokumen_nomor[$index] }}</span> @endif
@endif
</div>
@endforeach @endforeach
@endif </td>
</td> @endif
@endif
</tr> </tr>
@endforeach @endforeach
@endif @endif
</table> </table>
</td> </td>
</tr> </tr>
<tr>
@php
$cekLuas = isset($forminspeksi['tanah']['luas_tanah']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai';
$luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null; <tr>
@endphp @if (isset($permohonan->debiture->documents))
<td>Luas Tanah</td> @foreach ($permohonan->debiture->documents as $document)
<td>:</td> @foreach ($document->detail as $detail)
<td>{{ $luas ?? '' }}</td> @if (isset($detail->details))
@php
$details = json_decode($detail->details, true);
@endphp
@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>
<tr> <tr>
<td>Tanggal Survey</td> <td>Tanggal Survey</td>
@@ -252,7 +265,8 @@
<tr> <tr>
<td>Tanggal Resume</td> <td>Tanggal Resume</td>
<td>:</td> <td>:</td>
<td>{{ isset($resumeData['tanggal_resume']) ? formatTanggalIndonesia($resumeData['tanggal_resume']) : '' }}</td> <td>{{ optional($resumeData)['tanggal_resume'] ? formatTanggalIndonesia($resumeData['tanggal_resume']) : '' }}
</td>
</tr> </tr>
</table> </table>
@@ -267,7 +281,7 @@
@isset($resumeData['fakta']['fakta_positif']) @isset($resumeData['fakta']['fakta_positif'])
@foreach ($resumeData['fakta']['fakta_positif'] as $key => $item) @foreach ($resumeData['fakta']['fakta_positif'] as $key => $item)
<tr> <tr>
<td>{{ $key + 1 }} . {{ $item }}</td> <td>{{ $item }}</td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
@@ -284,7 +298,7 @@
@isset($resumeData['fakta']['fakta_negatif']) @isset($resumeData['fakta']['fakta_negatif'])
@foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item) @foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
<tr> <tr>
<td>{{ $key + 1 }} . {{ $item }}</td> <td>{{ $item }}</td>
</tr> </tr>
@endforeach @endforeach
@endisset @endisset
@@ -326,31 +340,32 @@
@endforeach @endforeach
</table> </table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> @if (!empty($resumeData['sesuai_imb']))
<tr> <table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">2. Sesuai IMB</h6>
</td>
</tr>
</table>
<table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;">
<tr>
<td style="border: 1px solid #000; padding: 4px;">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Tanah ()</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Bangunan ()</td>
<td style="border: 1px solid #000; padding: 4px;">Nilai Pasar Wajar (Rp)</td>
</tr>
@foreach ($resumeData['sesuai_imb'] as $item)
<tr> <tr>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['sertifikat'] ?? '' }}</td> <td style="">
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_tanah'] ?? '' }}</td> <h6 style="text-transform: uppercase; margin: 0; ">2. Sesuai IMB</h6>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_bangunan'] ?? '' }}</td> </td>
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($item['nilai']) ?? '' }}</td>
</tr> </tr>
@endforeach </table>
</table>
<table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;">
<tr>
<td style="border: 1px solid #000; padding: 4px;">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Tanah ()</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Bangunan ()</td>
<td style="border: 1px solid #000; padding: 4px;">Nilai Pasar Wajar (Rp)</td>
</tr>
@foreach ($resumeData['sesuai_imb'] as $item)
<tr>
<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>
</tr>
@endforeach
</table>
@endif
@if (!empty($resumeData['tambahan'])) @if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $index => $item) @foreach ($resumeData['tambahan'] as $index => $item)
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> <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['sertifikat'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_tanah'] ?? '-' }}</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;">{{ $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> </tr>
</table> </table>
@endforeach @endforeach
@@ -409,10 +425,12 @@
PELENGKAP DLL AKAN TERCATAT DI LAPORAN PENILAIAN JAMINAN (LPJ) NANTI</li> PELENGKAP DLL AKAN TERCATAT DI LAPORAN PENILAIAN JAMINAN (LPJ) NANTI</li>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA DIGUNAKAN UNTUK KEPENTINGAN <li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA DIGUNAKAN UNTUK KEPENTINGAN
INTERNAL BAGI</li> 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 TERHITUNG DARI TANGGAL RESUME INI DIBUAT SESUAI ATURAN YANG BERLAKU, APABILA
LEWAT MAKA HARUS DILAKUKAN ORDER ULANG SESUAI PROSEDUR YANG BERLAKU</li> 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> ulang kembali</li>
</ol> </ol>
</div> </div>
@@ -433,14 +451,14 @@
</tr> </tr>
<tr> <tr>
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br> <td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
{{ ucwords(strtolower('PENILAI'))}} {{ ucwords(strtolower('PENILAI')) }}
</td> </td>
<td> <td>
@if ($permohonan->approval_so) @if ($permohonan->approval_so)
{{ $senior_officer->name ?? '' }}</br> {{ $senior_officer->name ?? '' }}</br>
{{ ucwords(strtolower('SENIOR OFFICER'))}} {{ ucwords(strtolower('SENIOR OFFICER')) }}
@endif @endif
</td> </td>
@@ -449,14 +467,14 @@
@endphp @endphp
<td> <td>
@if ($permohonan->approval_eo != null) @if ($permohonan->approval_eo != null)
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br> {{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('EXECUTIVE OFFICER'))}} {{ ucwords(strtolower('EXECUTIVE OFFICER')) }}
@endif @endif
</td> </td>
<td> <td>
@if ($permohonan->approval_eo != null) @if ($permohonan->approval_eo != null)
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br> {{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('DEPUTY DIRECTOR'))}} {{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
@endif @endif
</td> </td>

View File

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

View File

@@ -212,12 +212,46 @@
<input type="text" name="fisik_sertifikat[]" <input type="text" name="fisik_sertifikat[]"
class="input number-format"> class="input number-format">
</td> </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"> <td class="text-center">
<input type="text" name="fisik_luas_tanah[]" <input type="text" name="fisik_luas_tanah[]"
class="input number-format"> class="input number-format" value="{{ $luas_tanah }}">
</td> </td>
<td class="text-center"> <input type="text" name="fisik_luas_bangunan[]" <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"> <td class="text-center">
<input type="text" name="fisik_nilai[]" class="input number-format"> <input type="text" name="fisik_nilai[]" class="input number-format">
</td> </td>
@@ -299,7 +333,8 @@
<table <table
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5"> class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
<input class="input" name="tambahan_nama_kesimpulan[]" <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> <thead>
@@ -316,7 +351,7 @@
<tbody> <tbody>
@if (!empty($resumeData['tambahan'])) @if (!empty($resumeData['tambahan']))
{{-- @foreach ($resumeData['tambahan'] as $item) --}} {{-- @foreach ($resumeData['tambahan'] as $item) --}}
<tr> <tr>
<td class="text-center"> <td class="text-center">
<input type="text" name="tambahan_sertifikat[]" <input type="text" name="tambahan_sertifikat[]"
@@ -568,7 +603,7 @@
keterangan: "" keterangan: ""
}; };
// Ambil fakta positif // Ambil fakta positif
document.querySelectorAll('textarea[name="fakta_positif[]"]').forEach(textarea => { document.querySelectorAll('textarea[name="fakta_positif[]"]').forEach(textarea => {
jsonData.fakta.fakta_positif.push(textarea.value); jsonData.fakta.fakta_positif.push(textarea.value);

View File

@@ -270,7 +270,7 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full"> <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> <label class="form-label font-medium max-w-56">Nomor NIB</label>
<div class="flex flex-wrap items-baseline w-full"> <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"> placeholder="Masukkan Nomor NIB">
</div> </div>
</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 border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
<div class="card-header bg-agi-50"> <div class="card-header bg-agi-50">
<h3 class="card-title uppercase"> <h3 class="card-title uppercase">
@@ -7,50 +6,133 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="grid gap-5"> <div class="grid gap-5">
<!-- Bagian Perizinan -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full"> <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-wrap items-stretch w-full">
<div class="flex flex-col items-start gap-4 w-full"> <div class="flex flex-col items-start gap-4 w-full">
@if (isset($basicData['perizinan'])) @if (isset($basicData['perizinan']))
@foreach ($basicData['perizinan'] as $item) @foreach ($basicData['perizinan'] as $key => $item)
<div class="flex items-center w-full"> <div class="flex items-center gap-4 w-full">
<label class="form-label flex items-center gap-2.5 text-nowrap"> <label class="form-label flex items-center gap-2.5 text-nowrap min-w-[200px]">
<input class="checkbox" name="perizinan[]" type="checkbox"> <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 }} {{ $item->name }}
</label> </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> </div>
@endforeach @endforeach
@endif @endif
</div> </div>
</div> </div>
</div> </div>
<!-- Bagian Brosur & Pricelist -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full"> <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> <label class="form-label max-w-56">Brosur & Pricelist</label>
<div class="flex-wrap items-stretch w-full"> <div class="flex-wrap items-stretch w-full">
<div class="flex flex-col items-start gap-4 w-full"> @php
<div class="flex items-center w-full"> $brosurItems = [
<label class="form-label flex items-center gap-2.5 text-nowrap"> [
<input class="checkbox" name="brosur_price_list[]" type="checkbox"> 'label' => 'Brosur',
Brosur 'name' => 'brosur_price_list',
</label> 'inputname' => 'brosur_price_list_file',
<input class="file-input" name="brosur_price_list[]" type="file" /> ],
</div> [
<div class="flex items-center w-full"> 'label' => 'Pricelist',
<label class="form-label flex items-center gap-2.5 text-nowrap"> 'name' => 'brosur_price_list',
<input class="checkbox" name="brosur_price_list_file[]" type="checkbox"> 'inputname' => 'brosur_price_list_file',
Pricelist ],
</label> ];
<input class="file-input" name="brosur_price_list_file[]" type="file" /> @endphp
</div> <div class="flex flex-col items-start gap-4 w-full">
@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>
<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>
</div> </div>
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden"> <div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
<div class="card-header bg-agi-50"> <div class="card-header bg-agi-50">
@@ -95,30 +177,30 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Lainnya</label> <label class="form-label max-w-56">Lainnya</label>
<div class="w-full"> <div class="w-full">
<div id="lainnya_developer-container" class="flex flex-wrap items-baseline w-full"> <div id="lainnya_developer-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['lainnya_developer'])) @if (!empty($forminspeksi['lainnya_developer']))
@foreach ($forminspeksi['lainnya_developer'] as $index => $item) @foreach ($forminspeksi['lainnya_developer'] as $index => $item)
<div class="lainnya_developer flex items-center gap-2 mt-2 textarea-group w-full"> <div class="lainnya_developer flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="lainnya_developer[]" rows="3">{{ old("lainnya_developer.$index", $item) }}</textarea> <textarea class="textarea mt-2" name="lainnya_developer[]" rows="3">{{ old("lainnya_developer.$index", $item) }}</textarea>
</div> </div>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;"> <button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
</button> </button>
@endforeach @endforeach
@else @else
<div class="lainnya_developer flex items-center gap-2 mt-2 textarea-group w-full"> <div class="lainnya_developer flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="lainnya_developer[]" rows="3">{{ old('lainnya_developer.0', '') }}</textarea> <textarea class="textarea mt-2" name="lainnya_developer[]" rows="3">{{ old('lainnya_developer.0', '') }}</textarea>
</div> </div>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;"> <button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
</button> </button>
@endif @endif
</div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('lainnya_developer-container', 'lainnya_developer')">
<i class="ki-outline ki-plus"></i>
</button>
</div> </div>
<button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('lainnya_developer-container', 'lainnya_developer')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div> </div>
</div> </div>
@@ -314,19 +396,20 @@
@if (isset($basicData['spekKategoriBangunan'])) @if (isset($basicData['spekKategoriBangunan']))
@foreach ($basicData['spekKategoriBangunan'] as $item) @foreach ($basicData['spekKategoriBangunan'] as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <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"> <div class="flex flex-wrap items-baseline w-full">
<input type="text" name="partisi_{{ $item->name }}" class="input" <input type="hidden" name="partisi[{{ $item->name }}][nama]"
placeholder="Masukkan {{ $item->name }}"> value="{{ $item->name ?? '' }}">
@error($item->name) <input type="text" name="partisi[{{ $item->name }}][value]" class="input"
<em class="alert text-danger text-sm"></em> placeholder="Masukkan {{ $item->name }}"
@enderror value="{{ isset($forminspeksi['partisi'][$item->name]['value']) ? $forminspeksi['partisi'][$item->name]['value'] : old('partisi.' . $item->name . '.value') }}">
</div> </div>
</div> </div>
@endforeach @endforeach
@endif @endif
</div> </div>
</div> </div>
</div> </div>
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden"> <div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
@@ -359,9 +442,9 @@
</div> </div>
</div> </div>
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('jumlah-unit', 'jumlah_unit')"> onclick="addClonableItem('jumlah-unit', 'jumlah_unit')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
@@ -395,9 +478,9 @@
</div> </div>
</div> </div>
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('bata-perumahan-container', 'batas_batas_perumahan')"> onclick="addClonableItem('bata-perumahan-container', 'batas_batas_perumahan')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
@@ -431,9 +514,9 @@
</div> </div>
</div> </div>
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('fasos-fasum-container', 'fasus_fasum')"> onclick="addClonableItem('fasos-fasum-container', 'fasus_fasum')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
@@ -466,9 +549,9 @@
</div> </div>
</div> </div>
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('progres-penjualan-container', 'progres_penjualan')"> onclick="addClonableItem('progres-penjualan-container', 'progres_penjualan')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
@@ -502,9 +585,9 @@
</div> </div>
</div> </div>
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="btn btn-primary btn-sm mt-5"
onclick="addClonableItem('harga-unit-container', 'harga_unit')"> onclick="addClonableItem('harga-unit-container', 'harga_unit')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden"> <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"> <div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['rute_menuju_lokasi'])) @if (!empty($forminspeksi['rute_menuju_lokasi']))
<div class="rute_menuju_lokasi flex items-center gap-2 mt-2 textarea-group w-full">
<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;">
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;"> <i class="ki-outline ki-trash"></i>
<i class="ki-outline ki-trash"></i> </button>
</button> </div>
</div>
@else @else
<div class="rute_menuju_lokasi flex items-center gap-2 mt-2 textarea-group w-full"> <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> <textarea class="textarea mt-2" name="rute_menuju_lokasi" rows="3">{{ old('rute_menuju_lokasi') }}</textarea>