Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into tender

This commit is contained in:
2025-02-07 09:31:11 +07:00
23 changed files with 3576 additions and 5161 deletions

View File

@@ -52,7 +52,7 @@ class PenilaiController extends Controller
$permohonanId = $request->query('permohonanId'); $permohonanId = $request->query('permohonanId');
$documentId = $request->query('documentId'); $documentId = $request->query('documentId');
$jaminanId = $request->query('jaminanId'); $jaminanId = $request->query('jaminanId');
$basicData = $this->surveyorController->getCommonData();
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId); $permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
$inpeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); $inpeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
@@ -62,7 +62,7 @@ class PenilaiController extends Controller
$forminspeksi = json_decode($inpeksi->data_form, true); $forminspeksi = json_decode($inpeksi->data_form, true);
} }
return view('lpj::penilai.lampiran', compact('permohonan', 'formFoto', 'forminspeksi')); return view('lpj::penilai.lampiran', compact('permohonan', 'formFoto', 'forminspeksi','basicData'));
} }
public function create() public function create()
@@ -1043,7 +1043,7 @@ class PenilaiController extends Controller
if ($statusLpj) { if ($statusLpj) {
// $pdf = view('lpj::' . $viewLaporan, compact( // $pdf = view('lpj::' . $viewLaporan, compact(
$pdf = PDF::loadView('lpj::' . $viewLaporan, compact( $pdf = PDF::loadView('lpj::' . $viewLaporan, compact(
'permohonan', 'permohonan',
'forminspeksi', 'forminspeksi',
'lpjData', 'lpjData',

View File

@@ -340,18 +340,6 @@ class SurveyorController extends Controller
{ {
$validatedData = $this->validateFotoRequest($request); $validatedData = $this->validateFotoRequest($request);
try { try {
$log = [];
$photoCategories = [
'rute_menuju_lokasi',
'foto_lingkungan',
];
$lainnya = [
'foto_rute_lainnya' => ['foto_rute_lainnya', 'name_rute_lainnya'],
'foto_lantai_lainnya' => ['foto_lantai_lainnya', 'name_lantai_lainnya']
];
$inspeksi = Inspeksi::firstOrNew([ $inspeksi = Inspeksi::firstOrNew([
'permohonan_id' => $request->input('permohonan_id'), 'permohonan_id' => $request->input('permohonan_id'),
'dokument_id' => $request->input('dokument_id') 'dokument_id' => $request->input('dokument_id')
@@ -361,62 +349,23 @@ class SurveyorController extends Controller
? json_decode($inspeksi->foto_form, true) ? json_decode($inspeksi->foto_form, true)
: []; : [];
$formatFotojson = $existingData;
if (!$this->isValidFormat($existingData)) {
$existingData = [];
}
// Upload berbagai jenis foto // Upload berbagai jenis foto
$this->handleFileUpload($request, 'rute_menuju_lokasi', $formatFotojson); $newFoto = $this->handleFileUpload($request, 'upload_foto', $existingData);
$this->handleFileUpload($request, 'foto_lingkungan', $formatFotojson);
$this->processFotoLantaiUnit($request, $formatFotojson); if (!empty($newFoto)) {
$inspeksi->foto_form = json_encode($existingData);
if ($request->hasFile('foto_objek')) {
$existingObjekJaminan = $formatFotojson['object_jaminan'] ?? [];
$formatFotojson['object_jaminan'] = $this->processObjekJaminanPhotos(
$request,
$existingObjekJaminan
);
}
foreach ($lainnya as $category => $fields) {
$photoField = $fields[0];
$nameField = $fields[1];
$descriptionField = $fields[2] ?? null;
if ($request->hasFile($photoField)) {
$newPhotos = $this->processPhotoLainnya(
$request,
$fields,
$existingData[$category] ?? []
);
$formatFotojson[$category] = $newPhotos;
}
}
// // Process single files
$singleFiles = ['foto_basement', 'foto_gerbang', 'pendamping'];
foreach ($singleFiles as $file) {
if ($request->hasFile($file)) {
// Hapus file lama jika ada
if (isset($formatFotojson[$file])) {
$this->deleteOfFile($formatFotojson[$file]);
}
// Upload dan simpan file baru
$formatFotojson[$file] = $this->uploadFile($request->file($file), $file);
}
}
// Update record
if (!empty($formatFotojson)) {
$inspeksi->foto_form = json_encode($formatFotojson);
$inspeksi->save(); $inspeksi->save();
return response()->json([ return response()->json([
'success' => true, 'success' => true,
'message' => 'Data berhasil disimpan', 'message' => 'Data berhasil disimpan',
'data' => $formatFotojson, 'file' => $newFoto
'log' => $log
], 200); ], 200);
} }
@@ -430,74 +379,107 @@ class SurveyorController extends Controller
} }
/** /**
* Process a photo * Validasi apakah format JSON sesuai dengan yang diinginkan.
*/ *
protected function processFotoLantaiUnit(Request $request, &$formatFotojson) * @param array $data
* @return bool
*/
private function isValidFormat($data)
{ {
// Pastikan foto_lantai_unit sudah ada di formatFotojson if (!isset($data['upload_foto']) || !is_array($data['upload_foto'])) {
if (!isset($formatFotojson['foto_lantai_unit'])) { return false;
$formatFotojson['foto_lantai_unit'] = [];
} }
// Ambil nama-nama lantai dari request return true;
$lantaiNama = $request->input('lantai_nama', []);
// Tambahan: gunakan lantai_index jika tersedia
$lantaiIndex = $request->input('lantai_index', null);
// Cek apakah ada file foto lantai yang diunggah
$lantaiFiles = $request->file('foto_lantai_unit', []);
// Proses setiap file foto lantai
foreach ($lantaiFiles as $index => $files) {
// Pastikan $files adalah array
if (!is_array($files)) {
$files = [$files];
}
// Gunakan lantai_index jika tersedia, jika tidak gunakan cara sebelumnya
$lantaiNomor = $lantaiIndex ?? ($index + 1);
// Inisialisasi array untuk lantai ini jika belum ada
if (!isset($formatFotojson['foto_lantai_unit'][$lantaiNomor])) {
$formatFotojson['foto_lantai_unit'][$lantaiNomor] = [];
}
foreach ($files as $fileIndex => $file) {
// Validasi file
if (!$file->isValid()) {
continue; // Lewati file yang tidak valid
}
// Generate nama file unik
$uniqueFileName = 'lantai_unit_' . $lantaiNomor . '_' . $fileIndex . '_' . Str::random(10) . '.' . $file->getClientOriginalExtension();
// Simpan file dengan nama asli
$path = $file->storeAs(
'surveyor/lantai_unit',
$uniqueFileName . '/' . time() . '_' . $file->getClientOriginalName(),
'public'
);
// Buat nama foto
$fotoName = "Foto Lantai {$lantaiNomor} - " . ($fileIndex + 1);
// Tambahkan detail foto ke array
$fotoDetail = [
'path' => $path,
'name' => $fotoName
];
// Tambahkan ke array foto lantai unit sesuai struktur
$formatFotojson['foto_lantai_unit'][$lantaiNomor][] = $fotoDetail;
}
}
return $formatFotojson;
} }
public function updateFoto(Request $request)
{
try {
// Validasi input
$validated = $request->validate([
'permohonan_id' => 'required',
'dokument_id' => 'required|string',
'name' => 'required|string|max:255',
'description' => 'nullable|string',
'category' => 'required|string|max:255',
'sub' => 'nullable|string|max:255',
'path' => 'nullable|string',
]);
$inspeksi = Inspeksi::firstOrNew([
'permohonan_id' => $validated['permohonan_id'],
'dokument_id' => $validated['dokument_id'],
]);
$cleanRequestPath = str_replace('/storage/', '', $validated['path']);
$fotoForm = json_decode($inspeksi->foto_form, true) ?? [];
if (!isset($fotoForm['upload_foto'])) {
$fotoForm['upload_foto'] = [];
}
$existingIndex = null;
if (!empty($validated['path'])) {
foreach ($fotoForm['upload_foto'] as $index => $foto) {
if ($foto['path'] === $cleanRequestPath) {
$existingIndex = $index;
break;
}
}
}
// Siapkan data baru
$newFotoData = [
'name' => $validated['name'],
'description' => $validated['description'],
'category' => $validated['category'],
'sub' => $validated['sub'],
'path' => $cleanRequestPath,
'created_by' => Auth::user()->name,
'created_at' => now()->toDateTimeString(),
'updated_by' => Auth::user()->name,
'updated_at' => now()->toDateTimeString(),
];
if ($existingIndex !== null) {
$existingFoto = $fotoForm['upload_foto'][$existingIndex];
$fotoForm['upload_foto'][$existingIndex] = [
'name' => $validated['name'],
'description' => $validated['description'],
'category' => $validated['category'],
'sub' => $validated['sub'],
'path' => $cleanRequestPath,
'created_by' => $existingFoto['created_by'] ?? Auth::user()->name,
'created_at' => $existingFoto['created_at'] ?? now()->toDateTimeString(),
'updated_by' => Auth::user()->name,
'updated_at' => now()->toDateTimeString(),
];
} else {
$fotoForm['upload_foto'][] = $newFotoData;
}
// Simpan kembali data ke database
$inspeksi->foto_form = json_encode($fotoForm);
$inspeksi->save();
return response()->json([
'success' => true,
'message' => 'Data berhasil diperbarui.',
], 200);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => 'Gagal memperbarui data: ' . $e->getMessage(),
], 500);
}
}
private function handleFileUpload(Request $request, $paramName, &$formatFotojson) private function handleFileUpload(Request $request, $paramName, &$formatFotojson)
{ {
@@ -510,45 +492,54 @@ class SurveyorController extends Controller
} }
$formatFotoData = []; $formatFotoData = [];
$nomor_registrasi = $request->nomor_registrasi;
foreach ($files as $index => $file) { foreach ($files as $index => $file) {
$timestamp = time(); $timestamp = time();
$originalName = $file->getClientOriginalName(); $originalName = $file->getClientOriginalName();
$uniqueFileName = "{$timestamp}_{$originalName}"; $extension = $file->getClientOriginalExtension();
// Validasi nama file
if (empty($originalName)) {
$originalName = "file_{$timestamp}";
}
$uniqueFileName = "{$timestamp}.{$extension}";
// Simpan file // Simpan file
$path = $file->storeAs("surveyor/{$paramName}", $uniqueFileName, 'public'); $nomor_registrasi = $request->nomor_registrasi;
$path = $file->storeAs("surveyor/{$paramName}/{$nomor_registrasi}", $uniqueFileName, 'public');
$fotoData = [ $fotoData = [
'name' => pathinfo($originalName, PATHINFO_FILENAME),
'path' => $path, 'path' => $path,
'name' => ucwords(str_replace('_', ' ', $paramName)) . ' - ' . ($index + 1) 'category' => 'lainnya',
'sub' => null,
'description' => null,
'created_by' => Auth::user()->name,
'created_at' => now()->toDateTimeString(),
]; ];
$formatFotoData[] = $fotoData; $formatFotoData[] = $fotoData;
} }
// Struktur JSON yang konsisten // Struktur JSON yang konsisten
if (!isset($formatFotojson[$paramName][$paramName][0])) { if (!isset($formatFotojson[$paramName])) {
$formatFotojson[$paramName] = [ $formatFotojson[$paramName] = $formatFotoData;
$paramName => [
$formatFotoData
]
];
} else { } else {
$formatFotojson[$paramName][$paramName][0] = array_merge( $formatFotojson[$paramName] = array_merge(
$formatFotojson[$paramName][$paramName][0] ?? [], $formatFotojson[$paramName] ?? [],
$formatFotoData $formatFotoData
); );
} }
return $formatFotoData; return $formatFotoData;
} }
return []; return [];
} }
public function hapusFoto(Request $request) public function hapusFoto(Request $request)
{ {
try { try {
@@ -563,39 +554,35 @@ class SurveyorController extends Controller
); );
$fotoForm = json_decode($inspeksi->foto_form, true); $fotoForm = json_decode($inspeksi->foto_form, true);
if (isset($fotoForm[$paramName][$paramName][0])) { if (isset($fotoForm[$paramName]) && is_array($fotoForm[$paramName])) {
// Filter foto yang akan dihapus // Filter foto yang tidak sesuai dengan path yang akan dihapus
$fotoForm[$paramName] = array_values(array_filter(
$tes = null; $fotoForm[$paramName],
$fotoForm[$paramName][$paramName][0] = array_values( function ($foto) use ($cleanRequestPath) {
array_filter( if ($foto['path'] === $cleanRequestPath) {
$fotoForm[$paramName][$paramName][0], // Hapus file dari storage
function ($foto) use ($cleanRequestPath) { \Storage::disk('public')->delete($cleanRequestPath);
if ($foto['path'] === $cleanRequestPath) { return false;
// Hapus file dari storage
\Storage::disk('public')->delete($cleanRequestPath);
return false; // Hapus elemen ini dari array
}
$tes = $foto['path'];
return true;
} }
) return true;
); }
));
// Simpan kembali data ke database
// Reset array index $inspeksi->foto_form = json_encode($fotoForm);
$fotoForm[$paramName][$paramName][0] = array_values($fotoForm[$paramName][$paramName][0]);
$inspeksi->foto_form = $fotoForm;
$inspeksi->save(); $inspeksi->save();
return response()->json([ return response()->json([
'success' => true, 'success' => true,
'message' => 'Foto berhasil dihapus', 'message' => 'Foto berhasil dihapus',
], 200); ], 200);
} }
return response()->json(['success' => false], 400); // Jika parameter tidak ditemukan
return response()->json([
'success' => false,
'message' => 'Foto atau parameter tidak ditemukan',
], 400);
} catch (\Exception $e) { } catch (\Exception $e) {
return response()->json([ return response()->json([
'success' => false, 'success' => false,
@@ -622,37 +609,32 @@ class SurveyorController extends Controller
$fotos = $this->findFotoByParamName($fotoForm, $paramName); $fotos = $this->findFotoByParamName($fotoForm, $paramName);
$param = $paramName == 'rute_menuju_lokasi' ? $fotos['rute_menuju_lokasi'][0] : $fotos['foto_lingkungan'][0];
$data = array_map(function ($foto) { $data = array_map(function ($foto) {
return [ return [
'name' => $foto['name'] ?? 'Foto', 'name' => $foto['name'] ?? 'Foto',
'path' => \Storage::url($foto['path']), 'path' => \Storage::url($foto['path'] ?? ''),
'category' => $foto['category'] ?? 'lainnya',
'sub' => $foto['sub'] ?? null,
'description' => $foto['description'] ?? null,
'upload_by' => $foto['upload_by'] ?? null,
]; ];
}, $param); }, $fotos);
return response()->json([ return response()->json([
'fotos' => $data, 'fotos' => $data,
'success' => !empty($data) 'success' => !empty($data),
]); ]);
} }
private function findFotoByParamName($fotoForm, $paramName) private function findFotoByParamName($fotoForm, $paramName)
{ {
// Mapping parameter name ke struktur JSON // Mapping parameter name ke struktur JSON
$paramMapping = [ if (isset($fotoForm[$paramName]) && is_array($fotoForm[$paramName])) {
'rute_menuju_lokasi' => ['rute_menuju_lokasi'], return $fotoForm[$paramName]; // Kembalikan array foto jika ditemukan
'foto_lingkungan' => ['foto_lingkungan'],
];
// // Traverse array menggunakan mapping
$fotos = $fotoForm;
if (isset($paramMapping[$paramName])) {
foreach ($paramMapping[$paramName] as $key) {
$fotos = $fotos[$key] ?? [];
}
} }
return is_array($fotos) ? $fotos : []; // Jika parameter tidak ditemukan atau bukan array, kembalikan array kosong
return [];
} }
@@ -784,38 +766,7 @@ class SurveyorController extends Controller
], 404); ], 404);
} }
private function processPhotoLainnya(Request $request, array $fields, array $existingPhotos = [])
{
$result = $existingPhotos; // Start with existing photos
$photoField = $fields[0];
$nameField = $fields[1];
$descriptionField = $fields[2] ?? null;
if ($request->hasFile($photoField)) {
$newFiles = $request->file($photoField, []);
$newNames = $request->input($nameField, []);
$newDescriptions = $descriptionField ? $request->input($descriptionField, []) : [];
// Process each new file
foreach ($newFiles as $key => $file) {
// Create new photo entry
$newPhotoEntry = [
$nameField => $newNames[$key] ?? '', // Use new name if provided
$photoField => $this->uploadFile($file, $photoField . '.' . $key)
];
// Add description if field exists
if ($descriptionField) {
$newPhotoEntry[$descriptionField] = $newDescriptions[$key] ?? '';
}
// Add to result
$result[] = $newPhotoEntry;
}
}
return $result;
}
private function generateUniqueFileName($file, $prefix = '') private function generateUniqueFileName($file, $prefix = '')
{ {
@@ -839,27 +790,8 @@ class SurveyorController extends Controller
return $request->validate([ return $request->validate([
'permohonan_id' => 'required', 'permohonan_id' => 'required',
'dokument_id' => 'required', 'dokument_id' => 'required',
'pendamping' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'nomor_registrasi' => 'required',
'foto_objek.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'name_objek.*' => 'required|string|max:255',
'name_lingkungan.*' => 'required|string|max:255',
'foto_rute.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'foto_rute.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'name_rute.*' => 'required|string|max:255',
'lantai.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'name_rute_lainnya.*' => 'nullable|string',
'foto_rute_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'foto_lantai_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'name_lantai_lainnya.*' => 'nullable|string|max:255',
'foto_basement.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'name_basement.*' => 'nullable|string|max:255',
'foto_gerbang' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize,
'name_gerbang' => 'nullable|string|max:255',
'name_lantai_unit' => 'array',
]); ]);
} }
@@ -1487,6 +1419,8 @@ class SurveyorController extends Controller
'permohonan_id' => 'required|exists:permohonan,id', 'permohonan_id' => 'required|exists:permohonan,id',
'type' => 'required|string', 'type' => 'required|string',
'dokument_id' => 'required', 'dokument_id' => 'required',
'name_foto_objek' => 'nullable|string',
'nomor_registrasi' => 'required|string',
'foto_objek' => 'nullable|image|max:'.$maxSize, 'foto_objek' => 'nullable|image|max:'.$maxSize,
'foto_objek_pembanding.*' => 'nullable|image|max:'.$maxSize, 'foto_objek_pembanding.*' => 'nullable|image|max:'.$maxSize,
]); ]);
@@ -1502,43 +1436,7 @@ class SurveyorController extends Controller
$objekPenilaian = $this->formatObjekPenilaian($request); $objekPenilaian = $this->formatObjekPenilaian($request);
} }
if ($request->hasFile('foto_objek')) { if ($request->hasFile('foto_objek')) {
$newFoto = $this->handleupdateOrDeleteFile( $newFoto = $this->handleEditTampakDepan($request);
$request->file('foto_objek'),
$request['type'] = 'pembanding',
'objek_penilaian'
);
// Update foto_form
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
->where('dokument_id', $request->input('dokument_id'))
->first();
if ($inspeksi) {
$fotoForm = json_decode($inspeksi->foto_form, true) ?: [];
if (!isset($fotoForm['object_jaminan'])) {
$fotoForm['object_jaminan'] = [];
}
if (empty($fotoForm['object_jaminan'])) {
$fotoForm['object_jaminan'][] = [
'name_objek' => 'Tampak Depan Objek',
'foto_objek' => $newFoto,
'deskripsi_objek' => ''
];
} else {
// Update objek pertama dalam array object_jaminan
$fotoForm['object_jaminan'][0]['foto_objek'] = $newFoto;
// Tambahkan nama dan deskripsi jika belum ada
if (!isset($fotoForm['object_jaminan'][0]['name_objek'])) {
$fotoForm['object_jaminan'][0]['name_objek'] = 'Tampak Depan Objek';
}
}
$inspeksi->foto_form = json_encode($fotoForm);
$inspeksi->save();
}
$objekPenilaian['foto_objek'] = $newFoto; $objekPenilaian['foto_objek'] = $newFoto;
} }
@@ -1571,7 +1469,75 @@ class SurveyorController extends Controller
} }
} }
public function handleEditTampakDepan(Request $request)
{
$nomor_registrasi = $request->nomor_registrasi;
// Ambil data inspeksi
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
->where('dokument_id', $request->input('dokument_id'))
->firstOrFail();
// Bersihkan path dari request
$cleanRequestPath = str_replace('/storage/', '', $request['path']);
// Ambil foto_form dari inspeksi
$fotoForm = json_decode($inspeksi->foto_form, true) ?? [];
$fotoForm['upload_foto'] = $fotoForm['upload_foto'] ?? [];
$existingIndex = null;
if (!empty($request['path'])) {
foreach ($fotoForm['upload_foto'] as $index => $foto) {
if ($foto['path'] === $cleanRequestPath) {
$existingIndex = $index;
break;
}
}
}
if ($request->hasFile('foto_objek')) {
$file = $request->file('foto_objek');
$timestamp = time();
$originalName = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
// Validasi nama file
if (empty($originalName)) {
$originalName = "file_{$timestamp}";
}
$uniqueFileName = "{$timestamp}.{$extension}";
// Simpan file ke penyimpanan publik
$path = $file->storeAs("surveyor/upload_foto/{$nomor_registrasi}", $uniqueFileName, 'public');
// Data baru untuk foto
$newFotoData = [
'name' => $originalName,
'description' => null,
'category' => 'Tampak Depan',
'sub' => null,
'path' => $path,
'created_by' => Auth::user()->name,
'created_at' => now()->toDateTimeString(),
'updated_by' => Auth::user()->name,
'updated_at' => now()->toDateTimeString(),
];
// Update atau tambahkan data baru
if ($existingIndex !== null) {
$fotoForm['upload_foto'][$existingIndex] = $newFotoData;
} else {
$fotoForm['upload_foto'][] = $newFotoData;
}
// Simpan kembali data ke database
$inspeksi->foto_form = json_encode($fotoForm);
$inspeksi->save();
return $path;
}
}
/** /**
* Form inspeksi. * Form inspeksi.
@@ -1707,6 +1673,7 @@ class SurveyorController extends Controller
$permohonan = $this->getPermohonanJaminanId($id, $dokumentId, $jaminanId); $permohonan = $this->getPermohonanJaminanId($id, $dokumentId, $jaminanId);
$surveyor = $id; $surveyor = $id;
$branches = Branch::all(); $branches = Branch::all();
$provinces = Province::all(); $provinces = Province::all();
@@ -2342,7 +2309,8 @@ class SurveyorController extends Controller
'perkerasanJalan' => PerkerasanJalan::all(), 'perkerasanJalan' => PerkerasanJalan::all(),
'terletakDiArea' => TerletakArea::all(), 'terletakDiArea' => TerletakArea::all(),
'tujuanPenilaian' => TujuanPenilaian::all(), 'tujuanPenilaian' => TujuanPenilaian::all(),
'perizinan' => Perizinan::all() 'perizinan' => Perizinan::all(),
'foto' => FotoObjekJaminan::all()
]; ];
} }

View File

@@ -0,0 +1,82 @@
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
ANALISA UNIT
</td>
</tr>
</table>
<table style="width: 100%; ">
<tr>
@php
$cekLuas = isset($forminspeksi['luas_unit']['tidak sesuai'])
? 'tidak sesuai'
: 'sesuai';
$luas = $forminspeksi['luas_unit'][$cekLuas] ?? null;
@endphp
<td style="width: 25%; padding: 2px; vertical-align: top;">Luas Unit</td>
<td style="width: 1%; padding: 2px; vertical-align: top;">:</td>
<td style="width: 74%; padding: 2px; vertical-align: top;">{{ $luas ?? '' }}</td>
</tr>
<tr>
<td style="width: 25%; padding: 2px; vertical-align: top;">Bentuk Unit</td>
<td style="width: 1%; padding: 2px; vertical-align: top;">:</td>
<td style="width: 74%; padding: 2px; vertical-align: top;">
@php
$bentukUnit = $forminspeksi['bentuk_unit'] ?? [];
@endphp
@if (!empty($bentukUnit))
{{ implode(', ', $bentukUnit) }}
@else
-
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Unit</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$bentukUnit = $forminspeksi['kondisi_unit'] ?? [];
@endphp
@if (!empty($bentukUnit))
{{ implode(', ', $bentukUnit) }}
@else
-
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Posisi Unit</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$bentukUnit = $forminspeksi['posisi_unit'] ?? [];
@endphp
@if (!empty($bentukUnit))
{{ implode(', ', $bentukUnit) }}
@else
-
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">View Unit</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$bentukUnit = $forminspeksi['view'] ?? [];
@endphp
@if (!empty($bentukUnit))
{{ implode(', ', $bentukUnit) }}
@else
-
@endif
</td>
</tr>
</table>

View File

@@ -0,0 +1,145 @@
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
ANALISA BANGUNAN
</td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td style=" width: 25%; padding: 2px; vertical-align: top;">Luas Bangunan</td>
<td style=" width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$luasTanahBangunan =
$forminspeksi['bangunan']['luas_tanah_bagunan'];
$output = !empty($luasTanahBangunan['sesuai'])
? $luasTanahBangunan['sesuai']
: (!empty($luasTanahBangunan['tidak sesuai'])
? $luasTanahBangunan['tidak sesuai']
: '-');
@endphp
{{ $output }} <sup>m2</sup>
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Jenis Bangunan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$jenisBangunan =
$forminspeksi['bangunan']['jenis_bangunan'] ?? [];
@endphp
@if (!empty($jenisBangunan))
{{ implode(', ', $jenisBangunan) }}
@else
-
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$kondisiBangunan =
$forminspeksi['bangunan']['kondisi_bangunan'] ?? [];
@endphp
@if (!empty($kondisiBangunan))
{{ implode(', ', $kondisiBangunan) }}
@else
-
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Sifat Bangunan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$sifatBangunan =
$forminspeksi['bangunan']['sifat_bangunan'][0] ?? '-';
$sifatBangunanInput =
$forminspeksi['bangunan']['sifat_bangunan_input'];
// Filter input yang tidak null
$inputTambahan = array_filter($sifatBangunanInput, function (
$value,
) {
return $value !== null && $value !== '';
});
// Gabungkan sifat bangunan dengan input tambahan
$output = $sifatBangunan;
if (!empty($inputTambahan)) {
$output .= ' (' . implode(', ', $inputTambahan) . ')';
}
@endphp
{{ $output }}
</td>
</tr>
@if (isset($forminspeksi['bangunan']['spesifikasi_bangunan']) && count($forminspeksi['bangunan']['spesifikasi_bangunan']) > 0)
@foreach ($forminspeksi['bangunan']['spesifikasi_bangunan'] as $bangunanIndex => $bangunan)
@if (count($forminspeksi['bangunan']['spesifikasi_bangunan']) > 1)
<tr>
<td colspan="2">Spesifikasi Bangunan {{ $bangunanIndex + 1 }}</td>
</tr>
@else
<tr>
<td colspan="2">Spesifikasi Bangunan</td>
</tr>
@endif
@if (isset($basicData['spekKategoriBangunan']))
@foreach ($basicData['spekKategoriBangunan'] as $index => $spesifikasi)
@if (!empty($spesifikasi->name)) <!-- Hanya tampilkan jika 'name' tidak kosong -->
<tr>
<td style="vertical-align: top;">{{ $spesifikasi->name }}</td>
<td>:</td>
<td>
@php
$selectedValue = null;
$lainnyaValue = null;
if (isset($bangunan['spek_kategori_bangunan'][$spesifikasi->name])) {
$selectedValues = $bangunan['spek_kategori_bangunan'][$spesifikasi->name];
// Ambil nilai pertama (bukan key) dari array
$selectedValue = array_values(array_filter($selectedValues, function ($key) {
return $key !== 'lainnya'; // Filter key lainnya
}, ARRAY_FILTER_USE_KEY))[0] ?? null;
$lainnyaValue = $selectedValues['lainnya'] ?? null;
}
@endphp
@if ($selectedValue)
<span>
{{ $selectedValue }}
@if ($selectedValue === 'Lainnya' && $lainnyaValue)
: {{ $lainnyaValue }}
@endif
</span>
@else
<span></span>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endforeach
@endif
</table>

View File

@@ -0,0 +1,104 @@
<table class="judul" style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
ANALISA FAKTA
</td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td width="25%" style="vertical-align: top;">Faktor Positif</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@isset($forminspeksi['fakta']['fakta_positif'])
<table style="width: 100%; border-collapse: collapse;">
@foreach ($forminspeksi['fakta']['fakta_positif'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@endforeach
</table>
@endisset
</td>
</tr>
{{-- Faktor Negatif --}}
<tr>
<td width="25%" style="vertical-align: top;">Faktor Negatif</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@php
$faktaNegatif = $forminspeksi['fakta']['fakta_negatif'] ?? [];
$faktaNegatifFiltered = is_array($faktaNegatif)
? array_filter($faktaNegatif, function ($item) {
return !empty(trim($item));
})
: [];
@endphp
@if (!empty($faktaNegatifFiltered))
<table style="width: 100%; border-collapse: collapse;">
@foreach ($faktaNegatifFiltered as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@endforeach
</table>
@else
<p>Tidak ada faktor negatif yang teridentifikasi.</p>
@endif
</td>
</tr>
@if (!empty($forminspeksi['fakta']['rute_menuju']))
<tr>
<td width="25%" style="vertical-align: top;">Rute Menuju</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
{!! nl2br(e($forminspeksi['fakta']['rute_menuju'] ?? '')) !!}
</td>
</tr>
@endif
@if (!empty($forminspeksi['fakta']['batas_batas_input']))
<tr>
<td width="25%" style="vertical-align: top;">Batas batas</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas)
@if ($batas)
<p> - {{ $arah }} : {{ $batas }}</p>
@endif
@endforeach
</td>
</tr>
@endif
@if (!empty($forminspeksi['fakta']['kondisi_lingkungan']))
<tr>
<td width="25%" style="vertical-align: top;">Kondisi Lingkungan</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@foreach ($forminspeksi['fakta']['kondisi_lingkungan'] ?? [] as $kondisi)
{!! nl2br(e($kondisi)) !!}
@endforeach
</td>
</tr>
@endif
@if (!empty($forminspeksi['fakta']['informasi_dokument']))
<tr>
<td width="25%" style="vertical-align: top;">Informasi Lain terkait
Dokumen</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@foreach ($forminspeksi['fakta']['informasi_dokument'] ?? [] as $informasi)
{!! nl2br(e($informasi)) !!}
@endforeach
</td>
</tr>
@endif
</table>

View File

@@ -0,0 +1,55 @@
<table style="width: 100%">
<tr>
<td width="25%" style="vertical-align: top;">Informasi Dinas Tata Ruang
</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@php
$informasi = [
'peruntukan',
'kdb',
'kdh',
'gsb',
'max_lantai',
'klb',
'gss',
'pelebaran_jalan',
'nama_petugas',
];
@endphp
@foreach ($informasi as $key)
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
<p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
{{ $forminspeksi['fakta'][$key] }}</p>
@endif
@endforeach
</td>
</tr>
@if (!empty($forminspeksi['fakta']['keterangan']))
<tr>
<td width="25%" style="vertical-align: top;">Catatan yang Perlu
Diperhatikan</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@php
$keterangan = $forminspeksi['fakta']['keterangan'] ?? '';
if (is_array($keterangan)) {
$keterangan = implode(', ', array_filter($keterangan));
}
@endphp
@if (!empty($keterangan))
<table style="width: 100%; border-collapse: collapse;">
<tr>
<td>{!! nl2br(e($keterangan)) !!}</td>
</tr>
</table>
@endif
</td>
</tr>
@endif
</table>

View File

@@ -0,0 +1,129 @@
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
ANALISA LINGKUNGAN
</td>
</tr>
</table>
<table style="width: 100%">
@php
$lingkungan = $forminspeksi['lingkungan'];
$fasilitas = $lingkungan['fasilitas_dekat_object'] ?? [];
$fasilitasInput = $lingkungan['fasilitas_dekat_object_input'] ?? [];
@endphp
<tr>
<td style=" width:25%; padding: 2px; vertical-align: top;">Jarak Jalan Utama</td>
<td style=" width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jarak_jalan_utama'] ?? '-' }} m</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Jalan Lingkungan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jalan_linkungan'] ?? '-' }} m</td>
<tr>
<td style="padding: 2px; vertical-align: top;">Jarak CBD</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jarak_cbd_point'] ?? '-' }} m
({{ $lingkungan['nama_cbd_point'] ?? '-' }})</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lebar Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:
</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['kondisi_bagunan_disekitar_lokasi'] ?? '-' }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Sifat Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['sifat_bagunan_disekitar_lokasi'] ?? '-' }}
</td>
</tr>
@if ($lingkungan['dekat_makam'] == 'ya')
<tr>
<td style="padding: 2px; vertical-align: top;">Dekat Makam</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">Ya, Jarak {{ $lingkungan['jarak_makam'] ?? '-' }} m
({{ $lingkungan['nama_makam'] ?? '-' }})
</td>
</tr>
@endif
@if ($lingkungan['dekat_tps'] == 'ya')
<tr>
<td style="padding: 2px; vertical-align: top;">Dekat TPS</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">Ya, Jarak {{ $lingkungan['jarak_tps'] ?? '-' }} m
({{ $lingkungan['nama_tps'] ?? '-' }})</td>
</tr>
@endif
<tr>
<td style="padding: 2px; vertical-align: top;">Daerah</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['merupakan_daerah'] ?? ['-']) }}
</td>
</tr>
@if (!empty($fasilitas))
<tr>
<td style="padding: 2px; vertical-align: top;">Fasilitas Dekat Objek</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@foreach ($fasilitas as $fas)
{{ $fas }}
@if (isset($fasilitasInput[$fas]))
({{ $fasilitasInput[$fas] }})
@endif
@if (!$loop->last)
,
@endif
@endforeach
</td>
</tr>
@endif
</table>

View File

@@ -0,0 +1,148 @@
<table style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
ANALISA TANAH
</td>
</tr>
</table>
<table style="width: 100%; ">
<tr>
@php
$cekLuas = isset($forminspeksi['tanah']['luas_tanah']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai';
$luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null;
@endphp
<td style="width: 25%; padding: 2px; vertical-align: top;">Luas Tanah</td>
<td style=" width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="width: 74%; padding: 2px; vertical-align: top;">{{ $luas ?? '' }}</td>
</tr>
<tr>
@php
$cekMataAngin = isset($forminspeksi['tanah']['hadap_mata_angin']['tidak sesuai'])
? 'tidak sesuai'
: 'sesuai';
$Arah = $forminspeksi['tanah']['hadap_mata_angin'][$cekMataAngin] ?? null;
@endphp
<td style="padding: 2px; vertical-align: top;">Hadap Mata Angin</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $Arah ?? '' }}</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Bentuk Tanah</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$bentukTanah = isset($forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah'])
? $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']
: [];
$lainnya = isset($forminspeksi['tanah']['bentuk_tanah']['lainnya'])
? $forminspeksi['tanah']['bentuk_tanah']['lainnya']
: null;
@endphp
{{ !empty($bentukTanah) ? implode(', ', $bentukTanah) : 'Data tidak tersedia' }}
@if (in_array('Lainnya', $bentukTanah) && $lainnya)
({{ $lainnya }})
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kontur Tanah</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$konturTanah = $forminspeksi['tanah']['kontur_tanah'] ?? [];
@endphp
@if (!empty($konturTanah))
{{ implode(', ', $konturTanah) }}
@else
-
@endif
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Beda Ketinggian dengan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$ketinggianTanah = $forminspeksi['tanah']['ketinggian_tanah'];
$ketinggian = $ketinggianTanah['ketinggian'][0] ?? '-';
$lebihTinggi = $ketinggianTanah['lebih_tinggi'];
$lebihRendah = $ketinggianTanah['lebih_rendah'];
@endphp
{{ $ketinggian }}
@if ($ketinggian === 'Lebih Tinggi' && $lebihTinggi !== null)
(Ketinggian: {{ $lebihTinggi }} cm)
@elseif($ketinggian === 'Lebih Rendah' && $lebihRendah !== null)
(Kerendahan: {{ $lebihRendah }} cm)
@endif
</td>
</tr>
<tr>
<td>Kontur Jalan Depan Objek</td>
<td>:</td>
<td>
{{ $forminspeksi['tanah']['kontur_jalan'] == 'menurun' ? 'Menurun' : 'Rata' }}
</td>
</tr>
<tr>
<td>Posisi Kavling</td>
<td>:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$posisiKavling = isset($forminspeksi['tanah']['posisi_kavling']['posisi_kavling'])
? $forminspeksi['tanah']['posisi_kavling']['posisi_kavling']
: [];
$lainnya = isset($forminspeksi['tanah']['posisi_kavling']['lainnya'])
? $forminspeksi['tanah']['posisi_kavling']['lainnya']
: null;
@endphp
{{ !empty($posisiKavling) ? implode(', ', $posisiKavling) : '' }}
@if (in_array('Lainnya', $posisiKavling) && $lainnya)
({{ $lainnya }})
@endif
</td>
</tr>
</tr>
<tr>
<td>Tusuk Sate</td>
<td>:</td>
<td>
{{ $forminspeksi['tanah']['tusuk_sate'] == 'yes' ? 'Ya' : 'Tidak' }}
</td>
</tr>
<tr>
<td>Lockland</td>
<td>:</td>
<td>
{{ $forminspeksi['tanah']['lockland'] == 'yes' ? 'Ya' : 'Tidak' }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Fisik Tanah</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$kondisiFisikTanah = $forminspeksi['tanah']['kondisi_fisik_tanah']['kondisi_fisik_tanah'][0] ?? '-';
$lainnya = $forminspeksi['tanah']['kondisi_fisik_tanah']['lainnya'];
@endphp
{{ $kondisiFisikTanah }}
@if ($kondisiFisikTanah === 'Lainnya' && $lainnya)
({{ $lainnya }})
@endif
</td>
</tr>
</table>

View File

@@ -0,0 +1,34 @@
<footer id="footer">
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
<script>
const datas = @json($forminspeksi);
console.log(datas);
const lpjData = @json($lpjData);
console.log(lpjData);
document.addEventListener('DOMContentLoaded', function() {
const checkboxes = document.querySelectorAll('.checkbox-lainnya');
checkboxes.forEach(checkbox => {
checkbox.addEventListener('change', function() {
const textLainnya = this.closest('label').querySelector('.text-lainnya');
if (this.checked && this.value === 'Lainnya') {
textLainnya.style.display = 'inline';
} else if (this.value === 'Lainnya') {
textLainnya.style.display = 'none';
}
});
// Atur visibilitas awal
if (checkbox.checked && checkbox.value === 'Lainnya') {
const textLainnya = checkbox.closest('label').querySelector('.text-lainnya');
textLainnya.style.display = 'inline';
}
});
});
</script>
</body>
</html>

View File

@@ -1,45 +1,6 @@
<div>
@php
$photoSections = [
'rute_menuju_lokasi' => [
'key' => 'rute_menuju_lokasi',
'name_prefix' => '',
'nested' => true,
],
'foto_rute_lainnya' => [
'key' => 'name_rute_lainnya',
'name_prefix' => '',
'nested' => true,
],
'foto_lingkungan' => [
'key' => 'foto_lingkungan',
'name_prefix' => '',
'nested' => true,
],
'single_photos' => [
'foto_basement' => 'Basement',
'foto_gerbang' => 'Gerbang',
'pendamping' => 'Pendamping',
],
'object_jaminan' => [
'key' => 'name_objek',
'name_prefix' => '',
'nested' => false,
],
'foto_lantai_unit' => [
'key' => 'name',
'name_prefix' => 'Foto Lantai',
'nested' => true,
],
];
$hasPhotos = false;
@endphp
<style> <style>
/* General Styles */ /* General Styles */
body { body {
font-family: Arial, sans-serif;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
@@ -48,7 +9,7 @@
width: 100%; width: 100%;
margin-bottom: 10px; margin-bottom: 10px;
clear: both; clear: both;
page-break-inside: avoid; page-break-inside: avoid;
} }
.photo-row { .photo-row {
@@ -72,10 +33,12 @@
/* Image Styling */ /* Image Styling */
.photo-item img { .photo-item img {
max-width: 100%; width: 300px;
height: auto; height: 300px;
object-fit: cover; object-fit: contain;
background-color: #f0f0f0;
border-radius: 5px;
page-break-inside: avoid;
} }
/* Clearfix */ /* Clearfix */
@@ -97,124 +60,129 @@
} }
.photo-item img { .photo-item img {
max-width: 100%; width: 300px;
height: auto; height: 300px;
object-fit: contain; object-fit: contain;
background-color: #f0f0f0;
border-radius: 5px;
page-break-inside: avoid;
} }
h2 { h2 {
font-size: 14px; font-size: 14px;
margin-bottom: 5px; }
.photo-container {
page-break-inside: avoid;
}
.photo-row {
page-break-inside: avoid;
} }
} }
</style> </style>
@foreach ($photoSections as $sectionKey => $sectionConfig)
@if ($sectionKey === 'single_photos') @isset($basicData['foto'])
@php
$photos = $formFoto['upload_foto'] ?? [];
if (!is_array($photos)) {
$photos = [];
}
$groupedPhotos = collect($photos)->groupBy('category');
$mainPhotos = $groupedPhotos->filter(fn($_, $key) => $key !== 'lainnya');
$otherPhotos = $groupedPhotos->get('lainnya', collect());
@endphp
@if ($groupedPhotos->isEmpty())
<p class="text-gray-500">Tidak ada foto yang tersedia.</p>
@else
@foreach ($mainPhotos as $category => $photos)
<div class="photo-container"> <div class="photo-container">
@php $counter = 0; @endphp <h2>{{ $category }}</h2>
@foreach ($sectionConfig as $photoKey => $photoName) @php
@if (isset($formFoto[$photoKey]) && !empty($formFoto[$photoKey])) $groupedBySubcategory = $photos->groupBy('sub');
@php @endphp
$imagePath = storage_path('app/public/' . $formFoto[$photoKey]);
$hasPhotos = true; @if ($groupedBySubcategory->isEmpty())
@endphp <p class="text-gray-500">Tidak ada subkategori yang tersedia.</p>
@if ($counter % 2 == 0) @else
<div class="photo-row clearfix"> @foreach ($groupedBySubcategory as $subcategory => $subPhotos)
@endif @isset($subcategory)
<div class="photo-item border"> <h6 style="font-size:10px">
<h2 class="text-gray-600 font-semibold text-xl"> {{ $subcategory ?: '' }}
{{ $photoName }} </h6>
</h2> @endisset
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $photoName }}" class="photo-image"> <div class="photo-row clearfix">
@endif @foreach ($subPhotos as $index => $item)
@php
$imagePath = storage_path('app/public/' . $item['path']);
@endphp
<div class="photo-item border">
<p style="text-align: center" >{{ $item['name'] }}</p>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
@else
<p class="text-gray-400">Foto tidak ditemukan.</p>
@endif
@isset($item['description'])
<p style="font-size:9px">{{ $item['description'] }}</p>
@endisset
</div>
@if (($index + 1) % 2 == 0 && !$loop->last)
</div> </div>
@if ($counter % 2 == 1 || $loop->last) <div class="photo-row clearfix">
</div> <!-- Tutup baris setelah 2 item atau di akhir loop -->
@endif
@php $counter++; @endphp
@endif @endif
@endforeach @endforeach
</div> </div>
@else @endforeach
@php @endif
$sectionData = $formFoto[$sectionKey] ?? null; </div>
@endphp
@if (!empty($sectionData))
@if ($sectionConfig['nested'])
@if (isset($sectionData[$sectionConfig['key']][0]))
<div class="photo-container">
@php $counter = 0; @endphp
@foreach ($sectionData[$sectionConfig['key']][0] as $index => $item)
@php
$imagePath = storage_path('app/public/' . $item['path']);
$hasPhotos = true;
@endphp
@if ($counter % 2 == 0)
<div class="photo-row clearfix">
@endif
<div class="photo-item border">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $sectionConfig['name_prefix']
? $sectionConfig['name_prefix'] . ' ' . ($index + 1)
: $item['name'] ?? 'Foto ' . ($index + 1) }}
</h2>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
@endif
</div>
@if ($counter % 2 == 1 || $loop->last)
</div> <!-- Tutup baris setelah 2 item atau di akhir loop -->
@endif
@php $counter++; @endphp
@endforeach
</div>
@endif
@else
<div class="photo-container">
@php $counter = 0; @endphp
@foreach ($sectionData as $index => $item)
@php
$name = $item[$sectionConfig['key']] ?? '';
$photoPath =
$sectionKey === 'object_jaminan'
? $item['foto_objek'] ?? ''
: $item['foto_rute_lainnya'] ?? '';
$imagePath = storage_path('app/public/' . $photoPath);
@endphp
@if (!empty($name) || !empty($photoPath))
@php $hasPhotos = true; @endphp
@if ($counter % 2 == 0)
<div class="photo-row clearfix">
@endif
<div class="photo-item border">
@if (!empty($name))
<h2 class="text-gray-600 font-semibold text-xl">
{{ $name }}
</h2>
@endif
@if ($statusLpj || (file_exists($imagePath) && !empty($photoPath)))
<img src="{{ $imagePath }}" alt="{{ $name ?: 'Foto' }}" class="photo-image">
@endif
</div>
@if ($counter % 2 == 1 || $loop->last)
</div> <!-- Tutup baris setelah 2 item atau di akhir loop -->
@endif
@php $counter++; @endphp
@endif
@endforeach
</div>
@endif
@endif
@endif
@endforeach @endforeach
@if (!$hasPhotos) @if (!$otherPhotos->isEmpty())
<div class="text-center py-6 bg-gray-100 rounded-lg"> <div class="photo-container">
<p class="text-gray-500 italic">Tidak ada foto yang tersedia</p> <h2 class="text-gray-800 font-bold text-lg">Lainnya</h2>
@php
$groupedBySubcategory = $otherPhotos->groupBy('sub');
@endphp
@if ($groupedBySubcategory->isEmpty())
<p class="text-gray-500">Tidak ada subkategori yang tersedia.</p>
@else
@foreach ($groupedBySubcategory as $subcategory => $subPhotos)
@isset($subcategory)
<h6 style="font-size:10px">
{{ $subcategory ?: '' }}
</h6>
@endisset
<div class="photo-row clearfix">
@foreach ($subPhotos as $index => $item)
@php
$imagePath = storage_path('app/public/' . $item['path']);
@endphp
<div class="photo-item border">
<h6 style="text-align: center" >{{ $item['name'] }}</h6>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
@else
<p class="text-gray-400">Foto tidak ditemukan.</p>
@endif
</div>
@if (($index + 1) % 2 == 0 && !$loop->last)
</div>
<div class="photo-row clearfix">
@endif
@endforeach
</div> </div>
@endforeach
@endif @endif
</div> </div>
@endif
@endif
@endisset

View File

@@ -1,264 +1,89 @@
@if (isset($formFoto['rute_menuju_lokasi']['rute_menuju_lokasi'])) @isset($basicData['foto'])
<div class="card"> @php
<div class="card-header bg-agi-50" id="basic_settings"> $photos = $formFoto['upload_foto'] ?? [];
<h3 class="card-title"> if (!is_array($photos)) {
Rute Menuju Lokasi $photos = [];
</h3> }
</div> $groupedPhotos = collect($photos)->groupBy('category');
<div class="card-body"> @endphp
@if (isset($formFoto['rute_menuju_lokasi']['rute_menuju_lokasi']))
@foreach ($formFoto['rute_menuju_lokasi']['rute_menuju_lokasi'][0] as $index => $item)
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $item['name'] ?? 'Rute menuju lokasi - ' . ($index + 1) }}
</h2>
<div class="flex items-center">
<img src="{{ Storage::url($item['path']) }}" alt="Gambar {{ $index + 1 }}"
class="w-full h-auto object-cover">
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>
@endif
@if (isset($formFoto['foto_rute_lainnya'])) @if ($groupedPhotos->isEmpty())
<div class="card"> <p class="text-gray-500">Tidak ada foto yang tersedia.</p>
<div class="card-header" id="basic_settings"> @else
<h3 class="card-title"> @foreach ($groupedPhotos as $category => $photos)
Rute Lainnya <div class="mt-5">
</h3> <h2 class="text-gray-800 font-bold text-xl mb-3">{{ $category ?? 'Tanpa Kategori' }}</h2>
</div>
<div class="card-body">
@if (isset($formFoto['foto_rute_lainnya']))
@foreach ($formFoto['foto_rute_lainnya'] as $index => $item)
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $item['name_rute_lainnya'] ?? 'Rute Lainnya - ' . ($index + 1) }}
</h2>
<div class="flex items-center">
<img src="{{ Storage::url($item['foto_rute_lainnya']) }}" alt="Gambar {{ $index + 1 }}"
class="w-full h-auto object-cover">
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>
@endif
@if (isset($formFoto['foto_gerbang']))
<div class="card">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Gerbang
</h3>
</div>
<div class="card-body">
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5"> <div class="grid gap-5">
<h2 class=" font-semibold text-xl"> @php
Gerbang $groupedBySubcategory = $photos->groupBy('sub');
</h2> @endphp
<div class="flex items-center">
@if ($groupedBySubcategory->isEmpty())
<img src="{{ Storage::url($formFoto['foto_gerbang']) }}" alt="" class="w-full h-auto object-cover"> @foreach ($photos as $index => $item)
<div class="flex items-center justify-between">
</div> <div class="grid gap-5">
</div> <h3 class="text-gray-600 font-semibold text-lg">
</div> {{ $item['name'] ?? 'Foto - ' . ($index + 1) }}
</h3>
</div> <div class="flex items-center">
</div> @if (isset($item['path']))
@endif <img src="{{ asset('storage/' . $item['path']) }}" alt="Gambar {{ $index + 1 }}"
class="w-full h-auto object-cover rounded-md">
@if (isset($formFoto['foto_lingkungan']['foto_lingkungan'])) @else
<div class="card"> <p class="text-gray-500">Gambar tidak tersedia</p>
<div class="card-header" id="basic_settings"> @endif
<h3 class="card-title"> </div>
Lingkungan </h3> <p class="text-gray-500 text-sm">{{ $item['description'] ?? '-' }}</p>
</div>
<div class="card-body">
@if (isset($formFoto['foto_lingkungan']['foto_lingkungan']))
@foreach ($formFoto['foto_lingkungan']['foto_lingkungan'][0] as $index => $item)
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $item['name'] ?? 'Lingkungan - ' . ($index + 1) }}
</h2>
<div class="flex items-center">
<img src="{{ Storage::url($item['path']) }}" alt="Gambar {{ $index + 1 }}"
class="w-full h-auto object-cover">
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>
@endif
@if (isset($formFoto['object_jaminan']))
<div class="card">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Object Jaminan
</h3>
</div>
<div class="card-body">
@if (isset($formFoto['object_jaminan']))
@foreach ($formFoto['object_jaminan'] as $item)
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5">
<h2 class=" font-semibold text-xl">
{{ $item['name_objek'] ?? "" }}
</h2>
<div class="flex items-center">
<img src="{{ Storage::url($item['foto_objek']) }}" alt=""
class="w-full h-auto object-cover">
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>
@endif
@if (isset($formFoto['foto_lantai_unit']))
<div class="card">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">Lantai</h3>
</div>
<div class="card-body">
@if (isset($formFoto['foto_lantai_unit']))
@foreach ($formFoto['foto_lantai_unit'] as $floorIndex => $floorPhotos)
<div class="mt-5">
@foreach ($floorPhotos as $index => $item)
@if (is_int($index) && isset($item['name'], $item['path']) && is_string($item['path']))
<div class="flex items-center justify-between mt-3">
<div class="grid gap-3">
<h3 class="text-gray-600 font-semibold text-lg">
{{ $item['name'] ?? 'Foto Lantai ' . ($floorIndex + 1) . ' - ' . ($index + 1) }}
</h3>
<div class="flex items-center ">
<img src="{{ Storage::url($item['path']) }}"
alt="Gambar {{ $floorIndex + 1 }}-{{ $index + 1 }}"
class="w-full h-auto object-cover">
</div> </div>
</div> </div>
</div> @endforeach
@endif @else
@endforeach <!-- Jika ada subkategori, tampilkan berdasarkan subkategori -->
</div> @foreach ($groupedBySubcategory as $subcategory => $subPhotos)
@endforeach <div class="mb-4">
<!-- Judul Subkategori -->
@endif <h4 class="text-gray-700 font-semibold text-lg mb-2">
</div> @if ($subcategory)
</div> {{ $subcategory }}
@endif @endif
</h4>
<div class="grid gap-5">
@foreach ($subPhotos as $index => $item)
@if (isset($formFoto['foto_basement'])) <div class="flex items-center justify-between">
<div class="card"> <div class="grid gap-5">
<div class="card-header bg-agi-50" id="basic_settings"> <h3 class="text-gray-600 font-semibold text-lg">
<h3 class="card-title"> {{ $item['name'] ?? 'Foto - ' . ($index + 1) }}
Basement </h3>
</h3> <div class="flex items-center">
</div> @if (isset($item['path']))
<div class="card-body"> <img src="{{ asset('storage/' . $item['path']) }}" alt="Gambar {{ $index + 1 }}"
<div class="flex items-center justify-between mt-5"> class="w-full h-auto object-cover rounded-md">
<div class="grid gap-5"> @else
<h2 class=" font-semibold text-xl"> <p class="text-gray-500">Gambar tidak tersedia</p>
Basemnt @endif
</h2> </div>
<div class="flex items-center"> <p class="text-gray-500 text-sm">{{ $item['description'] ?? '-' }}</p>
</div>
</div>
<img src="{{ Storage::url($formFoto['foto_basement']) }}" alt="" class="w-full h-auto object-cover"> @endforeach
</div>
</div> </div>
@endforeach
@endif
</div> </div>
</div> </div>
@endforeach
</div> @endif
</div> @endisset
@endif
@if (isset($formFoto['foto_lantai_lainnya']))
<div class="card">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Lantai Lainnya
</h3>
</div>
<div class="card-body">
@if (isset($formFoto['foto_lantai_lainnya']))
@foreach ($formFoto['foto_lantai_lainnya'] as $index => $item)
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5">
<h2 class="text-gray-600 font-semibold text-xl">
{{ $item['name_lantai_lainnya'] ?? 'Lantai - ' . ($index + 1) }}
</h2>
<div class="flex items-center">
<img src="{{ Storage::url($item['foto_lantai_lainnya']) }}"
alt="Gambar {{ $index + 1 }}" class="w-full h-auto object-cover">
</div>
</div>
</div>
@endforeach
@endif
</div>
</div>
@endif
@if (isset($formFoto['pendamping']))
<div class="card">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Pendamping
</h3>
</div>
<div class="card-body">
<div class="flex items-center justify-between mt-5">
<div class="grid gap-5">
<h2 class=" font-semibold text-xl">
Pendamping
</h2>
<div class="flex items-center">
<img src="{{ Storage::url($formFoto['pendamping']) }}" alt="" class="w-full h-auto object-cover">
</div>
</div>
</div>
</div>
</div>
@endif
@php @php
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat']; $fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) { if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
unset($fotoTypes[$key]); unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat'); array_unshift($fotoTypes, 'foto_tempat');
} }
$adaFoto = false; $adaFoto = false;
if (isset($forminspeksi)) { if (isset($forminspeksi)) {
foreach ($fotoTypes as $type) { foreach ($fotoTypes as $type) {
$imagePath = $forminspeksi[$type] ?? null; $imagePath = $forminspeksi[$type] ?? null;
@@ -271,33 +96,33 @@ $adaFoto = false;
@endphp @endphp
@if ($adaFoto) @if ($adaFoto)
<div class="card"> <div class="card">
<div class="card-header bg-agi-50" id="basic_settings"> <div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title"> <h3 class="card-title">
Peta Peta
</h3> </h3>
</div> </div>
<div class="card-body"> <div class="card-body">
<div> <div>
@if (isset($forminspeksi)) @if (isset($forminspeksi))
@forelse ($fotoTypes as $type) @forelse ($fotoTypes as $type)
<div class="border photo-item"> <div class="border photo-item">
@php @php
$imagePath = $forminspeksi[$type] ?? null; $imagePath = $forminspeksi[$type] ?? null;
@endphp @endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath))) @if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ Storage::url($imagePath) }}" alt="{{ $type }}" <img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
class="w-full h-auto object-cover"> class="w-full h-auto object-cover">
@endif @endif
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p> <p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
</div> </div>
@empty @empty
<p>Tidak ada tipe foto yang tersedia</p> <p>Tidak ada tipe foto yang tersedia</p>
@endforelse @endforelse
@endif @endif
</div>
</div> </div>
</div> </div>
</div>
@endif @endif

View File

@@ -0,0 +1,112 @@
<!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>
* {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
/** Define the header rules **/
@page {
margin-top: 100px;
margin-bottom: 50px;
}
#header {
position: fixed;
top: -80px;
left: 0;
right: 0;
height: 50px;
text-align: center;
padding-bottom: 10px;
}
.header-logo {
position: absolute;
left: 20px;
top: 10px;
max-height: 80px;
max-width: 150px;
}
.header-title {
margin-top: 20px;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: center;
border-top: 1px solid #ddd;
padding-top: 10px;
font-size: 9px;
}
.page-number:after {
content: counter(page) " dari " counter(pages);
}
.content {
margin-top: 10px;
}
.page-break {
page-break-after: always;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: left;
border-top: 1px solid #ddd;
padding-top: 10px;
}
body {
margin-top: 3cm;
margin-bottom: 120px;
position: relative;
z-index: 1;
}
.border {
border: 1px solid #000;
}
</style>
</head>
<body style="width: 90%; 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 style="margin: 0; padding:0; font-size:10px;">Tanggal: {{ date('Y-m-d') }}</p>
<p style="margin: 0; padding:0; font-size:10px;">Waktu: {{ date('H:i:s') }}</p>
<p style="margin: 0; padding:0; font-size:10px;">User: {{ Auth::user()->name }}</p>
</div>
</td>
</tr>
</table>
</header>

View File

@@ -1,216 +1,102 @@
<!DOCTYPE html> @include('lpj::penilai.components.header')
<html lang="en"> @php
$data = '';
foreach ($permohonan->documents as $dokumen) {
$data .= $dokumen->jenisJaminan->name . ', ';
<head> $penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
<meta charset="UTF-8"> $surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
<meta name="viewport" content="width=device-width, initial-scale=1.0"> $teams = $permohonan->region->teams;
<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> if ($teams) {
* { foreach ($teams as $team) {
font-family: Arial, Helvetica, sans-serif; $team_users = $team->teamsUsers;
font-size: 10px; // print_r($team_users);
} if ($team_users) {
foreach ($team_users as $team_user) {
$user = $team_user->user;
h2 { if ($user && $user->hasRole('senior-officer')) {
font-size: 12px $senior_officer = $user;
} break 3;
/** Define the header rules **/
@page {
margin-top: 100px;
/* Ruang untuk header */
margin-bottom: 50px;
/* Ruang untuk footer */
}
#header {
position: fixed;
top: -100px;
/* Posisi header di luar konten */
left: 0;
right: 0;
height: 90px;
text-align: center;
padding-bottom: 10px;
}
.header-logo {
position: absolute;
left: 20px;
top: 10px;
max-height: 80px;
max-width: 150px;
}
.header-title {
margin-top: 20px;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: center;
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;
}
footer {
position: fixed;
bottom: 0cm;
left: 0cm;
right: 0cm;
}
body {
margin-top: 3cm;
/* Tambahkan margin top sedikit lebih besar dari tinggi header */
margin-bottom: 120px;
position: relative;
z-index: 1;
/* Pastikan konten berada di bawah header */
}
.border {
border: 1px solid #000;
}
</style>
</head>
<body style="width: 80%; margin: auto">
@php
$data = '';
foreach ($permohonan->documents as $dokumen) {
$data .= $dokumen->jenisJaminan->name . ', ';
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->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;
}
} }
} }
} }
} }
} }
$data = rtrim($data, ', '); }
@endphp $data = rtrim($data, ', ');
<header id="header"> @endphp
<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>
<main class="content">
<table style="width: 100%">
<tr>
<td style="text-align: center; margin-top: 5px;">
<h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;">
MEMO ANTAR KANTOR</h2>
</td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td style="width: 20%; padding: 2px;">Kepada</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['kepada'] ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Dari</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['dari'] ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">No memo</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $nomorLaporan ?? '-' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Tanggal</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($memo['tanggal']) }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Perihal</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['perihal'] ?? '' }}</td>
</tr>
</table>
<table> <main class="content">
<tr> <table style="width: 100%">
<td> <tr>
Menindak lanjuti permintann penilaian jaminan dari {{ $permohonan->user->name }} AO Cabang <td style="text-align: center; margin-top: 5px;">
{{ $permohonan->debiture->branch->name ?? '' }} <h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;">
tanggal {{ formatTanggalIndonesia($memo['tanggal']) ?? '' }}, dapat di sampaikan sebagai berikut: MEMO ANTAR KANTOR</h2>
</td> </td>
</tr> </tr>
</table> </table>
<table style="width: 100%">
<tr>
<td style="width: 20%; padding: 2px;">Kepada</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['kepada'] ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Dari</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['dari'] ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">No memo</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $nomorLaporan ?? '-' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Tanggal</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ formatTanggalIndonesia($memo['tanggal']) }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Perihal</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $memo['perihal'] ?? '' }}</td>
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> <table>
<tr> <tr>
<td style=""> <td>
<h6 style="text-transform: uppercase; margin: 0; ">Data Debitur dan Jaminan</h2> Menindak lanjuti permintann penilaian jaminan dari {{ $permohonan->user->name }} AO Cabang
</td> {{ $permohonan->debiture->branch->name ?? '' }}
</tr> tanggal {{ formatTanggalIndonesia($memo['tanggal']) ?? '' }}, dapat di sampaikan sebagai berikut:
</table> </td>
<table style="width: 100%"> </tr>
</table>
<tr> <table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<td style="width: 20%; padding: 2px;">Nama Calon Debitur</td> <tr>
<td style="width: 1%; padding: 2px;">:</td> <td style="">
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <h6 style="text-transform: uppercase; margin: 0; ">Data Debitur dan Jaminan</h2>
</tr> </td>
<tr> </tr>
<td style="width: 20%; padding: 2px;">Jenis Aset</td> </table>
<td style="width: 1%; padding: 2px;">:</td> <table style="width: 100%">
<td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td>
</tr>
@if (@isset($dokumen)) <tr>
<td style="width: 20%; padding: 2px;">Nama Calon Debitur</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Jenis Aset</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $data ?? '' }}</td>
</tr>
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail) @foreach ($dokumen->detail as $detail)
<tr> <tr>
@if (isset($detail->dokumen_jaminan)) @if (isset($detail->dokumen_jaminan))
@@ -246,17 +132,17 @@
@if (isset($detail->details)) @if (isset($detail->details))
@if (json_decode($detail->details)) @if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value) @foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '') @if (!is_null($value) && $value !== '')
<tr> <tr>
<td style="padding: 2px;">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td> <td style="padding: 2px;">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px;">:</td>
<td style="">{{ $value }} <td style="">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah') @if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup> <sup>m2</sup>
@endif @endif
</td> </td>
</tr> </tr>
@endif @endif
@endforeach @endforeach
@endif @endif
@endif @endif
@@ -264,13 +150,13 @@
@endif @endif
<tr> <tr>
<td style="width: 20%; padding: 2px;">Atas Nama</td> <td style="width: 20%; padding: 2px;">Atas Nama</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
@if (!empty($memo['lokasi']['address'])) @if (!empty($memo['lokasi']['address']))
<tr> <tr>
<td style="width: 20%; padding: 2px;">Lokasi Jaminan</td> <td style="width: 20%; padding: 2px;">Lokasi Jaminan</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
@@ -278,147 +164,136 @@
{{ $alamat['village_code'] ?? '' }} {{ $alamat['district_code'] ?? '' }}, {{ $alamat['village_code'] ?? '' }} {{ $alamat['district_code'] ?? '' }},
{{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }} </td> {{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }} </td>
</tr> </tr>
@endif @endif
</table> </table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> <table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">HASIL Kunjungan</h6>
</td>
</tr>
</table>
<table style="width: 100%">
<tr>
<td style="width: 20%; padding: 2px;">Tanggal Kunjungan</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Surveyor</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $surveyor->userPenilaiTeam->name ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Pihak Pemohon</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->user->name ?? '' }} -
{{ $permohonan->debiture->branch->name ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Pihak Cadeb/Debitur</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
</table>
<table>
<tr>
@isset($memo['hasil_survey'])
@foreach ($memo['hasil_survey'] as $key => $item)
<tr> <tr>
<td style=""> <td>{{ $item }}</td>
<h6 style="text-transform: uppercase; margin: 0; ">HASIL Kunjungan</h6>
</td>
</tr> </tr>
</table> @endforeach
@endisset
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">KESIMPULAN DAN SARAN</h6>
</td>
</tr>
<tr>
@isset($memo['kesimpulan_saran'])
@foreach ($memo['kesimpulan_saran'] as $key => $item)
<tr>
<td> {{ $item }}</td>
</tr>
@endforeach
@endisset
</tr>
</table>
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="width: 20%; padding: 2px;">Tanggal Kunjungan</td> <td>Demikian Kami Sampaikan, atas perhatiannya kami ucapkan terimakasih</td>
<td style="width: 1%; padding: 2px;">:</td> </tr>
<td style="width: 79%; padding: 2px;"> <tr>
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td> <table style="width: 100%; text-align: center;">
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Surveyor</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $surveyor->userPenilaiTeam->name ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Pihak Pemohon</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->user->name ?? '' }} -
{{ $permohonan->debiture->branch->name ?? '' }}</td>
</tr>
<tr>
<td style="width: 20%; padding: 2px;">Pihak Cadeb/Debitur</td>
<td style="width: 1%; padding: 2px;">:</td>
<td style="width: 79%; padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
</table>
<table>
<tr>
@isset($memo['hasil_survey'])
@foreach ($memo['hasil_survey'] as $key => $item)
<tr> <tr>
<td>{{ $item }}</td> <td style="height: 50px"></td>
<td style="height: 50px"></td>
<td style="height: 50px"></td>
<td style="height: 50px"></td>
</tr> </tr>
@endforeach @php
@endisset use Modules\Usermanagement\Models\User;
</tr> @endphp
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">KESIMPULAN DAN SARAN</h6>
</td>
</tr>
<tr>
@isset($memo['kesimpulan_saran'])
@foreach ($memo['kesimpulan_saran'] as $key => $item)
<tr> <tr>
<td> {{ $item }}</td> <td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
</tr> <span style=" margin: 0; ">
@endforeach
@endisset
</tr>
</table>
<table style="width: 100%"> {{ ucwords(strtolower('PENILAI')) }}
<tr> </span>
<td>Demikian Kami Sampaikan, atas perhatiannya kami ucapkan terimakasih</td> </td>
</tr> <td>
<tr> @if ($permohonan->approval_so != null)
<table style="width: 100%; text-align: center;"> {{ $senior_officer->name ?? '' }}</br>
<span style=" margin: 0; ">
<tr> {{ ucwords(strtolower('SENIOR OFFICER')) }}
<td style="height: 50px"></td> </span>
<td style="height: 50px"></td> @endif
<td style="height: 50px"></td> </td>
<td style="height: 50px"></td> <td>
</tr> @if ($permohonan->approval_eo != null)
@php {{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
use Modules\Usermanagement\Models\User;
@endphp
<tr>
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
<span style=" margin: 0; "> <span style=" margin: 0; ">
{{ ucwords(strtolower('PENILAI')) }} {{ ucwords(strtolower('EXECUTIVE OFFICER')) }}
</span> </span>
</td> @endif
<td> </td>
@if ($permohonan->approval_so != null) <td>
{{ $senior_officer->name ?? '' }}</br> @if ($permohonan->approval_dd != null)
<span style=" margin: 0; "> {{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('SENIOR OFFICER')) }} <span style=" margin: 0; ">
</span> {{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
@endif </span>
</td> @endif
<td> </td>
@if ($permohonan->approval_eo != null) </tr>
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br> </table>
<span style=" margin: 0; "> </tr>
</table>
{{ ucwords(strtolower('EXECUTIVE OFFICER')) }} <div class="page-break"></div>
</span>
@endif
</td>
<td>
@if ($permohonan->approval_dd != null)
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
<span style=" margin: 0; ">
{{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
</span>
@endif
</td>
</tr>
</table>
</tr>
</table>
<div class="page-break"></div> <div class="section">
<div class="judul">
<div class="section"> <h6 class="border" style="text-align: center">
<div class="judul"> FOTO JAMINAN
<h6 class="border" style="text-align: center"> </h6>
FOTO JAMINAN
</h6>
</div>
@include('lpj::penilai.components.foto-jaminan')
</div> </div>
@include('lpj::penilai.components.foto-jaminan')
</div>
</main> </main>
@include('lpj::penilai.components.footer')
<footer id="footer">
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
<script>
const data = @json($memo);
console.log(data);
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,122 +1,4 @@
<!DOCTYPE html> @include('lpj::penilai.components.header')
<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: 9px;
}
h3 {
font-size: 14px
}
/** Define the header rules **/
@page {
margin-top: 120px;
/* Ruang untuk header */
margin-bottom: 50px;
/* Ruang untuk footer */
}
#header {
position: fixed;
top: -100px;
/* Posisi header di luar konten */
left: 0;
right: 0;
height: 90px;
text-align: center;
padding-bottom: 10px;
}
.header-logo {
position: absolute;
left: 20px;
top: 10px;
max-height: 80px;
max-width: 150px;
}
.header-title {
margin-top: 20px;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: left;
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;
}
footer {
position: fixed;
bottom: 0cm;
left: 0cm;
right: 0cm;
}
body {
margin-top: 3cm;
/* Tambahkan margin top sedikit lebih besar dari tinggi header */
margin-bottom: 120px;
position: relative;
z-index: 1;
/* Pastikan konten berada di bawah header */
}
.border {
border: 1px solid #000;
}
.photo-item {
text-align: center;
margin-bottom: 20px;
}
.photo-image {
max-width: 80%;
height: auto;
display: block;
margin: 0 auto;
}
table {
width: 100%;
/* border: 1px solid #000; */
/* border-collapse: collapse; */
}
</style>
</head>
<body style="width: 80%; margin: auto">
@php @php
$data = ''; $data = '';
foreach ($permohonan->documents as $dokumen) { foreach ($permohonan->documents as $dokumen) {
@@ -124,20 +6,6 @@
} }
$data = rtrim($data, ', '); $data = rtrim($data, ', ');
@endphp @endphp
<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="width: 80%; text-align: center; border: 1px solid black; ">
<h3 style="width:100% padding-top: 40px; text-align: center;text-transform: uppercase;">LAPORAN
PENILAIAN ATAS {{ $data }}
</h3>
</td>
</tr>
</table>
</header>
<main class="content"> <main class="content">
<table style="width: 100%"> <table style="width: 100%">
@@ -145,48 +13,48 @@
<td style="vertical-align: top;"> <td style="vertical-align: top;">
<table style="width: 100%; border-collapse: collapse;"> <table style="width: 100%; border-collapse: collapse;">
<tr> <tr>
<td style=" padding: 2px;">Nama Debitur</td> <td style=" padding: 2px; vertical-align: top;">Nama Debitur</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td>Alamat dan Telpon</td> <td>Alamat dan Telpon</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
{{ $permohonan->debiture->address ?? '' }} {{ $permohonan->debiture->phone ?? '' }} {{ $permohonan->debiture->address ?? '' }} {{ $permohonan->debiture->phone ?? '' }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Permintaan Cabang</td> <td style="padding: 2px; vertical-align: top;">Permintaan Cabang</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $permohonan->debiture->branch->name ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $permohonan->debiture->branch->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Permintaan (AO)</td> <td style="padding: 2px; vertical-align: top;">Permintaan (AO)</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $permohonan->user->name }}</td> <td style="padding: 2px; vertical-align: top;">{{ $permohonan->user->name }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">No Order</td> <td style="padding: 2px; vertical-align: top;">No Order</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $permohonan->nomor_registrasi ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $permohonan->nomor_registrasi ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Tanggal Order</td> <td style="padding: 2px; vertical-align: top;">Tanggal Order</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ formatTanggalIndonesia($permohonan->created_at) }}</td> <td style="padding: 2px; vertical-align: top;">{{ formatTanggalIndonesia($permohonan->created_at) }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Tanggal Survey</td> <td style="padding: 2px; vertical-align: top;">Tanggal Survey</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td> {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">User</td> <td style="padding: 2px; vertical-align: top;">User</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $permohonan->user->name ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $permohonan->user->name ?? '' }}</td>
</tr> </tr>
@@ -220,29 +88,29 @@
@endphp @endphp
<tr> <tr>
<td style="padding: 2px;">Pemeriksa</td> <td style="padding: 2px; vertical-align: top;">Pemeriksa</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $senior_officer->name ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $senior_officer->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Menyetujui</td> <td style="padding: 2px; vertical-align: top;">Menyetujui</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $senior_officer->name ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $senior_officer->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">No Laporan</td> <td style="padding: 2px; vertical-align: top;">No Laporan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $nomorLaporan ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $nomorLaporan ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Tanggal Laporan</td> <td style="padding: 2px; vertical-align: top;">Tanggal Laporan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Waktu Penyelesaian</td> <td style="padding: 2px; vertical-align: top;">Waktu Penyelesaian</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
{{ hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, $tanggalLaporan) }}</td> {{ hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, $tanggalLaporan) }}</td>
</tr> </tr>
</table> </table>
@@ -250,56 +118,56 @@
<td> <td>
<table style="width: 100%; border-collapse: collapse;"> <table style="width: 100%; border-collapse: collapse;">
<tr> <tr>
<td style=" padding: 2px;">Fasilitas Kredit</td> <td style=" padding: 2px; vertical-align: top;">Fasilitas Kredit</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $permohonan->jenisFasilitasKredit->name ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $permohonan->jenisFasilitasKredit->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Jenis Jaminan</td> <td style=" padding: 2px; vertical-align: top;">Jenis Jaminan</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $data ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $data ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Tujuan Penilaian</td> <td style=" padding: 2px; vertical-align: top;">Tujuan Penilaian</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $permohonan->tujuanPenilaian->name ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $permohonan->tujuanPenilaian->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Terletak di</td> <td style=" padding: 2px; vertical-align: top;">Terletak di</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $alamat['address'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $alamat['address'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Kelurahan</td> <td style=" padding: 2px; vertical-align: top;">Kelurahan</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $alamat['village_code'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $alamat['village_code'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Kecamatan</td> <td style=" padding: 2px; vertical-align: top;">Kecamatan</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $alamat['district_code'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $alamat['district_code'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Kabupaten</td> <td style=" padding: 2px; vertical-align: top;">Kabupaten</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $alamat['city_code'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $alamat['city_code'] ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style=" padding: 2px;">Propinsi</td> <td style=" padding: 2px; vertical-align: top;">Propinsi</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $alamat['province_code'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $alamat['province_code'] ?? '' }}</td>
</tr> </tr>
@if (@isset($dokumen)) @if (@isset($dokumen))
@foreach ($dokumen->detail as $detail) @foreach ($dokumen->detail as $detail)
<tr> <tr>
@if (isset($detail->dokumen_jaminan)) @if (isset($detail->dokumen_jaminan))
<td style=" padding: 2px;"> <td style=" padding: 2px; vertical-align: top;">
{{ $detail->name ?? '' }} {{ $detail->name ?? '' }}
</td> </td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;"> <td style=" padding: 2px; vertical-align: top;">
@if (isset($detail->dokumen_jaminan)) @if (isset($detail->dokumen_jaminan))
@php @php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
@@ -329,10 +197,10 @@
@if (json_decode($detail->details)) @if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value) @foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '') @if (!is_null($value) && $value !== '')
<td style=" padding: 2px;"> <td style=" padding: 2px; vertical-align: top;">
{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td> {{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $value }} <td style=" padding: 2px; vertical-align: top;">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah') @if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup> <sup>m2</sup>
@endif @endif
@@ -347,14 +215,14 @@
@if (isset($forminspeksi['asset']['nomor_nib'])) @if (isset($forminspeksi['asset']['nomor_nib']))
<tr> <tr>
<td style=" padding: 2px;">Nomor NIB</td> <td style=" padding: 2px; vertical-align: top;">Nomor NIB</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $forminspeksi['asset']['nomor_nib'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $forminspeksi['asset']['nomor_nib'] ?? '' }}</td>
</tr> </tr>
@endif @endif
<tr> <tr>
<td style=" padding: 2px;">Atas Nama</td> <td style=" padding: 2px; vertical-align: top;">Atas Nama</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td> <td style=" padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
@@ -388,9 +256,9 @@
? $forminspeksi['asset']['hub_cadeb']['tidak sesuai'] ? $forminspeksi['asset']['hub_cadeb']['tidak sesuai']
: $forminspeksi['asset']['hub_cadeb']['sesuai']; : $forminspeksi['asset']['hub_cadeb']['sesuai'];
@endphp @endphp
<td style=" padding: 2px;">Hubungan Pemilik Jaminan dengan Debitu</td> <td style=" padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitu</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $hubCadeb ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $hubCadeb ?? '' }}</td>
</tr> </tr>
<tr> <tr>
@php @php
@@ -405,9 +273,9 @@
? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'] ? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai']
: $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai']; : $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'];
@endphp @endphp
<td style=" padding: 2px;">Hubungan Penghuni Jaminan dengan Debitur</td> <td style=" padding: 2px; vertical-align: top;">Hubungan Penghuni Jaminan dengan Debitur</td>
<td style=" padding: 2px;">:</td> <td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $hubCadeb ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $hubCadeb ?? '' }}</td>
</tr> </tr>
</table> </table>
@@ -444,14 +312,14 @@
$luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null; $luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null;
@endphp @endphp
<td style="padding: 2px;">Luas Tanah</td> <td style="padding: 2px; vertical-align: top;">Luas Tanah</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $luas ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $luas ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Bentuk Tanah</td> <td style="padding: 2px; vertical-align: top;">Bentuk Tanah</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$bentukTanah = isset( $bentukTanah = isset(
$forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah'], $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah'],
@@ -474,9 +342,9 @@
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Kontur Tanah</td> <td style="padding: 2px; vertical-align: top;">Kontur Tanah</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$konturTanah = $forminspeksi['tanah']['kontur_tanah'] ?? []; $konturTanah = $forminspeksi['tanah']['kontur_tanah'] ?? [];
@endphp @endphp
@@ -489,9 +357,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Permukaan dengan Jalan</td> <td style="padding: 2px; vertical-align: top;">Permukaan dengan Jalan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$ketinggianTanah = $forminspeksi['tanah']['ketinggian_tanah']; $ketinggianTanah = $forminspeksi['tanah']['ketinggian_tanah'];
$ketinggian = $ketinggianTanah['ketinggian'][0] ?? '-'; $ketinggian = $ketinggianTanah['ketinggian'][0] ?? '-';
@@ -509,14 +377,14 @@
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Peruntukan Tanah</td> <td style="padding: 2px; vertical-align: top;">Peruntukan Tanah</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">Perumahan bukan Real Estate</td> <td style="padding: 2px; vertical-align: top;">Perumahan bukan Real Estate</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Fisik Tanah</td> <td style="padding: 2px; vertical-align: top;">Fisik Tanah</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$kondisiFisikTanah = $kondisiFisikTanah =
$forminspeksi['tanah']['kondisi_fisik_tanah'][ $forminspeksi['tanah']['kondisi_fisik_tanah'][
@@ -534,9 +402,9 @@
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Luas Bangunan</td> <td style="padding: 2px; vertical-align: top;">Luas Bangunan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$luasTanahBangunan = $luasTanahBangunan =
$forminspeksi['bangunan']['luas_tanah_bagunan']; $forminspeksi['bangunan']['luas_tanah_bagunan'];
@@ -553,9 +421,9 @@
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Jenis Bangunan</td> <td style="padding: 2px; vertical-align: top;">Jenis Bangunan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$jenisBangunan = $jenisBangunan =
$forminspeksi['bangunan']['jenis_bangunan'] ?? []; $forminspeksi['bangunan']['jenis_bangunan'] ?? [];
@@ -569,9 +437,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Kondisi Bangunan</td> <td style="padding: 2px; vertical-align: top;">Kondisi Bangunan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$kondisiBangunan = $kondisiBangunan =
$forminspeksi['bangunan']['kondisi_bangunan'] ?? []; $forminspeksi['bangunan']['kondisi_bangunan'] ?? [];
@@ -585,10 +453,10 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Sifat Bangunan</td> <td style="padding: 2px; vertical-align: top;">Sifat Bangunan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$sifatBangunan = $sifatBangunan =
$forminspeksi['bangunan']['sifat_bangunan'][0] ?? '-'; $forminspeksi['bangunan']['sifat_bangunan'][0] ?? '-';
@@ -628,7 +496,7 @@
@if (count($spesifikasiBangunan) > 1) @if (count($spesifikasiBangunan) > 1)
<tr> <tr>
<td colspan="3" <td colspan="3"
style="padding: 2px; font-weight: bold;"> style="padding: 2px; vertical-align: top; font-weight: bold;">
{{ $bangunan['bagunan'] ?? 'Bangunan ' . ($index + 1) }} {{ $bangunan['bagunan'] ?? 'Bangunan ' . ($index + 1) }}
</td> </td>
</tr> </tr>
@@ -637,9 +505,9 @@
@foreach ($spekKategori as $kategori => $nilaiKategori) @foreach ($spekKategori as $kategori => $nilaiKategori)
@if (!empty($nilaiKategori)) @if (!empty($nilaiKategori))
<tr> <tr>
<td style="padding: 2px;">{{ $kategori }}</td> <td style="padding: 2px; vertical-align: top;">{{ $kategori }}</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $nilaiKategori) }}</td> {{ implode(', ', $nilaiKategori) }}</td>
</tr> </tr>
@endif @endif
@@ -647,7 +515,7 @@
@endforeach @endforeach
@else @else
<tr> <tr>
<td colspan="3" style="padding: 2px;">Tidak ada data <td colspan="3" style="padding: 2px; vertical-align: top;">Tidak ada data
spesifikasi bangunan</td> spesifikasi bangunan</td>
</tr> </tr>
@endif @endif
@@ -662,14 +530,14 @@
$luas = $forminspeksi['luas_unit'][$cekLuas] ?? null; $luas = $forminspeksi['luas_unit'][$cekLuas] ?? null;
@endphp @endphp
<td style="padding: 2px;">Luas Unit</td> <td style="padding: 2px; vertical-align: top;">Luas Unit</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $luas ?? '' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $luas ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Bentuk Unit</td> <td style="padding: 2px; vertical-align: top;">Bentuk Unit</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$bentukUnit = $forminspeksi['bentuk_unit'] ?? []; $bentukUnit = $forminspeksi['bentuk_unit'] ?? [];
@endphp @endphp
@@ -682,9 +550,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Kondisi Unit</td> <td style="padding: 2px; vertical-align: top;">Kondisi Unit</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$bentukUnit = $forminspeksi['kondisi_unit'] ?? []; $bentukUnit = $forminspeksi['kondisi_unit'] ?? [];
@endphp @endphp
@@ -697,9 +565,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Posisi Unit</td> <td style="padding: 2px; vertical-align: top;">Posisi Unit</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$bentukUnit = $forminspeksi['posisi_unit'] ?? []; $bentukUnit = $forminspeksi['posisi_unit'] ?? [];
@endphp @endphp
@@ -712,9 +580,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">View Unit</td> <td style="padding: 2px; vertical-align: top;">View Unit</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@php @php
$bentukUnit = $forminspeksi['view'] ?? []; $bentukUnit = $forminspeksi['view'] ?? [];
@endphp @endphp
@@ -743,76 +611,76 @@
@endphp @endphp
<tr> <tr>
<td style="padding: 2px;">Jarak Jalan Utama</td> <td style="padding: 2px; vertical-align: top;">Jarak Jalan Utama</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $lingkungan['jarak_jalan_utama'] ?? '-' }} m</td> <td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jarak_jalan_utama'] ?? '-' }} m</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Jalan Lingkungan</td> <td style="padding: 2px; vertical-align: top;">Jalan Lingkungan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $lingkungan['jalan_linkungan'] ?? '-' }} m</td> <td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jalan_linkungan'] ?? '-' }} m</td>
<tr> <tr>
<td style="padding: 2px;">Jarak CBD</td> <td style="padding: 2px; vertical-align: top;">Jarak CBD</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $lingkungan['jarak_cbd_point'] ?? '-' }} m <td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jarak_cbd_point'] ?? '-' }} m
({{ $lingkungan['nama_cbd_point'] ?? '-' }})</td> ({{ $lingkungan['nama_cbd_point'] ?? '-' }})</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Lebar Perkerasan Jalan</td> <td style="padding: 2px; vertical-align: top;">Lebar Perkerasan Jalan</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td> <td style="padding: 2px; vertical-align: top;">{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Perkerasan Jalan</td> <td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
<td style="padding: 2px;">: <td style="padding: 2px; vertical-align: top;">:
</td> </td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }} {{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Lalu Lintas</td> <td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}</td> <td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}</td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Golongan Masyarakat Sekitar</td> <td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }} <td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Tingkat Keramaian</td> <td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }} <td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Terletak di Area</td> <td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }} {{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Kondisi Bangunan Sekitar</td> <td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $lingkungan['kondisi_bagunan_disekitar_lokasi'] ?? '-' }} <td style="padding: 2px; vertical-align: top;">{{ $lingkungan['kondisi_bagunan_disekitar_lokasi'] ?? '-' }}
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 2px;">Sifat Bangunan Sekitar</td> <td style="padding: 2px; vertical-align: top;">Sifat Bangunan Sekitar</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ $lingkungan['sifat_bagunan_disekitar_lokasi'] ?? '-' }}</td> <td style="padding: 2px; vertical-align: top;">{{ $lingkungan['sifat_bagunan_disekitar_lokasi'] ?? '-' }}</td>
</tr> </tr>
@if ($lingkungan['dekat_makam'] == 'ya') @if ($lingkungan['dekat_makam'] == 'ya')
<tr> <tr>
<td style="padding: 2px;">Dekat Makam</td> <td style="padding: 2px; vertical-align: top;">Dekat Makam</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">Ya, Jarak {{ $lingkungan['jarak_makam'] ?? '-' }} m <td style="padding: 2px; vertical-align: top;">Ya, Jarak {{ $lingkungan['jarak_makam'] ?? '-' }} m
({{ $lingkungan['nama_makam'] ?? '-' }}) ({{ $lingkungan['nama_makam'] ?? '-' }})
</td> </td>
</tr> </tr>
@@ -820,25 +688,25 @@
@if ($lingkungan['dekat_tps'] == 'ya') @if ($lingkungan['dekat_tps'] == 'ya')
<tr> <tr>
<td style="padding: 2px;">Dekat TPS</td> <td style="padding: 2px; vertical-align: top;">Dekat TPS</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">Ya, Jarak {{ $lingkungan['jarak_tps'] ?? '-' }} m <td style="padding: 2px; vertical-align: top;">Ya, Jarak {{ $lingkungan['jarak_tps'] ?? '-' }} m
({{ $lingkungan['nama_tps'] ?? '-' }})</td> ({{ $lingkungan['nama_tps'] ?? '-' }})</td>
</tr> </tr>
@endif @endif
<tr> <tr>
<td style="padding: 2px;">Daerah</td> <td style="padding: 2px; vertical-align: top;">Daerah</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;">{{ implode(', ', $lingkungan['merupakan_daerah'] ?? ['-']) }} <td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['merupakan_daerah'] ?? ['-']) }}
</td> </td>
</tr> </tr>
@if (!empty($fasilitas)) @if (!empty($fasilitas))
<tr> <tr>
<td style="padding: 2px;">Fasilitas Dekat Objek</td> <td style="padding: 2px; vertical-align: top;">Fasilitas Dekat Objek</td>
<td style="padding: 2px;">:</td> <td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px; vertical-align: top;">
@foreach ($fasilitas as $fas) @foreach ($fasilitas as $fas)
{{ $fas }} {{ $fas }}
@if (isset($fasilitasInput[$fas])) @if (isset($fasilitasInput[$fas]))
@@ -1351,16 +1219,4 @@
</div> </div>
</main> </main>
<footer id="footer"> @include('lpj::penilai.components.footer')
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
<script>
const datas = @json($forminspeksi);
console.log(datas);
const lpjData = @json($dataPembanding);
console.log(lpjData);
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,112 +1,4 @@
<!DOCTYPE html> @include('lpj::penilai.components.header')
<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>
* {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
}
h2 {
font-size: 14px
}
/** Define the header rules **/
@page {
margin-top: 100px;
/* Ruang untuk header */
margin-bottom: 30px;
/* Ruang untuk footer */
}
#header {
position: fixed;
top: -100px;
/* Posisi header di luar konten */
left: 0;
right: 0;
height: 50px;
text-align: center;
padding-bottom: 10px;
}
.header-logo {
position: absolute;
left: 20px;
top: 10px;
max-height: 80px;
max-width: 150px;
}
.header-title {
margin-top: 10px;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: center;
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;
}
footer {
position: fixed;
bottom: 0cm;
left: 0cm;
right: 0cm;
}
body {
margin-top: 3cm;
/* Tambahkan margin top sedikit lebih besar dari tinggi header */
margin-bottom: 120px;
position: relative;
z-index: 1;
/* Pastikan konten berada di bawah header */
}
.border {
border: 1px solid #000;
}
.photo-item {
text-align: center;
margin-bottom: 20px;
}
.photo-image {
max-width: 80%;
height: auto;
display: block;
margin: 0 auto;
}
</style>
</head>
<body style="width: 80%; margin: auto">
@php @php
$data = ''; $data = '';
foreach ($permohonan->documents as $dokumen) { foreach ($permohonan->documents as $dokumen) {
@@ -135,22 +27,6 @@
} }
$data = rtrim($data, ', '); $data = rtrim($data, ', ');
@endphp @endphp
<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>
<main class="content"> <main class="content">
<table style="width: 100%"> <table style="width: 100%">
@@ -494,9 +370,4 @@
</div> </div>
</main> </main>
<footer id="footer"> @include('lpj::penilai.components.footer')
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
</footer>
</body>
</html>

View File

@@ -21,6 +21,7 @@
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}"> <input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="type" value="tanah"> <input type="hidden" name="type" value="tanah">
<input type="hidden" name="dokument_id" value="{{ request('dokument') }}"> <input type="hidden" name="dokument_id" value="{{ request('dokument') }}">
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}">
<div class="card"> <div class="card">
@foreach ($permohonan->documents as $dokumen) @foreach ($permohonan->documents as $dokumen)
@if ($dokumen->jenisJaminan) @if ($dokumen->jenisJaminan)

File diff suppressed because it is too large Load Diff

View File

@@ -67,6 +67,8 @@
<i class="ki-filled ki-save-2"></i> <i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Save</span> <span id="saveButtonText">Save</span>
</button> </button>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('dokument'), 'jenis_jaminan_id' => request('jenis_jaminan')]) }}"
class="btn btn-info" id="saveButton">
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('dokument'), 'jenis_jaminan_id' => request('jenis_jaminan')]) }}" <a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('dokument'), 'jenis_jaminan_id' => request('jenis_jaminan')]) }}"
class="btn btn-info" id="saveButton"> class="btn btn-info" id="saveButton">
<i class="ki-filled ki-printer"></i> <i class="ki-filled ki-printer"></i>

View File

@@ -35,10 +35,23 @@
<td class="px-4 py-2">Foto</td> <td class="px-4 py-2">Foto</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
<img id="uploadedImage1" @php
src="{{ isset($fotoForm['object_jaminan'][0]['foto_objek']) ? asset('storage/' . $fotoForm['object_jaminan'][0]['foto_objek']) : '' }}" $photos = $fotoForm['upload_foto'] ?? [];
class="max-w-[200px] {{ isset($fotoForm['object_jaminan'][0]['foto_objek']) ? '' : 'hidden' }}" if (!is_array($photos)) {
alt="Uploaded Image"> $photos = [];
}
$groupedPhotos = collect($photos)->groupBy('category');
$mainPhoto = $groupedPhotos->get('Tampak Depan', collect())->first();
// echo $mainPhoto;
@endphp
@if ($mainPhoto)
<img id="uploadedImage1" src="{{ asset('storage/' . $mainPhoto['path']) }}"
class="max-w-[200px]" alt="Uploaded Image">
@endif
<input type="file" name="foto_objek" class="file-input" accept="image/*" <input type="file" name="foto_objek" class="file-input" accept="image/*"
onchange="previewImage(this, 'uploadedImage1')"> onchange="previewImage(this, 'uploadedImage1')">
</div> </div>

