Merge branch 'staging' into fix/save-penilai

This commit is contained in:
majid
2025-03-09 05:12:47 +07:00
44 changed files with 2039 additions and 1997 deletions

View File

@@ -430,7 +430,8 @@ function getWilayahName($code, $type)
}
function formatLabel($key) {
function formatLabel($key)
{
static $labelCache = [];
if (isset($labelCache[$key])) {
@@ -468,3 +469,35 @@ function calculateSLA($permohonan, $type)
return $slaMap[$type] ?? null;
}
/**
* Menghitung total nilai berdasarkan key dan jenis legalitas.
*
* @param array $detailsArray
* @param string $key
* @param int $jenisLegalitas
* @return int
*/
function calculateTotalLuas($detailsArray, $key, $jenisLegalitas)
{
$total = 0;
if ($detailsArray) {
foreach ($detailsArray as $item) {
if (isset($item->jenis_legalitas_jaminan_id) && $item->jenis_legalitas_jaminan_id === $jenisLegalitas) {
$details = json_decode($item->details, true);
if (is_array($details)) {
foreach ($details as $detail) {
if (isset($detail[$key])) {
$total += (int) $detail[$key];
}
}
}
}
}
}
return $total;
}

View File

@@ -90,7 +90,7 @@
'jenis_legalitas_jaminan_id' => $value,
'name' => $request->name[$key],
'keterangan' => $request->keterangan[$key],
'details' => isset($request->custom_field[$value]) ? json_encode($request->custom_field[$value]) : ''
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : ''
];
$dokumenJaminan = [];
@@ -104,7 +104,7 @@
$file_name,
);
$dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
$dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '';
$dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
}
}
}
@@ -249,7 +249,7 @@
'jenis_legalitas_jaminan_id' => $value,
'name' => $request->name[$key],
'keterangan' => $request->keterangan[$key],
'details' => isset($request->custom_field[$value]) ? json_encode($request->custom_field[$value]) : ''
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : ''
];
$dokumenJaminan = [];
@@ -257,60 +257,75 @@
if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) {
foreach ($request->dokumen_jaminan[$key] as $index => $file) {
if ($file) {
if ($file instanceof \Illuminate\Http\UploadedFile) {
// Jika file baru diupload
$file_name = $file->getClientOriginalName();
$file->storeAs(
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
$file_name,
);
$dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
$dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '';
} elseif (is_string($file) && !empty($file)) {
// Jika file tidak diubah, gunakan path yang sudah ada
$dokumenJaminan[] = $file;
} else {
// Jika file kosong atau null, tambahkan placeholder atau skip
$dokumenJaminan[] = null; // atau skip dengan continue;
}
// Selalu update dokumen_nomor, baik file diubah atau tidak
$dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
}
}
// Setelah loop, periksa apakah ada dokumen yang dihapus
$existingDetail = $existingDetails->get($request->detail_dokumen_jaminan_id[$key] ?? null);
if ($existingDetail) {
$existingDokumen = json_decode($existingDetail->dokumen_jaminan, true) ?? [];
$existingNomor = json_decode($existingDetail->dokumen_nomor, true) ?? [];
// Jika jumlah dokumen berkurang, berarti ada yang dihapus
if (count($existingDokumen) > count($dokumenJaminan)) {
$dokumenJaminan = $existingDokumen;
$dokumenNomor = $existingNomor;
foreach ($request->dokumen_jaminan[$key] as $index => $file) {
if ($file === null) {
// Hapus dokumen yang tidak ada lagi
unset($dokumenJaminan[$index]);
unset($dokumenNomor[$index]);
} elseif (is_string($file) && !empty($file)) {
// Update nomor dokumen untuk file yang tidak diubah
$dokumenNomor[$index] = $request->dokumen_nomor[$key][$index] ?? '-';
}
}
// Reset array keys
$dokumenJaminan = array_values($dokumenJaminan);
$dokumenNomor = array_values($dokumenNomor);
}
}
if (!empty($dokumenJaminan)) {
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
$detailData['dokumen_nomor'] = json_encode($dokumenNomor);
$detailData['dokumen_nomor'] = json_encode($dokumenNomor);
}
if (isset($request->detail_dokumen_jaminan_id[$key])) {
$detailId = $request->detail_dokumen_jaminan_id[$key];
$detailDocument = $existingDetails->get($detailId);
if ($detailDocument) {
// Merge new files with existing ones
if (!empty($dokumenJaminan)) {
$existingFiles = json_decode(
$detailDocument->dokumen_jaminan,
true,
) ?: [];
$existingNomor = json_decode(
$detailDocument->dokumen_nomor,
true,
) ?: [];
$mergedFiles = array_merge($existingFiles, $dokumenJaminan);
$mergedNomor = array_merge($existingNomor, $dokumenNomor);
$detailData['dokumen_jaminan'] = json_encode($mergedFiles);
$detailData['dokumen_nomor'] = json_encode($mergedNomor);
}
$detailDocument->update($detailData);
$existingDetails->forget($detailId);
}
$detailDocument->update($detailData);
} else {
DetailDokumenJaminan::create($detailData);
}
}
}
// Delete any remaining existing details that weren't updated
foreach ($existingDetails as $detail) {
$files = json_decode($detail->dokumen_jaminan, true) ?: [];
foreach ($files as $file) {
Storage::delete('public/' . $file);
}
$detail->delete();
}
DB::commit();
return redirect()->route('debitur.jaminan.index', $id)->with(
'success',
@@ -342,6 +357,7 @@
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
$_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id);
$legalitas = '';
if ($_jenisJaminan) {
$legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true);

View File

@@ -150,4 +150,16 @@
{
return Excel::download(new JenisLegalitasJaminanExport, 'jenis_legalitas_jaminan.xlsx');
}
public function getCustomFields($id)
{
$jenisLegalitasJaminan = JenisLegalitasJaminan::findOrFail($id);
if(!$jenisLegalitasJaminan->custom_fields) {
return response()->json([]);
}
$customFields = CustomField::whereIn('id', $jenisLegalitasJaminan->custom_fields)->get();
return response()->json($customFields);
}
}

View File

@@ -151,7 +151,7 @@ class LaporanExternalController extends Controller
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->with(['permohonan.debiture','permohonan.penawaran.tujuanPenilaianKjpp'])->get();
$data = $query->with(['permohonan.debiture','permohonan.penawaran.tujuanPenilaianKjpp','permohonan.dokumenjaminan.jenisjaminan'])->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));

View File

