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

This commit is contained in:
2025-03-10 09:17:55 +07:00
61 changed files with 3071 additions and 3556 deletions

View File

@@ -373,13 +373,14 @@ function checkRegionUserName($userId)
} }
} }
function getNomorLaporan($permohonanId, $documentId) function getNomorLaporan($permohonanId, $documentId, $type = 'nomor_laporan')
{ {
$laporan = Laporan::where([ $laporan = Laporan::where([
'permohonan_id' => $permohonanId, 'permohonan_id' => $permohonanId,
'dokumen_jaminan_id' => $documentId, 'dokumen_jaminan_id' => $documentId,
])->first(); ])->first();
return $laporan->nomor_laporan ?? null; return $type == 'nomor_laporan' ? $laporan->nomor_laporan : $laporan->created_at ?? "-";
} }
function getCustomField($param) function getCustomField($param)
@@ -430,7 +431,8 @@ function getWilayahName($code, $type)
} }
function formatLabel($key) { function formatLabel($key)
{
static $labelCache = []; static $labelCache = [];
if (isset($labelCache[$key])) { if (isset($labelCache[$key])) {
@@ -468,3 +470,35 @@ function calculateSLA($permohonan, $type)
return $slaMap[$type] ?? null; return $slaMap[$type] ?? null;
} }
/**
* Menghitung total nilai berdasarkan key dan jenis legalitas.
*
* @param array $detailsArray
* @param string $key
* @param int $jenisLegalitas
* @return int
*/
function calculateTotalLuas($detailsArray, $key, $jenisLegalitas)
{
$total = 0;
if ($detailsArray) {
foreach ($detailsArray as $item) {
if (isset($item->jenis_legalitas_jaminan_id) && $item->jenis_legalitas_jaminan_id === $jenisLegalitas) {
$details = json_decode($item->details, true);
if (is_array($details)) {
foreach ($details as $detail) {
if (isset($detail[$key])) {
$total += (int) $detail[$key];
}
}
}
}
}
}
return $total;
}

View File

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

View File

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

View File

@@ -0,0 +1,44 @@
<?php
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Modules\Lpj\Models\LampiranDokumen;
class LampiranDokumenController extends Controller
{
public function download($id)
{
$lampiran = LampiranDokumen::findOrFail($id);
return Storage::download($lampiran->path_file, $lampiran->nama_file);
}
public function upload(Request $request)
{
$request->validate([
'permohonan_id' => 'required|exists:permohonan,id',
'nama_file' => 'nullable|string|max:255',
'file' => 'required|file|max:10240',
'keterangan' => 'nullable|string|max:255',
]);
$lampiran = LampiranDokumen::uploadLampiran($request->all());
if ($lampiran) {
return redirect()->back()->with('success', 'Lampiran uploaded successfully');
} else {
return redirect()->back()->with('error', 'Unauthorized or upload failed');
}
}
public function delete(LampiranDokumen $lampiran)
{
if ($lampiran->deleteLampiran()) {
return redirect()->back()->with('success', 'Lampiran deleted successfully');
} else {
return redirect()->back()->with('error', 'Unauthorized or delete failed');
}
}
}

View File

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

View File

@@ -10,7 +10,6 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Http\Requests\PersetujuanPenawaranRequest; use Modules\Lpj\Http\Requests\PersetujuanPenawaranRequest;
use Modules\Lpj\Models\LaporanExternal;
use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\PenawaranTender;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\PersetujuanPenawaran; use Modules\Lpj\Models\PersetujuanPenawaran;
@@ -236,13 +235,6 @@ class PembayaranController extends Controller
'updated_by' => Auth::id(), 'updated_by' => Auth::id(),
'updated_at' => now(), 'updated_at' => now(),
]); ]);
LaporanExternal::create([
'permohonan_id' => $permohonan->id,
'nomor_laporan' => $permohonan->nomor_registrasi,
'tanggal_laporan' => now(),
'created_by' => Auth::id(),
]);
} }
} }

View File

@@ -25,15 +25,19 @@ use App\Helpers\Lpj;
use Modules\Lpj\Http\Requests\FormSurveyorRequest; use Modules\Lpj\Http\Requests\FormSurveyorRequest;
use Modules\Lpj\Models\Authorization; use Modules\Lpj\Models\Authorization;
use Modules\Lpj\Models\Debiture; use Modules\Lpj\Models\Debiture;
use Modules\Lpj\Services\SaveFormInspesksiService;
class PenilaiController extends Controller class PenilaiController extends Controller
{ {
public $user; public $user;
protected $surveyorController; protected $surveyorController;
protected $inspeksiService;
public function __construct(SurveyorController $surveyorController)
public function __construct(SurveyorController $surveyorController, SaveFormInspesksiService $inspeksiService)
{ {
$this->surveyorController = $surveyorController; $this->surveyorController = $surveyorController;
$this->inspeksiService = $inspeksiService;
} }
/** /**
@@ -108,8 +112,39 @@ class PenilaiController extends Controller
if ($lpj) { if ($lpj) {
$lpjData = json_decode($lpj->lpj, true); $lpjData = json_decode($lpj->lpj, true);
} }
$debitur = Debiture::find($permohonan->debiture_id);
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces')); $provinceCode = $debitur->province_code;
$cityCode = $debitur->city_code;
$districtCode = $debitur->district_code;
$cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null;
if ($cekAlamat) {
$provinceCode = $cekAlamat['province_code'] ?? $provinceCode;
$cityCode = $cekAlamat['city_code'] ?? $cityCode;
$districtCode = $cekAlamat['district_code'] ?? $districtCode;
// Ambil data menggunakan kode yang telah ditentukan
}
$cities = City::where('province_code', $provinceCode)->get();
$districts = District::where('city_code', $cityCode)->get();
$villages = Village::where('district_code', $districtCode)->get();
if ($forminspeksi) {
if (isset($forminspeksi['alamat']['sesuai']['province_code'])) {
$cities = City::where('province_code', $forminspeksi['alamat']['sesuai']['province_code'])->get();
}
if (isset($forminspeksi['alamat']['sesuai']['city_code'])) {
$districts = District::where('city_code', $forminspeksi['alamat']['sesuai']['city_code'])->get();
}
if (isset($forminspeksi['alamat']['sesuai']['district_code'])) {
$villages = Village::where('district_code', $forminspeksi['alamat']['sesuai']['district_code'])->get();
}
}
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'cekAlamat', 'cities', 'districts', 'villages'));
} }
public function standard(Request $request, $id) public function standard(Request $request, $id)
@@ -145,8 +180,39 @@ class PenilaiController extends Controller
if ($lpj) { if ($lpj) {
$lpjData = json_decode($lpj->lpj, true); $lpjData = json_decode($lpj->lpj, true);
} }
$debitur = Debiture::find($permohonan->debiture_id);
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces')); $provinceCode = $debitur->province_code;
$cityCode = $debitur->city_code;
$districtCode = $debitur->district_code;
$cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null;
if ($cekAlamat) {
$provinceCode = $cekAlamat['province_code'] ?? $provinceCode;
$cityCode = $cekAlamat['city_code'] ?? $cityCode;
$districtCode = $cekAlamat['district_code'] ?? $districtCode;
// Ambil data menggunakan kode yang telah ditentukan
}
$cities = City::where('province_code', $provinceCode)->get();
$districts = District::where('city_code', $cityCode)->get();
$villages = Village::where('district_code', $districtCode)->get();
if ($forminspeksi) {
if (isset($forminspeksi['alamat']['sesuai']['province_code'])) {
$cities = City::where('province_code', $forminspeksi['alamat']['sesuai']['province_code'])->get();
}
if (isset($forminspeksi['alamat']['sesuai']['city_code'])) {
$districts = District::where('city_code', $forminspeksi['alamat']['sesuai']['city_code'])->get();
}
if (isset($forminspeksi['alamat']['sesuai']['district_code'])) {
$villages = Village::where('district_code', $forminspeksi['alamat']['sesuai']['district_code'])->get();
}
}
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'cekAlamat', 'cities', 'districts', 'villages'));
} }
public function resume(Request $request) public function resume(Request $request)
@@ -989,21 +1055,9 @@ class PenilaiController extends Controller
{ {
DB::beginTransaction(); DB::beginTransaction();
try { try {
$formRequest = new FormSurveyorRequest();
$formRequest->setContainer(app());
$formRequest->initialize(
$request->all(),
$request->query->all(),
$request->attributes->all(),
$request->cookies->all(),
$request->files->all(),
$request->server->all(),
$request->getContent()
);
$validated = $formRequest->validateResolved(); $validatedData = $request->all();
$result = $this->inspeksiService->storeInspeksi($validatedData, $request->input('type'), $request);
$result = $this->surveyorController->store($formRequest);
$data = [ $data = [
@@ -1061,7 +1115,7 @@ class PenilaiController extends Controller
'message' => 'Berhasil menyimpan LPJ', 'message' => 'Berhasil menyimpan LPJ',
'data' => $result 'data' => $result
], 200); ], 200);
} catch (\Throwable $e) { }catch (\Throwable $e) {
DB::rollBack(); DB::rollBack();
return response()->json([ return response()->json([
'success' => false, 'success' => false,
@@ -1290,6 +1344,8 @@ class PenilaiController extends Controller
// return $pdf; // return $pdf;
$cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan); $cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan);
$pdf->setPaper('A4', 'portrait'); $pdf->setPaper('A4', 'portrait');
$pdf->set_option('isHtml5ParserEnabled', true);
$pdf->set_option('isPhpEnabled', true);
return response($pdf->output(), 200) return response($pdf->output(), 200)
->header('Content-Type', 'application/pdf') ->header('Content-Type', 'application/pdf')
->header('Content-Disposition', 'inline; filename="Laporan_' . $tipeLaporan . '_' . $permohonan->debiture->name . '_' . $cleanNomorLaporan . '.pdf"'); ->header('Content-Disposition', 'inline; filename="Laporan_' . $tipeLaporan . '_' . $permohonan->debiture->name . '_' . $cleanNomorLaporan . '.pdf"');
@@ -1317,6 +1373,8 @@ class PenilaiController extends Controller
// return $pdf; // return $pdf;
$cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan); $cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan);
$pdf->setPaper('A4', 'portrait'); $pdf->setPaper('A4', 'portrait');
$pdf->set_option('isHtml5ParserEnabled', true);
$pdf->set_option('isPhpEnabled', true);
return $pdf->download('Laporan_' . $tipeLaporan . '_' . $permohonan->debiture->name . '_' . $cleanNomorLaporan . '_data.pdf'); return $pdf->download('Laporan_' . $tipeLaporan . '_' . $permohonan->debiture->name . '_' . $cleanNomorLaporan . '_data.pdf');
} }
} catch (\Exception $e) { } catch (\Exception $e) {
@@ -1409,7 +1467,7 @@ class PenilaiController extends Controller
public function generateNoLaporan($permohonan, $documentId, $type) public function generateNoLaporan($permohonan, $documentId, $type)
{ {
$typeMapping = ['sederhana' => 'LPJ', 'standard' => 'LPJ', 'memo' => 'MAK', 'rap' => 'RAP', 'call-report' => 'CR']; $typeMapping = ['lpj' => 'LPJ', 'memo' => 'MAK', 'rap' => 'RAP', 'call-report' => 'CR'];
// Cek apakah data sudah ada // Cek apakah data sudah ada
$laporan = Laporan::where([ $laporan = Laporan::where([
@@ -1698,7 +1756,7 @@ class PenilaiController extends Controller
$permohonan->update([ $permohonan->update([
'status' => 'revisi-survey', 'status' => 'revisi-survey',
'keterangan' => $request->keterangan, 'keterangan' => $request->message,
'submitted_at' => now() 'submitted_at' => now()
]); ]);

File diff suppressed because it is too large Load Diff

View File

@@ -815,7 +815,7 @@ class TenderController extends Controller
} }
} }
return redirect()->route('tender.penawaran.ulang.index') return redirect()->back()
->with('success', 'Email Penawaran Berhasil Terkirim!'); ->with('success', 'Email Penawaran Berhasil Terkirim!');
} catch (\Exception $e) { } catch (\Exception $e) {
// Log email gagal untuk setiap KJPP // Log email gagal untuk setiap KJPP
@@ -871,7 +871,7 @@ class TenderController extends Controller
} }
} }
return redirect()->route('tender.penawaran.showKirimEmail', ['noreg' => $noreg]) return redirect()->back()
->with('error', 'Email Penawaran Gagal Terkirim!'); ->with('error', 'Email Penawaran Gagal Terkirim!');
} }
} }
@@ -1015,7 +1015,7 @@ class TenderController extends Controller
} }
} }
return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!'); return redirect()->back()->with('success', 'Email Penawaran Berhasil Terkirim!');
} catch (\Exception $e) { } catch (\Exception $e) {
// Log email gagal // Log email gagal
foreach ($kjpps as $email) { foreach ($kjpps as $email) {
@@ -1067,7 +1067,7 @@ class TenderController extends Controller
} }
} }
return redirect()->route('tender.penawaran.showKirimEmail', ['noreg' => $noreg])->with('error', 'Email Penawaran Gagal Terkirim!'); return redirect()->back()->with('error', 'Email Penawaran Gagal Terkirim!');
} }
} }
} }

View File

@@ -626,6 +626,8 @@ class FormSurveyorRequest extends FormRequest
'foto_bhumi' => 'nullable', 'foto_bhumi' => 'nullable',
'foto_argis_region' => 'nullable', 'foto_argis_region' => 'nullable',
'foto_tempat' => 'nullable', 'foto_tempat' => 'nullable',
'upload_gs' => 'nullable',
'foto_sentuh_tanahku' => 'nullable',
'keterangan' => 'nullable|array', 'keterangan' => 'nullable|array',
]; ];
} }
@@ -687,6 +689,8 @@ class FormSurveyorRequest extends FormRequest
'foto_bhumi' => 'nullable', 'foto_bhumi' => 'nullable',
'foto_argis_region' => 'nullable', 'foto_argis_region' => 'nullable',
'foto_tempat' => 'nullable', 'foto_tempat' => 'nullable',
'upload_gs' => 'nullable',
'foto_sentuh_tanahku' => 'nullable',
'keterangan' => 'nullable|array', 'keterangan' => 'nullable|array',
]; ];

View File

@@ -0,0 +1,67 @@
<?php
namespace Modules\Lpj\Models;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
class LampiranDokumen extends Base
{
protected $table = 'lampiran_dokumen';
protected $fillable = ['permohonan_id', 'nama_file', 'path_file', 'keterangan'];
public function permohonan()
{
return $this->belongsTo(Permohonan::class);
}
/**
* Upload lampiran dokumen for penilai or administrator
*
* @param int $permohonanId
* @param array $fileData
* @return LampiranDokumen|null
*/
public static function uploadLampiran($fileData)
{
$user = Auth::user();
if ($user && ($user->hasRole('penilai') || $user->hasRole('administrator'))) {
$file = $fileData['file'];
$keterangan = $fileData['keterangan'] ?? null;
$fileName = $fileData['nama_file'] ?? time() . '_' . $file->getClientOriginalName();
$filePath = $file->storeAs('lampiran_dokumen', $fileName, 'public');
return self::create([
'permohonan_id' => $fileData['permohonan_id'] ?? null,
'nama_file' => $fileName,
'path_file' => $filePath,
'keterangan' => $keterangan,
]);
}
return null;
}
/**
* Delete lampiran dokumen
*
* @return bool
*/
public function deleteLampiran()
{
$user = Auth::user();
if ($user && ($user->hasRole('penilai') || $user->hasRole('administrator'))) {
// Delete the file from storage
Storage::disk('public')->delete($this->path_file);
// Delete the database record
return $this->delete();
}
return false;
}
}

View File

@@ -161,7 +161,8 @@
return $this->belongsTo(JenisFasilitasKredit::class); return $this->belongsTo(JenisFasilitasKredit::class);
} }
public function jenisPenilaian(){ public function jenisPenilaian()
{
return $this->belongsTo(JenisPenilaian::class); return $this->belongsTo(JenisPenilaian::class);
} }
@@ -170,7 +171,8 @@
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi'); return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
} }
public function penilai(){ public function penilai()
{
return $this->belongsTo(Penilai::class, 'id', 'permohonan_id'); return $this->belongsTo(Penilai::class, 'id', 'permohonan_id');
} }
@@ -199,27 +201,38 @@
return $this->hasMany(DokumenJaminan::class); return $this->hasMany(DokumenJaminan::class);
} }
public function pembatalan(){ public function pembatalan()
{
return $this->hasMany(PermohonanPembatalan::class); return $this->hasMany(PermohonanPembatalan::class);
} }
public function approveBayar(){ public function approveBayar()
{
return $this->belongsTo(User::class, 'approve_bayar_by', 'id'); return $this->belongsTo(User::class, 'approve_bayar_by', 'id');
} }
public function approveEo(){ public function approveEo()
{
return $this->belongsTo(User::class, 'approval_eo', 'id'); return $this->belongsTo(User::class, 'approval_eo', 'id');
} }
public function approveDd(){ public function approveDd()
{
return $this->belongsTo(User::class, 'approval_dd', 'id'); return $this->belongsTo(User::class, 'approval_dd', 'id');
} }
public function approveSo(){ public function approveSo()
{
return $this->belongsTo(User::class, 'approval_so', 'id'); return $this->belongsTo(User::class, 'approval_so', 'id');
} }
public function authorization(){ public function authorization()
{
return $this->belongsTo(Authorization::class, 'id', 'permohonan_id'); return $this->belongsTo(Authorization::class, 'id', 'permohonan_id');
} }
public function lampiranDokumen()
{
return $this->hasMany(LampiranDokumen::class);
}
} }

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLampiranDokumenTable extends Migration
{
public function up()
{
Schema::create('lampiran_dokumen', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('permohonan_id');
$table->string('nama_file');
$table->string('path_file');
$table->text('keterangan')->nullable();
$table->timestamps();
$table->softDeletes();
$table->unsignedBigInteger('created_by')->nullable();
$table->unsignedBigInteger('updated_by')->nullable();
$table->unsignedBigInteger('deleted_by')->nullable();
$table->foreign('permohonan_id')->references('id')->on('permohonan')->onDelete('cascade');
});
}
public function down()
{
Schema::dropIfExists('lampiran_dokumen');
}
}

View File

@@ -68,36 +68,36 @@
{{ $penawaran->tujuanPenilaianKjpp->name }} {{ $penawaran->tujuanPenilaianKjpp->name }}
</span> </span>
</div> </div>
@else @else
<div class="mb-5"> <div class="mb-5">
<h3 class="text-md font-medium text-gray-900"> <h3 class="text-md font-medium text-gray-900">
Tujan Permohonan: Tujan Permohonan:
</h3> </h3>
<span class="text-2sm text-gray-700"> <span class="text-2sm text-gray-700">
{{ $permohonan->tujuanPenilaian->name }} {{ $permohonan->tujuanPenilaian->name }}
</span> </span>
</div> </div>
<div class="mb-5"> <div class="mb-5">
<h3 class="text-md font-medium text-gray-900"> <h3 class="text-md font-medium text-gray-900">
Nilai Plafond: Nilai Plafond:
</h3> </h3>
<span class="text-2sm text-gray-700"> <span class="text-2sm text-gray-700">
{{ $permohonan->nilaiPlafond->name }} {{ $permohonan->nilaiPlafond->name }}
</span> </span>
</div> </div>
<div class="mb-5"> <div class="mb-5">
<h3 class="text-md font-medium text-gray-900"> <h3 class="text-md font-medium text-gray-900">
Status Bayar: Status Bayar:
</h3> </h3>
<span <span
class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase"> class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase">
{{ str_replace('_', ' ', $permohonan->status_bayar) }} {{ str_replace('_', ' ', $permohonan->status_bayar) }}
</span> </span>
</div> </div>
@endif @endif
</div> </div>
</div> </div>
@@ -199,6 +199,8 @@
</div> </div>
</div> </div>
<div class="card border border-agi-100 min-w-full"> <div class="card border border-agi-100 min-w-full">
<div class="card-header light:bg-agi-50"> <div class="card-header light:bg-agi-50">
<h3 class="card-title"> <h3 class="card-title">
@@ -263,83 +265,83 @@
</div> </div>
</div> </div>
@endif @endif
<div class="card-table scrollable-x-auto pb-3"> <div class="card-table scrollable-x-auto pb-3">
<a href="{{ route('debitur.jaminan.bulk.download', ['id' => $permohonan->debiture->id, 'jaminan' => $dokumen->id]) }}" <a href="{{ route('debitur.jaminan.bulk.download', ['id' => $permohonan->debiture->id, 'jaminan' => $dokumen->id]) }}"
class="ml-6 btn btn-dark dark:btn-light"> class="ml-6 btn btn-dark dark:btn-light">
<i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen <i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen
</a> </a>
<table class="table align-middle text-sm text-gray-500"> <table class="table align-middle text-sm text-gray-500">
@foreach ($dokumen->detail as $detail) @php $document = $dokumen; @endphp
@foreach($document->detail as $detail)
@if(isset($detail->dokumen_jaminan))
<tr> <tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]"> <td colspan="2">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }} <strong class="text-2xs text-gray-600 uppercase">
</td> {{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
<td class="py-2 text-gray-800 font-normal text-2sm"> </strong>
{{ $detail->name ?? '' }}
</td> </td>
</tr> </tr>
@if(isset($detail->details))
@if(json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
<tr>
<td class="py-3 capitalize">
{{formatLabel($key)}}
</td>
<td class="py-2 text-gray-800 font-normal text-2sm">
{{ $value ?? "" }}
</td>
</tr>
@endforeach
@endif
@endif
<tr>
<td class="py-3 max-w-[100px] align-top">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if (isset($detail->dokumen_jaminan)) @if(isset($detail->dokumen_jaminan))
@php @php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan];
? json_decode($detail->dokumen_jaminan) $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) ? json_decode($detail->dokumen_nomor) : ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []);
: [$detail->dokumen_jaminan]; @endphp
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) @foreach($dokumen_jaminan as $index => $dokumen)
? json_decode($detail->dokumen_nomor) <tr>
: ($detail->dokumen_nomor <td>
? [$detail->dokumen_nomor] <span class="text-2xs text-gray-600 uppercase pl-3">
: []); {{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] }}
@endphp </span>
@foreach ($dokumen_jaminan as $index => $dokumen) </td>
<div class="flex w-full lg:w-[30%]"> <td class="text-left">
@if (in_array(Auth::user()->roles[0]->name, ['administrator', 'pemohon-eo'])) @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
@if (!empty($dokumen_nomor)) <a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
<span class="flex-1 mt-2 text-info">Nomor Dokumen : class="flex-none badge badge-sm badge-outline mt-2 mr-2">
{{ $dokumen_nomor[$index] }}</span> {{ basename($dokumen) }}
@endif <i class="ki-filled ki-cloud-download"></i>
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}" </a>
class="flex-none badge badge-sm badge-outline mt-2 mr-2"> @endif
{{ basename($dokumen) }} <span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')">
<i class="ki-filled ki-cloud-download"></i> <i class="ki-filled ki-eye mr-2"></i>Preview
</a> </span>
@endif </td>
<span class="flex-none badge badge-sm badge-outline badge-warning mt-2" </tr>
onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')"><i
class="ki-filled ki-eye mr-2"></i>Preview</span> @if(isset($detail->details) && isset(json_decode($detail->details)[$index]))
</div> @foreach (json_decode($detail->details)[$index] as $key => $value)
<br> <tr>
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
- {{ str_replace("_"," ",$key) ?? "" }}
</span>
</td>
<td class="text-left">
<p class="text-2xs text-gray-600 max-w-[250px]">
{{ $value }}
</p>
</td>
</tr>
@endforeach @endforeach
@endif @endif
@endforeach
@endif
</td>
</tr>
<tr> <tr>
<td class="py-3 max-w-[100px]"> <td>
Keterangan <span class="text-2xs text-gray-600 uppercase pl-3">
- keterangan
</span>
</td> </td>
<td class="py-3 text-gray-700 text-2sm font-normal"> <td class="text-right">
{{ $detail->keterangan ?? '' }} <p class="text-2xs text-gray-600 max-w-[250px]">
{{ $detail->keterangan }}
</p>
</td> </td>
</tr> </tr>
@endif
@endforeach @endforeach
</table> </table>
</div> </div>
@@ -349,6 +351,75 @@
</div> </div>
@if (!isset($status)) @if (!isset($status))
</div> </div>
<!-- New section for Lampiran Dokumen -->
<div class="card border border-agi-100 min-w-full mt-5">
<div class="card-header light:bg-agi-50">
<h3 class="card-title">
Lampiran Dokumen
</h3>
</div>
<div class="card-body">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
@forelse($permohonan->lampiranDokumen as $lampiran)
<div class="border p-4 rounded-lg">
<h4 class="font-semibold mb-2">{{ $lampiran->nama_file }}</h4>
<p class="text-sm text-gray-600 mb-2">Keterangan : {{ $lampiran->keterangan }}</p>
<div class="flex justify-between items-center">
<div>
<a href="{{ Storage::url($lampiran->path_file) }}" target="_blank" class="text-blue-600 hover:underline">
<i class="ki-filled ki-eye mr-2"></i>View
</a>
<a href="{{ Storage::url($lampiran->path_file) }}" download="{{ Storage::url($lampiran->path_file) }}" class="text-green-600 hover:underline ml-4">
<i class="ki-filled ki-cloud-download mr-2"></i>Download
</a>
</div>
@if(Auth::user()->hasRole('administrator'))
<form action="{{ route('lampiran.delete', $lampiran->id) }}" method="POST" onsubmit="return confirm('Are you sure you want to delete this lampiran?');">
@csrf
@method('DELETE')
<button type="submit" class="text-red-600 hover:underline">
<i class="ki-filled ki-trash mr-2"></i>Delete
</button>
</form>
@endif
</div>
</div>
@empty
<p class="col-span-3 text-center text-gray-500">Tidak ada lampiran dokumen.</p>
@endforelse
</div>
@if(Auth::user()->hasRole(['Penilai', 'administrator','penilai']))
<form action="{{ route('lampiran.upload',) }}" method="POST" enctype="multipart/form-data" class="mt-6">
@csrf
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label for="nama_file" class="block text-sm font-medium text-gray-700">Nama File</label>
<input type="text" name="nama_file" id="nama_file" required class="input mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md">
</div>
<div>
<label for="file" class=" block text-sm font-medium text-gray-700">File</label>
<input type="file" name="file" id="file" required class="file-input mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md">
</div>
<div class="md:col-span-2">
<label for="keterangan" class="block text-sm font-medium text-gray-700">Keterangan</label>
<textarea name="keterangan" id="keterangan" rows="3" class="textarea mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 rounded-md"></textarea>
</div>
</div>
<div class="mt-4">
<button type="submit" class="inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
Upload Lampiran
</button>
</div>
</form>
@endif
</div>
</div>
@include('lpj::component.history-permohonan') @include('lpj::component.history-permohonan')
@endif @endif
@include('lpj::component.pdfviewer') @include('lpj::component.pdfviewer')

View File

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

View File

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

View File

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

View File

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

View File

@@ -150,7 +150,7 @@
tujuan_penilaian: { tujuan_penilaian: {
title: 'Tujuan Penilaian', title: 'Tujuan Penilaian',
render: (item, data) => { render: (item, data) => {
return `${data.permohonan.penawaran?.tujuanPenilaianKjpp.name}` ?? ''; return `${data.permohonan.penawaran?.tujuan_penilaian_kjpp?.name}` ?? '';
} }
}, },
jenis_jaminan: { jenis_jaminan: {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,151 +1,155 @@
<table style="width: 100%; "> <div class="no-break">
<tr> <table style="width: 100%; ">
<td style="width: 100%; border: 1px solid #000; text-align: center;"> <tr>
ANALISA TANAH <td style="width: 100%; border: 1px solid #000; text-align: center;">
</td> ANALISA TANAH
</tr> </td>
</table> </tr>
</table>
<table style="width: 100%; "> <table style="width: 100%; ">
<tr> <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 @php
$bentukTanah = isset($forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) $cekLuas = isset($forminspeksi['tanah']['luas_tanah']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai';
? $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']
: []; $luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null;
$lainnya = isset($forminspeksi['tanah']['bentuk_tanah']['lainnya'])
? $forminspeksi['tanah']['bentuk_tanah']['lainnya']
: null;
@endphp @endphp
<td style="width: 25%; padding: 2px; vertical-align: top;">Luas Tanah</td>
{{ !empty($bentukTanah) ? implode(', ', $bentukTanah) : '' }} <td style=" width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="width: 74%; padding: 2px; vertical-align: top;">{{ $luas ?? '' }}</td>
@if (!empty($bentukTanah) && in_array('Lainnya', $bentukTanah) && !is_null($lainnya)) </tr>
({{ $lainnya }}) <tr>
@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 @php
$konturTanah = $forminspeksi['tanah']['kontur_tanah'] ?? []; $cekMataAngin = isset($forminspeksi['tanah']['hadap_mata_angin']['tidak sesuai'])
? 'tidak sesuai'
: 'sesuai';
$Arah = $forminspeksi['tanah']['hadap_mata_angin'][$cekMataAngin] ?? null;
@endphp @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
@if (!empty($konturTanah)) {{ !empty($bentukTanah) ? implode(', ', $bentukTanah) : '' }}
{{ 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 (!empty($bentukTanah) && in_array('Lainnya', $bentukTanah) && !is_null($lainnya))
@if ($ketinggian === 'Lebih Tinggi' && $lebihTinggi !== null) ({{ $lainnya }})
(Ketinggian: {{ $lebihTinggi }} cm) @endif
@elseif($ketinggian === 'Lebih Rendah' && $lebihRendah !== null)
(Kerendahan: {{ $lebihRendah }} cm)
@endif
</td>
</tr> </td>
<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 = $forminspeksi['tanah']['posisi_kavling']['posisi_kavling'] ?? [];
$lainnya = $forminspeksi['tanah']['posisi_kavling']['lainnya'] ?? null;
@endphp
{{ !empty($posisiKavling) ? implode(', ', $posisiKavling) : '' }} </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($posisiKavling) && in_array('Lainnya', $posisiKavling) && !empty($lainnya)) @if (!empty($konturTanah))
({{ $lainnya }}) {{ implode(', ', $konturTanah) }}
@endif @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
</td> {{ $ketinggian }}
</tr> @if ($ketinggian === 'Lebih Tinggi' && $lebihTinggi !== null)
(Ketinggian: {{ $lebihTinggi }} cm)
@elseif($ketinggian === 'Lebih Rendah' && $lebihRendah !== null)
(Kerendahan: {{ $lebihRendah }} cm)
@endif
</td>
</tr> </tr>
<tr> <tr>
<td>Tusuk Sate</td> <td>Kontur Jalan Depan Objek</td>
<td>:</td> <td>:</td>
<td> <td>
{{ isset($forminspeksi['tanah']['tusuk_sate']) && $forminspeksi['tanah']['tusuk_sate']['Ya'] ? 'Ya' : 'Tidak' }} {{ $forminspeksi['tanah']['kontur_jalan'] == 'menurun' ? 'Menurun' : 'Rata' }}
@if (isset($forminspeksi['tanah']['tusuk_sate']) && $forminspeksi['tanah']['tusuk_sate']['Ya']) </td>
{{ isset($forminspeksi['tanah']['tusuk_sate_ya']) ? ' (' . $forminspeksi['tanah']['tusuk_sate_ya'] . ')' : '' }} </tr>
@endif <tr>
<td>Posisi Kavling</td>
<td>:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$posisiKavling = $forminspeksi['tanah']['posisi_kavling']['posisi_kavling'] ?? [];
$lainnya = $forminspeksi['tanah']['posisi_kavling']['lainnya'] ?? null;
@endphp
</td> {{ !empty($posisiKavling) ? implode(', ', $posisiKavling) : '' }}
</tr>
<tr>
<td>Lockland</td>
<td>:</td>
<td>
{{ isset($forminspeksi['tanah']['lockland']) && $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'] ?? null;
@endphp
{{ $kondisiFisikTanah }} @if (!empty($posisiKavling) && in_array('Lainnya', $posisiKavling) && !empty($lainnya))
@if ($kondisiFisikTanah === 'Lainnya' && !empty($lainnya)) ({{ $lainnya }})
({{ $lainnya }}) @endif
@endif
</td> </td>
</tr>
</tr> </tr>
<tr>
<td>Tusuk Sate</td>
<td>:</td>
<td>
{{ isset($forminspeksi['tanah']['tusuk_sate']) && is_array($forminspeksi['tanah']['tusuk_sate']) && !empty($forminspeksi['tanah']['tusuk_sate']['Ya']) ? 'Ya' : 'Tidak' }}
</table> @if (isset($forminspeksi['tanah']['tusuk_sate']) &&
is_array($forminspeksi['tanah']['tusuk_sate']) &&
!empty($forminspeksi['tanah']['tusuk_sate']['Ya']))
{{ isset($forminspeksi['tanah']['tusuk_sate_ya']) ? ' (' . $forminspeksi['tanah']['tusuk_sate_ya'] . ')' : '' }}
@endif
</td>
</tr>
<tr>
<td>Lockland</td>
<td>:</td>
<td>
{{ isset($forminspeksi['tanah']['lockland']) && $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'] ?? null;
@endphp
{{ $kondisiFisikTanah }}
@if ($kondisiFisikTanah === 'Lainnya' && !empty($lainnya))
({{ $lainnya }})
@endif
</td>
</tr>
</table>
</div>

View File

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

View File

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

View File

@@ -109,10 +109,20 @@
@php @php
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat', 'foto_sentuh_tanahku']; $fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
$customLabels = [
'upload_gs' => 'Gambar Situasi',
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
'foto_gistaru' => 'Gistaru',
'foto_bhumi' => 'Bhumi',
'foto_argis_region' => 'Blad Tata Ruang',
'foto_tempat' => 'Tempat',
];
if (($key = array_search('upload_gs', $fotoTypes)) !== false) {
unset($fotoTypes[$key]); unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat'); array_unshift($fotoTypes, 'upload_gs');
} }
$adaFoto = false; $adaFoto = false;
if (isset($forminspeksi)) { if (isset($forminspeksi)) {
@@ -129,12 +139,11 @@
@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 uppercase">
Peta GS, Tata Ruang dan 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)
@@ -147,7 +156,7 @@
<img src="{{ asset('storage/' . $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">{{ $customLabels[$type] ?? '' }}</p>
</div> </div>
@empty @empty
<p>Tidak ada tipe foto yang tersedia</p> <p>Tidak ada tipe foto yang tersedia</p>

View File

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

View File

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

View File

@@ -100,58 +100,7 @@
</tr> </tr>
@endif @endif
@if (@isset($dokumen)) @include('lpj::component.print-out-dokument')
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td style=" padding: 2px;">
{{ $detail->name ?? '' }}
</td>
<td style=" padding: 2px;">:</td>
<td style=" padding: 2px;">
@if (isset($detail->dokumen_jaminan))
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<div>
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
</div>
@endforeach
@endif
</td>
@endif
</tr>
@if (isset($detail->details))
@if (json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px;"> {{formatLabel($key)}}</td>
<td style=" padding: 2px;">:</td>
<td style="">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endif
@endforeach
@endif
<tr> <tr>
<td style="width: 20%; padding: 2px;">Tanggal Penilaian</td> <td style="width: 20%; padding: 2px;">Tanggal Penilaian</td>
@@ -369,16 +318,6 @@
</tr> </tr>
</table> </table>
<div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center">
FOTO JAMINAN
</h6>
</div>
@include('lpj::penilai.components.foto-jaminan')
</div>
</main> </main>
@include('lpj::penilai.components.footer') @include('lpj::penilai.components.footer')

View File

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

View File

@@ -164,55 +164,7 @@
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['province_code'] ?? '' }}</td> <td style=" padding: 2px; vertical-align: top;">{{ $alamat['province_code'] ?? '' }}</td>
</tr> </tr>
@if (@isset($dokumen)) @include('lpj::component.print-out-dokument')
@foreach ($dokumen->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td style="padding: 2px; vertical-align: top;">{{ $detail->name ?? '' }}</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<div>
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
</div>
@endforeach
</td>
</tr>
@endif
@if (isset($detail->details) && json_decode($detail->details))
@foreach (json_decode($detail->details) as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="padding: 2px; vertical-align: top;">
{{formatLabel($key)}}
</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endforeach
@endif
@if (isset($forminspeksi['asset']['nomor_nib'])) @if (isset($forminspeksi['asset']['nomor_nib']))
<tr> <tr>
@@ -825,10 +777,10 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 3px; text-align: right; width:30%"> <td style="padding: 3px; text-align: right; width:20%">
{{ $lpjData['likuidasi'] ?? '' }}% {{ $lpjData['likuidasi'] ?? '' }}%
</td> </td>
<td style="padding: 3px; text-align: left; font-weight: bold; width:30%"> <td style="padding: 3px; text-align: left; font-weight: bold; width:40%">
<span style="padding-left:20px; padding-right: 20px">X</span> Total Nilai Pasar Wajar <span style="padding-left:20px; padding-right: 20px">X</span> Total Nilai Pasar Wajar
</td> </td>
<td style="padding: 3px; text-align: left; width:40%;"> <td style="padding: 3px; text-align: left; width:40%;">
@@ -1068,107 +1020,6 @@
</tr> </tr>
</table> </table>
</div> </div>
<div class="page-break"></div>
<table style="width: 100%; border-collapse: collapse; border: 1px solid #000;">
<tr>
<td style="width:20%; padding: 2px; border: 1px solid #000">Nama Debitur</td>
<td style=" width: 1%; padding: 2px; border: 1px solid #000">:</td>
<td style="padding: 2px; border: 1px solid #000">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
<tr>
<td style="padding: 2px; border: 1px solid #000">Nomor Laporan</td>
<td style="padding: 2px; border: 1px solid #000">:</td>
<td style="padding: 2px; border: 1px solid #000">{{ $nomorLaporan }}</td>
</tr>
<tr>
<td style="padding: 2px; border: 1px solid #000">Tanggal Laporan</td>
<td style="padding: 2px; border: 1px solid #000">:</td>
<td style="padding: 2px; border: 1px solid #000">{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}
</td>
</tr>
</table>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center;">
PETA
</h6>
</div>
<div class="photo-container">
@php
$fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat');
}
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
return isset($forminspeksi[$type]) &&
file_exists(storage_path('app/public/' . $forminspeksi[$type]));
});
@endphp
<table width="100%" border="0">
<tr>
@if (count($validPhotoTypes) === 1)
@php
$type = reset($validPhotoTypes);
$imagePath = $forminspeksi[$type] ?? null;
@endphp
<td style="width: 100%; vertical-align: top; text-align: center" colspan="2"
class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
@if ($imagePath)
<img src="{{ storage_path('app/public/' . $imagePath) }}"
alt="{{ $imagePath }}" class="photo-image"
style="width: 100%; max-width: 300px;">
@endif
</td>
@else
@foreach ($fotoTypes as $index => $type)
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@isset($imagePath)
<td style="width: 50%; vertical-align: top; text-align: center" class="photo-item border">
<p style="margin: 0; font-size: 10px; text-align: center;">
{{ Str::title(str_replace('_', ' ', $type)) }}
</p>
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ storage_path('app/public/' . $imagePath) }}"
alt="{{ $imagePath }}" class="photo-image"
style="width: 100%; max-width: 300px;">
@endif
</td>
@endisset
@if (($index + 1) % 2 == 0)
</tr>
<tr>
@endif
@endforeach
@if (count($fotoTypes) % 2 != 0)
<td style="width: 50%;"></td>
@endif
@endif
</tr>
</table>
</div>
</div>
<div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center">
FOTO JAMINAN
</h6>
</div>
@include('lpj::penilai.components.foto-jaminan')
</div>
</div>
</main> </main>
@include('lpj::penilai.components.footer') @include('lpj::penilai.components.footer')

View File

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

View File

@@ -62,69 +62,9 @@
</tr> </tr>
<tr> @include('lpj::component.print-out-dokument')
<td style="vertical-align: top;">Legalitas</td>
<td style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
<table style="margin: 0; padding: 0;">
@if (isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td style="padding: 0; margin: 0;">
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
@endforeach
</td>
@endif
</tr>
@endforeach
@endif
</table>
</td>
</tr>
<tr>
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@if (isset($detail->details))
@php
$details = json_decode($detail->details, true);
@endphp
@if ($details)
@foreach ($details as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style=""> {{formatLabel($key)}}</td>
<td style=" padding: 2px;">:</td>
<td style="">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
</td>
</tr>
@endif
@endforeach
@endif
@endif
@endforeach
@endforeach
@endif
</tr>
<tr> <tr>
<td width="25%">Terletak di</td> <td width="25%">Terletak di</td>
<td style="width: 1%; vertical-align: top;">:</td> <td style="width: 1%; vertical-align: top;">:</td>
@@ -335,16 +275,6 @@
<td>Resume ini sudah di setujui</td> <td>Resume ini sudah di setujui</td>
</tr> </tr>
</table> </table>
<div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center">
FOTO JAMINAN
</h6>
</div>
@include('lpj::penilai.components.foto-jaminan')
</div>
</main> </main>
@include('lpj::penilai.components.footer') @include('lpj::penilai.components.footer')

View File

@@ -22,7 +22,7 @@
@include('lpj::component.detail-jaminan', [ @include('lpj::component.detail-jaminan', [
'backLink' => 'penilai.show', 'backLink' => 'penilai.show',
'id' => $permohonan->id, 'id' => $permohonan->id,
'title' => 'Lampiran foto dan dokument', 'title' => 'Lampiran foto dan dokumen',
]) ])
@endif @endif

View File

@@ -95,22 +95,19 @@
<p class="flex w-full text-gray-600 font-medium text-sm"> <p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) ?? '' }}</p> {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) ?? '' }}</p>
</div> </div>
<label class="form-label max-w-56 "> @if (!in_array(strtolower($permohonan->tujuanPenilaian->name), ['penilaian ulang', 'asuransi', 'lelang']))
Status Bayar
</label> <label class="form-label max-w-56 ">
<div class="flex flex-wrap items-baseline w-full"> Status Bayar
@if (strtolower($permohonan->tujuanPenilaian->name) == </label>
'penilaian ulang') <div class="flex flex-wrap items-baseline w-full">
<span>-</span>
@else
<span <span
class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase"> class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase">
{{ str_replace('_', ' ', $permohonan->status_bayar) }} {{ str_replace('_', ' ', $permohonan->status_bayar) }}
</span> </span>
@endif </div>
</div>
</div> </div>
@endif
</div> </div>
</div> </div>
@@ -171,7 +168,7 @@
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm"> <p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->created_at) }}</p> {{ formatTanggalIndonesia($permohonan->penilaian->waktu_penilaian) }}</p>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@@ -180,7 +177,12 @@
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm"> <p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
@php
$tglLaporan = getNomorLaporan($permohonan->id, $dokumen->id, 'tanggal_laporan');
@endphp
{{ isset($tglLaporan) ? formatTanggalIndonesia($tglLaporan) : '-' }}</p>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@@ -223,7 +225,7 @@
<div class="flex gap-5"> <div class="flex gap-5">
<a class="btn btn-primary" <a class="btn btn-primary"
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}"> href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
Lampiran Foto dan Dokument Lampiran Foto dan Dokumen
</a> </a>
@if (strtolower($permohonan->tujuanPenilaian->name) != 'rap') @if (strtolower($permohonan->tujuanPenilaian->name) != 'rap')
<a class="btn btn-primary" data-modal-toggle="#modal_2"> <a class="btn btn-primary" data-modal-toggle="#modal_2">

View File

@@ -1,212 +1,155 @@
@extends('layouts.auth') @extends('layouts.auth')
@push('styles')
<style>
@media print {
body {
font-size: 10pt;
color: #000;
background-color: #fff;
line-height: 1.4;
}
.container {
width: 100%;
max-width: 100%;
padding: 0;
margin: 0;
}
.crd {
border: none !important;
box-shadow: none !important;
margin-bottom: 15px;
}
.crd-header {
background-color: #f1f1f1 !important;
-webkit-print-color-adjust: exact;
padding: 3px 8px !important; /* Mengubah padding menjadi lebih tipis */
font-weight: bold;
font-size: 11pt; /* Sedikit memperkecil ukuran font */
}
.crd-body {
padding: 8px !important; /* Menyesuaikan padding body agar seimbang */
}
.no-print {
display: none !important;
}
.page-break {
page-break-before: always;
}
h1 {
font-size: 16pt;
margin-bottom: 15px;
}
h3 {
font-size: 12pt;
margin: 0;
}
h4 {
font-size: 11pt;
margin: 10px 0 5px;
}
p {
margin: 0 0 5px;
}
.grid {
display: flex;
flex-wrap: wrap;
}
.col-1 {
flex: 0 0 33.333%;
max-width: 33.333%;
}
.col-2 {
flex: 0 0 66.666%;
max-width: 66.666%;
}
}
</style>
@endpush
@section('content') @section('content')
<div class="w-full gap-5 mx-auto" id="printtable"> <div class="container" id="printtable">
<div class="gap-5 w-full">
<div class="card">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Nomor Register Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5 grid grid-cols-2"> <div class="crd">
<h3 class="text-md text-gray-900 w-1/2"> <div class="crd-body">
Pemohon <table style="width: 100%; border-collapse: collapse;">
</h3> <tr>
<span class="text-md font-medium text-gray-900 w-1/2"> <td style="width: 40%; vertical-align: top; padding-right: 10px;">
: {{ $permohonan->user->nik }} | {{ $permohonan->user->name }} @include('lpj::component.logo-bag')
</span> </td>
</div> <td style="width: 60%; vertical-align: top; text-align: right;">
<h1 style="font-size: 12pt; margin: 0; font-weight: bold;">PT BANK ARTHA GRAHA INTERNASIONAL</h1>
<p style="font-size: 10pt; margin:0;">Sub Direktorat Appraisal</p>
<p style="font-size: 10pt; margin: 0;">Jl. Kwitang Raya No. 24-26,<br>Jakarta 10420, Indonesia</p>
<p style="font-size: 10pt; margin: 0;">Telp. (021) 3903040</p>
</td>
</tr>
</table>
</div>
</div>
<div class="mb-5 grid grid-cols-2"> <div class="crd">
<h3 class="text-md text-gray-900 w-1/2"> <div class="crd-body">
Tujan Permohonan <div class="grid">
</h3> <div class="col-1">
<span class="text-md font-medium text-gray-900 w-1/2"> <p><strong>Nomor Register:</strong> {{ $permohonan->nomor_registrasi }}</p>
: {{ $permohonan->tujuanPenilaian->name }} <p><strong>Pemohon:</strong> {{ $permohonan->user->nik }} | {{ $permohonan->user->name }}</p>
</span> <p><strong>Tujuan Permohonan:</strong> {{ $permohonan->tujuanPenilaian->name }}</p>
</div> </div>
</div> <div class="col-1">
<div> <p><strong>Status Permohonan:</strong> {{ ucwords($permohonan->status) }}</p>
<div class="mb-5 grid grid-cols-2"> <p><strong>Cabang Pemohon:</strong> {{ $permohonan->user->branch->name }}</p>
<h3 class="text-md text-gray-900 w-1/2"> <p><strong>Tanggal Permohonan:</strong> {{ formatTanggalIndonesia($permohonan->created_at) }}</p>
Status Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ ucwords($permohonan->status) }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Cabang Pemohon
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ $permohonan->user->branch->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Tanggal Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ formatTanggalIndonesia($permohonan->created_at) }}
</span>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="gap-5 w-full grid grid-cols-3 mt-5"> </div>
<div>
<div class="card border border-agi-100 min-w-full">
<div class="card-header bg-agi-50" id="advanced_settings_appearance">
<h3 class="card-title">
1. Fasilitas Kredit
</h3>
</div>
<div class="card-body lg:py-7.5">
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Jenis Fasilitas
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $permohonan->jenisFasilitasKredit->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2"> <div class="grid">
<h3 class="text-md text-gray-900"> <div class="col-1">
Nilai Plafond <div class="crd">
</h3> <div class="crd-header">1. Fasilitas Kredit</div>
<span class="text-md font-medium text-gray-900"> <div class="crd-body">
: {{ $permohonan->nilaiPlafond->name }} <p><strong>Jenis Fasilitas:</strong> {{ $permohonan->jenisFasilitasKredit->name }}</p>
</span> <p><strong>Nilai Plafond:</strong> {{ $permohonan->nilaiPlafond->name }}</p>
</div>
</div>
</div>
<div class="card border border-agi-100 mt-5 min-w-full">
<div class="card-header bg-agi-50">
<h3 class="card-title">
2. Identitas Debutur
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
<div class="grid grid-cols-1 xl:grid-cols-2 gap-5 lg:gap-7.5">
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<tr>
<td class="py-2 text-gray-600 font-normal">
Name
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Cabang
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->branch->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
CIF
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->cif ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Alamat
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->address ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
&nbsp;
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }}
</td>
</tr>
</table>
</div>
</div>
</div>
</div> </div>
</div> </div>
<div class="col-span-2">
<div class="card border border-agi-100 min-w-full">
<div class="card-header bg-agi-50">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
@foreach($permohonan->documents as $dokumen)
<div class="card-body lg:py-7.5">
<span class="text-base text-gray-900 font-bold mb-5">
Jaminan {{ $loop->index + 1 }}
</span>
<div class="mb-5 grid grid-cols-2 mt-5"> <div class="crd">
<h3 class="text-md text-gray-900"> <div class="crd-header">2. Identitas Debitur</div>
Pemilik Jaminan <div class="crd-body">
</h3> <p><strong>Nama:</strong> {{ $permohonan->debiture->name ?? "" }}</p>
<span class="text-md font-medium text-gray-900"> <p><strong>Cabang:</strong> {{ $permohonan->debiture->branch->name ?? "" }}</p>
: {{ $dokumen->pemilik->name?? "" }} <p><strong>CIF:</strong> {{ $permohonan->debiture->cif ?? "" }}</p>
</span> <p><strong>Alamat:</strong> {{ $permohonan->debiture->address ?? "" }}</p>
</div> <p>{{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }}</p>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->jenisJaminan->name?? "" }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->pemilik->address ?? ""}},
<br> {{ $dokumen->pemilik->village->name ?? "" }}, {{ $dokumen->pemilik->district->name ?? "" }}, {{ $dokumen->pemilik->city->name ?? "" }}, {{ $dokumen->pemilik->province->name ?? "" }} - {{ $dokumen->pemilik->village->postal_code ?? "" }}
</span>
</div>
</div>
@endforeach
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="col-2">
<div class="crd">
<div class="crd-header">3. Data Jaminan</div>
<div class="crd-body">
@foreach($permohonan->documents as $index => $dokumen)
<h4>Jaminan {{ $index + 1 }}</h4>
<p><strong>Pemilik Jaminan:</strong> {{ $dokumen->pemilik->name ?? "" }}</p>
<p><strong>Jenis Jaminan:</strong> {{ $dokumen->jenisJaminan->name ?? "" }}</p>
<p><strong>Hubungan Pemilik Jaminan:</strong> {{ $dokumen->pemilik->hubungan_pemilik->name ?? "" }}</p>
@if(!$loop->last)<hr style="margin: 10px 0;">@endif
@endforeach
</div>
</div>
</div>
</div>
</div>
@endsection @endsection
@push('scripts') @push('scripts')
<script type="module"> <script type="module">
var printtable = document.getElementById('printtable'); window.onload = function() {
window.print(printtable); window.print();
</script> }
</script>
@endpush @endpush

View File

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

View File

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

View File

@@ -355,8 +355,6 @@
const preview = newCell.querySelector('img'); const preview = newCell.querySelector('img');
if (preview) { if (preview) {
preview.id = newImageId; preview.id = newImageId;
preview.src = '';
preview.accept = ".jpg,.jpeg,.png";
preview.classList.add('hidden'); preview.classList.add('hidden');
input.onchange = function() { input.onchange = function() {
const file = this.files[0]; const file = this.files[0];
@@ -704,8 +702,8 @@
console.log( console.log(
'Current route matches'); 'Current route matches');
} else { } else {
window.location.href = // window.location.href =
"{{ route('surveyor.show', ['id' => $permohonan->id]) }}"; // "{{ route('surveyor.show', ['id' => $permohonan->id]) }}";
} }
} }
@@ -745,6 +743,75 @@
input.value = formatCurrency(input.value); input.value = formatCurrency(input.value);
} }
}); });
// hide the "Lihat Objek Penilaian" toggle
const tableContainer = document.querySelector('.scrollable-x-auto');
const toggleContainer = document.createElement('div');
toggleContainer.className = 'flex items-center gap-4 mb-4 p-3 bg-gray-50 rounded';
const objekToggle = createCustomSwitch('Lihat Objek Penilaian', false, function(checked) {
toggleColumn(1, checked);
});
toggleContainer.appendChild(objekToggle);
tableContainer.parentNode.insertBefore(toggleContainer, tableContainer);
function createCustomSwitch(label, initialState, onChangeCallback) {
const container = document.createElement('div');
const switchLabel = document.createElement('label');
switchLabel.className = 'switch';
const input = document.createElement('input');
input.name = "check";
input.type = "checkbox";
input.value = "1";
input.checked = initialState;
const span = document.createElement('span');
span.className = 'switch-label';
span.textContent = label;
switchLabel.appendChild(input);
switchLabel.appendChild(span);
container.appendChild(switchLabel);
input.addEventListener('change', function() {
onChangeCallback(this.checked);
});
return container;
}
function toggleColumn(columnIndex, show) {
const table = document.getElementById('dataTable');
const rows = table.querySelectorAll('tr');
rows.forEach(row => {
const cells = row.querySelectorAll('td, th');
if (cells.length === 1 && cells[0].hasAttribute('colspan')) {
return;
}
if (cells[columnIndex]) {
cells[columnIndex].style.display = show ? '' : 'none';
}
});
const headerRow = table.querySelector('thead tr');
const headerCells = headerRow.querySelectorAll('th');
if (headerCells[columnIndex]) {
headerCells[columnIndex].style.display = show ? '' : 'none';
}
}
toggleColumn(1, false);
}); });
</script> </script>
@endpush @endpush

View File

@@ -98,7 +98,7 @@
</label> </label>
<input type="text" name="luas_denah[]" <input type="text" name="luas_denah[]"
class="input w-full number-format" class="input w-full number-format"
value="{{ isset($denah['luas_denah']) ? $denah['luas_denah'] . ' m²' : '' }}" value="{{ isset($denah['luas_denah']) ? $denah['luas_denah'] . ' m²' : '' }}"
onkeyup="formatNumber(this)"> onkeyup="formatNumber(this)">
</div> </div>
</div> </div>
@@ -351,8 +351,8 @@
confirmButtonText: 'OK' confirmButtonText: 'OK'
}).then((response) => { }).then((response) => {
if (response.isConfirmed) { if (response.isConfirmed) {
window.location.href = // window.location.href =
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}'; // '{{ route('surveyor.show', ['id' => $permohonan->id]) }}';
} }
}); });
} else { } else {

View File

@@ -180,23 +180,28 @@
: 'tidak sesuai'; : 'tidak sesuai';
$selectedValue = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null; $selectedValue = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null;
@endphp @endphp
<div id="jenis_asset" class="flex items-baseline gap-2" <div id="jenis_asset" class="flex items-baseline gap-2"
style="{{ isset($selectedValue) === 'tidak sesuai' ? '' : 'display: none;' }}"> style="{{ old('jenis_asset_tidak_sesuai', isset($forminspeksi['asset']['jenis_asset']['tidak sesuai'])) ? '' : 'display: none;' }}">
<select id="jenis_asset_tidak_sesuai" class="input w-full" <select id="jenis_asset_tidak_sesuai" class="input w-full"
name="jenis_asset_tidak_sesuai"> name="jenis_asset_tidak_sesuai" onchange="handleJenisAssetChange(this)">
<option value="">Select Jenis asset</option> <option value="">Pilih Jenis Aset</option>
@if (isset($basicData['jenisJaminan'])) @if (isset($basicData['jenisJaminan']))
@foreach ($basicData['jenisJaminan'] as $item) @foreach ($basicData['jenisJaminan'] as $item)
<option value="{{ $item->name }}" <option value="{{ $item->name }}"
{{ old('jenis_asset_tidak_sesuai', $forminspeksi['asset']['jenis_asset_tidak_sesuai'] ?? '') == $item->name ? 'selected' : '' }}> {{ old('jenis_asset_tidak_sesuai', $selectedValue) == $item->name ? 'selected' : '' }}>
{{ old('jenis_asset_tidak_sesuai', $selectedValue) == $item->name ? 'selected' : '' }}>
{{ $item->name }} {{ $item->name }}
</option> </option>
@endforeach @endforeach
@endif @endif
</select> </select>
{{-- <button type="button" class="btn btn-md btn-primary"
onclick="updateAnalisa('jenis_asset')">Save</button> --}}
</div> </div>
<!-- Input untuk "Lainnya" -->
<input id="jenis_asset_lainnya" type="text" name="jenis_asset_lainnya"
class="input w-full mt-2" placeholder="Masukkan Jenis Aset Lainnya..."
value="{{ old('jenis_asset_lainnya', isset($forminspeksi['asset']['jenis_asset']['Lainnya']) ? $forminspeksi['asset']['jenis_asset']['Lainnya'] : '') }}"
style="{{ old('jenis_asset_lainnya', isset($forminspeksi['asset']['jenis_asset']['Lainnya'])) == 'Lainnya' ? '' : 'display: none;' }}" />
</div> </div>
<em id="error-jenis_asset" class="alert text-danger text-sm"></em> <em id="error-jenis_asset" class="alert text-danger text-sm"></em>
</div> </div>
@@ -208,10 +213,10 @@
<label class="form-label max-w-56">Alamat</label> <label class="form-label max-w-56">Alamat</label>
<div class="w-full"> <div class="w-full">
@foreach ($permohonan->documents as $dokumen) @foreach ($permohonan->documents as $dokumen)
@php @php
$alamat = $dokumen; $alamat = $dokumen;
@endphp @endphp
@endforeach @endforeach
<span class="text-2sm text-gray-700"> <span class="text-2sm text-gray-700">
{{ formatAlamat($dokumen) }} {{ formatAlamat($dokumen) }}
</span> </span>
@@ -596,5 +601,15 @@
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
loadSavedLocationData(); loadSavedLocationData();
}); });
function handleJenisAssetChange(select) {
const lainnyaInput = document.getElementById('jenis_asset_lainnya');
if (select.value === 'Lainnya') {
lainnyaInput.style.display = 'block';
} else {
lainnyaInput.style.display = 'none';
lainnyaInput.value = ''; // Reset nilai input jika bukan "lainnya"
}
}
</script> </script>
@include('lpj::surveyor.js.utils') @include('lpj::surveyor.js.utils')

View File

@@ -209,10 +209,10 @@
</div> </div>
</div> </div>
@if (isset($link_url_region->regions->url))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56"> <label class="form-label max-w-56">
<span class="form-label">{{ $link_url_region->regions->name_url }}</span> <span class="form-label">Blad Tata Ruang Perdaerah</span>
</label> </label>
<div class="input-group w-full flex gap-2"> <div class="input-group w-full flex gap-2">
<input class="name_rute" type="hidden" name="name_rute" value="rute"> <input class="name_rute" type="hidden" name="name_rute" value="rute">
@@ -226,19 +226,12 @@
alt="Foto Argis Region" class="mt-2 max-w-full h-auto" alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }} max-width: 30rem;"> style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }} max-width: 30rem;">
</div> </div>
<a href="{{ $link_url_region->regions->url }}" type="button" class="btn btn-light" <
target="_blank">
<i class="ki-filled ki-map"></i>
{{ $link_url_region->regions->name_url }}
</a>
</div> </div>
</div> </div>
@endif
</div> </div>
<!-- Upload Photo Button --> <!-- Upload Photo Button -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<label for="" class="form-label max-w-56 text-sm font-medium text-gray-700">Upload Peta</label> <label for="" class="form-label max-w-56 text-sm font-medium text-gray-700">Upload Peta</label>
<div class="w-full grid gap-5"> <div class="w-full grid gap-5">

View File

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

View File

@@ -7,7 +7,7 @@
</a> </a>
@else @else
<a href="{{ route('surveyor.show', ['id' => $permohonan->id]) }}" class="btn btn-xs btn-info"> <a href="{{ route('surveyor.show', ['id' => $permohonan->id]) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Kembali <i class="ki-filled ki-exit-left"></i> Back
</a> </a>
@endif @endif

View File

@@ -39,7 +39,7 @@
<td> <td>
<label> <label>
<input type="radio" name="luas_bangunan_radio" value="tidak sesuai" {{ $cekLuasBangunan == 'tidak sesuai' ? 'checked' : '' }}> <input type="radio" name="luas_bangunan_radio" value="tidak sesuai" {{ $cekLuasBangunan == 'tidak sesuai' ? 'checked' : '' }}>
Tidak Sesuai {{ $luasBangunanTidakSesuai ? '- '. $luasBangunanTidakSesuai . ' m²' : '' }} Tidak Sesuai {{ $luasBangunanTidakSesuai ? '- '. $luasBangunanTidakSesuai . ' m² (luas fisik)' : '' }}
</label> </label>
</td> </td>
</tr> </tr>

View File

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

View File

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

View File

@@ -79,6 +79,7 @@
text-align: left; text-align: left;
border-top: 1px solid #ddd; border-top: 1px solid #ddd;
padding-top: 10px; padding-top: 10px;
font-size: 12px;
} }
body { body {
@@ -136,6 +137,20 @@
transform: scale(1.3); transform: scale(1.3);
/* Memperkecil ukuran checkbox */ /* Memperkecil ukuran checkbox */
} }
@media print {
table {
border-collapse: collapse;
}
tr {
page-break-inside: avoid;
}
td, th {
border: 1px solid #000;
}
}
</style> </style>
</head> </head>
@@ -193,6 +208,10 @@
</table> </table>
</header> </header>
<div style="text-align: center; text-transform: uppercase; font-weight: bold;">
<h1 style="font-size: 14px;">
FORM INSPEKSI {{ $data ?? '' }}
</h1></div>
<div style="border: 1px solid #000;"> <div style="border: 1px solid #000;">
<table <table
style="width: 100%; border-top: none; border-bottom: 1px solid #000; border-collapse: collapse; border-left: none; border-right: none;"> style="width: 100%; border-top: none; border-bottom: 1px solid #000; border-collapse: collapse; border-left: none; border-right: none;">
@@ -225,12 +244,14 @@
</tr> </tr>
<tr> <tr>
<td style="width: 25%; padding: 2px;">Debitur/Perwakilan</td> <td style="width: 25%; padding: 2px; vertical-align: top;">Debitur/Perwakilan</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px; vertical-align: top;">:</td>
<td style="vertical-align: top; padding: 2px;"> <td style="vertical-align: top; padding: 2px;">
@if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan'])) @if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan']))
@foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item) @foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item)
<p style="margin: 0; padding:0;">
{{ $item }} {{ $item }}
</p>
@endforeach @endforeach
@endif @endif
</td> </td>
@@ -293,15 +314,18 @@
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
@php @php
$statusKey = isset($forminspeksi['asset']['jenis_asset']['sesuai']) $statusKey = isset($forminspeksi['asset']['jenis_asset']['sesuai']) ? 'sesuai' : 'tidak sesuai';
? 'sesuai'
: 'tidak sesuai';
$selectedData = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null; $selectedData = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null;
$lainnya = isset($forminspeksi['asset']['jenis_asset']['Lainnya'])
? $forminspeksi['asset']['jenis_asset']['Lainnya']
: null;
@endphp @endphp
<td width="25%" style="padding: 2px; vertical-align: top;">Jenis Aset</td> <td width="25%" style="padding: 2px; vertical-align: top;">Jenis Aset</td>
<td width="1%" style=" vertical-align: top;">:</td> <td width="1%" style=" vertical-align: top;">:</td>
<td style="vertical-align: top; width: %;"> <td style="vertical-align: top; width: %;">
{{ $selectedData ?? '' }} {{ $selectedData ?? '' }} {{ $lainnya ?? '' }}
</td> </td>
</tr> </tr>
@@ -359,125 +383,92 @@
</tr> </tr>
</table> </table>
<div class="no-break" style="border-bottom: 1px solid #000;"> <div class="no-break" style="border-bottom: 1px solid #000;">
<table <table
style="width: 100%; border-top: 1px solid #000; border-bottom: 1px solid #000; border-collapse: collapse; border-left: none; border-right: none;"> style="width: 100%; border-top: 1px solid #000; border-bottom: 1px solid #000; border-collapse: collapse; border-left: none; border-right: none;">
<tr> <tr>
<td style="text-align: center; margin-top: 5px; "> <td style="text-align: center; margin-top: 5px; ">
<h2 style=" text-transform: uppercase; text-align: center; margin: 0;"> <h2 style=" text-transform: uppercase; text-align: center; margin: 0;">
STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI
</h2> </h2>
</td> </td>
</tr> </tr>
</table> </table>
<table> <table>
@include('lpj::component.print-out-dokument')
@if (@isset($dokumen)) <tr>
@foreach ($dokumen->detail as $detail) @php
@if (isset($detail->dokumen_jaminan)) // Ambil nilai sesuai dan tidak sesuai
<tr> $hubCadebSesuai = $forminspeksi['asset']['hub_cadeb']['sesuai'] ?? null;
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td> $hubCadebTidakSesuai = $forminspeksi['asset']['hub_cadeb']['tidak sesuai'] ?? null;
{{-- <td style="width:1%; padding: 2px; vertical-align: top;">:</td> --}} @endphp
<td style="vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitur</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td>
<div style="margin-bottom: 10px;">
<label>
<input type="radio" name="hubCadebStatus" value="sesuai"
{{ $hubCadebSesuai ? 'checked' : '' }}> Sesuai
</label>
<label style="margin-left: 20px;">
<input type="radio" name="hubCadebStatus" value="tidak sesuai"
{{ $hubCadebTidakSesuai ? 'checked' : '' }}> Tidak Sesuai
</label>
</div>
</tr> @if (!empty($basicData['hubCadeb']))
@endif <table>
<tr>
@if (isset($detail->details)) @php $count = 0; @endphp
@if (json_decode($detail->details)) @foreach ($basicData['hubCadeb'] as $item)
@foreach (json_decode($detail->details) as $key => $value) <td>
@if (!is_null($value) && $value !== '') <label>
<tr> <input type="checkbox"
<td style="padding: 2px;"> {{ isset($item->name) && ($hubCadebSesuai === $item->name || $hubCadebTidakSesuai === $item->name) ? 'checked' : '' }}>
{{ formatLabel($key) }} {{ $item->name ?? '' }}
</label>
</td> </td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td> @php $count++; @endphp
<td style="padding: 2px;">
{{ $value }} @if ($count % 3 === 0)
@if ($key == 'luas_bangunan' || $key == 'luas_tanah') </tr>
<sup>m2</sup> <tr>
@endif
</td>
</tr>
@endif
@endforeach
@endif @endif
@endforeach
@if ($count % 3 !== 0)
@for ($i = 0; $i < 3 - ($count % 3); $i++)
<td></td>
@endfor
@endif @endif
@endforeach </tr>
</table>
@endif @endif
</td>
<tr>
@php
// Ambil nilai sesuai dan tidak sesuai
$hubCadebSesuai = $forminspeksi['asset']['hub_cadeb']['sesuai'] ?? null;
$hubCadebTidakSesuai = $forminspeksi['asset']['hub_cadeb']['tidak sesuai'] ?? null;
@endphp
<td style="vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitur</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td>
<div style="margin-bottom: 10px;">
<label>
<input type="radio" name="hubCadebStatus" value="sesuai"
{{ $hubCadebSesuai ? 'checked' : '' }}> Sesuai
</label>
<label style="margin-left: 20px;">
<input type="radio" name="hubCadebStatus" value="tidak sesuai"
{{ $hubCadebTidakSesuai ? 'checked' : '' }}> Tidak Sesuai
</label>
</div>
@if (!empty($basicData['hubCadeb']))
<table >
<tr>
@php $count = 0; @endphp
@foreach ($basicData['hubCadeb'] as $item)
<td>
<label >
<input type="checkbox"
{{ isset($item->name) && ($hubCadebSesuai === $item->name || $hubCadebTidakSesuai === $item->name) ? 'checked' : '' }}>
{{ $item->name ?? '' }}
</label>
</td>
@php $count++; @endphp
@if ($count % 3 === 0)
</tr>
<tr>
@endif
@endforeach
@if ($count % 3 !== 0)
@for ($i = 0; $i < 3 - ($count % 3); $i++)
<td></td>
@endfor
@endif
</tr>
</table>
@endif
</td>
</tr> </tr>
<tr> <tr>
@php @php
$statusKey = isset($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai']) $statusKey = isset($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'])
? 'sesuai' ? 'sesuai'
: 'tidak sesuai'; : 'tidak sesuai';
$selectedData = $forminspeksi['asset']['hub_cadeb_penghuni'][$statusKey] ?? null; $selectedData = $forminspeksi['asset']['hub_cadeb_penghuni'][$statusKey] ?? null;
@endphp @endphp
<td style="vertical-align: top; width: 20%; padding: 2px;">Hubungan Penghuni Jaminan dengan Debitur</td> <td style="vertical-align: top; width: 20%; padding: 2px;">Hubungan Penghuni Jaminan dengan Debitur</td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td> <td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="vertical-align: top;"> <td style="vertical-align: top;">
@if (isset($selectedData)) @if (isset($selectedData))
{{ $selectedData ?? '' }} {{ $selectedData ?? '' }}
</td> </td>
@endif @endif
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
@@ -578,8 +569,8 @@
<!-- K.J.P.P --> <!-- K.J.P.P -->
@if (isset($forminspeksi['signature']['kjjp'])) @if (isset($forminspeksi['signature']['kjjp']))
<td style="width: 100px;"> <td style="width: 100px;">
<img style="width: 100px;" src="{{ $forminspeksi['signature']['kjjp']['image'] }}" <img style="width: 100px;"
alt="KJPP"> src="{{ $forminspeksi['signature']['kjjp']['image'] }}" alt="KJPP">
</td> </td>
@endif @endif
</tr> </tr>
@@ -623,8 +614,20 @@
<footer id="footer"> <footer id="footer">
Cabang : {{ $permohonan->debiture->branch->name ?? '' }} {{-- Cabang : {{ $permohonan->debiture->branch->name ?? '' }} --}}
</footer> </footer>
<script type="text/php">
if (isset($pdf)) {
$pdf->page_script('
$font = $fontMetrics->get_font("Arial, Helvetica, sans-serif", "normal");
$size = 10;
$pageText = $PAGE_NUM;
$y = 800;
$x = 550;
$pdf->text($x, $y, $pageText, $font, $size);
');
}
</script>
</body> </body>
</html> </html>

View File

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

View File

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

View File

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

View File

@@ -16,7 +16,8 @@ use Modules\Lpj\Http\Controllers\JenisLaporanController;
use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController; use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController;
use Modules\Lpj\Http\Controllers\JenisPenilaianController; 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\LampiranDokumenController;
use Modules\Lpj\Http\Controllers\LaporanController;
use Modules\Lpj\Http\Controllers\LaporanExternalController; use Modules\Lpj\Http\Controllers\LaporanExternalController;
use Modules\Lpj\Http\Controllers\NilaiPlafondController; use Modules\Lpj\Http\Controllers\NilaiPlafondController;
use Modules\Lpj\Http\Controllers\NocController; use Modules\Lpj\Http\Controllers\NocController;
@@ -82,6 +83,7 @@ Route::middleware(['auth'])->group(function () {
Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class);
Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () { Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () {
Route::get('custom-fields/{id}', [JenisLegalitasJaminanController::class, 'getCustomFields'])->name('ustom-fields');
Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan']) Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan'])
->name('legalitas'); ->name('legalitas');
Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore');
@@ -644,6 +646,9 @@ Route::middleware(['auth'])->group(function () {
}); });
Route::resource('laporan-external', LaporanExternalController::class); Route::resource('laporan-external', LaporanExternalController::class);
Route::get('/lampiran/download/{id}', [LampiranDokumenController::class, 'download'])->name('lampiran.download');
Route::post('lampiran/upload', [LampiranDokumenController::class, 'upload'])->name('lampiran.upload');
Route::delete('lampiran/{lampiran}', [LampiranDokumenController::class, 'delete'])->name('lampiran.delete');
}); });