View File

@@ -1,467 +1,444 @@
<div class="card-header bg-agi-50">
<div class="card-header bg-agi-50"> <h3 class="card-title">Data Pembanding</h3>
<h3 class="card-title">Data Pembanding</h3> <div class="flex items-center gap-2">
<div class="flex items-center gap-2"> <a href="{{ route('surveyor.show', ['id' => $permohonan->id]) }}" class="btn btn-xs btn-info">
<a href="{{ route('surveyor.show', ['id' => $permohonan->id]) }}" <i class="ki-filled ki-exit-left"></i> Kembali
class="btn btn-xs btn-info"> </a>
<i class="ki-filled ki-exit-left"></i> Kembali
</a>
</div>
</div> </div>
</div>
<div class="card-header bg-agi-50 py-5 flex-wrap flex justify-end"> <div class="card-header bg-agi-50 py-5 flex-wrap flex justify-end">
<button type="button" id="addColumnBtn" class="btn btn-primary btn-sm"> <button type="button" id="addColumnBtn" class="btn btn-primary btn-sm">
<i class="ki-filled ki-plus"></i> Tambah Pembanding <i class="ki-filled ki-plus"></i> Tambah Pembanding
</button> </button>
<button type="button" id="removeColumnBtn" class="btn btn-danger btn-sm ml-2" <button type="button" id="removeColumnBtn" class="btn btn-danger btn-sm ml-2" style="display: none;">
style="display: none;"> <i class="ki-filled ki-minus"></i> Hapus Pembanding
<i class="ki-filled ki-minus"></i> Hapus Pembanding </button>
</button> </div>
</div>
{{-- @php {{-- @php
print_r($inspectionData); print_r($inspectionData);
@endphp --}} @endphp --}}
<div class="card-body"> <div class="card-body">
<div class="scrollable-x-auto"> <div class="scrollable-x-auto">
<table id="dataTable" <table id="dataTable" class="table table-auto table-border align-middle text-gray-700 font-medium text-sm">
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"> <thead class="bg-gray-50 sticky top-0">
<thead class="bg-gray-50 sticky top-0"> <tr>
<tr> <th class="px-4 py-3 min-w-[200px]">Parameter</th>
<th class="px-4 py-3 min-w-[200px]">Parameter</th> <th class="px-4 py-3 min-w-[250px]">Objek Penilaian</th>
<th class="px-4 py-3 min-w-[250px]">Objek Penilaian</th> <th class="px-4 py-3 min-w-[250px]">Data Pembanding 1</th>
<th class="px-4 py-3 min-w-[250px]">Data Pembanding 1</th> </tr>
</tr> </thead>
</thead> <tbody>
<tbody> <!-- Informasi Dasar -->
<!-- Informasi Dasar --> <tr class="bg-gray-100">
<tr class="bg-gray-100"> <td colspan="3" class="px-4 py-2 font-semibold">Informasi Dasar</td>
<td colspan="3" class="px-4 py-2 font-semibold">Informasi Dasar</td> </tr>
</tr> <tr>
<tr> <td class="px-4 py-2">Foto</td>
<td class="px-4 py-2">Foto</td> <td class="px-4 py-2">
<td class="px-4 py-2"> <div class="flex flex-col gap-2">
<div class="flex flex-col gap-2">
<img id="uploadedImage1"
src="{{ isset($fotoForm['object_jaminan'][0]['foto_objek']) ? asset('storage/' . $fotoForm['object_jaminan'][0]['foto_objek']) : '' }}"
class="max-w-[200px] {{ isset($fotoForm['object_jaminan'][0]['foto_objek']) ? '' : 'hidden' }}"
alt="Uploaded Image">
<input type="file" name="foto_objek" class="file-input"
accept="image/*" onchange="previewImage(this, 'uploadedImage1')">
</div>
</td>
<td class="px-4 py-2">
<div class="flex flex-col gap-2">
<img id="uploadedImage2" class="max-w-[200px] hidden"
alt="Pembanding Image">
<input type="file" name="foto_objek_pembanding[]" class="file-input"
accept="image/*" onchange="previewImage(this, 'uploadedImage2')">
</div>
</td>
</tr>
<!-- Data Properti -->
<tr class="bg-gray-100">
<td colspan="3" class="px-4 py-2 font-semibold">Data Properti</td>
</tr>
<tr>
<td class="px-4 py-2">Jenis Aset</td>
<td class="px-4 py-2">
<select name="jenis_aset" class="select">
<option value="">Pilih Jenis Aset</option>
@foreach ($data['jenisJaminan'] as $item)
<option value="{{ $item->name }}"
{{ ($inspectionData['asset']['jenis_asset']['sesuai'] ?? '') == $item->name ? 'selected' : '' }}>
{{ $item->name }}</option>
@endforeach
</select>
</td>
<td class="px-4 py-2">
<select name="jenis_aset_pembanding[]" class="select">
<option value="">Pilih Jenis Aset</option>
@foreach ($data['jenisJaminan'] as $item)
<option value="{{ $item->name }}"
{{ ($inspectionData['jenis_aset'] ?? '') == $item->name ? 'selected' : '' }}>
{{ $item->name }}</option>
@endforeach
</select>
</td>
</tr>
<tr>
<td class="px-4 py-2">Luas Tanah ()</td>
@php @php
$cekLuas = $photos = $fotoForm['upload_foto'] ?? [];
isset($inspectionData['tanah']['luas_tanah']) == 'sesuai' if (!is_array($photos)) {
? 'sesuai' $photos = [];
: 'tidak sesuai'; }
$groupedPhotos = collect($photos)->groupBy('category');
$mainPhoto = $groupedPhotos->get('Tampak Depan', collect())->first();
// echo $mainPhoto;
@endphp @endphp
<td class="px-4 py-2">
<input type="text" name="luas_tanah" class="input "
value="{{ $inspectionData['tanah']['luas_tanah']['sesuai'] ?? ($inspectionData['tanah']['luas_tanah']['tidak sesuai'] ?? '') }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_pembanding[]" @if ($mainPhoto)
class="input number-format"> <img id="uploadedImage1" src="{{ asset('storage/' . $mainPhoto['path']) }}"
</td> class="max-w-[200px]" alt="Uploaded Image">
</tr> @endif
<input type="hidden" name="name_foto_objek" class="input"
value="{{ $mainPhoto['path'] ?? '' }}">
<input type="file" name="foto_objek" class="file-input" accept="image/*"
onchange="previewImage(this, 'uploadedImage1')">
@php </div>
$luasTanahData = []; </td>
$nilai = 'N/A';
// Memeriksa apakah key 'bangunan' ada di dalam $inspectionData <td class="px-4 py-2">
if (isset($inspectionData['bangunan']['luas_tanah_bagunan'])) { <div class="flex flex-col gap-2">
$luasTanahData = $inspectionData['bangunan']['luas_tanah_bagunan']; <img id="uploadedImage2" class="max-w-[200px] hidden" alt="Pembanding Image">
<input type="file" name="foto_objek_pembanding[]" class="file-input" accept="image/*"
onchange="previewImage(this, 'uploadedImage2')">
</div>
</td>
</tr>
<!-- Data Properti -->
<tr class="bg-gray-100">
<td colspan="3" class="px-4 py-2 font-semibold">Data Properti</td>
</tr>
<tr>
<td class="px-4 py-2">Jenis Aset</td>
<td class="px-4 py-2">
<select name="jenis_aset" class="select">
<option value="">Pilih Jenis Aset</option>
@foreach ($data['jenisJaminan'] as $item)
<option value="{{ $item->name }}"
{{ ($inspectionData['asset']['jenis_asset']['sesuai'] ?? '') == $item->name ? 'selected' : '' }}>
{{ $item->name }}</option>
@endforeach
</select>
</td>
<td class="px-4 py-2">
<select name="jenis_aset_pembanding[]" class="select">
<option value="">Pilih Jenis Aset</option>
@foreach ($data['jenisJaminan'] as $item)
<option value="{{ $item->name }}"
{{ ($inspectionData['jenis_aset'] ?? '') == $item->name ? 'selected' : '' }}>
{{ $item->name }}</option>
@endforeach
</select>
</td>
</tr>
<tr>
<td class="px-4 py-2">Luas Tanah ()</td>
@php
$cekLuas =
isset($inspectionData['tanah']['luas_tanah']) == 'sesuai' ? 'sesuai' : 'tidak sesuai';
if (!empty($luasTanahData['sesuai'])) {
$nilai = $luasTanahData['sesuai'];
} elseif (!empty($luasTanahData['tidak sesuai'])) {
$nilai = $luasTanahData['tidak sesuai'];
}
}
@endphp @endphp
<td class="px-4 py-2">
<input type="text" name="luas_tanah" class="input "
value="{{ $inspectionData['tanah']['luas_tanah']['sesuai'] ?? ($inspectionData['tanah']['luas_tanah']['tidak sesuai'] ?? '') }}">
</td>
<td class="px-4 py-2">
@if (isset($inspectionData['bangunan'])) <input type="text" name="luas_tanah_pembanding[]" class="input number-format">
</td>
</tr>
@php
$luasTanahData = [];
$nilai = 'N/A';
// Memeriksa apakah key 'bangunan' ada di dalam $inspectionData
if (isset($inspectionData['bangunan']['luas_tanah_bagunan'])) {
$luasTanahData = $inspectionData['bangunan']['luas_tanah_bagunan'];
if (!empty($luasTanahData['sesuai'])) {
$nilai = $luasTanahData['sesuai'];
} elseif (!empty($luasTanahData['tidak sesuai'])) {
$nilai = $luasTanahData['tidak sesuai'];
}
}
@endphp
@if (isset($inspectionData['bangunan']))
<tr> <tr>
<td class="px-4 py-2">Luas Bangunan ()</td> <td class="px-4 py-2">Luas Bangunan ()</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" <input type="text" name="luas_tanah_bagunan" class="input"
name="luas_tanah_bagunan" value="{{ $inspectionData['bangunan']['luas_tanah_bagunan']['sesuai'] ?? ($inspectionData['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
class="input"
value="{{ $inspectionData['bangunan']['luas_tanah_bagunan']['sesuai'] ?? ($inspectionData['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
</td> </td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]" <input type="text" name="luas_bangunan_pembanding[]" class="input number-format">
class="input number-format">
</td> </td>
</tr> </tr>
@endif @endif
<!-- Informasi Harga --> <!-- Informasi Harga -->
<tr class="bg-gray-100"> <tr class="bg-gray-100">
<td colspan="3" class="px-4 py-2 font-semibold">Informasi</td> <td colspan="3" class="px-4 py-2 font-semibold">Informasi</td>
</tr> </tr>
<tr> <tr>
<td class="px-4 py-2">Hak atas properti yang dialihkan</td> <td class="px-4 py-2">Hak atas properti yang dialihkan</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="hak_properti" class="input" <input type="text" name="hak_properti" class="input"
value="{{ $inspectionData['asset']['hak_properti'] ?? '' }}"> value="{{ $inspectionData['asset']['hak_properti'] ?? '' }}">
</td> </td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="hak_properti_pembanding[]" <input type="text" name="hak_properti_pembanding[]" class="input">
class="input"> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="px-4 py-2">Penawaran/ Transaksi</td>
<td class="px-4 py-2">Penawaran/ Transaksi</td> <td class="px-4 py-2">
<td class="px-4 py-2"> <input type="text" name="penawaran" class="input"
<input type="text" name="penawaran" class="input" value="{{ $inspectionData['asset']['penawaran'] ?? '' }}">
value="{{ $inspectionData['asset']['penawaran'] ?? '' }}"> </td>
</td> <td class="px-4 py-2">
<td class="px-4 py-2"> <input type="text" name="penawaran_pembanding[]" class="input">
<input type="text" name="penawaran_pembanding[]" </td>
class="input"> </tr>
</td>
</tr>
<tr> <tr>
<td class="px-4 py-2">Telepon Contact Person</td> <td class="px-4 py-2">Telepon Contact Person</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="telepon" class="input" <input type="text" name="telepon" class="input"
value="{{ $inspectionData['asset']['telepon'] ?? '' }}"> value="{{ $inspectionData['asset']['telepon'] ?? '' }}">
</td> </td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="telepon_pembanding[]" <input type="text" name="telepon_pembanding[]" class="input">
class="input"> </td>
</td> </tr>
</tr>
<tr> <tr>
<td class="px-4 py-2">Status Narasumber</td> <td class="px-4 py-2">Status Narasumber</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="status_nara_sumber" class="input" <input type="text" name="status_nara_sumber" class="input"
value="{{ $inspectionData['asset']['status_nara_sumber'] ?? '' }}"> value="{{ $inspectionData['asset']['status_nara_sumber'] ?? '' }}">
</td> </td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<input type="text" name="status_nara_sumber_pembanding[]" <input type="text" name="status_nara_sumber_pembanding[]" class="input">
class="input"> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="px-4 py-2">Nama Narasumber</td>
<td class="px-4 py-2">Nama Narasumber</td> <td class="px-4 py-2">
<td class="px-4 py-2"> <input type="text" name="nama_nara_sumber" class="input"
<input type="text" name="nama_nara_sumber" class="input" value="{{ $inspectionData['asset']['nama_nara_sumber'] ?? '' }}">
value="{{ $inspectionData['asset']['nama_nara_sumber'] ?? '' }}"> </td>
</td> <td class="px-4 py-2">
<td class="px-4 py-2"> <input type="text" name="nama_nara_sumber_pembanding[]" class="input">
<input type="text" name="nama_nara_sumber_pembanding[]" </td>
class="input"> </tr>
</td>
</tr>
<!-- Lokasi --> <!-- Lokasi -->
<tr class="bg-gray-100"> <tr class="bg-gray-100">
<td colspan="3" class="px-4 py-2 font-semibold">Lokasi</td> <td colspan="3" class="px-4 py-2 font-semibold">Lokasi</td>
</tr> </tr>
<tr> <tr>
<td class="px-4 py-2">Koordinat</td> <td class="px-4 py-2">Koordinat</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<div class="grid grid-cols-2 gap-2"> <div class="grid grid-cols-2 gap-2">
<input type="text" name="kordinat_lat" class="input" <input type="text" name="kordinat_lat" class="input" placeholder="Latitude"
placeholder="Latitude" value="{{ $inspectionData['asset']['kordinat_lat'] ?? '' }}">
value="{{ $inspectionData['asset']['kordinat_lat'] ?? '' }}"> <input type="text" name="kordinat_lng" class="input" placeholder="Longitude"
<input type="text" name="kordinat_lng" class="input" value="{{ $inspectionData['asset']['kordinat_lng'] ?? '' }}">
placeholder="Longitude" </div>
value="{{ $inspectionData['asset']['kordinat_lng'] ?? '' }}"> </td>
</div> <td class="px-4 py-2">
</td> <div class="grid grid-cols-2 gap-2">
<td class="px-4 py-2"> <input type="text" name="kordinat_lat_pembanding[]" class="input"
<div class="grid grid-cols-2 gap-2"> placeholder="Latitude">
<input type="text" name="kordinat_lat_pembanding[]" class="input" <input type="text" name="kordinat_lng_pembanding[]" class="input"
placeholder="Latitude"> placeholder="Longitude">
<input type="text" name="kordinat_lng_pembanding[]" class="input" </div>
placeholder="Longitude"> </td>
</div> </tr>
</td> <tr>
</tr> <td class="px-4 py-2">Alamat</td>
<tr> <td class="px-4 py-2">
<td class="px-4 py-2">Alamat</td> @php
<td class="px-4 py-2"> $statusAlamat = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$address = $inspectionData['asset']['alamat'][$statusAlamat]['address'] ?? null;
@endphp
<textarea name="address" class="input py-2" rows="2">{{ $address }}</textarea>
</td>
<td class="px-4 py-2">
<textarea name="address_pembanding[]" class="input py-2" rows="2"></textarea>
</td>
</tr>
<tr>
<td class="px-4 py-2">Provinsi</td>
<td class="px-4 py-2">
<select id="province_code" name="province_code" class="input w-full">
@php @php
$statusAlamat = isset($inspectionData['asset']['alamat']['sesuai']) $statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai' ? 'sesuai'
: 'tidak sesuai'; : 'tidak sesuai';
$address = $address = $inspectionData['asset']['alamat'][$statusKey]['province_code'] ?? null;
$inspectionData['asset']['alamat'][$statusAlamat]['address'] ??
null;
@endphp @endphp
<textarea name="address" class="input py-2" rows="2">{{ $address }}</textarea> <option value="">Select Province</option>
</td> @foreach ($provinces as $province)
<td class="px-4 py-2">
<textarea name="address_pembanding[]" class="input py-2" rows="2"></textarea>
</td>
</tr>
<tr>
<td class="px-4 py-2">Provinsi</td>
<td class="px-4 py-2">
<select id="province_code" name="province_code" class="input w-full">
@php @php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai']) $statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai' ? 'sesuai'
: 'tidak sesuai'; : 'tidak sesuai';
$address = $selectedProvince =
$inspectionData['asset']['alamat'][$statusKey][ $inspectionData['asset']['alamat'][$statusKey]['province_code'] ?? null;
'province_code'
] ?? null;
@endphp @endphp
<option value="">Select Province</option>
@foreach ($provinces as $province)
@php
$statusKey = isset(
$inspectionData['asset']['alamat']['sesuai'],
)
? 'sesuai'
: 'tidak sesuai';
$selectedProvince =
$inspectionData['asset']['alamat'][$statusKey][
'province_code'
] ?? null;
@endphp
<option value="{{ $province->code }}" <option value="{{ $province->code }}"
{{ $selectedProvince == $province->code ? 'selected' : '' }}> {{ $selectedProvince == $province->code ? 'selected' : '' }}>
{{ $province->name }} {{ $province->name }}
</option>
@endforeach
</select>
</td>
<td class="px-4 py-2">
<select id="province_code_pembanding" name="province_code_pembanding[]"
onchange="handleProvinceChange(this)" class="input w-full">
<option value="">Pilih Provinsi</option>
@foreach ($provinces as $province)
<option value="{{ $province->code }}">{{ $province->name }}
</option>
@endforeach
</select>
</td>
</tr>
<tr>
<td class="px-4 py-2">Kabupaten/Kota</td>
<td class="px-4 py-2">
<select id="city_code" name="city_code" class="select w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedCity = $inspectionData['asset']['alamat'][$statusKey]['city_code'] ?? null;
@endphp
<option value="">Pilih Kota/Kabupaten</option>
@if (isset($selectedCity))
@foreach ($cities as $city)
<option value="{{ $city->code }}"
{{ $selectedCity == $city->code ? 'selected' : '' }}>
{{ $city->name }}
</option> </option>
@endforeach @endforeach
</select> @endif
</td> </select>
<td class="px-4 py-2"> </td>
<select id="province_code_pembanding" name="province_code_pembanding[]" <td class="px-4 py-2">
onchange="handleProvinceChange(this)" class="input w-full"> <select id="city_code_pembanding" name="city_code_pembanding[]"
<option value="">Pilih Provinsi</option> onchange="handleCityChange(this)" class="input w-full">
@foreach ($provinces as $province) <option value="">Pilih Kota/Kabupaten</option>
<option value="{{ $province->code }}">{{ $province->name }} </select>
</td>
</tr>
<tr>
<td class="px-4 py-2">Kecamatan</td>
<td class="px-4 py-2">
<select id="district_code" name="district_code" class="select w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedDisrict =
$inspectionData['asset']['alamat'][$statusKey]['district_code'] ?? null;
@endphp
<option value="">Pilih Kecamatan</option>
@if (isset($selectedDisrict))
@foreach ($districts as $district)
<option value="{{ $district->code }}"
{{ $selectedDisrict == $district->code ? 'selected' : '' }}>
{{ $district->name }}
</option> </option>
@endforeach @endforeach
</select> @endif
</td> </select>
</tr> </td>
<td class="px-4 py-2">
<tr> <select id="district_code_pembanding" name="district_code_pembanding[]"
<td class="px-4 py-2">Kabupaten/Kota</td> onchange="handleDistrictChange(this)" class="input w-full">
<td class="px-4 py-2"> <option value="">Pilih Kecamatan</option>
<select id="city_code" name="city_code" class="select w-full"> </select>
@php </td>
</tr>
$statusKey = isset($inspectionData['asset']['alamat']['sesuai']) <tr>
? 'sesuai' <td class="px-4 py-2">Desa/Kelurahan</td>
: 'tidak sesuai'; <td class="px-4 py-2">
$selectedCity = <select id="village_code" name="village_code" class="select w-full">
$inspectionData['asset']['alamat'][$statusKey][ @php
'city_code' $statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
] ?? null; ? 'sesuai'
@endphp : 'tidak sesuai';
<option value="">Pilih Kota/Kabupaten</option> $selectedDesa = $inspectionData['asset']['alamat'][$statusKey]['village_code'] ?? null;
@if (isset($selectedCity)) @endphp
@foreach ($cities as $city) <option value="">Pilih Kecamatan</option>
<option value="{{ $city->code }}" @if (isset($selectedDesa))
{{ $selectedCity == $city->code ? 'selected' : '' }}> @foreach ($villages as $village)
{{ $city->name }} <option value="{{ $village->code }}"
</option> {{ $selectedDesa == $village->code ? 'selected' : '' }}>
@endforeach {{ $village->name }}
@endif </option>
</select> @endforeach
</td> @endif
<td class="px-4 py-2"> </select>
<select id="city_code_pembanding" name="city_code_pembanding[]" </td>
onchange="handleCityChange(this)" class="input w-full"> <td class="px-4 py-2">
<option value="">Pilih Kota/Kabupaten</option> <select id="village_code_pembanding" name="village_code_pembanding[]" class="input w-full">
</select> <option value="">Pilih Desa/Kelurahan</option>
</td> </select>
</tr> </td>
</tr>
<tr> <tr class="bg-gray-100">
<td class="px-4 py-2">Kecamatan</td> <td colspan="3" class="px-4 py-2 font-semibold">Harga Per Meter</td>
<td class="px-4 py-2"> </tr>
<select id="district_code" name="district_code" class="select w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai']) <tr>
? 'sesuai' <td class="px-4 py-2">Harga</td>
: 'tidak sesuai'; <td class="px-4 py-2">
$selectedDisrict = <input type="text" name="harga" class="input currency-format"
$inspectionData['asset']['alamat'][$statusKey][ value="{{ $inspectionData['asset']['harga'] ?? '' }}">
'district_code' </td>
] ?? null; <td class="px-4 py-2">
@endphp <input type="text" name="harga_pembanding[]" class="input currency">
<option value="">Pilih Kecamatan</option> </td>
@if (isset($selectedDisrict)) </tr>
@foreach ($districts as $district) <tr>
<option value="{{ $district->code }}" <td class="px-4 py-2">Diskon</td>
{{ $selectedDisrict == $district->code ? 'selected' : '' }}> <td class="px-4 py-2">
{{ $district->name }} <div class="input">
</option> <input type="text" name="diskon" class=" currency"
@endforeach value="{{ $inspectionData['asset']['diskon'] ?? '' }}">
@endif <span class="btn btn-icon">
</select> <i class="ki-outline ki-percentage"></i>
</td> </span>
<td class="px-4 py-2"> </div>
<select id="district_code_pembanding" name="district_code_pembanding[]" </td>
onchange="handleDistrictChange(this)" class="input w-full"> <td class=" px-4 py-2">
<option value="">Pilih Kecamatan</option> <div class="input">
</select> <input type="text" name="diskon_pembanding[]" class="currency">
</td> <span class="btn btn-icon">
</tr> <i class="ki-outline ki-percentage"></i>
</i>
</span>
</div>
<tr> </td>
<td class="px-4 py-2">Desa/Kelurahan</td> </tr>
<td class="px-4 py-2"> <tr style="display: none;">
<select id="village_code" name="village_code" class="select w-full"> <td class="px-4 py-2">Total</td>
@php <td class="px-4 py-2">
$statusKey = isset($inspectionData['asset']['alamat']['sesuai']) <input type="text" name="total" class="input currency"
? 'sesuai' value="{{ $inspectionData['asset']['total'] ?? '' }}">
: 'tidak sesuai'; </td>
$selectedDesa = <td class="px-4 py-2">
$inspectionData['asset']['alamat'][$statusKey][ <input type="text" name="total_pembanding[]" class="input currency-format">
'village_code' </td>
] ?? null; </tr>
@endphp <tr>
<option value="">Pilih Kecamatan</option> <td class="px-4 py-2">Harga Setelah Diskon</td>
@if (isset($selectedDesa)) <td class="px-4 py-2">
@foreach ($villages as $village) <input type="text" name="harga_diskon" class="input currency-format" readonly
<option value="{{ $village->code }}" value="{{ $inspectionData['asset']['harga_diskon'] ?? '' }}">
{{ $selectedDesa == $village->code ? 'selected' : '' }}> </td>
{{ $village->name }} <td class="px-4 py-2">
</option> <input type="text" name="harga_diskon_pembanding[]" readonly
@endforeach class="input currency-format">
@endif </td>
</select> </tr>
</td> </tbody>
<td class="px-4 py-2"> </table>
<select id="village_code_pembanding" name="village_code_pembanding[]"
class="input w-full">
<option value="">Pilih Desa/Kelurahan</option>
</select>
</td>
</tr>
<tr class="bg-gray-100">
<td colspan="3" class="px-4 py-2 font-semibold">Harga Per Meter</td>
</tr>
<tr>
<td class="px-4 py-2">Harga</td>
<td class="px-4 py-2">
<input type="text" name="harga" class="input currency-format"
value="{{ $inspectionData['asset']['harga'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="harga_pembanding[]"
class="input currency">
</td>
</tr>
<tr>
<td class="px-4 py-2">Diskon</td>
<td class="px-4 py-2">
<div class="input">
<input type="text" name="diskon" class=" currency"
value="{{ $inspectionData['asset']['diskon'] ?? '' }}">
<span class="btn btn-icon">
<i class="ki-outline ki-percentage"></i>
</span>
</div>
</td>
<td class=" px-4 py-2">
<div class="input">
<input type="text" name="diskon_pembanding[]"
class="currency">
<span class="btn btn-icon">
<i class="ki-outline ki-percentage"></i>
</i>
</span>
</div>
</td>
</tr>
<tr style="display: none;">
<td class="px-4 py-2">Total</td>
<td class="px-4 py-2">
<input type="text" name="total" class="input currency"
value="{{ $inspectionData['asset']['total'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="total_pembanding[]"
class="input currency-format">
</td>
</tr>
<tr>
<td class="px-4 py-2">Harga Setelah Diskon</td>
<td class="px-4 py-2">
<input type="text" name="harga_diskon" class="input currency-format" readonly
value="{{ $inspectionData['asset']['harga_diskon'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="harga_diskon_pembanding[]" readonly
class="input currency-format">
</td>
</tr>
</tbody>
</table>
</div>
</div> </div>
</div>

View File

@@ -18,9 +18,9 @@ use Modules\Lpj\Http\Controllers\JenisPenilaianController;
use Modules\Lpj\Http\Controllers\KJPPController; use Modules\Lpj\Http\Controllers\KJPPController;
use Modules\Lpj\Http\Controllers\LaporanController; use Modules\Lpj\Http\Controllers\LaporanController;
use Modules\Lpj\Http\Controllers\NilaiPlafondController; use Modules\Lpj\Http\Controllers\NilaiPlafondController;
use Modules\Lpj\Http\Controllers\NocController; use Modules\Lpj\Http\Controllers\NocController;
use Modules\Lpj\Http\Controllers\PembatalanController; use Modules\Lpj\Http\Controllers\PembatalanController;
use Modules\Lpj\Http\Controllers\PemilikJaminanController; use Modules\Lpj\Http\Controllers\PemilikJaminanController;
use Modules\Lpj\Http\Controllers\PenilaianController; use Modules\Lpj\Http\Controllers\PenilaianController;
use Modules\Lpj\Http\Controllers\PenilaiController; use Modules\Lpj\Http\Controllers\PenilaiController;
use Modules\Lpj\Http\Controllers\PermohonanController; use Modules\Lpj\Http\Controllers\PermohonanController;
@@ -554,6 +554,7 @@ Route::middleware(['auth'])->group(function () {
Route::put('storeAproved/{storeAproved}', [SurveyorController::class, 'storeAproved'])->name('storeAproved'); Route::put('storeAproved/{storeAproved}', [SurveyorController::class, 'storeAproved'])->name('storeAproved');
Route::post('storeFreeze/{id}', [SurveyorController::class, 'storeFreeze'])->name('storeFreeze'); Route::post('storeFreeze/{id}', [SurveyorController::class, 'storeFreeze'])->name('storeFreeze');
Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto'); Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto');
Route::put('updateFoto', [SurveyorController::class, 'updateFoto'])->name('updateFoto');
Route::delete('/surveyor/hapus-foto', [SurveyorController::class, 'hapusFoto'])->name('hapusFoto'); Route::delete('/surveyor/hapus-foto', [SurveyorController::class, 'hapusFoto'])->name('hapusFoto');
Route::delete('/hapus-lantai', [SurveyorController::class, 'hapusLantai'])->name('hapusLantai'); Route::delete('/hapus-lantai', [SurveyorController::class, 'hapusLantai'])->name('hapusLantai');