@@ -1344,6 +1344,8 @@ class PenilaiController extends Controller
// return $pdf;
$cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan);
$pdf->setPaper('A4', 'portrait');
$pdf->set_option('isHtml5ParserEnabled', true);
$pdf->set_option('isPhpEnabled', true);
return response($pdf->output(), 200)
->header('Content-Type', 'application/pdf')
->header('Content-Disposition', 'inline; filename="Laporan_' . $tipeLaporan . '_' . $permohonan->debiture->name . '_' . $cleanNomorLaporan . '.pdf"');
@@ -1371,6 +1373,8 @@ class PenilaiController extends Controller
// return $pdf;
$cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan);
$pdf->setPaper('A4', 'portrait');
$pdf->set_option('isHtml5ParserEnabled', true);
$pdf->set_option('isPhpEnabled', true);
return $pdf->download('Laporan_' . $tipeLaporan . '_' . $permohonan->debiture->name . '_' . $cleanNomorLaporan . '_data.pdf');
}
} catch (\Exception $e) {

View File

@@ -2309,6 +2309,870 @@ class SurveyorController extends Controller
'perizinan' => ['Perizinan', 'perizinan'],
];
private function getAssetData(array $data): array
{
$alamatData = [
'address' => $data['address'] ?? null,
'village_code' => $data['village_code'] ?? null,
'district_code' => $data['district_code'] ?? null,
'city_code' => $data['city_code'] ?? null,
'province_code' => $data['province_code'] ?? null,
];
$alamatKey = ($data['alamat_sesuai'] ?? null) === 'sesuai' ? 'sesuai' : 'tidak sesuai';
$alamat = [];
// Masukkan key baru yang sesuai
$alamat[$alamatKey] = $alamatData;
return [
'asset' => [
'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [],
'jenis_asset' => [
$data['jenis_asset'] ?? null => ($data['jenis_asset'] ?? null) === 'sesuai'
? ($data['jenis_asset_name'] ?? null)
: ($data['jenis_asset_tidak_sesuai'] ?? null)
],
'alamat' => $alamat,
'hub_cadeb' => [
$data['hub_cadeb'] ?? null => ($data['hub_cadeb'] ?? null) === 'sesuai'
? ($data['hub_cadeb_sesuai'] ?? null)
: ($data['hub_cadeb_tidak_sesuai'] ?? null)
],
'hub_cadeb_penghuni' => [
$data['hub_cadeb_penghuni'] ?? null => ($data['hub_cadeb_penghuni'] ?? null) === 'sesuai'
? ($data['hub_cadeb_penghuni_sesuai'] ?? null)
: ($data['hub_penghuni_tidak_sesuai'] ?? null)
],
'pihak_bank' => $data['pihak_bank'] ?? null,
'kordinat_lng' => $data['kordinat_lng'] ?? null,
'kordinat_lat' => $data['kordinat_lat'] ?? null,
// 'nomor_nib' => $data['nomor_nib'] ?? null
]
];
}
private function getTanahData(array $data): array
{
//luas tanah key
// Luas tanah key
$luas_tanah_key = ($data['luas_tanah'] ?? null) === 'sesuai' ? 'sesuai' : 'tidak sesuai';
$luas_tanah = [];
$hasil_tanah = $luas_tanah_key === 'sesuai'
? ($data['luas_tanah_sesuai'] ?? null)
: ($data['luas_tanah_tidak_sesuai'] ?? null);
$luas_tanah[$luas_tanah_key] = preg_replace('/[^0-9.,]/', '', $hasil_tanah);
// Hadap mata angin key
$hadap_mata_angin_key = ($data['hadap_mata_angin'] ?? null) === 'sesuai' ? 'sesuai' : 'tidak sesuai';
$hadap_mata_angin = [];
$hasil_hadap_mata_angin = $hadap_mata_angin_key === 'sesuai'
? ($data['hadap_mata_angin_sesuai'] ?? null)
: ($data['hadap_mata_angin_tidak_sesuai'] ?? null);
$hadap_mata_angin[$hadap_mata_angin_key] = $hasil_hadap_mata_angin;
$tusuk_sate_key = ($data['tusuk_sate'] ?? null) === 'Ya' ? 'Ya' : 'Tidak';
$tusuk_sate = [];
$tusuk_sate[$tusuk_sate_key] = $data['tusuk_sate_ya'] ?? null;
return [
'tanah' => [
'luas_tanah' => $luas_tanah,
'hadap_mata_angin' => $hadap_mata_angin,
'bentuk_tanah' => $this->getFieldData(
$data,
'bentuk_tanah',
false,
'lainnya'
),
'kontur_tanah' => $data['kontur_tanah'] ?? [],
'ketinggian_tanah' => [
'ketinggian' => $data['ketinggian_jalan'] ?? null,
'lebih_tinggi' => $data['ketinggian_lebih_tinggi'] ?? null,
'lebih_rendah' => $data['ketinggian_lebih_rendah'] ?? null
],
'kontur_jalan' => $data['kontur_jalan'] ?? null,
'ketinggian_jalan' => $data['ketinggian_jalan'] ?? [],
'posisi_kavling' => $this->getFieldData(
$data,
'posisi_kavling',
false,
'lainnya'
),
'tusuk_sate' => $tusuk_sate,
'lockland' => $data['lockland'] ?? null,
'kondisi_fisik_tanah' => $this->getFieldData(
$data,
'kondisi_fisik_tanah',
false,
'lainnya'
)
]
];
}
private function getBangunanData($data, $request): array
{
$data = $request->all();
$result = [];
foreach ($request->input('nama_bangunan') as $index => $buildingName) {
if (empty($buildingName)) {
continue;
} // Skip if building name is empty
$buildingData = [];
$buildingData['bagunan'] = $buildingName;
$specCategories = $request->input('spek_kategori_bangunan');
$buildingData['spek_kategori_bangunan'] = [];
if (!empty($specCategories)) {
foreach ($specCategories as $category) {
if (empty($category)) {
continue;
} // Skip empty categories
$specs = $request->input("spek_bangunan.{$index}.{$category}", []);
// Only add category if it has specifications
if (!empty($specs)) {
$buildingData['spek_kategori_bangunan'][$category] = $specs;
}
}
}
// Only add building data if it has specifications
if (!empty($buildingData['spek_kategori_bangunan'])) {
$result[] = $buildingData;
}
}
$luas_tanah_bagunan_key = ($data['luas_tanah_bagunan'] ?? null) === 'sesuai' ? 'sesuai' : 'tidak sesuai';
$luas_tanah_bagunan = [];
$hasil_tanah_bagunan = $luas_tanah_bagunan_key === 'sesuai'
? ($data['luas_bangunan_sesuai'] ?? null)
: ($data['luas_tanah_bagunan_tidak_sesuai'] ?? null);
// Masukkan key baru yang sesuai
$luas_tanah_bagunan[$luas_tanah_bagunan_key] = preg_replace('/[^0-9.,]/', '', $hasil_tanah_bagunan);
return [
'bangunan' => [
'luas_tanah_bagunan' => $luas_tanah_bagunan,
'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
'sifat_bangunan' => $data['sifat_bangunan'] ?? null,
'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null,
'spesifikasi_bangunan' => $result ?? null,
'sarana_pelengkap' => $data['sarana_pelengkap'] ?? null,
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
],
];
}
private function getLingkunganData($data, $request): array
{
return [
'lingkungan' => [
'jarak_jalan_utama' => $data['jarak_jalan_utama'] ?? null,
'jalan_linkungan' => $data['jalan_linkungan'] ?? null,
'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null,
'nama_cbd_point' => $data['nama_cbd_point'] ?? null,
'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null,
'perkerasan_jalan' => $this->getFieldData(
$data,
'perkerasan_jalan',
false,
'lainnya'
),
'lalu_lintas' => $data['lalu_lintas'] ?? null,
'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null,
'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null,
'terletak_diarea' => $this->getFieldData(
$data,
'terletak_diarea',
false,
'lainnya'
),
'disekitar_lokasi' => ($data['disekitar_lokasi'] ?? null) === 'yes' ? [
'kondisi' => $data['kondisi_bagunan_disekitar_lokasi'] ?? null,
'sifat' => $data['sifat_bagunan_disekitar_lokasi'] ?? null,
] : ($data['disekitar_lokasi'] ?? null),
'kondisi_bagunan_disekitar_lokasi' => $data['kondisi_bagunan_disekitar_lokasi'] ?? null,
'sifat_bagunan_disekitar_lokasi' => $data['sifat_bagunan_disekitar_lokasi'] ?? null,
'dekat_makam' => $data['dekat_makam'] ?? null,
'jarak_makam' => $data['jarak_makam'] ?? null,
'nama_makam' => $data['nama_makam'] ?? null,
'dekat_tps' => $data['dekat_tps'] ?? null,
'jarak_tps' => $data['jarak_tps'] ?? null,
'nama_tps' => $data['nama_tps'] ?? null,
'dekat_lainnya' => $data['dekat_lainnya'] ?? null,
'merupakan_daerah' => $data['merupakan_daerah'] ?? null,
'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null,
'fasilitas_dekat_object_input' => $data['fasilitas_dekat_object_input'] ?? null,
]
];
}
private function getFactData($data, $request): array
{
$factData = [
'fakta' => [
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'rute_menuju' => $data['rute_menuju'] ?? null,
'batas_batas' => $data['batas_batas'] ?? null,
'batas_batas_input' => $data['batas_batas_input'] ?? null,
'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null,
'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null,
'informasi_dokument' => $data['informasi_dokument'] ?? null,
'peruntukan' => $data['peruntukan'] ?? null,
'kdb' => $data['kdb'] ?? null,
'kdh' => $data['kdh'] ?? null,
'gsb' => $data['gsb'] ?? null,
'max_lantai' => $data['max_lantai'] ?? null,
'klb' => $data['klb'] ?? null,
'gss' => $data['gss'] ?? null,
'pelebaran_jalan' => $data['pelebaran_jalan'] ?? null,
'nama_petugas' => $data['nama_petugas'] ?? null,
'keterangan' => $data['keterangan'] ?? null,
]
];
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('dokument_id', $request->input('dokument_id'))->first();
$fotoTypes = [
'foto_gistaru',
'foto_bhumi',
'foto_argis_region',
'foto_tempat',
'foto_sentuh_tanahku',
'upload_gs'
];
if ($inspeksi) {
$dataForm = json_decode($inspeksi->data_form, true);
foreach ($fotoTypes as $fotoType) {
// Jika ada file baru diupload
if ($request->hasFile($fotoType)) {
$factData[$fotoType] = $this->updateOrDeleteFile($dataForm, $request, $fotoType) ?: null;
} else {
$factData[$fotoType] = $dataForm[$fotoType] ?? null;
}
}
} else {
foreach ($fotoTypes as $fotoType) {
$factData[$fotoType] = $this->updateOrDeleteFile($data, $request, $fotoType) ?: null;
}
}
return $factData;
}
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' => $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,
'kapan_mulai_dibangun' => $data['kapan_mulai_dibangun'] ?? null,
'kondisi_perumahan' => $data['kondisi_perumahan'] ?? null,
'progres_pembangunan' => $data['progres_pembangunan'] ?? null,
'kontraktor' => $data['kontraktor'] ?? null,
'lingkungan_sekitar' => $data['lingkungan_sekitar'] ?? null,
'komplek_disekitar' => $data['komplek_disekitar'] ?? null,
'pusat_keramaian' => $data['pusat_keramaian'] ?? null,
'transportasi_umum' => $data['transportasi_umum'] ?? null,
'lainnya_kondisi' => $data['lainnya_kondisi'] ?? null,
'partisi' => $partisiResult ?? null,
'jumlah_unit' => $data['jumlah_unit'] ?? null,
'batas_batas_perumahan' => $data['batas_batas_perumahan'] ?? null,
'fasus_fasum' => $data['fasus_fasum'] ?? null,
'progres_penjualan' => $data['progres_penjualan'] ?? null,
'harga_unit' => $data['harga_unit'] ?? null,
'target_market' => $data['target_market'] ?? null,
'kerjasama_dengan_bank' => $data['kerjasama_dengan_bank'] ?? null,
'rute_menuju_lokasi' => $data['rute_menuju_lokasi'] ?? null,
'properti_sejenis' => $data['properti_sejenis'] ?? null,
];
return $rapData;
}
private function updateOrDeleteFile($data, $request, $fileKey)
{
if ($request->hasFile($fileKey)) {
$file = $request->file($fileKey);
if ($file->isValid()) {
$fileName = time() . '_' . $file->getClientOriginalName();
$path = $file->storeAs("public/surveyor/{$request->type}", $fileName);
if ($path === false) {
throw new Exception("Failed to store file for {$fileKey}");
}
if (isset($data[$fileKey]) && $data[$fileKey]) {
$this->deleteFile($data[$fileKey]);
}
return str_replace('public/', '', $path);
} else {
throw new Exception("Invalid file upload for {$fileKey}");
}
} elseif (isset($data[$fileKey]) && $data[$fileKey]) {
return $data[$fileKey];
} else {
return null;
}
}
private function deleteFile($filePath)
{
$fullPath = storage_path('app/public/' . $filePath);
if (file_exists($fullPath)) {
unlink($fullPath);
}
}
private function getKapalData($data, $request): array
{
$alamatData = [
'village_code' => $data['village_code'] ?? null,
'district_code' => $data['district_code'] ?? null,
'city_code' => $data['city_code'] ?? null,
'province_code' => $data['province_code'] ?? null,
];
return [
'action' => $data['action'] ?? null,
'nama_wakil_debitur' => $data['nama_wakil_debitur'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'dermaga' => $data['dermaga'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok_nomor' => $data['blok_nomor'] ?? null,
'bandara' => $data['bandara'] ?? null,
'alamat' => [
'sesuai' => $alamatData
],
'jenis_kapal' => $data['jenis_kapal'] ?? null,
'jenis_kapal_lainnya' => $data['jenis_kapal_lainnya'] ?? null,
'size' => $data['size'] ?? null,
'kondisi' => $data['kondisi'] ?? null,
'klasifikasi' => $data['klasifikasi'] ?? null,
'nama_kapal' => $data['nama_kapal'] ?? null,
'pemilik_kapal' => $data['pemilik_kapal'] ?? null,
'bendera' => $data['bendera'] ?? null,
'nomor_selar' => $data['nomor_selar'] ?? null,
'kapal' => $data['kapal'] ?? null,
'galangan_kapal' => $data['galangan_kapal'] ?? null,
'kapal_shipyard' => $data['kapal_shipyard'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'tahun_launcing' => $data['tahun_launcing'] ?? null,
'dwt' => $data['dwt'] ?? null,
'lwt' => $data['lwt'] ?? null,
'gross_tonnage' => $data['gross_tonnage'] ?? null,
'net_tonnage' => $data['net_tonnage'] ?? null,
'tenaga_mesin' => $data['tenaga_mesin'] ?? null,
'loa' => $data['loa'] ?? null,
'lbp' => $data['lbp'] ?? null,
'beam' => $data['beam'] ?? null,
'depth' => $data['depth'] ?? null,
'draft' => $data['draft'] ?? null,
'lambung_kapal' => $data['lambung_kapal'] ?? null,
'dek' => $data['dek'] ?? null,
'struktur_rangka' => $data['struktur_rangka'] ?? null,
'palka' => $data['palka'] ?? null,
'pondasi_mesin' => $data['pondasi_mesin'] ?? null,
'area_mesin' => $data['area_mesin'] ?? null,
'cat_dan_korosi' => $data['cat_dan_korosi'] ?? null,
'sistem_pengelasan' => $data['sistem_pengelasan'] ?? null,
'deskripsi_struktur' => $data['deskripsi_struktur'] ?? null,
'sekoci' => $data['sekoci'] ?? null,
'jaket_pelampung' => $data['jaket_pelampung'] ?? null,
'alat_pemadaman' => $data['alat_pemadaman'] ?? null,
'rambu_darurat' => $data['rambu_darurat'] ?? null,
'sistem_alarm' => $data['sistem_alarm'] ?? null,
'sistem_pencegah' => $data['sistem_pencegah'] ?? null,
'kebakaran' => $data['kebakaran'] ?? null,
'lampu_darurat' => $data['lampu_darurat'] ?? null,
'deskripsi_peralatan' => $data['deskripsi_peralatan'] ?? null,
'gps' => $data['gps'] ?? null,
'radar' => $data['radar'] ?? null,
'radio_komunikasi' => $data['radio_komunikasi'] ?? null,
'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
'sistem_kendali_otomatis' => $data['sistem_kendali_otomatis'] ?? null,
'kompas' => $data['kompas'] ?? null,
'deskripsi_navigasi' => $data['deskripsi_navigasi'] ?? null,
'mesin_utama' => $data['mesin_utama'] ?? null,
'mesin_bantu' => $data['mesin_bantu'] ?? null,
'pompa_pendingin' => $data['pompa_pendingin'] ?? null,
'sistem_pelumasan' => $data['sistem_pelumasan'] ?? null,
'propeller' => $data['propeller'] ?? null,
'sistem_kelistrikan' => $data['sistem_kelistrikan'] ?? null,
'deskripsi_mesin_penggerak' => $data['deskripsi_mesin_penggerak'] ?? null,
'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
'sistem_penerangan' => $data['sistem_penerangan'] ?? null,
'sistem_panel_distribusi' => $data['sistem_panel_distribusi'] ?? null,
'kabel_perangkat' => $data['kabel_perangkat'] ?? null,
'deskripsi_kelistrikan' => $data['deskripsi_kelistrikan'] ?? null,
'kebersihan_dek_luar' => $data['kebersihan_dek_luar'] ?? null,
'tangki_limbah' => $data['tangki_limbah'] ?? null,
'sistem_pengelolaan_limbah' => $data['sistem_pengelolaan_limbah'] ?? null,
'pengelolaan_air_ballast' => $data['pengelolaan_air_ballast'] ?? null,
'deskripsi_kebersihan' => $data['deskripsi_kebersihan'] ?? null,
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'analisa_makro' => $data['analisa_makro'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
public function getKendaraanData($data, $request): array
{
$alamatData = [
'village_code' => $data['village_code'] ?? null,
'district_code' => $data['district_code'] ?? null,
'city_code' => $data['city_code'] ?? null,
'province_code' => $data['province_code'] ?? null,
];
return [
'action' => $data['action'] ?? null,
'tanggal_survey' => $data['tanggal_survey'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok_nomor' => $data['blok_nomor'] ?? null,
'alamat' => [
'sesuai' => $alamatData
],
'masa_stnk' => $data['masa_stnk'] ?? null,
'masa_pajak' => $data['masa_pajak'] ?? null,
'kendaraan' => $data['kendaraan'] ?? null,
'kendaraan_input' => $data['kendaraan_input'] ?? null,
'kondisi' => $data['kondisi'] ?? null,
'nomor_polisi' => $data['nomor_polisi'] ?? null,
'nomor_polis_tidak_sesuai' => $data['nomor_polis_tidak_sesuai'] ?? null,
'merek' => $data['merek'] ?? null,
'merek_tidak_sesuai' => $data['merek_tidak_sesuai'] ?? null,
'warna' => $data['warna'] ?? null,
'warna_tidak_sesuai' => $data['warna_tidak_sesuai'] ?? null,
'nomor_rangka' => $data['nomor_rangka'] ?? null,
'nomor_rangka_tidak_sesuai' => $data['nomor_rangka_tidak_sesuai'] ?? null,
'nomor_mesin' => $data['nomor_mesin'] ?? null,
'nomor_mesin_tidak_sesuai' => $data['nomor_mesin_tidak_sesuai'] ?? null,
'posisi_kilometer' => $data['posisi_kilometer'] ?? null,
'transmisi' => $data['transmisi'] ?? null,
'transmisi_input' => $data['transmisi_input'] ?? null,
'mesin_panel_instrument' => $data['mesin_panel_instrument'] ?? null,
'mesin_panel_instrument_input' => $data['mesin_panel_instrument_input'] ?? null,
'fungsi_mesin_panel_instrument' => $data['fungsi_mesin_panel_instrument'] ?? null,
'fungsi_mesin_panel_instrument_input' => $data['fungsi_mesin_panel_instrument_input'] ?? null,
'interior' => $data['interior'] ?? null,
'interior_input' => $data['interior_input'] ?? null,
'jumlah_pintu' => $data['jumlah_pintu'] ?? null,
'jumlah_pintu_input' => $data['jumlah_pintu_input'] ?? null,
'rangka_karoseri' => $data['rangka_karoseri'] ?? null,
'rangka_karoseri_input' => $data['rangka_karoseri_input'] ?? null,
'ban' => $data['ban'] ?? null,
'ban_input' => $data['ban_input'] ?? null,
'velg' => $data['velg'] ?? null,
'velg_input' => $data['velg_input'] ?? null,
'bamper_depan' => $data['bamper_depan'] ?? null,
'bamper_depan_input' => $data['bamper_depan_input'] ?? null,
'bamper_belakang' => $data['bamper_belakang'] ?? null,
'bamper_belakang_input' => $data['bamper_belakang_input'] ?? null,
'lampu_depan' => $data['lampu_depan'] ?? null,
'lampu_depan_input' => $data['lampu_depan_input'] ?? null,
'lampu_belakang' => $data['lampu_belakang'] ?? null,
'lampu_belakang_input' => $data['lampu_belakang_input'] ?? null,
'kaca_kendaraan' => $data['kaca_kendaraan'] ?? null,
'kaca_kendaraan_input' => $data['kaca_kendaraan_input'] ?? null,
'air_conditioner' => $data['air_conditioner'] ?? null,
'air_conditioner_input' => $data['air_conditioner_input'] ?? null,
'tape_radio_cd' => $data['tape_radio_cd'] ?? null,
'tape_radio_cd_input' => $data['tape_radio_cd_input'] ?? null,
'sensor_parkir' => $data['sensor_parkir'] ?? null,
'sensor_parkir_input' => $data['sensor_parkir_input'] ?? null,
'sensor_camera_recorder' => $data['sensor_camera_recorder'] ?? null,
'sensor_camera_recorder_input' => $data['sensor_camera_recorder_input'] ?? null,
'lcd' => $data['lcd'] ?? null,
'lcd_input' => $data['lcd_input'] ?? null,
'sabuk_keselamatan' => $data['sabuk_keselamatan'] ?? null,
'sabuk_keselamatan_input' => $data['sabuk_keselamatan_input'] ?? null,
'airbag' => $data['airbag'] ?? null,
'airbag_input' => $data['airbag_input'] ?? null,
'asuransi' => $data['asuransi'] ?? null,
'asuransi_input' => $data['asuransi_input'] ?? null,
'perusahaan_asuransi' => $data['perusahaan_asuransi'] ?? null,
'tahun_berakhir' => $data['tahun_berakhir'] ?? null,
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'analisa_makro' => $data['analisa_makro'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
public function getMesinData($data, $request): array
{
return [
'action' => $data['action'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok' => $data['blok'] ?? null,
'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'kota_madya' => $data['kota_madya'] ?? null,
'provinsi' => $data['provinsi'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'tipe_model' => $data['tipe_model'] ?? null,
'merek' => $data['merek'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'negara_pembuat' => $data['negara_pembuat'] ?? null,
'kondisi_mesin' => $data['kondisi_mesin'] ?? null,
'faktor_positif' => $data['faktor_positif'] ?? null,
'faktor_negatif' => $data['faktor_negatif'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
public function getAlatBeratData($data, $request): array
{
$alamatData = [
'village_code' => $data['village_code'] ?? null,
'district_code' => $data['district_code'] ?? null,
'city_code' => $data['city_code'] ?? null,
'province_code' => $data['province_code'] ?? null,
];
return [
'action' => $data['action'] ?? null,
'tanggal_survey' => $data['tanggal_survey'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'dengan_wadeb' => $data['dengan_wadeb'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok_nomor' => $data['blok_nomor'] ?? null,
'alamat' => [
'sesuai' => $alamatData
],
'jenis_model' => $data['jenis_model'] ?? null,
'nomor_lambung' => $data['nomor_lambung'] ?? null,
'model_unit' => $data['model_unit'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'merk' => $data['merk'] ?? null,
'negara_pembuat' => $data['negara_pembuat'] ?? null,
'tahun_pembelian' => $data['tahun_pembelian'] ?? null,
'nomor_faktur' => $data['nomor_faktur'] ?? null,
'nomor_kontrak' => $data['nomor_kontrak'] ?? null,
'nama_pemilik' => $data['nama_pemilik'] ?? null,
'alamat_pemilik' => $data['alamat_pemilik'] ?? null,
'nomor_asuransi' => $data['nomor_asuransi'] ?? null,
'nomor_rangka' => $data['nomor_rangka'] ?? null,
'nomor_mesin' => $data['nomor_mesin'] ?? null,
'hour_mesters' => $data['hour_mesters'] ?? null,
'overhaul_mesin' => $data['overhaul_mesin'] ?? null,
'mesin_panel' => $data['mesin_panel'] ?? null,
'mesin_panel_input' => $data['mesin_panel_input'] ?? null,
'fungsi_panel' => $data['fungsi_panel'] ?? null,
'fungsi_panel_input' => $data['fungsi_panel_input'] ?? null,
'interior' => $data['interior'] ?? null,
'interior_input' => $data['interior_input'] ?? null,
'rangka_Karoseri' => $data['rangka_Karoseri'] ?? null,
'rangka_Karoseri_input' => $data['rangka_Karoseri_input'] ?? null,
'ban' => $data['ban'] ?? null,
'ban_input' => $data['ban_input'] ?? null,
'velg' => $data['velg'] ?? null,
'velg_input' => $data['velg_input'] ?? null,
'air_conditioner' => $data['air_conditioner'] ?? null,
'air_conditioner_input' => $data['air_conditioner_input'] ?? null,
'aksesoris' => $data['aksesoris'] ?? null,
'aksesoris_input' => $data['aksesoris_input'] ?? null,
'lcd' => $data['lcd'] ?? null,
'lcd_input' => $data['lcd_input'] ?? null,
'perlengkapan' => $data['perlengkapan'] ?? null,
'perlengkapan_input' => $data['perlengkapan_input'] ?? null,
'asuransi' => $data['asuransi'] ?? null,
'asuransi_input' => $data['asuransi_input'] ?? null,
'perusahaan_asuransi' => $data['perusahaan_asuransi'] ?? null,
'tahun_berakhir' => $data['tahun_berakhir'] ?? null,
'sensor_kamera' => $data['sensor_kamera'] ?? null,
'sabuk_keselamatan' => $data['sabuk_keselamatan'] ?? null,
'air_bag' => $data['air_bag'] ?? null,
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
private function getPesawatData($data, $request): array
{
$alamatData = [
'village_code' => $data['village_code'] ?? null,
'district_code' => $data['district_code'] ?? null,
'city_code' => $data['city_code'] ?? null,
'province_code' => $data['province_code'] ?? null,
];
return [
'action' => $data['action'] ?? null,
'tanggal_survey' => $data['tanggal_survey'] ?? null,
'nama_wakil' => $data['nama_wakil'] ?? null,
'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
'nama_jalan' => $data['nama_jalan'] ?? null,
'perumahan_gang' => $data['perumahan_gang'] ?? null,
'blok_nomor' => $data['blok_nomor'] ?? null,
'bandara' => $data['bandara'] ?? null,
'alamat' => [
'sesuai' => $alamatData
],
'jenis_pesawat' => $data['jenis_pesawat'] ?? null,
'jenis_pesawat_lainnya' => $data['jenis_pesawat_lainnya'] ?? null,
'size' => $data['size'] ?? null,
'kondisi' => $data['kondisi'] ?? null,
'nama_pesawat' => $data['nama_pesawat'] ?? null,
'model' => $data['model'] ?? null,
'nomor_registrasi' => $data['nomor_registrasi'] ?? null,
'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
'certificate_of_airworthines' => $data['certificate_of_airworthines'] ?? null,
'certificate_of_registration' => $data['certificate_of_registration'] ?? null,
'total_service_hours' => $data['total_service_hours'] ?? null,
'total_service_cycles' => $data['total_service_cycles'] ?? null,
'last_a_check' => $data['last_a_check'] ?? null,
'next_a_check' => $data['next_a_check'] ?? null,
'last_b_check' => $data['last_b_check'] ?? null,
'next_b_check' => $data['next_b_check'] ?? null,
'last_c_check' => $data['last_c_check'] ?? null,
'next_c_check' => $data['next_c_check'] ?? null,
'next_d_check' => $data['next_d_check'] ?? null,
'last_d_check' => $data['last_d_check'] ?? null,
'deskripsi_maintenence' => $data['deskripsi_maintenence'] ?? null,
'instrument_landing_system' => $data['instrument_landing_system'] ?? null,
'traffic_collision_avoidance_system' => $data['traffic_collision_avoidance_system'] ?? null,
'windshear' => $data['windshear'] ?? null,
'electronic_flight' => $data['electronic_flight'] ?? null,
'winglets' => $data['winglets'] ?? null,
'deskripsi_konfigurasi' => $data['deskripsi_konfigurasi'] ?? null,
'maksimal_penumpang' => $data['maksimal_penumpang'] ?? null,
'jumlah_kursi' => $data['jumlah_kursi'] ?? null,
'kursi_pramugari_pramugara' => $data['kursi_pramugari_pramugara'] ?? null,
'kartu_fitur_keselamatan' => $data['kartu_fitur_keselamatan'] ?? null,
'sabuk_pengaman' => $data['sabuk_pengaman'] ?? null,
'lampu_kabin' => $data['lampu_kabin'] ?? null,
'lampu_pintu_keluar' => $data['lampu_pintu_keluar'] ?? null,
'intercom_kabin' => $data['intercom_kabin'] ?? null,
'deskripsi_kabin' => $data['deskripsi_kabin'] ?? null,
'badan_pesawat' => $data['badan_pesawat'] ?? null,
'sayap_pesawat' => $data['sayap_pesawat'] ?? null,
'ekor_pesawat' => $data['ekor_pesawat'] ?? null,
'landing_gear' => $data['landing_gear'] ?? null,
'sistem_pengelasan' => $data['sistem_pengelasan'] ?? null,
'deskripsi_struktur' => $data['deskripsi_struktur'] ?? null,
'gps' => $data['gps'] ?? null,
'radar' => $data['radar'] ?? null,
'radio_komunikasi' => $data['radio_komunikasi'] ?? null,
'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
'sistem_autopilot' => $data['sistem_autopilot'] ?? null,
'deskripsi_navigasi' => $data['deskripsi_navigasi'] ?? null,
'tangki_bahan_bakar' => $data['tangki_bahan_bakar'] ?? null,
'saluran_pipa_bahan_bakar' => $data['saluran_pipa_bahan_bakar'] ?? null,
'pompa_bahan_bakar' => $data['pompa_bahan_bakar'] ?? null,
'sistem_hidrolik_utama' => $data['sistem_hidrolik_utama'] ?? null,
'sistem_pendigin_hidrolik' => $data['sistem_pendigin_hidrolik'] ?? null,
'deskripsi_hidrolik' => $data['deskripsi_hidrolik'] ?? null,
'mesin_utama' => $data['mesin_utama'] ?? null,
'sistem_pendorong' => $data['sistem_pendorong'] ?? null,
'sistem_pendigin_mesin' => $data['sistem_pendigin_mesin'] ?? null,
'sistem_pelumasan' => $data['sistem_pelumasan'] ?? null,
'filter_dan_perangkat_pendukung' => $data['filter_dan_perangkat_pendukung'] ?? null,
'deskripsi_kondisi_mesin' => $data['deskripsi_kondisi_mesin'] ?? null,
'jaket_pelampung' => $data['jaket_pelampung'] ?? null,
'pintu_darurat' => $data['pintu_darurat'] ?? null,
'alat_pemadaman_kebakaran' => $data['alat_pemadaman_kebakaran'] ?? null,
'sistem_alaram_darurat' => $data['sistem_alaram_darurat'] ?? null,
'sekoci' => $data['sekoci'] ?? null,
'masker_oxigen' => $data['masker_oxigen'] ?? null,
'sabuk_pengaman' => $data['sabuk_pengaman'] ?? null,
'deskripsi_fungsi_keselamatan' => $data['deskripsi_fungsi_keselamatan'] ?? null,
'sistem_ventilasi_ac' => $data['sistem_ventilasi_ac'] ?? null,
'sistem_penerangan_kabin' => $data['sistem_penerangan_kabin'] ?? null,
'panel_informasi_penumpang' => $data['panel_informasi_penumpang'] ?? null,
'sistem_hiburan_kabin' => $data['sistem_hiburan_kabin'] ?? null,
'deskripsi_Interior' => $data['deskripsi_Interior'] ?? null,
// Validasi untuk faktor dan kesimpulan
'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'kesimpulan' => $data['kesimpulan'] ?? null,
'catatan' => $data['catatan'] ?? null,
];
}
private function getUnitData($data, $request): array
{
$luas_unit_key = ($data['luas_unit'] ?? null) === 'sesuai' ? 'sesuai' : 'tidak sesuai';
$luas_unit = [];
$hasil_luas_unit = $luas_unit_key === 'sesuai'
? ($data['luas_unit_sesuai'] ?? null)
: ($data['luas_unit_tidak_sesuai'] ?? null);
// Masukkan key baru yang sesuai
$luas_unit[$luas_unit_key] = preg_replace('/[^0-9.,]/', '', $hasil_luas_unit);
return [
'action' => $data['action'] ?? null,
'luas_unit' => $luas_unit,
'kondisi_unit' => $data['kondisi_unit'] ?? null,
'posisi_unit' => $data['posisi_unit'] ?? null,
'lantai' => $data['lantai'] ?? null,
'view' => $data['view'] ?? null,
'bentuk_unit' => $data['bentuk_unit'] ?? null,
];
}
/**
* Helper untuk upload file
@@ -2599,7 +3463,8 @@ class SurveyorController extends Controller
// Tentukan nama file PDF
$namaDebiture = $permohonan->debiture->name . '-' . $permohonan->nomor_registrasi;
$fileName = 'inspeksi-' . $namaDebiture . '-data.pdf';
$pdf->set_option('isHtml5ParserEnabled', true);
$pdf->set_option('isPhpEnabled', true);
return $pdf->stream($fileName);
}

View File

@@ -68,36 +68,36 @@
{{ $penawaran->tujuanPenilaianKjpp->name }}
</span>
</div>
@else
@else
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Tujan Permohonan:
</h3>
<span class="text-2sm text-gray-700">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Tujan Permohonan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->tujuanPenilaian->name }}
</span>
</div>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nilai Plafond:
</h3>
<span class="text-2sm text-gray-700">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nilai Plafond:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->nilaiPlafond->name }}
</span>
</div>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Status Bayar:
</h3>
<span
class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Status Bayar:
</h3>
<span
class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase">
{{ str_replace('_', ' ', $permohonan->status_bayar) }}
</span>
</div>
@endif
</div>
@endif
</div>
</div>
@@ -263,81 +263,79 @@
</div>
</div>
@endif
<div class="card-table scrollable-x-auto pb-3">
<a href="{{ route('debitur.jaminan.bulk.download', ['id' => $permohonan->debiture->id, 'jaminan' => $dokumen->id]) }}"
class="ml-6 btn btn-dark dark:btn-light">
<i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen
</a>
<table class="table align-middle text-sm text-gray-500">
@foreach ($dokumen->detail as $detail)
@php $document = $dokumen; @endphp
@foreach($document->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normal text-2sm">
{{ $detail->name ?? '' }}
<td colspan="2">
<strong class="text-2xs text-gray-600 uppercase">
{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</strong>
</td>
</tr>
@if(isset($detail->details))
@if(json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
<tr>
<td class="py-3 capitalize">
{{formatLabel($key)}}
</td>
<td class="py-2 text-gray-800 font-normal text-2sm">
{{ $value ?? "" }}
</td>
</tr>
@endforeach
@endif
@endif
<tr>
<td class="py-3 max-w-[100px] align-top">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if (isset($detail->dokumen_jaminan))
@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]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<div class="flex w-full lg:w-[30%]">
@if (in_array(Auth::user()->roles[0]->name, ['administrator', 'pemohon-eo']))
@if (!empty($dokumen_nomor))
<span class="flex-1 mt-2 text-info">Nomor Dokumen :
{{ $dokumen_nomor[$index] }}</span>
@endif
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
{{ basename($dokumen) }}
<i class="ki-filled ki-cloud-download"></i>
</a>
@endif
<span class="flex-none badge badge-sm badge-outline badge-warning mt-2"
onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')"><i
class="ki-filled ki-eye mr-2"></i>Preview</span>
</div>
<br>
@if(isset($detail->dokumen_jaminan))
@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] : []);
@endphp
@foreach($dokumen_jaminan as $index => $dokumen)
<tr>
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
{{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] }}
</span>
</td>
<td class="text-left">
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
{{ basename($dokumen) }}
<i class="ki-filled ki-cloud-download"></i>
</a>
@endif
<span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')">
<i class="ki-filled ki-eye mr-2"></i>Preview
</span>
</td>
</tr>
@if(isset($detail->details) && isset(json_decode($detail->details)[$index]))
@foreach (json_decode($detail->details)[$index] as $key => $value)
<tr>
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
- {{ str_replace("_"," ",$key) ?? "" }}
</span>
</td>
<td class="text-left">
<p class="text-2xs text-gray-600 max-w-[250px]">
{{ $value }}
</p>
</td>
</tr>
@endforeach
@endif
@endforeach
@endif
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
- keterangan
</span>
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? '' }}
<td class="text-right">
<p class="text-2xs text-gray-600 max-w-[250px]">
{{ $detail->keterangan }}
</p>
</td>
</tr>
@endforeach
@@ -349,6 +347,9 @@
</div>
@if (!isset($status))
</div>
@include('lpj::component.history-permohonan')
@endif
@include('lpj::component.pdfviewer')

View File

@@ -0,0 +1,32 @@
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td>
</tr>
@endif
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $value)
@foreach ($value as $key => $item)
<tr>
<td style="padding: 2px;">
{{ formatLabel($key) }}
</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">
{{ $item }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endforeach
@endforeach
@endif
@endif
@endforeach
@endif

View File

@@ -22,7 +22,7 @@
</style>
<div class="signature-pad-container mx-auto border p-4 max-w-md sm:max-w-lg lg:max-w-xl">
<h3 class="signature-title text-lg sm:text-xl font-semibold mb-2">{{ ucfirst($type) }}</h3>
<h3 class="signature-title text-md sm:text-lg mb-2 uppercase">{{ ucfirst($type) }}</h3>
<div class="w-full aspect-w-2 aspect-h-1">
<canvas
id="signature-pad-{{ $type }}"

View File

@@ -255,7 +255,7 @@
<div id="doctainer" class="grid gap-5">
@if(isset($document->id))
@php $n = 0; @endphp
@php $n = 0; $p_index = 0; @endphp
@foreach($document->detail as $detail)
<input type="hidden" name="detail_dokumen_jaminan_id[]" value="{{ $detail->id }}">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@@ -282,127 +282,177 @@
<input class="input " type="text" id="name" name="name[]" value="{{ $detail->name ?? "" }}" placeholder="Nomor">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col w-full gap-2" id="file-container-{{$n}}">
<div class="flex items-center gap-2">
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[{{ $n }}][]" accept=".pdf,image/*">
<button type="button" class="flex-none btn btn-primary w-[100px] text-center" onclick="addFileInput({{ $n }})">Add More</button>
</div>
<div id="additional-files-{{ $n }}"></div>
</div>
@if(isset($detail->dokumen_jaminan))
<div id="document-container-{{ $n }}">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
@if(isset($detail->dokumen_jaminan))
@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] : []);
@endphp
<div class="flex flex-col w-full gap-2">
<div class="flex flex-col w-full gap-2" id="document_container">
@foreach($dokumen_jaminan as $index => $dokumen)
<div class="flex w-full lg:w-[30%]">
@if(!empty($dokumen_nomor))
<span class="flex-1 mt-2 text-info text-sm">Nomor Dokumen : {{ $dokumen_nomor[$index] }}</span>
<div class="flex flex-col w-full gap-2 custom-field-set" id="document_container_{{ $p_index }}">
<div class="flex items-start gap-2 mt-2">
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumen" value="{{ $dokumen_nomor[$index] ?? '' }}">
<span class="flex-1">
<input class="file-input" type="file" name="dokumen_jaminan[{{ $n }}][]" accept=".pdf,image/*">
<input type="hidden" name="dokumen_jaminan[{{ $n }}][]" value="{{ $dokumen }}">
<a href="{{ route('debitur.jaminan.download', ['id' => $debitur->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
{{ basename($dokumen) }}
<i class="ki-filled ki-cloud-download"></i>
</a>
</span>
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
</div>
@if($detail->details)
@if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 custom-field">
@php
$customField = getCustomField($key);
$fieldValue = json_decode($detail->details)[$index]->{$customField->name} ?? '';
@endphp
<label class="form-label max-w-56 capitalize">
{{ $customField->label ?? "" }}
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" value="{{ $fieldValue }}">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">{{ $fieldValue }}</textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}" {{ $fieldValue == $option ? 'selected' : '' }}>{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@endswitch
</div>
</div>
@endforeach
@endif
@else
@if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@php
$customField = getCustomField($key);
@endphp
<label class="form-label max-w-56 capitalize">
{{ $customField->label }}
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">
@endswitch
</div>
</div>
@endforeach
@endif
@endif
<a href="{{ route('debitur.jaminan.download', ['id' => $debitur->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
{{ basename($dokumen) }}
<i class="ki-filled ki-cloud-download"></i>
</a>
</div>
@php $p_index++; @endphp
@endforeach
</div>
<div class="flex items-center justify-end gap-2 my-2 w-full">
<button type="button" class="flex-none btn btn-primary text-center" onclick="addFileInput({{$n}},{{ $detail->jenisLegalitasJaminan->id }})">Add File</button>
</div>
@else
<div class="flex flex-col w-full gap-2" id="document_container">
<div class="flex items-start gap-2 mt-2">
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumenss">
<span class="flex-1">
<input class="file-input" type="file" name="dokumen_jaminan[{{ $n }}][]" accept=".pdf,image/*">
</span>
</div>
@if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@php
$customField = getCustomField($key);
@endphp
<label class="form-label max-w-56 capitalize">
{{ $customField->label }}
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$customField->name}}]" placeholder="...">
@endswitch
</div>
</div>
@endforeach
@endif
</div>
<div class="flex items-center justify-end gap-2 my-2 w-full">
<button type="button" class="flex-none btn btn-primary text-center" onclick="addFileInput({{ $n }},{{ $detail->jenisLegalitasJaminan->id }})">Add File</button>
</div>
@php $p_index++; @endphp
@endif
@endif
</div>
</div>
</div>
@if($detail->details)
@if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@php
$customField = getCustomField($key);
$fieldValue = json_decode($detail->details)->{$customField->name} ?? '';
@endphp
<label class="form-label max-w-56 capitalize">
{{ $customField->label ?? "" }}
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">{{ $fieldValue }}</textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}" {{ $fieldValue == $option ? 'selected' : '' }}>{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@endswitch
</div>
</div>
@endforeach
@endif
@else
@if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@php
$customField = getCustomField($key);
@endphp
<label class="form-label max-w-56 capitalize">
{{ $customField->label }}
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">
@endswitch
</div>
</div>
@endforeach
@endif
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Keterangan
@@ -413,88 +463,95 @@
</div>
@php $n++; @endphp
@endforeach
@if($legalitas)
@foreach($legalitas as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 font-bold">
{{ $n + 1 }}. {{ $item->name }}
</label>
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value=" {{ $item->id }}">
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Nama Dokumen
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input " type="text" id="name" name="name[]" value="" placeholder="Nomor">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col w-full gap-2" id="file-container-{{$n}}">
<div class="flex items-center gap-2">
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[{{ $n }}][]" accept=".pdf,image/*">
<button type="button" class="flex-none btn btn-primary w-[100px] text-center" onclick="addFileInput({{ $n }})">Add More</button>
</div>
<div id="additional-files-{{ $n }}"></div>
</div>
</div>
</div>
@if($item->custom_fields)
@foreach($item->custom_fields as $field)
@php $custom_field = getCustomField($field) @endphp
<div id="document-container-{{ $n }}">
<div class="flex flex-col w-full gap-2">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 capitalize">
{{ $custom_field->label }}
<label class="form-label max-w-56 font-bold">
{{ $n + 1 }}. {{ $item->name }}
</label>
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value=" {{ $item->id }}">
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Nama Dokumen
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($custom_field->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$item->id}}][{{$custom_field->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$item->id}}][{{$custom_field->name}}]">
<option value="">Select an option</option>
@foreach($custom_field->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="...">
@endswitch
<input class="input " type="text" id="name" name="name[]" value="" placeholder="Nomor">
</div>
</div>
@endforeach
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Keterangan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea" rows="3" type="number" name="keterangan[]"></textarea>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col w-full gap-2" id="document_container">
<div class="flex items-center gap-2">
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[{{ $n }}][]" accept=".pdf,image/*">
</div>
@if($item->custom_fields)
@foreach($item->custom_fields as $field)
@php $custom_field = getCustomField($field) @endphp
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 capitalize">
{{ $custom_field->label }}
</label>
<div class="flex flex-wrap items-baseline w-full">
@switch($custom_field->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$custom_field->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$n}}][{{$p_index}}][{{$custom_field->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$n}}][{{$p_index}}][{{$custom_field->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$n}}][{{$p_index}}][{{$custom_field->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$n}}][{{$p_index}}][{{$custom_field->name}}]">
<option value="">Select an option</option>
@foreach($custom_field->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$n}}][{{$p_index}}][{{$custom_field->name}}]" placeholder="...">
@endswitch
</div>
</div>
@endforeach
@endif
</div>
</div>
</div>
</div>
<div class="flex items-center justify-end gap-2 my-2 w-full">
<button type="button" class="flex-none btn btn-primary text-center" onclick="addFileInput({{ $n }}, {{ $item->id }})">Add File</button>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Keterangan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea" rows="3" type="number" name="keterangan[]"></textarea>
</div>
</div>
</div>
@php $n++; @endphp
@php $n++;$p_index++; @endphp
@endforeach
@endif
@endif
</div>
<div class="flex justify-end">
@@ -504,6 +561,7 @@
</div>
</form>
@push('scripts')
{{--Pemilik Jaminan--}}
<script>
@@ -561,6 +619,42 @@
{{--Legalitas Jaminan--}}
<script>
function getCustomFields(jenisLegalitasJaminanId, index, newFieldIndex) {
return fetch(`/basic-data/jenis-jaminan/custom-fields/${jenisLegalitasJaminanId}`, {
method: "GET",
headers: {
"Content-Type": "application/json",
"X-Requested-With": "XMLHttpRequest"
}
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(customFields => {
let customFieldsHtml = '';
customFields.forEach(field => {
customFieldsHtml += `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-2 custom-field">
<label class="form-label max-w-56 capitalize">
${field.label}
</label>
<div class="flex flex-wrap items-baseline w-full">
${getCustomFieldInput(index, field.type, field.name, null, jenisLegalitasJaminanId, newFieldIndex)}
</div>
</div>
`;
});
return customFieldsHtml;
})
.catch(error => {
console.error("Error fetching custom fields:", error);
return '';
});
}
function getLegalitasJaminan() {
var legalitasJaminan = document.getElementById("jenis_jaminan_id").value;
var documentId = "{{ $document->id ?? "0" }}";
@@ -583,6 +677,7 @@
var doctainer = document.getElementById("doctainer");
doctainer.innerHTML = "";
data.forEach((item, index) => {
console.log(item);
doctainer.innerHTML += `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 font-bold">
@@ -600,33 +695,37 @@
<input class="input" type="text" name="name[]" value="${item.name || ""}" placeholder="Nomor">
</div>
</div>
<div id="document-container-${index}">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full" id="document_container">
<div class="flex flex-col w-full gap-2">
${item.dokumen_jaminan ? renderExistingFiles(item.dokumen_jaminan, debiturId, item.id, item.dokumen_nomor) : ""}
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full" id="file-container-${index}">
<div class="flex flex-col w-full gap-2">
${item.dokumen_jaminan ? renderExistingFiles(item.dokumen_jaminan, debiturId, item.id, item.dokumen_nomor) : ""}
</div>
<div class="flex items-center gap-2 my-2 w-full">
<input class="flex-1 input" type="text" name="dokumen_nomor[${index}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[${index}][]" accept=".pdf,image/*">
<button type="button" class="flex-none btn btn-primary w-[100px] text-center" onclick="addFileInput(${index})">Add File</button>
<div class="flex items-center gap-2 my-2 w-full">
<input class="flex-1 input" type="text" name="dokumen_nomor[${index}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[${index}][]" accept=".pdf,image/*">
</div>
${item.custom_fields && item.custom_fields.length > 0 ? item.custom_fields.map(field => `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-2 custom-field">
<label class="form-label max-w-56 capitalize">
${field.label}
</label>
<div class="flex flex-wrap items-baseline w-full">
${getCustomFieldInput(index, field.type, field.name, item.details, item.jenis_legalitas_jaminan_id, 0)}
</div>
</div>
`).join('') : ""}
</div>
</div>
</div>
</div>
${item.custom_fields && item.custom_fields.length > 0 ? item.custom_fields.map(field => `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 capitalize">
${field.label}
</label>
<div class="flex flex-wrap items-baseline w-full">
${getCustomFieldInput(field.type, field.name, item.details, item.jenis_legalitas_jaminan_id)}
</div>
<div class="flex items-center justify-end gap-2 my-2 w-full">
<button type="button" class="flex-none btn btn-primary text-center" onclick="addFileInput(${index},${item.jenis_legalitas_jaminan_id})">Add File</button>
</div>
</div>
`).join('') : ""}
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
@@ -642,20 +741,39 @@
.catch(error => console.error("Error:", error));
}
function addFileInput(index) {
const container = document.getElementById(`file-container-${index}`);
function addFileInput(index, jenisLegalitasJaminanId = null) {
const documentContainer = document.getElementById(`document-container-${index}`);
const container = documentContainer.querySelector('#document_container');
const customFields = container.querySelectorAll('.custom-field');
// Get the current number of custom field sets
const currentFieldSets = container.querySelectorAll('.custom-field-set').length;
const newFieldIndex = currentFieldSets + 1;
const newInput = document.createElement("div");
newInput.className = "flex items-center gap-2 mb-2 w-full";
newInput.innerHTML = `
<input class="flex-1 input" type="text" name="dokumen_nomor[${index}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[${index}][]" accept=".pdf,image/*">
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
`;
container.appendChild(newInput);
newInput.className = "flex flex-col w-full gap-2 mb-4 custom-field-set";
getCustomFields(jenisLegalitasJaminanId, index, newFieldIndex).then(customFieldsHtml => {
newInput.innerHTML = `
<div class="flex flex-wrap items-baseline w-full">
<div class="flex items-center gap-2 w-full">
<input class="flex-1 input" type="text" name="dokumen_nomor[${index}][]" placeholder="Nomor Dokumen">
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[${index}][]" accept=".pdf,image/*">
<button type="button" class="flex-none btn btn-danger text-center" onclick="removeFileInput(this)">Remove</button>
</div>
</div>
${customFieldsHtml}
`;
container.appendChild(newInput);
});
}
function removeFileInput(button) {
button.closest(".flex.items-center.gap-2.mb-2").remove();
button.closest(".custom-field-set").remove();
}
function renderExistingFiles(dokumenJaminan, debiturId, itemId, dokumenNomor) {
@@ -707,19 +825,19 @@
return dokumenNomor;
}
function getCustomFieldInput(type, fieldName, value, itemId) {
function getCustomFieldInput(index, type, fieldName, value, itemId, fieldIndex = 0) {
value = value ? JSON.parse(value)[fieldName] || "" : "";
switch (type) {
case "text":
return `<input class="input" type="text" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
return `<input class="input" type="text" name="custom_field[${index}][${fieldIndex}][${fieldName}]" value="${value}">`;
case "number":
return `<input class="input" type="number" step="0.01" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
return `<input class="input" type="number" step="0.01" name="custom_field[${index}][${fieldIndex}][${fieldName}]" value="${value}">`;
case "date":
return `<input class="input" type="date" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
return `<input class="input" type="date" name="custom_field[${index}][${fieldIndex}][${fieldName}]" value="${value}">`;
case "textarea":
return `<textarea class="textarea" rows="3" name="custom_field[${itemId}][${fieldName}]">${value}</textarea>`;
return `<textarea class="textarea" rows="3" name="custom_field[${index}][${fieldIndex}][${fieldName}]">${value}</textarea>`;
default:
return `<input class="input" type="text" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
return `<input class="input" type="text" name="custom_field[${index}][${fieldIndex}][${fieldName}]" value="${value}">`;
}
}

View File

@@ -78,15 +78,26 @@
@foreach($document->detail as $detail)
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase">
{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
<strong>{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}</strong>
</span>
<div>
@if(isset($detail->dokumen_jaminan))
@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] : []);
@endphp
@foreach($dokumen_jaminan as $index => $dokumen)
&nbsp;
</div>
</div>
<div class="border-t border-gray-300 border-dashed"></div>
@if(isset($detail->dokumen_jaminan))
@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] : []);
$count_jaminan = 0;
@endphp
@foreach($dokumen_jaminan as $index => $dokumen)
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase pl-3">
{{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] }}
</span>
<div>
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
<a href="{{ route('debitur.jaminan.download', ['id' => $debitur->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
@@ -95,30 +106,30 @@
</a>
@endif
<span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')"><i class="ki-filled ki-eye mr-2"></i>Preview</span>
<br>
@endforeach
</div>
</div>
@if(isset($detail->details))
@if(isset(json_decode($detail->details)[$index]))
@foreach (json_decode($detail->details)[$index] as $key => $value)
<div class="flex items-start justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase pl-3">
{{ str_replace("_"," ",$key) ?? "" }}
</span>
<p class="text-2xs text-gray-600 text-right max-w-[250px]">
{{ $value }}
</p>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@endforeach
@endif
@endif
</div>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@if(isset($detail->details))
@if(json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
<div class="flex items-start justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase pl-3">
{{ str_replace("_"," ",$key) ?? "" }}
</span>
<p class="text-2xs text-gray-600 text-right max-w-[250px]">
{{ $value ?? "" }}
</p>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@endforeach
@endif
@endforeach
@endif
<div class="flex items-start justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase pl-3">
keterangan
@@ -178,6 +189,7 @@
@endif
</div>
@include('lpj::component.pdfviewer')
@push('scripts')

View File

@@ -124,35 +124,41 @@
@endphp
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@php
$details = json_decode($detail->details);
@endphp
@foreach ($document->detail as $index => $detail)
@if($detail->details)
@php $luastanah = $luasbangunan = null; @endphp
@foreach (json_decode($detail->details) as $key => $value)
@foreach($value as $k => $v)
@if($k=='luas_tanah')
@php
$luastanah += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@if($k=='luas_bangunan')
@php
$luasbangunan += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@endforeach
@endforeach
@if (isset($luastanah) && isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan: {{ $luastanah }} m<sup>2</sup> / {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luastanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah : {{ $luastanah }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan: {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
/
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_tanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah :
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@endforeach
@endforeach

View File

@@ -126,35 +126,41 @@
@endphp
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@php
$details = json_decode($detail->details);
@endphp
@foreach ($document->detail as $index => $detail)
@if($detail->details)
@php $luastanah = $luasbangunan = null; @endphp
@foreach (json_decode($detail->details) as $key => $value)
@foreach($value as $k => $v)
@if($k=='luas_tanah')
@php
$luastanah += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@if($k=='luas_bangunan')
@php
$luasbangunan += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@endforeach
@endforeach
@if (isset($luastanah) && isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan: {{ $luastanah }} m<sup>2</sup> / {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luastanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah : {{ $luastanah }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan: {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
/
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_tanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah :
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@endforeach
@endforeach

View File

@@ -109,35 +109,41 @@
@endphp
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@php
$details = json_decode($detail->details);
@endphp
@foreach ($document->detail as $index => $detail)
@if($detail->details)
@php $luastanah = $luasbangunan = null; @endphp
@foreach (json_decode($detail->details) as $key => $value)
@foreach($value as $k => $v)
@if($k=='luas_tanah')
@php
$luastanah += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@if($k=='luas_bangunan')
@php
$luasbangunan += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@endforeach
@endforeach
@if (isset($luastanah) && isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan: {{ $luastanah }} m<sup>2</sup> / {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luastanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah : {{ $luastanah }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan: {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
/
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_tanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah :
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@endforeach
@endforeach

View File

@@ -124,35 +124,41 @@
@endphp
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@php
$details = json_decode($detail->details);
@endphp
@foreach ($document->detail as $index => $detail)
@if($detail->details)
@php $luastanah = $luasbangunan = null; @endphp
@foreach (json_decode($detail->details) as $key => $value)
@foreach($value as $k => $v)
@if($k=='luas_tanah')
@php
$luastanah += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@if($k=='luas_bangunan')
@php
$luasbangunan += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@endforeach
@endforeach
@if (isset($luastanah) && isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan: {{ $luastanah }} m<sup>2</sup> / {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luastanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah : {{ $luastanah }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan: {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
/
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_tanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah :
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@endforeach
@endforeach

View File

@@ -107,35 +107,41 @@
@endphp
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@php
$details = json_decode($detail->details);
@endphp
@foreach ($document->detail as $index => $detail)
@if($detail->details)
@php $luastanah = $luasbangunan = null; @endphp
@foreach (json_decode($detail->details) as $key => $value)
@foreach($value as $k => $v)
@if($k=='luas_tanah')
@php
$luastanah += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@if($k=='luas_bangunan')
@php
$luasbangunan += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@endforeach
@endforeach
@if (isset($luastanah) && isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan: {{ $luastanah }} m<sup>2</sup> / {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luastanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah : {{ $luastanah }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan: {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
/
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_tanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah :
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@endforeach
@endforeach

View File

@@ -126,35 +126,41 @@
@endphp
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@php
$details = json_decode($detail->details);
@endphp
@foreach ($document->detail as $index => $detail)
@if($detail->details)
@php $luastanah = $luasbangunan = null; @endphp
@foreach (json_decode($detail->details) as $key => $value)
@foreach($value as $k => $v)
@if($k=='luas_tanah')
@php
$luastanah += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@if($k=='luas_bangunan')
@php
$luasbangunan += preg_replace('/[^0-9.]/', '', str_replace('m2', '', $v));
@endphp
@endif
@endforeach
@endforeach
@if (isset($luastanah) && isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan: {{ $luastanah }} m<sup>2</sup> / {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luastanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah : {{ $luastanah }} m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($luasbangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan: {{ $luasbangunan }} m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah / Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
/
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_tanah))
{{ $n }}. {{ $detail->name }}<br>
Luas Tanah :
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@elseif (isset($details->luas_bangunan))
{{ $n }}. {{ $detail->name }}<br>
Luas Bangunan:
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
m<sup>2</sup>
<br>
@php $n++; @endphp
@endif
@endforeach
@endforeach

View File

@@ -1,3 +1,4 @@
<div class="no-break">
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
@@ -80,3 +81,4 @@
</td>
</tr>
</table>
</div>

View File

@@ -1,3 +1,4 @@
<div class="no-break">
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
@@ -143,3 +144,4 @@
</table>
</div>

View File

@@ -1,3 +1,4 @@
<div class="no-break">
<table class="judul" style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
@@ -102,3 +103,4 @@
</table>
</div>

View File

@@ -1,3 +1,4 @@
<div class="no-break">
<table style="width: 100%">
<tr>
<td width="25%" style="vertical-align: top;">Informasi Dinas Tata Ruang
@@ -58,3 +59,4 @@
</tr>
@endif
</table>
</div>

View File

@@ -1,3 +1,4 @@
<div class="no-break">
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
@@ -127,3 +128,4 @@
</tr>
@endif
</table>
</div>

View File

@@ -1,3 +1,4 @@
<div class="no-break">
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
@@ -149,3 +150,4 @@
</tr>
</table>
</div>

View File

@@ -1,6 +1,110 @@
<div class="page-break"></div>
<div class="section">
<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>
<td style="padding: 2px; border: 1px solid #000">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
<tr>
<td style="padding: 2px; border: 1px solid #000">Nomor Laporan</td>
<td style="padding: 2px; border: 1px solid #000">:</td>
<td style="padding: 2px; border: 1px solid #000">{{ $nomorLaporan }}</td>
</tr>
<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>
</tr>
</table>
<table style="width: 100%; ">
<tr>
<td style="border: 1px solid #000; text-align: center;">
PETA DAN BLAD TATA RUANG
</td>
</tr>
</table>
<div>
@php
$fotoTypes = [
'upload_gs',
'foto_sentuh_tanahku',
'foto_gistaru',
'foto_bhumi',
'foto_argis_region',
'foto_tempat',
];
$customLabels = [
'upload_gs' => 'Gambar Situasi',
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
'foto_gistaru' => 'Gistaru',
'foto_bhumi' => 'Bhumi',
'foto_argis_region' => 'Blad Tata Ruang ',
'foto_tempat' => 'Tempat',
];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('upload_gs', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'upload_gs');
}
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
return isset($forminspeksi[$type]) &&
file_exists(storage_path('app/public/' . $forminspeksi[$type]));
});
@endphp
<table width="100%" border="0">
@foreach ($validPhotoTypes as $type)
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<tr>
<td style="width: 100%; vertical-align: top; text-align: center" class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ $customLabels[$type] ?? '' }}
</p>
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $imagePath }}"
style="max-height: 400px; height: auto; max-width: 100%;">
</td>
</tr>
@endif
@endforeach
</table>
</div>
<div class="page-break"></div>
<table style="width: 100%; ">
<tr>
<td style="border: 1px solid #000; text-align: center;">
FOTO JAMINAN
</td>
</tr>
</table>
@include('lpj::penilai.components.foto-jaminan')
</div>
</div>
<footer id="footer">
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
<script type="text/php">
if (isset($pdf)) {
$pdf->page_script('
$font = $fontMetrics->get_font("Arial, Helvetica, sans-serif", "normal");
$size = 10;
$pageText = $PAGE_NUM;
$y = 800;
$x = 550;
$pdf->text($x, $y, $pageText, $font, $size);
');
}
</script>
<script>
const datas = @json($forminspeksi);
console.log(datas);

View File

@@ -59,7 +59,7 @@
}
.photo-image {
width: auto;
width: 100;
height: 400px;
max-height: 400px;
}

View File

@@ -52,7 +52,7 @@
text-align: center;
border-top: 1px solid #ddd;
padding-top: 10px;
font-size: 9px;
font-size: 12px;
}
.page-number:after {

View File

@@ -96,58 +96,7 @@
<td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td>
</tr>
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td style=" padding: 2px;">
{{ $detail->name ?? '' }}
</td>
<td style=" padding: 2px;">:</td>
<td style=" padding: 2px;">
@if (isset($detail->dokumen_jaminan))
@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]
: []);
@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>
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px;">{{ 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
@endif
@include('lpj::component.print-out-dokument')
<tr>
@@ -157,31 +106,31 @@
</tr>
@if (!empty($memo['lokasi']['address']))
<tr>
<td width="20%">Terletak di</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td> {{ $alamat['address'] ?? '' }}</td>
</tr>
<tr>
<td>Desa/Kelurahan</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['village_code'] ?? '' }}</td>
</tr>
<tr>
<td>Kecamatan</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['district_code'] ?? '' }}</td>
</tr>
<tr>
<td>Kabupaten/Kota</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td> {{ $alamat['city_code'] ?? '' }}</td>
</tr>
<tr>
<td>Provinsi</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['province_code'] ?? '' }}</td>
</tr>
<tr>
<td width="20%">Terletak di</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td> {{ $alamat['address'] ?? '' }}</td>
</tr>
<tr>
<td>Desa/Kelurahan</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['village_code'] ?? '' }}</td>
</tr>
<tr>
<td>Kecamatan</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['district_code'] ?? '' }}</td>
</tr>
<tr>
<td>Kabupaten/Kota</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td> {{ $alamat['city_code'] ?? '' }}</td>
</tr>
<tr>
<td>Provinsi</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['province_code'] ?? '' }}</td>
</tr>
@endif
</table>
@@ -259,7 +208,9 @@
use Modules\Usermanagement\Models\User;
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
$imagePathPenilai = storage_path('app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign);
$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);
@@ -342,17 +293,21 @@
</table>
</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>
</main>
<div class="page-break"></div>
<table width="100%" border="0" style="align-content: center; text-align: center; margin-bottom: 20px">
@foreach ($memo['foto'] as $item)
@php
$cleanedPath = str_replace('/storage/', '', $item);
$imagePath = storage_path('app/public/' . $cleanedPath);
@endphp
<tr>
<td style="width: 100%; padding: 10px;" class="photo-item border">
<img src="{{ $imagePath }}" alt="{{ $item }}" class="photo-image">
</td>
</tr>
@endforeach
</table>
@include('lpj::penilai.components.footer')

View File

@@ -100,58 +100,7 @@
</tr>
@endif
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td style=" padding: 2px;">
{{ $detail->name ?? '' }}
</td>
<td style=" padding: 2px;">:</td>
<td style=" padding: 2px;">
@if (isset($detail->dokumen_jaminan))
@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]
: []);
@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>
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px;"> {{formatLabel($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
@endif
@include('lpj::component.print-out-dokument')
<tr>
<td style="width: 20%; padding: 2px;">Tanggal Penilaian</td>
@@ -369,16 +318,6 @@
</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>
</main>
@include('lpj::penilai.components.footer')

View File

@@ -132,65 +132,7 @@
<h2 style="text-transform: uppercase;">DOKUMEN TERLAMPIR</h2>
<table style="width: 100%;">
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td style="width: 20%; padding: 2px;">
{{ $detail->name ?? '' }}
</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">
@php
$dokumen_jaminan = is_string($detail->dokumen_jaminan)
? json_decode($detail->dokumen_jaminan, true)
: [];
$dokumen_jaminan = is_array($dokumen_jaminan)
? $dokumen_jaminan
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_string($detail->dokumen_nomor)
? json_decode($detail->dokumen_nomor, true)
: [];
$dokumen_nomor = is_array($dokumen_nomor) ? $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
</td>
</tr>
@endif
@if (isset($detail->details))
@php
$detailItems = json_decode($detail->details, true);
@endphp
@if (is_array($detailItems))
@foreach ($detailItems as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="width: 20%; padding: 2px;">
{{formatLabel($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>
</tr>
@endif
@endforeach
@endif
@endif
@endforeach
@endif
@include('lpj::component.print-out-dokument')
@if (isset($forminspeksi['perizinan']) && is_array($forminspeksi['perizinan']) && count($forminspeksi['perizinan']) > 0)
@@ -562,60 +504,5 @@
@endif
</tr>
</table>
<div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center;">
PETA
</h6>
</div>
<div style="text-align: center">
@php
$fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat');
}
@endphp
@if (isset($forminspeksi))
@php $counter = 0; @endphp
@foreach ($fotoTypes as $type)
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
@if ($counter % 2 == 0)
<div class="photo-row clearfix">
@endif
<div class="photo-item border">
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
class="photo-image">
<p style="margin: 0; font-size: 12px;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
</div>
@if ($counter % 2 == 1 || $loop->last)
</div>
@endif
@php $counter++; @endphp
@endif
@endforeach
@endif
</div>
</div>
<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>
</main>
@include('lpj::penilai.components.footer')

View File

@@ -164,55 +164,7 @@
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['province_code'] ?? '' }}</td>
</tr>
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td style="padding: 2px; vertical-align: top;">{{ $detail->name ?? '' }}</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@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]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<div>
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
</div>
@endforeach
</td>
</tr>
@endif
@if (isset($detail->details) && json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px; vertical-align: top;">
{{formatLabel($key)}}
</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endforeach
@endif
@include('lpj::component.print-out-dokument')
@if (isset($forminspeksi['asset']['nomor_nib']))
<tr>
@@ -1087,88 +1039,5 @@
</td>
</tr>
</table>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center;">
PETA
</h6>
</div>
<div class="photo-container">
@php
$fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat');
}
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
return isset($forminspeksi[$type]) &&
file_exists(storage_path('app/public/' . $forminspeksi[$type]));
});
@endphp
<table width="100%" border="0">
<tr>
@if (count($validPhotoTypes) === 1)
@php
$type = reset($validPhotoTypes);
$imagePath = $forminspeksi[$type] ?? null;
@endphp
<td style="width: 100%; vertical-align: top; text-align: center" colspan="2"
class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
@if ($imagePath)
<img src="{{ storage_path('app/public/' . $imagePath) }}"
alt="{{ $imagePath }}" class="photo-image"
style="width: 100%; max-width: 300px;">
@endif
</td>
@else
@foreach ($fotoTypes as $index => $type)
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@isset($imagePath)
<td style="width: 50%; vertical-align: top; text-align: center" class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ storage_path('app/public/' . $imagePath) }}"
alt="{{ $imagePath }}" class="photo-image"
style="width: 100%; max-width: 300px;">
@endif
</td>
@endisset
@if (($index + 1) % 2 == 0)
</tr>
<tr>
@endif
@endforeach
@if (count($fotoTypes) % 2 != 0)
<td style="width: 50%;"></td>
@endif
@endif
</tr>
</table>
</div>
</div>
<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>
</main>
@include('lpj::penilai.components.footer')

View File

@@ -163,60 +163,8 @@
</tr>
</table>
<table style="width: 100%; ">
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td style="width:25%; padding: 2px; vertical-align: top;">
{{ $detail->name ?? '' }}
</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">
@if (isset($detail->dokumen_jaminan))
@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]
: []);
@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>
<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:25%; padding: 2px; vertical-align: top;">
{{formatLabel($key)}}</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
@endif
@endforeach
@endif
@endif
</tr>
@endforeach
@endif
</table>
@include('lpj::component.print-out-dokument')
</table>
</div>
<div class="no-break">
@@ -264,7 +212,7 @@
</table>
</div>
<div class="no-break">
@foreach ($permohonan->documents as $dokumen)
@if ($dokumen->jenisJaminan)
@php
@@ -284,7 +232,7 @@
@endif
@endif
@endforeach
</div>
<div class="no-break">
<table style="width: 100%; ">
<tr>
@@ -532,106 +480,5 @@
</div>
</table>
<div class="page-break"></div>
<div class="section">
<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>
<td style="padding: 2px; border: 1px solid #000">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
<tr>
<td style="padding: 2px; border: 1px solid #000">Nomor Laporan</td>
<td style="padding: 2px; border: 1px solid #000">:</td>
<td style="padding: 2px; border: 1px solid #000">{{ $nomorLaporan }}</td>
</tr>
<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>
</tr>
</table>
<table style="width: 100%; ">
<tr>
<td style="border: 1px solid #000; text-align: center;">
PETA
</td>
</tr>
</table>
<div class="photo-container">
@php
$fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat');
}
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
return isset($forminspeksi[$type]) &&
file_exists(storage_path('app/public/' . $forminspeksi[$type]));
});
@endphp
<table width="100%" border="0">
<tr>
@if (count($validPhotoTypes) === 1)
@php
$type = reset($validPhotoTypes); // Ambil elemen pertama
$imagePath = $forminspeksi[$type] ?? null;
@endphp
<td style="width: 100%; vertical-align: top; text-align: center" colspan="2"
class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
@if ($imagePath)
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $imagePath }}"
class="photo-image" style="width: 100%; max-width: 300px;">
@endif
</td>
@else
@foreach ($fotoTypes as $index => $type)
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@isset($imagePath)
<td style="width: 50%; vertical-align: top; text-align: center" class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ storage_path('app/public/' . $imagePath) }}"
alt="{{ $imagePath }}" class="photo-image"
style="width: 100%; max-width: 300px;">
@endif
</td>
@endisset
@if (($index + 1) % 2 == 0)
</tr>
<tr>
@endif
@endforeach
@if (count($fotoTypes) % 2 != 0)
<td style="width: 50%;"></td>
@endif
@endif
</tr>
</table>
</div>
<div class="page-break"></div>
<table style="width: 100%; ">
<tr>
<td style="border: 1px solid #000; text-align: center;">
FOTO JAMINAN
</td>
</tr>
</table>
@include('lpj::penilai.components.foto-jaminan')
</div>
</div>
</main>
@include('lpj::penilai.components.footer')

View File

@@ -62,69 +62,9 @@
</tr>
<tr>
<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 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]
: []);
@endphp
@include('lpj::component.print-out-dokument')
@foreach ($dokumen_jaminan as $index => $dokumen)
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
@endforeach
</td>
@endif
</tr>
@endforeach
@endif
</table>
</td>
</tr>
<tr>
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@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=""> {{formatLabel($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 width="25%">Terletak di</td>
<td style="width: 1%; vertical-align: top;">:</td>
@@ -335,16 +275,6 @@
<td>Resume ini sudah di setujui</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>
</main>
@include('lpj::penilai.components.footer')

View File

@@ -0,0 +1,26 @@
{
"kepada": " rustam",
"dari": "dasd",
"nomor_memo": "C04\/250123721\/MAK\/REG0000019\/I\/25",
"tanggal": "2025-03-08",
"perihal": "kamua harus",
"jenis_asset_tidak_sesuai": "Unit Apartemen",
"lokasi": {
"lokasi": "dsd",
"address": "Jl. Kali Pasir Kecil No.1, RT.2\/RW.1, Cikini, Kec. Menteng, Kota Jakarta Pusat, Daerah Khusus Ibukota Jakarta 10330",
"province_code": "35",
"city_code": "",
"district_code": "",
"village_code": "",
"tanggal_survey": "2025-03-08",
"penilai": "te"
},
"terlampir": ["te"],
"hasil_survey": ["te"],
"kesimpulan_saran": ["te"],
"foto": [
"\/storage\/memo_photos\/1741367564_1. Tampak Akses Jalan Menuju Objek Penilaian.png",
"\/storage\/memo_photos\/1741367564_2. Tampak Akses Jalan Menuju Objek penilaian.png",
"\/storage\/memo_photos\/1741367564_3. Tampak Akses Jalan Menuju Objek Penilaian.png"
]
}

View File

@@ -12,27 +12,18 @@
<label class="form-label max-w-56">Luas Unit</label>
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $item)
@php
$luas_tanah = 0;
$jenis_legalitas_jaminan_id = 0;
if ($item->detail) {
foreach ($item->detail as $luas) {
if (isset($luas->name) && $luas->jenis_legalitas_jaminan_id === 1) {
$jenis_legalitas_jaminan_id = $luas->jenis_legalitas_jaminan_id;
$details = json_decode($luas->details, true);
$luas_tanah = isset($details['luas_tanah']) ? $details['luas_tanah'] : 0;
break;
@php
$total_luas_unit = 0;
$jenis_legalitas_jaminan_id = 0;
if (isset($item->detail)) {
$total_luas_unit = calculateTotalLuas($item->detail, 'luas_tanah', 1);
}
}
}
@endphp
<input type="hidden"
id="jenis_legalistas_jaminan_unit_id"
name="jenis_legalistas_jaminan_unit_id"
class="input" value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_unit_sesuai" class="input" value="{{ $luas_tanah }}">
@endphp
<input type="hidden" id="jenis_legalistas_jaminan_unit_id" name="jenis_legalistas_jaminan_unit_id"
class="input" value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_unit_sesuai" class="input" value="{{ $total_luas_unit }}">
<p class="text-2sm text-gray-700">{{ $luas_tanah }} m<sup>2</sup></p>
<p class="text-2sm text-gray-700">{{ $total_luas_unit }} m<sup>2</sup></p>
@endforeach
@endif

View File

@@ -11,30 +11,22 @@
<div class="mt-2">
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $item)
@php
$luas_bangunan = 0;
$jenis_legalitas_jaminan_id = 0;
if ($item->detail) {
foreach ($item->detail as $luas) {
if (isset($luas->name) && $luas->jenis_legalitas_jaminan_id === 10) {
$jenis_legalitas_jaminan_id = $luas->jenis_legalitas_jaminan_id;
$details = json_decode($luas->details, true);
$luas_bangunan = isset($details['luas_bangunan']) ? $details['luas_bangunan'] : 0;
break;
}
@foreach ($permohonan->documents as $item)
@php
$total_luas_bangunan = 0;
$jenis_legalitas_jaminan_id = 0;
if (isset($item->detail)) {
$total_luas_bangunan = calculateTotalLuas($item->detail, 'luas_bangunan', 10);
}
}
@endphp
<input type="hidden"
id="jenis_legalistas_jaminan_bangunan_id"
name="jenis_legalistas_jaminan_bangunan_id"
class="input" value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_bangunan_sesuai" class="input" value="{{ $luas_bangunan }}">
<p class="text-2sm text-gray-700">{{ $luas_bangunan }} m<sup>2</sup></p>
@endforeach
@endif
@endphp
<input type="hidden" id="jenis_legalistas_jaminan_bangunan_id"
name="jenis_legalistas_jaminan_bangunan_id" class="input"
value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_bangunan_sesuai" class="input"
value="{{ $total_luas_bangunan }}">
<p class="text-2sm text-gray-700">{{ $total_luas_bangunan }} m<sup>2</sup></p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mt-2">
@@ -62,12 +54,12 @@
<div id="luas_tanah_bagunan_tidak_sesuai" class="flex items-baseline gap-2"
style="{{ old('luas_tanah_bagunan_tidak_sesuai', $selectedData) ? '' : 'display: none' }}">
<div class="input">
<input type="text" id="analisa_bangunan_tidak_sesuai"
name="luas_tanah_bagunan_tidak_sesuai" class="w-full number-format"
placeholder="Masukan Luas Bangunan Tidak Sesuai..."
value="{{ old('luas_tanah_bagunan_tidak_sesuai', $forminspeksi['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
<input type="text" id="analisa_bangunan_tidak_sesuai"
name="luas_tanah_bagunan_tidak_sesuai" class="w-full number-format"
placeholder="Masukan Luas Bangunan Tidak Sesuai..."
value="{{ old('luas_tanah_bagunan_tidak_sesuai', $forminspeksi['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
</div>
</div>
{{-- <button type="button" class="btn btn-md btn-primary"
onclick="updateAnalisa('analisa_bangunan')">
Save
@@ -187,14 +179,17 @@
@if (@isset($basicData['spekKategoriBangunan']))
@foreach ($basicData['spekKategoriBangunan'] as $item)
<div>
<input type="hidden" name="spek_kategori_bangunan[]" value="{{ $item->name }}">
<input type="hidden" name="spek_kategori_bangunan[]"
value="{{ $item->name }}">
<label
class="form-label flex items-center gap-3 text-nowrap">{{ $item->name }}</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col items-start gap-4" style="margin-top: 10px">
<div class="flex flex-col items-start gap-4"
style="margin-top: 10px">
@foreach ($basicData['spekBangunan'] as $spek)
@if ($spek->spek_kategori_bangunan_id == $item->id)
<label class="form-label flex items-center gap-2.5">
<label
class="form-label flex items-center gap-2.5">
<input class="checkbox"
name="spek_bangunan[{{ $index }}][{{ $item->name }}][]"
type="checkbox"
@@ -214,13 +209,16 @@
value="{{ isset($bangunan['spek_kategori_bangunan'][$item->name]['lainnya']) ? $bangunan['spek_kategori_bangunan'][$item->name]['lainnya'] : '' }}">
</label>
</div>
<em id="error-spek_bangunan_{{ $item->name }}" class="alert text-danger text-sm"></em>
<em id="error-spek_bangunan_{{ $item->name }}"
class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@endif
</div>
<button type="button" class="mt-2 btn btn-danger btn-outline btn-xs delete-button" style="display: none;">Hapus</button>
<button type="button"
class="mt-2 btn btn-danger btn-outline btn-xs delete-button"
style="display: none;">Hapus</button>
</div>
@endforeach
@else
@@ -231,10 +229,13 @@
@if (@isset($basicData['spekKategoriBangunan']))
@foreach ($basicData['spekKategoriBangunan'] as $item)
<div>
<input type="hidden" name="spek_kategori_bangunan[]" value="{{ $item->name }}">
<label class="form-label flex items-center gap-3 text-nowrap">{{ $item->name }}</label>
<input type="hidden" name="spek_kategori_bangunan[]"
value="{{ $item->name }}">
<label
class="form-label flex items-center gap-3 text-nowrap">{{ $item->name }}</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col items-start gap-4" style="margin-top: 10px">
<div class="flex flex-col items-start gap-4"
style="margin-top: 10px">
@foreach ($basicData['spekBangunan'] as $spek)
@if ($spek->spek_kategori_bangunan_id == $item->id)
<label class="form-label flex items-center gap-2.5">
@@ -252,13 +253,15 @@
placeholder="Lainnya (sebutkan)">
</label>
</div>
<em id="error-spek_bangunan_{{ $item->name }}" class="alert text-danger text-sm"></em>
<em id="error-spek_bangunan_{{ $item->name }}"
class="alert text-danger text-sm"></em>
</div>
</div>
@endforeach
@endif
</div>
<button type="button" class="mt-2 btn btn-danger btn-outline btn-xs delete-button" style="display: none;">Hapus</button>
<button type="button" class="mt-2 btn btn-danger btn-outline btn-xs delete-button"
style="display: none;">Hapus</button>
</div>
@endif
</div>
@@ -280,19 +283,19 @@
<div class="flex-wrap items-stretch">
<div class="flex flex-col items-start gap-4">
@if (isset($basicData['saranaPelengkap']))
@foreach ($basicData['saranaPelengkap'] as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<input class="checkbox" name="sarana_pelengkap[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, (array) old('sarana_pelengkap', $forminspeksi['bangunan']['sarana_pelengkap'] ?? [])) ? 'checked' : '' }} />
{{ $item->name }}
</label>
<input type="text" name="sarana_pelengkap_input[]" class="input w-full"
placeholder="Masukkan {{ $item->name }}..."
value="{{ old('sarana_pelengkap_input.' . $loop->index, $forminspeksi['bangunan']['sarana_pelengkap_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@foreach ($basicData['saranaPelengkap'] as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<input class="checkbox" name="sarana_pelengkap[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, (array) old('sarana_pelengkap', $forminspeksi['bangunan']['sarana_pelengkap'] ?? [])) ? 'checked' : '' }} />
{{ $item->name }}
</label>
<input type="text" name="sarana_pelengkap_input[]" class="input w-full"
placeholder="Masukkan {{ $item->name }}..."
value="{{ old('sarana_pelengkap_input.' . $loop->index, $forminspeksi['bangunan']['sarana_pelengkap_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@endif
</div>
<em id="error-sarana_pelengkap" class="alert text-danger text-sm"></em>

View File

@@ -355,8 +355,6 @@
const preview = newCell.querySelector('img');
if (preview) {
preview.id = newImageId;
preview.src = '';
preview.accept = ".jpg,.jpeg,.png";
preview.classList.add('hidden');
input.onchange = function() {
const file = this.files[0];

View File

@@ -270,7 +270,7 @@
<div class="flex items-center gap-2">
<label for="jarak_makam" class="form-label max-w-56">Jarak</label>
<input type="number" class="input mt-2" name="jarak_makam"
<input type="text" class="input mt-2" name="jarak_makam"
value="{{ old('jarak_makam', $forminspeksi['lingkungan']['jarak_makam'] ?? '') }}"
placeholder="Km" />
</div>
@@ -313,7 +313,7 @@
style="{{ old('dekat_tps', $forminspeksi['lingkungan']['dekat_tps'] ?? '') == 'ya' ? 'display:flex;' : 'display:none;' }}">
<div class="flex items-center gap-2">
<label for="jarak_tps" class="form-label max-w-56">Jarak</label>
<input type="number" id="jarak_tps" class="input mt-2" name="jarak_tps"
<input type="text" id="jarak_tps" class="input mt-2" name="jarak_tps"
value="{{ old('jarak_tps', $forminspeksi['lingkungan']['jarak_tps'] ?? '') }}"
placeholder="Km" />
</div>

View File

@@ -44,6 +44,49 @@
</td>
</tr>
@php
$fotoTypes = [
'upload_gs',
'foto_sentuh_tanahku',
'foto_gistaru',
'foto_bhumi',
'foto_argis_region',
'foto_tempat',
];
$customLabels = [
'upload_gs' => 'Gambar Situasi',
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
'foto_gistaru' => 'Gistaru',
'foto_bhumi' => 'Bhumi',
'foto_argis_region' => 'Blad Tata Ruang ',
'foto_tempat' => 'Tempat',
];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('upload_gs', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'upload_gs');
}
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
return isset($forminspeksi[$type]) && file_exists(storage_path('app/public/' . $forminspeksi[$type]));
});
@endphp
@foreach ($validPhotoTypes as $type)
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<tr>
<td style="20%"> {{ $customLabels[$type] ?? '' }}</td>
<td width="1%" style="vertical-align: top;"></td>
<td style="width: 79%">
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $imagePath }}"
style="max-height: 400px; height: auto; max-width: 100%;">
</td>
</tr>
@endif
@endforeach
<tr>
<td width="20%" style="vertical-align: top;">Catatan yang Perlu Diperhatikan </td>
<td width="1%" style="vertical-align: top;">:</td>

View File

@@ -46,6 +46,11 @@
<input type="checkbox"
{{ isset($forminspeksi['lingkungan']['perkerasan_jalan']['perkerasan_jalan']) && in_array($item->name, $forminspeksi['lingkungan']['perkerasan_jalan']['perkerasan_jalan']) ? 'checked' : '' }}>
{{ $item->name }}
@if ($item->name == 'Lainnya')
{{ isset($forminspeksi['lingkungan']['perkerasan_jalan']['lainnya']) ? ' (' . $forminspeksi['lingkungan']['perkerasan_jalan']['lainnya'] . ')' : '' }}
@endif
</label>
</td>
@endforeach
@@ -150,6 +155,10 @@
<input type="checkbox"
{{ isset($forminspeksi['lingkungan']['terletak_diarea']['terletak_diarea']) && in_array($item->name, $forminspeksi['lingkungan']['terletak_diarea']['terletak_diarea'] ?? '') ? 'checked' : '' }}>
{{ $item->name }}
@if ($item->name == 'Lainnya')
{{ isset($forminspeksi['lingkungan']['terletak_diarea']['lainnya']) ? ' (' . $forminspeksi['lingkungan']['terletak_diarea']['lainnya'] . ')' : '' }}
@endif
</label>
</td>
@endforeach
@@ -198,7 +207,7 @@
- Nama Makam:
{{ $forminspeksi['lingkungan']['nama_makam'] ?? '' }}
, Jarak Makam:
{{ $forminspeksi['lingkungan']['jarak_makam'] ?? '' }} Km
{{ $forminspeksi['lingkungan']['jarak_makam'] ?? '' }}
@endif
</label>
<label class="checkbox-label">
@@ -225,7 +234,7 @@
{{ $forminspeksi['lingkungan']['nama_tps'] ?? '' }}
, Jarak TPS:
{{ $forminspeksi['lingkungan']['jarak_tps'] ?? '' }}
km
@endif
</label>
<label class="checkbox-label">

View File

@@ -79,6 +79,7 @@
text-align: left;
border-top: 1px solid #ddd;
padding-top: 10px;
font-size: 12px;
}
body {
@@ -136,6 +137,19 @@
transform: scale(1.3);
/* Memperkecil ukuran checkbox */
}
@media print {
table {
border-collapse: collapse;
}
tr {
page-break-inside: avoid;
}
td, th {
border: 1px solid #000;
}
}
</style>
</head>
@@ -375,40 +389,7 @@
</table>
<table>
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td>
{{-- <td style="width:1%; padding: 2px; vertical-align: top;">:</td> --}}
</tr>
@endif
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px;">
{{ formatLabel($key) }}
</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">
{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endif
@endforeach
@endif
@include('lpj::component.print-out-dokument')
<tr>
@php
@@ -628,6 +609,18 @@
<footer id="footer">
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
<script type="text/php">
if (isset($pdf)) {
$pdf->page_script('
$font = $fontMetrics->get_font("Arial, Helvetica, sans-serif", "normal");
$size = 10;
$pageText = $PAGE_NUM;
$y = 800;
$x = 550;
$pdf->text($x, $y, $pageText, $font, $size);
');
}
</script>
</body>
</html>

View File

@@ -1,704 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Laporan Penilai Jaminan</title>
<style>
body {
font-family: Arial, sans-serif;
}
* {
font-size: 8px;
font-weight: bold;
}
h1,
h2,
h3 {
text-align: center;
margin-bottom: 10px;
color: #000;
}
.container {
/* width: 100%; */
padding: 10px;
/* border: 1px solid #000; */
margin-bottom: 20px;
}
.header {
margin-bottom: 10px;
}
.judul {
font-weight: bold;
text-align: center;
margin-bottom: 10px;
}
.photo-item {
text-align: center;
margin-bottom: 20px;
}
.photo-image {
max-width: 80%;
height: auto;
display: block;
margin: 0 auto;
}
.judul-table {
width: 100%;
/* border-collapse: collapse; */
margin-bottom: 10px;
}
.judul-table td {
text-align: center;
vertical-align: middle;
padding: 5px;
}
.border1 {
/* border: 1px solid #000; */
width: 50px;
}
.border {
/* border: 1px solid #000; */
}
.judul h6 {
margin: 0;
/* Menghindari margin bawaan */
font-size: 12px;
}
.custom-dl-tujuan {
width: 100%;
/* border-collapse: collapse; */
}
.inner-table {
width: 100%;
/* border-collapse: collapse; */
}
.inner-table td {
padding: 5px;
}
.inner-table td:first-child {
font-weight: bold;
/* Lebar kolom keterangan */
}
.custom-table {
width: 100%;
border-collapse: collapse;
margin-bottom: 20px;
}
.custom-table td {
vertical-align: top;
}
.custom-table td:first-child {
font-weight: bold;
width: 30%;
/* Sesuaikan lebar kolom keterangan */
}
.grid-table {
width: 100%;
border-collapse: collapse;
}
.grid-table td {
padding: 8px;
vertical-align: top;
text-align: left;
width: 33%;
/* Membagi kolom menjadi tiga */
}
.grid-table input[type="checkbox"] {
margin-right: 5px;
}
table {
width: 100%;
/* border: 1px solid #000; */
/* border-collapse: collapse; */
}
table.checkbox-list {
width: 100%;
border-collapse: collapse;
}
td.checkbox-item {
width: 33.33%;
vertical-align: top;
text-align: left;
}
label.checkbox-label {
display: flex;
align-items: center;
font-size: 8px;
}
label.checkbox-label input[type="checkbox"] {
margin-right: 6px;
transform: scale(1.3);
/* Memperkecil ukuran checkbox */
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: right;
border-top: 1px solid #ddd;
padding-top: 10px;
}
.page-number:after {
content: counter(page) " dari " counter(pages);
}
.content {
margin-top: 20px;
}
.page-break {
page-break-after: always;
}
.no-break {
page-break-inside: avoid;
page-break-before: auto;
page-break-after: auto;
}
</style>
</head>
@php
$data = '';
$dokument = null;
foreach ($permohonan->documents as $dokumen) {
$data .= $dokumen->jenisJaminan->name . ', ';
$dokument = $dokumen;
}
$data = rtrim($data, ', ');
$senior_officer = null;
if ($permohonan->debiture && $permohonan->documents) {
foreach ($permohonan->documents as $dokumen) {
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
$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
<body style="width: 80%; margin: auto">
<header id="header">
<table style="width: 100%; border: none;">
<tr>
<td style="width: 20%; text-align: left;" class="header-left">
@include('lpj::component.logo-bag')
</td>
<td style="text-align: right;">
<div style="">
<p>Tanggal: {{ date('Y-m-d') }}</p>
<p>Waktu: {{ date('H:i:s') }}</p>
<p>User: {{ Auth::user()->name }}</p>
</div>
</td>
</tr>
</table>
</header>
<table style="width: 100%; border: 1px solid #000; border-collapse: collapse;">
<tr>
<td style="text-align: center; margin-top: 5px; ">
<h2 style=" text-transform: uppercase; text-align: center; margin: 0;">
Tujuan Penilaian
</h2>
</td>
</tr>
</table>
<table style="width: 100%;">
<tr>
<td style="vertical-align: top;">
<table>
<tr>
<td style="width: 25%; padding: 2px; vertical-align: top;">Cabang/Pemohon</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td style="vertical-align: top; vertical-align: top;">
{{ $permohonan->debiture->branch->name ?? '' }}
</td>
</tr>
<tr>
<td style="width: 25%; padding: 2px;">Tujuan Penilai</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="vertical-align: top; padding: 2px;">
{{ $permohonan->jenisFasilitasKredit->name ?? '' }}</td>
</tr>
<tr>
<td style="width: 25%; padding: 2px;">Ao</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="vertical-align: top; padding: 2px;">{{ $permohonan->user->name ?? '' }}</td>
</tr>
</table>
</td>
{{-- <td style="border: 1px solid #000;">
<table style="border: none;">
<tr>
<td style="border: none;">
@if (isset($basicData['tujuanPenilaian']))
<table style="border: none;">
<tr>
@foreach ($basicData['tujuanPenilaian'] as $index => $item)
@if ($index % 3 == 0 && $index > 0)
</tr>
<tr>
@endif
<td class="checkbox-item" style="border: none;">
<label class="checkbox-label">
<input type="checkbox"
{{ $item->name == $permohonan->tujuanPenilaian->name ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@endforeach
</tr>
</table>
@endif
<table>
<tr>
<td><strong>Permintaan (A/O. Tlp/Hp)</strong></td>
<td>{{ $permohonan->user->name }}</td>
<td><strong>Tanggal</strong></td>
<td>{{ formatTanggalIndonesia($permohonan->created_at) }}</td>
</tr>
<tr>
<td><strong>Nama Debitur/ Wakil Debitur</strong></td>
<td>{{ $permohonan->debiture->name ?? '' }}
@if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan']))
@foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item)
{{ $item }}
@endforeach
@endif
</td>
<td><strong>Kunjungan Tanggal</strong></td>
<td>{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
</tr>
</table>
</td> --}}
</tr>
</table>
{{-- <tr>
<td style="text-align: center; border: 1px solid #000;">
B
</td>
<td style="text-align: center; border: 1px solid #000;">
IDENTITAS DEBITUR
</td>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #000;">
</td>
<td>
<table>
<tr>
<td><strong>Nama Debitur</strong></td>
<td style="text-align: start">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
</table>
</td>
</tr> --}}
{{-- <tr>
<td style="text-align: center; border: 1px solid #000;">
C
</td>
<td style="text-align: center; border: 1px solid #000;">
JENIS DAN LOKASI JAMINAN + KORDINAT
</td>
</tr>
<tr>
<td style=" text-align: center; border: 1px solid #000;">
</td>
<td>
@if (isset($basicData['jenisJaminan']))
<table class="checkbox-list">
<tr>
@foreach ($basicData['jenisJaminan'] as $index => $item)
@if ($index % 3 == 0 && $index > 0)
</tr>
<tr>
@endif
<td class="checkbox-item">
<label class="checkbox-label">
<input type="checkbox" {{ in_array($item->name, explode(',', $data)) ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@endforeach
</tr>
</table>
@endif
<table>
<tr>
<td width="25%"><strong>Terletak di</strong></td>
<td> {{ $alamat['address'] ?? '' }}</td>
</tr>
<tr>
<td>Kelurahan</td>
<td>{{ $alamat['village_code'] ?? '' }}</td>
</tr>
<tr>
<td><strong>Kecamatan</strong></td>
<td>{{ $alamat['district_code'] ?? '' }}</td>
</tr>
<tr>
<td><strong>Kotamadya</strong></td>
<td> {{ $alamat['city_code'] ?? '' }}</td>
</tr>
<tr>
<td><strong>Propinsi</strong></td>
<td>{{ $alamat['province_code'] ?? '' }}</td>
</tr>
</table>
<table>
<tr>
<td>Titik Kordinat</td>
<td>{{ isset($forminspeksi['asset']['kordinat_lat']) ? $forminspeksi['asset']['kordinat_lat'] : '' }} ,
{{ isset($forminspeksi['asset']['kordinat_lng']) ? $forminspeksi['asset']['kordinat_lng'] : '' }}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #000;">
D
</td>
<td style="text-align: center; border: 1px solid #000;">
STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI
</td>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #000;">
</td>
<td>
<table>
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td>
</tr>
<tr>
<td>
@if (isset($detail->dokumen_jaminan))
@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]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<div>
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
</div>
@endforeach
@endif
</td>
</tr>
@endif
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<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>
</tr>
@endif
@endforeach
@endif
@endif
@endforeach
@endif
<tr>
<td><strong>Atas Nama</strong></td>
<td>{{ $dokument->pemilik->name ?? '' }}</td>
</tr>
<tr>
@php
// 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>
<td>
@if (isset($basicData['hubCadeb']))
<table class="checkbox-table">
@php $count = 0; @endphp
<tr>
@foreach ($basicData['hubCadeb'] as $item)
<td>
<label>
<input type="checkbox"
{{ $hubCadeb === $item->name ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@php $count++; @endphp
@if ($count % 3 === 0)
</tr>
<tr>
@endif
@endforeach
@if ($count % 3 !== 0)
@for ($i = 0; $i < 3 - ($count % 3); $i++)
<td></td>
@endfor
@endif
</tr>
</table>
@endif
</td>
</tr>
<tr>
@php
$statusKey = isset($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedData = $forminspeksi['asset']['hub_cadeb_penghuni'][$statusKey] ?? null;
@endphp
<td><strong>Hubungan Penghuni Jaminan dengan Debitur</strong></td>
<td>
@if (isset($selectedData))
<table class="checkbox-table">
<tr>
<td>
{{ $selectedData ?? '' }}
</td>
</tr>
</table>
@endif
</td>
</tr>
</table>
</td>
</tr> --}}
{{-- <tr>
<td style="text-align: center; border: 1px solid #000;">
G
</td>
<td style="text-align: center; border: 1px solid #000;">
ASURANSI
</td>
</tr> --}}
<tr>
<td style="text-align: center;">
</td>
<td style="border: 1px solid #000;">
<table>
<tr>
<td>
Jakarta {{ formatTanggalIndonesia($permohonan->penilaian->waktu_penilaian) }}
</td>
</tr>
<tr>
<td>
TTD
</td>
</tr>
</table>
<table style="width: 100%; border-collapse: collapse; text-align: center;">
<tr>
@if (isset($forminspeksi['signature']['penilai']['image']) && !empty($forminspeksi['signature']['penilai']['image']))
@php
$imagePath = $forminspeksi['signature']['penilai']['image'];
$isBase64 = str_starts_with($imagePath, 'data:image');
if (!$isBase64) {
$relativePath = str_replace(url('storage') . '/', '', $imagePath);
$absolutePath = storage_path('app/public/' . $relativePath);
} else {
$absolutePath = $imagePath;
}
@endphp
<td style="width: 100px;">
<img style="width: 100px;" src="{{ $absolutePath }}" alt="">
</td>
@endif
@if (isset($forminspeksi['signature']['cabang']))
@php
$imagePath = $forminspeksi['signature']['cabang']['image'];
$isBase64 = str_starts_with($imagePath, 'data:image');
if (!$isBase64) {
$relativePath = str_replace(url('storage') . '/', '', $imagePath);
$absolutePath = storage_path('app/public/' . $relativePath);
} else {
$absolutePath = $imagePath;
}
@endphp
<td style="width: 100px;">
<img style="width: 100px;" src="{{ $absolutePath }}" alt="">
</td>
@endif
@if (isset($forminspeksi['signature']['debitur']))
<td style="width: 100px;">
<img style="width: 100px;" src="{{ $forminspeksi['signature']['debitur']['image'] }}"
alt="Debitur/Perwakilan">
</td>
@endif
<!-- K.J.P.P -->
@if (isset($forminspeksi['signature']['kjjp']))
<td style="width: 100px;">
<img style="width: 100px;" src="{{ $forminspeksi['signature']['kjjp']['image'] }}"
alt="KJPP">
</td>
@endif
</tr>
<tr>
@if (isset($forminspeksi['signature']['penilai']['name']))
<td style=" text-align: center">
<span>{{ ucwords(strtolower($forminspeksi['signature']['penilai']['name'])) }}</span>
<br />
<span>{{ ucwords(strtolower('PENILAI')) }}</span>
</td>
@endif
@if (isset($forminspeksi['signature']['cabang']['name']))
<td style=" text-align: center">
<span>{{ ucwords(strtolower($forminspeksi['signature']['cabang']['name'])) }}</span>
<br />
<span>{{ ucwords(strtolower('CABANG')) }}</span>
</td>
@endif
@if (isset($forminspeksi['signature']['debitur']['name']))
<td style=" text-align: center">
<span>{{ ucwords(strtolower($forminspeksi['signature']['debitur']['name'])) }}</span>
<br />
<span>{{ ucwords(strtolower('DEBITUR/PERWAKILAN')) }}</span>
</td>
@endif
@if (isset($forminspeksi['signature']['kjjp']['name']))
<td style=" text-align: center">
<span>{{ ucwords(strtolower($forminspeksi['signature']['kjjp']['name'])) }}</span>
<br />
<span>{{ strtoupper('K.J.P.P') }}</span>
</td>
@endif
</tr>
</table>
</td>
</tr>
{{-- </table> --}}
<footer id="footer">
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
</body>
</html>

View File

@@ -91,7 +91,12 @@
<input type="checkbox"
{{ isset($forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) && in_array($item->name, $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) ? 'checked' : '' }}>
{{ $item->name }}
@if ($item->name == 'Lainnya')
{{ isset($forminspeksi['tanah']['bentuk_tanah']['lainnya']) ? ' (' . $forminspeksi['tanah']['bentuk_tanah']['lainnya'] . ')' : '' }}
@endif
</label>
</td>
@endforeach
</tr>
@@ -147,6 +152,13 @@
<input type="checkbox"
{{ isset($forminspeksi['tanah']['ketinggian_tanah']['ketinggian']) && in_array($item->name, $forminspeksi['tanah']['ketinggian_tanah']['ketinggian']) ? 'checked' : '' }}>
{{ $item->name }}
@if ($item->name == 'Lebih Tinggi')
{{ isset($forminspeksi['tanah']['ketinggian_tanah']['lebih_tinggi']) ? ' (' . $forminspeksi['tanah']['ketinggian_tanah']['lebih_tinggi'] . ')' : '' }}
@endif
@if ($item->name == 'Lebih Rendah')
{{ isset($forminspeksi['tanah']['ketinggian_tanah']['lebih_rendah']) ? ' (' . $forminspeksi['tanah']['ketinggian_tanah']['lebih_rendah'] . ')' : '' }}
@endif
</label>
</td>
@endforeach
@@ -211,6 +223,10 @@
<input type="checkbox"
{{ isset($forminspeksi['tanah']['posisi_kavling']['posisi_kavling']) && in_array($item->name, $forminspeksi['tanah']['posisi_kavling']['posisi_kavling']) ? 'checked' : '' }}>
{{ $item->name }}
@if ($item->name == 'Lainnya')
{{ isset($forminspeksi['tanah']['posisi_kavling']['lainnya']) ? ' (' . $forminspeksi['tanah']['posisi_kavling']['lainnya'] . ')' : '' }}
@endif
</label>
</td>
@endforeach

View File

@@ -10,28 +10,22 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Luas Tanah</label>
<div class="mt-2">
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $item)
@php
$luas_tanah = 0;
$total_luas_tanah = 0;
$jenis_legalitas_jaminan_id = 0;
if ($item->detail) {
foreach ($item->detail as $luas) {
if (isset($luas->name) && $luas->jenis_legalitas_jaminan_id === 1) {
$jenis_legalitas_jaminan_id = $luas->jenis_legalitas_jaminan_id;
$details = json_decode($luas->details, true);
$luas_tanah = isset($details['luas_tanah']) ? $details['luas_tanah'] : 0;
break;
}
}
if (isset($item->detail)) {
$total_luas_tanah = calculateTotalLuas($item->detail, 'luas_tanah', 1);
}
@endphp
<input type="hidden"
id="jenis_legalistas_jaminan_tanah_id"
name="jenis_legalistas_jaminan_tanah_id"
class="input" value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_tanah_sesuai" class="input" value="{{ $luas_tanah }}">
<p class="text-2sm text-gray-700">{{ $luas_tanah }} m<sup>2</sup></p>
<input type="hidden" id="jenis_legalistas_jaminan_tanah_id"
name="jenis_legalistas_jaminan_tanah_id" class="input"
value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_tanah_sesuai" class="input"
value="{{ $total_luas_tanah }}">
<p class="text-2sm text-gray-700">{{ $total_luas_tanah }} m<sup>2</sup></p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
@@ -283,14 +277,14 @@
{{ old('tusuk_sate') == 'Ya' || (isset($forminspeksi['tanah']['tusuk_sate']['Ya']) && $forminspeksi['tanah']['tusuk_sate']['Ya']) ? 'checked' : '' }}>
<span class="ml-2">Ya</span>
@php
$statusKey = isset($forminspeksi['tanah']['tusuk_sate']['Ya']) ? 'Ya' : 'Tidak';
$selectedData = $forminspeksi['tanah']['tusuk_sate'][$statusKey] ?? null;
@endphp
<input id="tusuk_sate_ya" class="input" name="tusuk_sate_ya"
placeholder="Masukkan Tusuk Sate..."
value="{{ old('tusuk_sate_ya', isset($selectedData) ? $selectedData : '') }}"
style="{{ $statusKey == 'Ya' ? '' : 'display: none;' }}">
@php
$statusKey = isset($forminspeksi['tanah']['tusuk_sate']['Ya']) ? 'Ya' : 'Tidak';
$selectedData = $forminspeksi['tanah']['tusuk_sate'][$statusKey] ?? null;
@endphp
<input id="tusuk_sate_ya" class="input" name="tusuk_sate_ya"
placeholder="Masukkan Tusuk Sate..."
value="{{ old('tusuk_sate_ya', isset($selectedData) ? $selectedData : '') }}"
style="{{ $statusKey == 'Ya' ? '' : 'display: none;' }}">
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input onclick="toggleFieldVisibility('tusuk_sate', 'tusuk_sate_ya', ['Ya'])"

View File

@@ -82,6 +82,7 @@ Route::middleware(['auth'])->group(function () {
Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class);
Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () {
Route::get('custom-fields/{id}', [JenisLegalitasJaminanController::class, 'getCustomFields'])->name('ustom-fields');
Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan'])
->name('legalitas');
Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore');