update insert data json ke table ispeksi

This commit is contained in:
majid76
2024-12-02 07:11:08 +07:00
parent 8287ce3963
commit 9502329fef
10 changed files with 553 additions and 506 deletions

View File

@@ -9,6 +9,7 @@ use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Exports\BasicDataSurveyorExport; use Modules\Lpj\Exports\BasicDataSurveyorExport;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Branch; use Modules\Lpj\Models\Branch;
@@ -94,97 +95,77 @@ class SurveyorController extends Controller
'branch', 'branch',
'tujuanPenilaian', 'tujuanPenilaian',
'penilaian', 'penilaian',
'documents', 'documents.jenisJaminan',
])->findOrFail($id); ])->findOrFail($id);
$surveyor = $id; $surveyor = $id;
$branches = Branch::all(); $branches = Branch::all();
$provinces = Province::all(); $provinces = Province::all();
$bentukTanah = BentukTanah::all(); $bentukTanah = BentukTanah::all();
$denah = Denah::where('permohonan_id', $id)->get(); // Get all inspeksi data for this permohonan
$fotojaminan = FotoJaminan::where('permohonan_id', $id)->get(); $inspeksiData = Inspeksi::where('permohonan_id', $id)
$analisa = Analisa::with('analisaUnit', 'analisaTanahBangunan', 'analisaLingkungan', 'analisaFakta', 'jenisJaminan') ->get()
->where('permohonan_id', $id) ->keyBy('jenis_jaminan_id')
->get(); ->map(function ($item) {
return [
$jenisJaminanIds = $permohonan->debiture->documents->pluck('jenisJaminan.id')->toArray(); // Convert to array 'data_form' => json_decode($item->data_form, true),
'foto_form' => json_decode($item->foto_form, true),
$jaminanId = $jenisJaminanIds[0]; 'denah_form' => json_decode($item->denah_form, true),
$inpeksi = Inspeksi::where('permohonan_id', $id) 'data_pembanding' => json_decode($item->data_pembanding, true),
->whereIn('jenis_jaminan_id', $jenisJaminanIds) ];
->first(); });
if ($inpeksi) {
$forminspeksi = json_decode($inpeksi->data_form, true);
$formFoto = json_decode($inpeksi->foto_form, true);
$formDenah = json_decode($inpeksi->denah_form, true);
$formPembanding = json_decode($inpeksi->data_pembanding, true);
} else {
$forminspeksi = null;
$formFoto = null;
$formDenah = null;
$formPembanding = null;
}
return view('lpj::surveyor.detail', compact( return view('lpj::surveyor.detail', compact(
'denah',
'analisa',
'permohonan', 'permohonan',
'surveyor', 'surveyor',
'branches', 'branches',
'provinces', 'provinces',
'bentukTanah', 'bentukTanah',
'forminspeksi', 'inspeksiData'
'formDenah',
'formFoto',
'jaminanId',
'formPembanding'
)); ));
} }
/** /**
* Store form inspeksi. * Store form inspeksi.
*/ */
public function store(FormSurveyorRequest $request) public function store(FormSurveyorRequest $request)
{ {
$data = $request->validated();
if (!$data) {
return response()->json(['success' => false, 'message' => 'Invalid data'], 400);
}
try { try {
DB::beginTransaction(); // Validate request data
$validatedData = $request->validated();
// Get action specific rules and process data
$processedData = $this->getActionSpecificRules(
$validatedData,
$request->input('type'),
$request
);
$action = $request->input('type'); // Find or create inspeksi record
$rules = $this->getActionSpecificRules($data, $action, $request); $inspeksi = Inspeksi::updateOrCreate(
[
'permohonan_id' => $request->input('permohonan_id'),
'jenis_jaminan_id' => $request->input('jenis_jaminan_id')
],
[
'data_form' => json_encode($processedData),
'name' => $request->input('type')
]
);
$data = $rules; return response()->json([
'success' => true,
'message' => 'Data berhasil disimpan',
'data' => $processedData
], 200);
} catch (\Exception $e) {
return response()->json([
// $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); 'success' => false,
'message' => 'Gagal menyimpan data',
// if (!$inspeksi) { 'error' => $e->getMessage()
// Inspeksi::create([ ], 500);
// 'permohonan_id' => $request->input('permohonan_id'),
// 'data_form' => json_encode($rules),
// 'name' => $request->input('type'),
// 'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
// ]);
// } else {
// $inspeksi->update(['data_form' => json_encode($rules)]);
// }
DB::commit();
return response()->json(['success' => true, 'message' => 'Data saved successfully', 'data' => $data], 200);
} catch (Exception $e) {
DB::rollBack();
return response()->json(['success' => false, 'message' => 'Failed to save data: ' . $e->getMessage()], 500);
} }
} }
@@ -259,8 +240,11 @@ class SurveyorController extends Controller
]); ]);
} }
return response()->json(['success' => true, 'message' => 'Data berhasil disimpan', return response()->json([
'data' => $formatJsonDenah], 200); 'success' => true,
'message' => 'Data berhasil disimpan',
'data' => $formatJsonDenah
], 200);
} catch (Exception $e) { } catch (Exception $e) {
return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500); return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
} }
@@ -269,7 +253,128 @@ class SurveyorController extends Controller
public function storeFoto(Request $request) public function storeFoto(Request $request)
{ {
$validatedData = $request->validate([ $validatedData = $this->validateFotoRequest($request);
try {
$photoCategories = [
'rute_menuju_lokasi' => ['foto_rute', 'name_rute'],
'object_jaminan' => ['foto_objek', 'name_objek', 'deskripsi_objek'],
'lingkungan' => ['foto_lingkungan', 'name_lingkungan'],
'foto_lantai_unit' => ['foto_lantai_unit', 'name_lantai_unit'],
'foto_lantai_lainnya' => ['foto_lantai_lainnya', 'name_lantai_lainnya'],
'foto_rute_lainnya' => ['foto_rute_lainnya', 'name_rute_lainnya'],
];
$inspeksi = Inspeksi::firstOrNew([
'permohonan_id' => $request->input('permohonan_id'),
'jenis_jaminan_id' => $request->input('jenis_jaminan_id')
]);
// Get existing foto_form data if it exists
$existingData = $inspeksi->exists && $inspeksi->foto_form
? json_decode($inspeksi->foto_form, true)
: [];
$formatFotojson = $existingData; // Start with existing data
// Process each photo category
foreach ($photoCategories as $category => $fields) {
// Only update if new files are provided
if ($this->categoryHasNewFiles($request, $fields)) {
// Delete old files for this category only
if (isset($existingData[$category])) {
$this->deleteFilesForCategory($existingData[$category]);
}
$formatFotojson[$category] = $this->processPhotoCategory($request, $fields);
}
}
// Process single files
$singleFiles = ['foto_basement', 'foto_gerbang', 'pendamping'];
foreach ($singleFiles as $file) {
if ($request->hasFile($file)) {
// Delete old file if exists
if (isset($existingData[$file])) {
$this->deleteFile($existingData[$file]);
}
$formatFotojson[$file] = $this->uploadFile($request->file($file), $file);
}
}
// Update record
$inspeksi->foto_form = json_encode($formatFotojson);
$inspeksi->save();
return response()->json(['success' => true, 'message' => 'Data berhasil disimpan', 'data' => $formatFotojson], 200);
} catch (Exception $e) {
return response()->json(['success' => false, 'message' => 'Failed to upload: ' . $e->getMessage()], 500);
}
}
/**
* Process a photo category and its subcategories
*/
private function processPhotoCategory(Request $request, array $fields)
{
$result = [];
$photoField = $fields[0];
if ($request->hasFile($photoField)) {
foreach ($request->file($photoField, []) as $key => $value) {
$item = [];
$item[$fields[1]] = $request->input($fields[1] . '.' . $key);
$item[$photoField] = $this->uploadFile($value, $photoField . '.' . $key);
if (isset($fields[2])) {
$item[$fields[2]] = $request->input($fields[2] . '.' . $key);
}
$result[] = $item;
}
}
return $result;
}
private function categoryHasNewFiles(Request $request, array $fields): bool
{
$photoField = $fields[0]; // First element is usually the photo field
return $request->hasFile($photoField) ||
(is_array($request->file($photoField)) && count($request->file($photoField)) > 0);
}
private function deleteFilesForCategory($categoryData)
{
if (!is_array($categoryData)) {
return;
}
foreach ($categoryData as $item) {
if (isset($item['foto'])) {
$this->deleteOfFile($item['foto']);
}
}
}
private function deleteOfFile($filePath)
{
if ($filePath && Storage::exists($filePath)) {
Storage::delete($filePath);
}
}
/**
* Custom validation request for foto
*/
public function validateFotoRequest(Request $request)
{
return $request->validate([
'permohonan_id' => 'required', 'permohonan_id' => 'required',
'jenis_jaminan_id' => 'required', 'jenis_jaminan_id' => 'required',
'pendamping' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', 'pendamping' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
@@ -291,164 +396,96 @@ class SurveyorController extends Controller
'foto_gerbang' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048', 'foto_gerbang' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'name_gerbang' => 'nullable|string|max:255', 'name_gerbang' => 'nullable|string|max:255',
]); ]);
try {
$rute_menuju_lokasi = [];
$object_jaminan = [];
$lingkungan = [];
$foto_lantai_unit = [];
$foto_lantai_lainnya = [];
$foto_rute_lainnya = [];
foreach ($request->file('foto_rute', []) as $key => $value) {
$fotoRutePath = $this->uploadFile($request->file('foto_rute.' . $key), 'foto_rute.' . $key);
$rute_menuju_lokasi[] = [
'name_rute' => $request->input('name_rute.' . $key),
'foto_rute' => $fotoRutePath,
];
}
foreach ($request->file('foto_objek', []) as $key => $value) {
$fotoObjekPath = $this->uploadFile($request->file('foto_objek.' . $key), 'foto_objek.' . $key);
$object_jaminan[] = [
'nama_objek' => $request->input('name_objek.' . $key),
'foto_object' => $fotoObjekPath,
'deskripsi_objek' => $request->input('deskripsi_objek.' . $key),
];
}
foreach ($request->file('foto_lingkungan', []) as $key => $value) {
$fotoLingkunganPath = $this->uploadFile($request->file('foto_lingkungan.' . $key), 'foto_lingkungan.' . $key);
$lingkungan[] = [
'name_lingkungan' => $request->input('name_lingkungan.' . $key),
'foto_lingkungan' => $fotoLingkunganPath,
];
}
foreach ($request->file('foto_lantai_unit', []) as $key => $value) {
$foto_lantai_unit_Path = $this->uploadFile($request->file('foto_lantai_unit.' . $key), 'foto_lantai_unit.' . $key);
$foto_lantai_unit[] = [
'name_lantai_unit' => $request->input('name_lantai_unit.' . $key),
'foto_lantai_unit' => $foto_lantai_unit_Path,
];
}
foreach ($request->file('foto_rute_lainnya', []) as $key => $value) {
$foto_rute_lainnya_path = $this->uploadFile($request->file('foto_rute_lainnya.' . $key), 'foto_rute_lainnya.' . $key);
$foto_rute_lainnya[] = [
'name_rute_lainnya' => $request->input('name_rute_lainnya.' . $key),
'foto_rute_lainnya' => $foto_rute_lainnya_path,
];
}
foreach ($request->file('foto_lantai_lainnya', []) as $key => $value) {
$foto_lantai_lainnya_path = $this->uploadFile($request->file('foto_lantai_lainnya.' . $key), 'foto_lantai_lainnya.' . $key);
$foto_lantai_lainnya[] = [
'name_lantai_lainnya' => $request->input('name_lantai_lainnya.' . $key),
'foto_lantai_lainnya' => $foto_lantai_lainnya_path,
];
}
$basement = $this->uploadFile($request->file('foto_basement'), 'foto_basement');
$gerbang = $this->uploadFile($request->file('foto_gerbang'), 'foto_gerbang');
$pendamping = $this->uploadFile($request->file('pendamping'), 'pendamping');
$formatFotojson = [
'rute_menuju_lokasi' => $rute_menuju_lokasi,
'object_jaminan' => $object_jaminan,
'lingkungan' => $lingkungan
,'foto_lantai_unit' => $foto_lantai_unit,
'foto_lantai_lainnya' => $foto_lantai_lainnya,
'foto_rute_lainnya' => $foto_rute_lainnya,
'foto_basement' => $basement,
'foto_gerbang' => $gerbang,
'pendamping' => $pendamping
];
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
if ($inspeksi) {
$inspeksi->update([
'foto_form' => json_encode($formatFotojson)
]);
} else {
Inspeksi::create([
'permohonan_id' => $request->input('permohonan_id'),
'foto_form' => json_encode($formatFotojson),
'jenis_jaminan_id' => $request->input('jenis_jaminan_id')
]);
}
return response()->json(['success' => true, 'message' => 'Data berhasil disimpan', 'data' => $formatFotojson], 200);
} catch (Exception $e) {
return response()->json(['success' => false, 'message' => 'Failed to upload: ' . $e->getMessage()], 500);
}
} }
public function submitSurveyor($id) public function submitSurveyor($id)
{ {
try { try {
// $cekButton = $this->checkButtonStatus($id); // Get button status check result
// if (!$cekButton->buttonDisable) { $buttonStatusCheck = $this->checkButtonStatus($id);
$permohonan = Permohonan::find($id); $buttonStatus = json_decode($buttonStatusCheck->getContent(), true);
$permohonan->update([
'status' => 'done', // Check if button should be disabled
]); if ($buttonStatus['buttonDisable']) {
return response()->json(['success' => true, 'message' => 'Form surveyor submitted successfully'], 200); return response()->json([
// } else { 'success' => false,
// return response()->json(['error' => 'Something went wrong'], 400); 'message' => 'Form belum lengkap. Pastikan semua data telah diisi dengan benar.',
// } ], 422);
} catch (Exception $e) {
return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500);
} }
// If validation passes, update permohonan status
// $permohonan = Permohonan::findOrFail($id);
// $permohonan->update([
// 'status' => 'done',
// 'submitted_at' => now()
// ]);
return response()->json([
'success' => true,
'message' => 'Form surveyor berhasil disubmit'
], 200);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => 'Terjadi kesalahan',
'error' => $e->getMessage()
], 500);
} }
}
public function checkButtonStatus($id) public function checkButtonStatus($id)
{ {
try { try {
// Get all inspeksi records for this permohonan
$inpeksi = Inspeksi::where('permohonan_id', $id)->first(); $inspeksiRecords = Inspeksi::where('permohonan_id', $id)->get();
if ($inpeksi) { if ($inspeksiRecords->isEmpty()) {
$forminspeksi = json_decode($inpeksi->data_form, true);
$formFoto = json_decode($inpeksi->foto_form, true);
$buttonDisable = false;
if (
$formFoto && count($formFoto) > 0 &&
$forminspeksi
) {
$buttonDisable = false;
} else {
$buttonDisable = true;
}
return response()->json(['buttonDisable' => $buttonDisable]);
} else {
return response()->json(['buttonDisable' => true]); return response()->json(['buttonDisable' => true]);
} }
foreach ($inspeksiRecords as $inspeksi) {
$dataForm = json_decode($inspeksi->data_form, true);
$fotoForm = json_decode($inspeksi->foto_form, true);
$denahForm = json_decode($inspeksi->denah_form, true);
$dataPembanding = json_decode($inspeksi->data_pembanding, true);
// Get jenis jaminan to check if it needs denah
$jenisJaminan = JenisJaminan::find($inspeksi->jenis_jaminan_id);
$isTanahBangunan = !in_array(
strtoupper($jenisJaminan->name ?? ''),
['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT']
);
// Check if required forms are empty or incomplete
if (empty($dataForm) || empty($fotoForm)) {
return response()->json(['buttonDisable' => true]);
}
if ($isTanahBangunan && empty($denahForm)) {
return response()->json(['buttonDisable' => true]);
}
if (empty($dataPembanding)) {
return response()->json(['buttonDisable' => true]);
}
}
// If we get here, all checks passed
return response()->json(['buttonDisable' => false]);
} catch (\Exception $e) { } catch (\Exception $e) {
// return response()->json(['buttonDisable' => true]);
return response()->json([ return response()->json([
'error' => 'Something went wrong', 'error' => 'Something went wrong',
'message' => $e->getMessage() 'message' => $e->getMessage(),
'buttonDisable' => true
], 500); ], 500);
} }
} }
@@ -558,9 +595,9 @@ class SurveyorController extends Controller
$link_url_region = Teams::with('regions', 'teamsUsers') $link_url_region = Teams::with('regions', 'teamsUsers')
->whereHas('teamsUsers', function ($query) { ->whereHas('teamsUsers', function ($query) {
$query->where('user_id', Auth::user()->id); $query->where('user_id', Auth::user()->id);
})->first(); })->first();
$branches = Branch::all(); $branches = Branch::all();
$provinces = Province::all(); $provinces = Province::all();
@@ -768,13 +805,12 @@ class SurveyorController extends Controller
if (!$modelClass) { if (!$modelClass) {
return redirect() return redirect()
->route('basicdata.'. $type .'.index') ->route('basicdata.' . $type . '.index')
->with('error', 'Invalid type specified.'); ->with('error', 'Invalid type specified.');
} }
if ($type == 'spek-bangunan') { if ($type == 'spek-bangunan') {
$validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id;
} }
@@ -782,12 +818,11 @@ class SurveyorController extends Controller
$modelClass::create($data); $modelClass::create($data);
return redirect() return redirect()
->route('basicdata.' . $type .'.index') ->route('basicdata.' . $type . '.index')
->with('success', 'created successfully'); ->with('success', 'created successfully');
} catch (Exeception $e) { } catch (Exeception $e) {
return redirect() return redirect()
->route('basicdata.' . $type .'.index') ->route('basicdata.' . $type . '.index')
->with('error', $th->getMessage()); ->with('error', $th->getMessage());
} }
} }
@@ -836,7 +871,6 @@ class SurveyorController extends Controller
$spekKategoriBagunan = null; $spekKategoriBagunan = null;
if ($type == 'spek-bangunan') { if ($type == 'spek-bangunan') {
$spekKategoriBagunan = SpekKategoritBangunan::all(); $spekKategoriBagunan = SpekKategoritBangunan::all();
} }
@@ -852,7 +886,6 @@ class SurveyorController extends Controller
if ($type == 'spek-bangunan') { if ($type == 'spek-bangunan') {
$validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id;
} }
// Check if the provided type exists in the modelClasses // Check if the provided type exists in the modelClasses
@@ -1011,7 +1044,7 @@ class SurveyorController extends Controller
} }
$filteredRecords = $query->count(); $filteredRecords = $query->count();
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisFasilitasKredit','penilaian'])->get(); $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisFasilitasKredit', 'penilaian'])->get();
$pageCount = ceil($totalRecords / $size); $pageCount = ceil($totalRecords / $size);
@@ -1162,10 +1195,10 @@ class SurveyorController extends Controller
$query->where('jenis_jaminan_id', $jaminanId); $query->where('jenis_jaminan_id', $jaminanId);
} }
]) ])
->whereHas('debiture.documents', function ($query) use ($jaminanId) { ->whereHas('debiture.documents', function ($query) use ($jaminanId) {
$query->where('jenis_jaminan_id', $jaminanId); $query->where('jenis_jaminan_id', $jaminanId);
}) })
->findOrFail($id); ->findOrFail($id);
} }
@@ -1277,7 +1310,7 @@ class SurveyorController extends Controller
'posisi-unit' => ['Posisi unit', 'posisi-unit'], 'posisi-unit' => ['Posisi unit', 'posisi-unit'],
'bentuk-unit' => ['Bentuk unit', 'bentuk-unit'], 'bentuk-unit' => ['Bentuk unit', 'bentuk-unit'],
'fasilitas-objek' => ['Fasilitas Umum Dekat Objek', 'fasilitas-objek'], 'fasilitas-objek' => ['Fasilitas Umum Dekat Objek', 'fasilitas-objek'],
]; ];
private function getAssetData(array $data): array private function getAssetData(array $data): array
{ {
@@ -1294,12 +1327,27 @@ class SurveyorController extends Controller
'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [], 'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [],
'jenis_asset' => [ 'jenis_asset' => [
$data['jenis_asset'] => ($data['jenis_asset'] === 'sesuai') $data['jenis_asset'] => ($data['jenis_asset'] === 'sesuai')
? $data['jenis_asset'] ? $data['jenis_asset_name']
: ($data['jenis_asset_tidak_sesuai'] ?? null) : ($data['jenis_asset_tidak_sesuai'] ?? null)
], ],
'alamat' => [ 'alamat' => [
$data['alamat_sesuai'] => $alamatData $data['alamat_sesuai'] => $alamatData
], ],
'hub_cadeb' => [
$data['hub_cadeb'] => $this->getFieldData(
$data,
'hub_cadeb',
true
)
],
'hub_cadeb_penghuni' => [
$data['hub_cadeb_penghuni'] => $this->getFieldData(
$data,
'hub_cadeb_penghuni',
true
)
],
'kordinat_lng' => $data['kordinat_lng'] ?? null, 'kordinat_lng' => $data['kordinat_lng'] ?? null,
'kordinat_lat' => $data['kordinat_lat'] ?? null, 'kordinat_lat' => $data['kordinat_lat'] ?? null,
] ]
@@ -1379,17 +1427,21 @@ class SurveyorController extends Controller
return [ return [
'bangunan' => [ 'bangunan' => [
'luas_tanah_bagunan' => $data['luas_tanah_bagunan'] ?? null, 'luas_tanah_bagunan' => $this->getFieldData(
'jenis_bangunan' => $data['jenis_bangunan'] ?? null, $data,
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null, 'luas_tanah_bagunan',
'sifat_bangunan' => $data['sifat_bangunan'] ?? null, true
'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null, ),
'spesifikasi_bangunan' => $result ?? null, 'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
'sarana_pelengkap' => $this->mapArrayWithInputs( 'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
$data['sarana_pelengkap'] ?? [], 'sifat_bangunan' => $data['sifat_bangunan'] ?? null,
$data['sarana_pelengkap_input'] ?? [] 'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null,
), 'spesifikasi_bangunan' => $result ?? null,
], 'sarana_pelengkap' => $this->mapArrayWithInputs(
$data['sarana_pelengkap'] ?? [],
$data['sarana_pelengkap_input'] ?? []
),
],
]; ];
} }
@@ -1397,27 +1449,27 @@ class SurveyorController extends Controller
{ {
return [ return [
'lingkungan' => [ 'lingkungan' => [
'jarak_jalan_utama' => $data['jarak_jalan_utama'] ?? null, 'jarak_jalan_utama' => $data['jarak_jalan_utama'] ?? null,
'jalan_linkungan' => $data['jalan_linkungan'] ?? null, 'jalan_linkungan' => $data['jalan_linkungan'] ?? null,
'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null, 'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null,
'nama_cbd_point' => $data['nama_cbd_point'] ?? null, 'nama_cbd_point' => $data['nama_cbd_point'] ?? null,
'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null, 'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null,
'perkerasan_jalan' => $data['perkerasan_jalan'] ?? null, 'perkerasan_jalan' => $data['perkerasan_jalan'] ?? null,
'lalu_lintas' => $data['lalu_lintas'] ?? null, 'lalu_lintas' => $data['lalu_lintas'] ?? null,
'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null, 'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null,
'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null, 'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null,
'terletak_diarea' => $data['terletak_diarea'] ?? null, 'terletak_diarea' => $data['terletak_diarea'] ?? null,
'disekitar_lokasi' => $data['disekitar_lokasi'] ?? null, 'disekitar_lokasi' => $data['disekitar_lokasi'] ?? null,
'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null, 'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null,
'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null, 'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null,
'dekat_makam' => $data['dekat_makam'] ?? null, 'dekat_makam' => $data['dekat_makam'] ?? null,
'jarak_makam' => $data['jarak_makam'] ?? null, 'jarak_makam' => $data['jarak_makam'] ?? null,
'nama_makam' => $data['nama_makam'] ?? null, 'nama_makam' => $data['nama_makam'] ?? null,
'dekat_tps' => $data['dekat_tps'] ?? null, 'dekat_tps' => $data['dekat_tps'] ?? null,
'jarak_tps' => $data['jarak_tps'] ?? null, 'jarak_tps' => $data['jarak_tps'] ?? null,
'nama_tps' => $data['nama_tps'] ?? null, 'nama_tps' => $data['nama_tps'] ?? null,
'merupakan_daerah' => $data['merupakan_daerah'] ?? null, 'merupakan_daerah' => $data['merupakan_daerah'] ?? null,
'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null, 'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null,
] ]
]; ];
} }
@@ -1426,25 +1478,26 @@ class SurveyorController extends Controller
{ {
$factData = [ $factData = [
'fakta' => [ 'fakta' => [
'fakta_positif' => $data['fakta_positif'] ?? null, 'fakta_positif' => $data['fakta_positif'] ?? null,
'fakta_negatif' => $data['fakta_negatif'] ?? null, 'fakta_negatif' => $data['fakta_negatif'] ?? null,
'rute_menuju' => $data['rute_menuju'] ?? null, 'rute_menuju' => $data['rute_menuju'] ?? null,
'batas_batas' => $this->mapArrayWithInputs( 'batas_batas' => $this->mapArrayWithInputs(
$data['batas_batas'] ?? null, $data['batas_batas_input'] ?? null $data['batas_batas'] ?? null,
), $data['batas_batas_input'] ?? null
'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null, ),
'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null, 'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null,
'informasi_dokument' => $data['informasi_dokument'] ?? null, 'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null,
'peruntukan' => $data['peruntukan'] ?? null, 'informasi_dokument' => $data['informasi_dokument'] ?? null,
'kdb' => $data['kdb'] ?? null, 'peruntukan' => $data['peruntukan'] ?? null,
'kdh' => $data['kdh'] ?? null, 'kdb' => $data['kdb'] ?? null,
'gsb' => $data['gsb'] ?? null, 'kdh' => $data['kdh'] ?? null,
'max_lantai' => $data['max_lantai'] ?? null, 'gsb' => $data['gsb'] ?? null,
'klb' => $data['klb'] ?? null, 'max_lantai' => $data['max_lantai'] ?? null,
'gss' => $data['gss'] ?? null, 'klb' => $data['klb'] ?? null,
'pelebaran_jalan' => $data['pelebaran_jalan'] ?? null, 'gss' => $data['gss'] ?? null,
'nama_petugas' => $data['nama_petugas'] ?? null, 'pelebaran_jalan' => $data['pelebaran_jalan'] ?? null,
'keterangan' => $data['keterangan'] ?? null, 'nama_petugas' => $data['nama_petugas'] ?? null,
'keterangan' => $data['keterangan'] ?? null,
] ]
]; ];
@@ -1859,8 +1912,11 @@ class SurveyorController extends Controller
{ {
return [ return [
'action' => $data['action'] ?? null, 'action' => $data['action'] ?? null,
'luas_unit' => $data['luas_unit'] ?? null, 'luas_unit' => $this->getFieldData(
'luas_unit_tidak_sesuai' => $data['luas_unit_tidak_sesuai'] ?? null, $data,
'luas_unit',
true
),
'jenis_unit' => $data['jenis_unit'] ?? null, 'jenis_unit' => $data['jenis_unit'] ?? null,
'kondisi_unit' => $data['kondisi_unit'] ?? null, 'kondisi_unit' => $data['kondisi_unit'] ?? null,
'posisi_unit' => $data['posisi_unit'] ?? null, 'posisi_unit' => $data['posisi_unit'] ?? null,
@@ -1872,7 +1928,7 @@ class SurveyorController extends Controller
/** /**
* Helper untuk upload file * Helper untuk upload file
* *
* @param $file * @param $file
@@ -1936,7 +1992,7 @@ class SurveyorController extends Controller
if ($checkKesesuaian) { if ($checkKesesuaian) {
return [ return [
$data[$fieldName] ?? '' => ($data[$fieldName] ?? '') === 'sesuai' $data[$fieldName] ?? '' => ($data[$fieldName] ?? '') === 'sesuai'
? ($data[$fieldName] ?? '') ? ($data["{$fieldName}_sesuai"] ?? '')
: ($data["{$fieldName}_tidak_sesuai"] ?? '') : ($data["{$fieldName}_tidak_sesuai"] ?? '')
]; ];
} }
@@ -1968,5 +2024,4 @@ class SurveyorController extends Controller
// Return Excel download // Return Excel download
return Excel::download(new BasicDataSurveyorExport($modelClass), $type . '.xlsx'); return Excel::download(new BasicDataSurveyorExport($modelClass), $type . '.xlsx');
} }
} }

View File

@@ -71,8 +71,10 @@ class FormSurveyorRequest extends FormRequest
{ {
return [ return [
'luas_tanah' => 'required', 'luas_tanah' => 'required',
'luas_tanah_sesuai' => 'nullable',
'luas_tanah_tidak_sesuai' => 'nullable', 'luas_tanah_tidak_sesuai' => 'nullable',
'hadap_mata_angin' => 'required', 'hadap_mata_angin' => 'required',
'hadap_mata_angin_sesuai' => 'nullable',
'hadap_mata_angin_tidak_sesuai' => 'nullable', 'hadap_mata_angin_tidak_sesuai' => 'nullable',
'bentuk_tanah' => 'nullable|array', 'bentuk_tanah' => 'nullable|array',
'bentuk_tanah_lainnya' => 'nullable', 'bentuk_tanah_lainnya' => 'nullable',
@@ -95,7 +97,9 @@ class FormSurveyorRequest extends FormRequest
{ {
return [ return [
'action' => 'required', 'action' => 'required',
'luas_tanah_bangunan_sesuai' => 'nullable',
'luas_tanah_bagunan' => 'required', 'luas_tanah_bagunan' => 'required',
'luas_tanah_bangunan_tidak_sesuai' => 'nullable',
'jenis_bangunan' => 'required', 'jenis_bangunan' => 'required',
'kondisi_bangunan' => 'nullable', 'kondisi_bangunan' => 'nullable',
'sifat_bangunan' => 'required|array', 'sifat_bangunan' => 'required|array',
@@ -116,6 +120,7 @@ class FormSurveyorRequest extends FormRequest
return [ return [
'action' => 'required', 'action' => 'required',
'luas_unit' => 'required', 'luas_unit' => 'required',
'luas_unit_sesuai' => 'nullable',
'luas_unit_tidak_sesuai' => 'nullable', 'luas_unit_tidak_sesuai' => 'nullable',
'jenis_unit' => 'required|array', 'jenis_unit' => 'required|array',
'kondisi_unit' => 'required|array', 'kondisi_unit' => 'required|array',
@@ -511,10 +516,19 @@ class FormSurveyorRequest extends FormRequest
'permohonan_id' => 'required', 'permohonan_id' => 'required',
'type' => 'required', 'type' => 'required',
'debitur_perwakilan' => 'required|array', 'debitur_perwakilan' => 'required|array',
'jenis_asset_name' => 'nullable',
'jenis_asset' => 'required', 'jenis_asset' => 'required',
'jenis_asset_tidak_sesuai' => 'nullable', 'jenis_asset_tidak_sesuai' => 'nullable',
'alamat_sesuai' => 'required', 'alamat_sesuai' => 'required',
'alamat_tidak_sesuai' => 'nullable', 'alamat_tidak_sesuai' => 'nullable',
'hub_cadeb' => 'required',
'hub_cadeb_sesuai' => 'nullable',
'hub_cadeb_tidak_sesuai' => 'nullable',
'hub_cadeb_penghuni' => 'required',
'hub_cadeb_penghuni_sesuai' => 'nullable',
'hub_cadeb_penghuni_tidak_sesuai' => 'nullable',
'nama_jalan' => 'nullable', 'nama_jalan' => 'nullable',
'desa_kelurahan' => 'nullable', 'desa_kelurahan' => 'nullable',
'kecamatan' => 'nullable', 'kecamatan' => 'nullable',

View File

@@ -12,26 +12,44 @@
<!-- Luas tanah --> <!-- Luas tanah -->
<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 Unit</label> <label class="form-label max-w-56">Luas Unit</label>
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$luas = $item->detail;
$details = json_decode($luas[0]->details, true);
$luas_unit = isset($details['luas_unit']) ? $details['luas_unit'] : 'N/A';
@endphp
<input type="hidden" name="luas_unit_sesuai" class="input" value="{{ $luas_unit }}">
<p class="text-2sm text-gray-700">{{ $luas_unit }} m<sup>2</sup></p>
@endforeach
@endif
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<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">
<label class="form-label flex items-center gap-3 text-nowrap"> <label class="form-label flex items-center gap-3 text-nowrap">
<input onclick="toggleFieldVisibility('luas_unit','luas_unit_tidak_sesuai', ['tidak sesuai'])" type="radio" class="radio" name="luas_unit" value="sesuai" <input
onclick="toggleFieldVisibility('luas_unit','luas_unit_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="luas_unit" value="sesuai"
{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'sesuai' ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span> <span class="ml-2">Sesuai</span>
</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('luas_unit','luas_unit_tidak_sesuai', ['tidak sesuai'])" type="radio" class="radio" name="luas_unit" value="tidak sesuai" <input
onclick="toggleFieldVisibility('luas_unit','luas_unit_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="luas_unit" value="tidak sesuai"
{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span> <span class="ml-2">Tidak Sesuai</span>
</label> </label>
<div id="luas_unit_tidak_sesuai" class="flex items-baseline gap-2" <div id="luas_unit_tidak_sesuai" class="flex items-baseline gap-2"
style="{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}"> style="{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
<input id="analisa_luas_unit_tidak_sesuai" type="text" name="luas_unit_tidak_sesuai" class="input w-full" <input id="analisa_luas_unit_tidak_sesuai" type="text" name="luas_unit_tidak_sesuai"
placeholder="Masukan Luas Tanah" class="input w-full" placeholder="Masukan Luas Tanah"
value="{{ old('luas_unit_tidak_sesuai', $forminspeksi['luas_unit_tidak_sesuai'] ?? '') }}"> value="{{ old('luas_unit_tidak_sesuai', $forminspeksi['luas_unit_tidak_sesuai'] ?? '') }}">
<button type="button" class="btn btn-md btn-primary" onclick="updateAnalisa('analisa_unit')">Save</button> <button type="button" class="btn btn-md btn-primary"
</div> onclick="updateAnalisa('analisa_unit')">Save</button>
</div>
</div> </div>
<em id="error-luas_unit" class="alert text-danger text-sm"></em> <em id="error-luas_unit" class="alert text-danger text-sm"></em>
</div> </div>
@@ -94,8 +112,8 @@
{{ in_array($item->name, old('lantai', $forminspeksi['lantai'] ?? [])) ? 'checked' : '' }} /> {{ in_array($item->name, old('lantai', $forminspeksi['lantai'] ?? [])) ? 'checked' : '' }} />
{{ $item->name }} {{ $item->name }}
</label> </label>
<input type="text" name="lantai_input[]" class="input w-full" <input type="text" name="lantai_input[]" class="input w-full" id="lantaiInput"
id="lantaiInput" placeholder="Masukkan {{ $item->name }}..." placeholder="Masukkan {{ $item->name }}..."
value="{{ old('lantai_input.' . $loop->index, $forminspeksi['lantai_input'][$loop->index] ?? '') }}"> value="{{ old('lantai_input.' . $loop->index, $forminspeksi['lantai_input'][$loop->index] ?? '') }}">
</div> </div>
@endforeach @endforeach

View File

@@ -15,6 +15,7 @@
$details = json_decode($luas[0]->details, true); $details = json_decode($luas[0]->details, true);
$luas_bangunan = isset($details['luas_bangunan']) ? $details['luas_bangunan'] : 'N/A'; $luas_bangunan = isset($details['luas_bangunan']) ? $details['luas_bangunan'] : 'N/A';
@endphp @endphp
<input type="hidden" name="luas_bangunan_sesuai" class="input" value="{{ $luas_bangunan }}">
<p class="text-2sm text-gray-700">{{ $luas_bangunan }} m<sup>2</sup></p> <p class="text-2sm text-gray-700">{{ $luas_bangunan }} m<sup>2</sup></p>
@endforeach @endforeach

View File

@@ -1,100 +1,72 @@
<div class="grid grid-cols-1 lg:grid-cols-2 gap-5 lg:gap-7.5"> <div class="grid grid-cols-1 lg:grid-cols-2 gap-5 lg:gap-7.5">
@foreach ($permohonan->debiture->documents as $dokumen) @foreach ($permohonan->debiture->documents as $dokumen)
@php
$jaminanId = $dokumen->jenisJaminan->id;
$currentInspeksi = $inspeksiData[$jaminanId] ?? null;
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT'];
$href = [
[
'label' => 'form inspeksi',
'url' => route('surveyor.inspeksi', [
'id' => $permohonan->id,
'jaminanId' => $jaminanId,
]) . "?form=create-inspeksi&inspeksi={$permohonan->id}&jenis_jaminan={$jaminanId}",
'show' => true,
'icon' => !empty($currentInspeksi['data_form']),
],
];
if (!in_array(strtoupper($dokumen->jenisJaminan->name), $tanahBangunanTypes)) {
$href[] = [
'label' => 'denah tanah dan bangunan',
'url' => route('surveyor.denah', [
'id' => $permohonan->id,
'jaminanId' => $jaminanId,
]) . "?form=create-denah&denah={$permohonan->id}&jenis_jaminan={$jaminanId}",
'show' => true,
'icon' => !empty($currentInspeksi['denah_form']),
];
}
$href = array_merge($href, [
[
'label' => 'foto',
'url' => route('surveyor.foto', [
'id' => $permohonan->id,
'jaminanId' => $jaminanId,
]) . "?form=create-foto&foto={$permohonan->id}&jenis_jaminan={$jaminanId}",
'show' => true,
'icon' => !empty($currentInspeksi['foto_form']),
],
[
'label' => 'data pembanding',
'url' => route('surveyor.data-pembanding', [
'id' => $permohonan->id,
'jaminanId' => $jaminanId,
]) . "?form=data-pembanding&pembanding={$permohonan->id}&jenis_jaminan={$jaminanId}",
'show' => true,
'icon' => !empty($currentInspeksi['data_pembanding']),
],
]);
@endphp
<div class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg grid gap-5" <div class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg grid gap-5"
style="padding: 20px"> style="padding: 20px">
<div class="card-group flex items-center flex-wrap sm:flex-nowrap justify-between py-4 gap-2.5"> <div class="card-group flex items-center flex-wrap sm:flex-nowrap justify-between py-4 gap-2.5">
<div class="flex items-center gap-3.5"> <div class="flex items-center gap-3.5">
<div class="relative size-[50px] shrink-0"> <div class="relative size-[50px] shrink-0">
<svg class="w-full h-full stroke-gray-300 fill-gray-100" fill="none" height="48" <!-- SVG code remains the same -->
viewBox="0 0 44 48" width="44" xmlns="http://www.w3.org/2000/svg">
<path
d="M16 2.4641C19.7128 0.320509 24.2872 0.320508 28 2.4641L37.6506 8.0359C41.3634 10.1795 43.6506 14.141 43.6506
18.4282V29.5718C43.6506 33.859 41.3634 37.8205 37.6506 39.9641L28 45.5359C24.2872 47.6795 19.7128 47.6795 16 45.5359L6.34937
39.9641C2.63655 37.8205 0.349365 33.859 0.349365 29.5718V18.4282C0.349365 14.141 2.63655 10.1795 6.34937 8.0359L16 2.4641Z"
fill="">
</path>
<path
d="M16.25 2.89711C19.8081 0.842838 24.1919 0.842837 27.75 2.89711L37.4006 8.46891C40.9587 10.5232 43.1506 14.3196 43.1506
18.4282V29.5718C43.1506 33.6804 40.9587 37.4768 37.4006 39.5311L27.75 45.1029C24.1919 47.1572 19.8081 47.1572 16.25 45.1029L6.59937
39.5311C3.04125 37.4768 0.849365 33.6803 0.849365 29.5718V18.4282C0.849365 14.3196 3.04125 10.5232 6.59937 8.46891L16.25 2.89711Z"
stroke="">
</path>
</svg>
<div
class="absolute leading-none start-2/4 top-2/4 -translate-y-2/4 -translate-x-2/4 rtl:translate-x-2/4">
<i class="ki-filled ki-questionnaire-tablet text-1.5xl text-gray-500">
</i>
</div>
</div> </div>
</div> </div>
<div class="flex items-center gap-2.5"> <div class="flex items-center gap-2.5">
<span class="flex items-center gap-1.5 leading-none font-medium text-sm text-gray-900"> <span class="flex items-center gap-1.5 leading-none font-medium text-sm text-gray-900">
{{ $dokumen->jenisJaminan->name ?? '' }} {{ $dokumen->jenisJaminan->name ?? '' }}
</sp> </span>
</div> </div>
</div> </div>
@php
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT'];
$href = [
[
'label' => 'form inspeksi',
'url' =>
route('surveyor.inspeksi', [
'id' => $permohonan->id,
'jaminanId' => $dokumen->jenisJaminan->id,
]) .
"?form=create-inspeksi&inspeksi={$permohonan->id}&jenis_jaminan={$dokumen->jenisJaminan->id}",
'show' => true,
'icon' => $forminspeksi,
],
];
if (!in_array(strtoupper($dokumen->jenisJaminan->name), $tanahBangunanTypes)) {
$href[] = [
'label' => 'denah tanah dan bangunan',
'url' =>
route('surveyor.denah', [
'id' => $permohonan->id,
'jaminanId' => $dokumen->jenisJaminan->id,
]) .
"?form=create-denah&denah={$permohonan->id}&jenis_jaminan={$dokumen->jenisJaminan->id}",
'show' => true,
'icon' => $formDenah,
];
}
// Tambahkan route lainnya
$href = array_merge($href, [
[
'label' => 'foto',
'url' =>
route('surveyor.foto', [
'id' => $permohonan->id,
'jaminanId' => $dokumen->jenisJaminan->id,
]) . "?form=create-foto&foto={$permohonan->id}&jenis_jaminan={$dokumen->jenisJaminan->id}",
'show' => true,
'icon' => $formFoto,
],
[
'label' => 'data pembanding',
'url' =>
route('surveyor.data-pembanding', [
'id' => $permohonan->id,
'jaminanId' => $dokumen->jenisJaminan->id,
]) .
"?form=data-pembanding&pembanding={$permohonan->id}&jenis_jaminan={$dokumen->jenisJaminan->id}",
'show' => true,
'icon' => $formPembanding,
],
]);
@endphp
@foreach ($href as $item) @foreach ($href as $item)
@if ($item['show']) @if ($item['show'])
<a href="{{ $item['url'] }}" <a href="{{ $item['url'] }}"
@@ -108,8 +80,7 @@
</div> </div>
<div class="flex items-center gap-5"> <div class="flex items-center gap-5">
<div class="flex gap-0.5"> <div class="flex gap-0.5">
<div class="btn btn-sm btn-icon btn-clear {{ $item['icon'] ? '' : 'btn-light' }}"> <div class="btn btn-sm btn-icon btn-clear {{ $item['icon'] ? '' : 'btn-light' }}">
<i class="ki-filled {{ $item['icon'] ? 'ki-check-circle' : 'ki-notepad-edit'}}"></i> <i class="ki-filled {{ $item['icon'] ? 'ki-check-circle' : 'ki-notepad-edit'}}"></i>
</div> </div>
</div> </div>

View File

@@ -621,10 +621,12 @@
}, },
success: function(response) { success: function(response) {
if (response.success) { if (response.success) {
window.location.href = // window.location.href =
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto'; // '{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto';
toastrSuccessBuild(response.message); toastrSuccessBuild(response.message);
} }
console.log(response);
}, },
error: function(xhr, status, error) { error: function(xhr, status, error) {

View File

@@ -1,17 +1,16 @@
<div class=" card w-full bg-white rounded-lg shadow-md "> <div class=" card w-full bg-white rounded-lg shadow-md ">
<div class="card-header"> <div class="card-header">
<h3 class="card-title"> <h3 class="card-title">
Form Inspeksi Form Inspeksi
</h3> </h3>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<a href="{{ route('surveyor.show', ['id' => request('inspeksi')]) }}" <a href="{{ route('surveyor.show', ['id' => request('inspeksi')]) }}" class="btn btn-xs btn-info">
class="btn btn-xs btn-info"> <i class="ki-filled ki-exit-left"></i> Back
<i class="ki-filled ki-exit-left"></i> Back </a>
</a> </div>
</div> </div>
</div>
@@ -109,6 +108,7 @@
@if (isset($permohonan->debiture->documents)) @if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item) @foreach ($permohonan->debiture->documents as $item)
<p class="text-2sm text-gray-700">{{ $item->jenisJaminan->name }}</p> <p class="text-2sm text-gray-700">{{ $item->jenisJaminan->name }}</p>
<input type="hidden" name="jenis_asset_name" value="{{ $item->jenisJaminan->name }}">
@endforeach @endforeach
@endif @endif
</div> </div>
@@ -117,19 +117,18 @@
<label class="form-label flex items-center gap-3 text-nowrap"> <label class="form-label flex items-center gap-3 text-nowrap">
<input onclick="toggleFieldVisibility('jenis_asset', 'jenis_asset', ['tidak sesuai'])" <input onclick="toggleFieldVisibility('jenis_asset', 'jenis_asset', ['tidak sesuai'])"
type="radio" class="radio" name="jenis_asset" value="sesuai" type="radio" class="radio" name="jenis_asset" value="sesuai"
{{ old('jenis_asset', $forminspeksi['asset']['jenis_asset'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ isset($forminspeksi['asset']['jenis_asset']['sesuai']) ? 'checked' : '' }}>
<span class="ml-2">Ya</span> <span class="ml-2">Ya</span>
</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('jenis_asset', 'jenis_asset', ['tidak sesuai'])" <input onclick="toggleFieldVisibility('jenis_asset', 'jenis_asset', ['tidak sesuai'])"
type="radio" class="radio" name="jenis_asset" value="tidak sesuai" type="radio" class="radio" name="jenis_asset" value="tidak sesuai"
{{ old('jenis_asset', $forminspeksi['asset']['jenis_asset'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ isset($forminspeksi['asset']['jenis_asset']['tidak sesuai']) ? 'checked' : '' }}>
<span class="ml-2">Tidak</span> <span class="ml-2">Tidak</span>
</label> </label>
<!-- Select dropdown untuk "Tidak Sesuai" --> <!-- Select dropdown untuk "Tidak Sesuai" -->
<div id="jenis_asset" class="flex items-baseline gap-2" <div id="jenis_asset" class="flex items-baseline gap-2"
style="{{ old('jenis_asset', $forminspeksi['asset']['jenis_asset'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}"> style="{{ 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">
<option value="">Select Jenis asset</option> <option value="">Select Jenis asset</option>
@@ -145,10 +144,10 @@
<button type="button" class="btn btn-md btn-primary" <button type="button" class="btn btn-md btn-primary"
onclick="updateAnalisa('jenis_asset')">Save</button> onclick="updateAnalisa('jenis_asset')">Save</button>
</div> </div>
</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>
</div> </div>
</div> </div>
@@ -168,14 +167,14 @@
<input <input
onclick="toggleAlamatVisibility('alamat_sesuai', 'alamat_tidak_sesuai', 'sesuai')" onclick="toggleAlamatVisibility('alamat_sesuai', 'alamat_tidak_sesuai', 'sesuai')"
type="radio" class="radio" name="alamat_sesuai" value="sesuai" type="radio" class="radio" name="alamat_sesuai" value="sesuai"
{{ old('jenis_asset', $forminspeksi['asset']['jenis_asset'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ old('jenis_asset', isset($forminspeksi['asset']['alamat']['sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Ya</span> <span class="ml-2">Ya</span>
</label> </label>
<label class="form-label flex items-center gap-3 text-nowrap"> <label class="form-label flex items-center gap-3 text-nowrap">
<input <input
onclick="toggleAlamatVisibility('alamat_sesuai', 'alamat_tidak_sesuai', 'tidak sesuai')" onclick="toggleAlamatVisibility('alamat_sesuai', 'alamat_tidak_sesuai', 'tidak sesuai')"
type="radio" class="radio" name="alamat_sesuai" value="tidak sesuai" type="radio" class="radio" name="alamat_sesuai" value="tidak sesuai"
{{ old('jenis_asset', $forminspeksi['asset']['jenis_asset'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ old('jenis_asset', isset($forminspeksi['asset']['alamat']['tidak sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Tidak</span> <span class="ml-2">Tidak</span>
</label> </label>
</div> </div>
@@ -185,7 +184,7 @@
</div> </div>
{{-- Alamat Sesuai --}} {{-- Alamat Sesuai --}}
<div id="alamat_sesuai" class="grid gap-2 mt-5" style="display: none;"> <div id="alamat_sesuai" class="grid gap-2 mt-5" style="{{ isset($forminspeksi['asset']['alamat']['sesuai']) ? '' : 'display: none;' }}">
@foreach ($permohonan->debiture->documents as $dokumen) @foreach ($permohonan->debiture->documents as $dokumen)
@php @php
$fields = [ $fields = [
@@ -234,7 +233,7 @@
</div> </div>
{{-- Alamat Tidak Sesuai --}} {{-- Alamat Tidak Sesuai --}}
<div id="alamat_tidak_sesuai" class="grid gap-2 mt-5" style="display: none;"> <div id="alamat_tidak_sesuai" class="grid gap-2 mt-5" style="{{ isset($forminspeksi['asset']['alamat']['tidak sesuai']) ? '' : 'display: none;' }}"">
@php @php
$inputDataLokasi = [ $inputDataLokasi = [
['label' => 'Jl.', 'id' => 'address', 'name' => 'address', 'type' => 'text'], ['label' => 'Jl.', 'id' => 'address', 'name' => 'address', 'type' => 'text'],
@@ -425,6 +424,8 @@
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@foreach ($permohonan->debiture->documents as $dokumen) @foreach ($permohonan->debiture->documents as $dokumen)
{{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }} {{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }}
<input type="hidden" name="hub_cadeb_sesuai"
value="{{ $dokumen->pemilik->hubungan_pemilik->name }}" id="">
@endforeach @endforeach
</div> </div>
@@ -434,14 +435,14 @@
<input <input
onclick="toggleFieldVisibility('hub_cadeb','hub_cadeb_tidak_sesuai', ['tidak sesuai'])" onclick="toggleFieldVisibility('hub_cadeb','hub_cadeb_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="hub_cadeb" value="sesuai" type="radio" class="radio" name="hub_cadeb" value="sesuai"
{{ old('hub_cadeb', $forminspeksi['asset']['hub_cadeb'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ old('hub_cadeb', isset($forminspeksi['asset']['hub_cadeb']['sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Ya</span> <span class="ml-2">Ya</span>
</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 <input
onclick="toggleFieldVisibility('hub_cadeb','hub_cadeb_tidak_sesuai', ['tidak sesuai'])" onclick="toggleFieldVisibility('hub_cadeb','hub_cadeb_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="hub_cadeb" value="tidak sesuai" type="radio" class="radio" name="hub_cadeb" value="tidak sesuai"
{{ old('hub_cadeb', $forminspeksi['asset']['hub_cadeb'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ old('hub_cadeb', isset($forminspeksi['asset']['hub_cadeb']['tidak sesuai']))? 'checked' : '' }}>
<span class="ml-2">Tidak</span> <span class="ml-2">Tidak</span>
</label> </label>
<!-- Select dropdown untuk "Tidak Sesuai" --> <!-- Select dropdown untuk "Tidak Sesuai" -->
@@ -477,6 +478,9 @@
<div class="flex flex-wrap items-baseline w-full text-sm"> <div class="flex flex-wrap items-baseline w-full text-sm">
@foreach ($permohonan->debiture->documents as $dokumen) @foreach ($permohonan->debiture->documents as $dokumen)
{{ $dokumen->penghuni->hubungan_penghuni->name ?? 'N/A' }} {{ $dokumen->penghuni->hubungan_penghuni->name ?? 'N/A' }}
<input type="hidden" name="hub_cadeb_penguhuni_sesuai"
value="{{ isset($dokumen->penghuni->hubungan_penghuni->name) ?? '' }}"
id="">
@endforeach @endforeach
</div> </div>
@@ -486,21 +490,21 @@
<input <input
onclick="toggleFieldVisibility('hub_cadeb_penghuni','hub_cadeb_Penghuni_tidak_sesuai', ['tidak sesuai'])" onclick="toggleFieldVisibility('hub_cadeb_penghuni','hub_cadeb_Penghuni_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="hub_cadeb_penghuni" value="sesuai" type="radio" class="radio" name="hub_cadeb_penghuni" value="sesuai"
{{ old('hub_cadeb_penghuni', $forminspeksi['asset']['hub_cadeb_penghuni'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ old('hub_cadeb_penghuni', isset($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Ya</span> <span class="ml-2">Ya</span>
</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 <input
onclick="toggleFieldVisibility('hub_cadeb_penghuni', 'hub_cadeb_Penghuni_tidak_sesuai', ['tidak sesuai'])" onclick="toggleFieldVisibility('hub_cadeb_penghuni', 'hub_cadeb_Penghuni_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="hub_cadeb_penghuni" value="tidak sesuai" type="radio" class="radio" name="hub_cadeb_penghuni" value="tidak sesuai"
{{ old('hub_cadeb_penghuni', $forminspeksi['asset']['hub_cadeb_penghuni'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ old('hub_cadeb_penghuni', isset($forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Tidak</span> <span class="ml-2">Tidak</span>
</label> </label>
<!-- Select dropdown untuk "Tidak Sesuai" --> <!-- Select dropdown untuk "Tidak Sesuai" -->
<select id="hub_cadeb_Penghuni_tidak_sesuai" <select id="hub_cadeb_Penghuni_tidak_sesuai"
class="input w-full class="input w-full
name="hub_cadeb_Penghuni_tidak_sesuai" name="hub_cadeb_Penghuni_tidak_sesuai"
style="{{ old('hub_cadeb', $forminspeksi['asset']['hub_cadeb'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}"> style="{{ old('hub_cadeb', isset($forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'])) ? '' : 'display: none;' }}">
<option value="">Select Hubungan Cadeb</option> <option value="">Select Hubungan Cadeb</option>
@if (isset($hubPenghuni)) @if (isset($hubPenghuni))
@foreach ($hubPenghuni as $item) @foreach ($hubPenghuni as $item)

View File

@@ -7,14 +7,10 @@
@section('content') @section('content')
@include('lpj::assetsku.includenya') @include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto"> <div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5"> <form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5">
@csrf @csrf
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}"> <input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}"> <input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
@foreach ($permohonan->debiture->documents as $dokumen) @foreach ($permohonan->debiture->documents as $dokumen)
@if ($dokumen->jenisJaminan) @if ($dokumen->jenisJaminan)
@php @php
@@ -105,19 +101,19 @@
function toggleAlamatVisibility(idSesuai, idTidakSesuai, selectedValue) { function toggleAlamatVisibility(idSesuai, idTidakSesuai, selectedValue) {
// Ambil elemen berdasarkan ID // Ambil elemen berdasarkan ID
const alamatSesuai = document.getElementById(idSesuai); const alamatSesuai = document.getElementById(idSesuai);
const alamatTidakSesuai = document.getElementById(idTidakSesuai); const alamatTidakSesuai = document.getElementById(idTidakSesuai);
// Periksa nilai yang dipilih dan tampilkan elemen yang sesuai // Periksa nilai yang dipilih dan tampilkan elemen yang sesuai
if (selectedValue === 'sesuai') { if (selectedValue === 'sesuai') {
alamatSesuai.style.display = 'grid'; // Tampilkan "Alamat Sesuai" alamatSesuai.style.display = 'grid'; // Tampilkan "Alamat Sesuai"
alamatTidakSesuai.style.display = 'none'; // Sembunyikan "Alamat Tidak Sesuai" alamatTidakSesuai.style.display = 'none'; // Sembunyikan "Alamat Tidak Sesuai"
} else if (selectedValue === 'tidak sesuai') { } else if (selectedValue === 'tidak sesuai') {
alamatSesuai.style.display = 'none'; // Sembunyikan "Alamat Sesuai" alamatSesuai.style.display = 'none'; // Sembunyikan "Alamat Sesuai"
alamatTidakSesuai.style.display = 'grid'; // Tampilkan "Alamat Tidak Sesuai" alamatTidakSesuai.style.display = 'grid'; // Tampilkan "Alamat Tidak Sesuai"
} }
} }
@@ -254,7 +250,11 @@
console.error('Terjadi error:', error); console.error('Terjadi error:', error);
console.log('Status:', status); console.log('Status:', status);
console.log('Response:', xhr.responseText); console.log('Response:', xhr.responseText);
toastrErrorBuild(error); if (xhr.responseJSON.message) {
toastrErrorBuild(xhr.responseJSON.message);
} else {
toastrErrorBuild('Terjadi kesalahan');
}
} }
}); });
} }

View File

@@ -13,15 +13,15 @@
<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->debiture->documents)) @if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item) @foreach ($permohonan->debiture->documents as $item)
@php @php
$luas = $item->detail; $luas = $item->detail;
$details = json_decode($luas[0]->details, true); $details = json_decode($luas[0]->details, true);
$luas_tanah = isset($details['luas_tanah']) ? $details['luas_tanah'] : 'N/A'; $luas_tanah = isset($details['luas_tanah']) ? $details['luas_tanah'] : 'N/A';
@endphp @endphp
<p class="text-2sm text-gray-700">{{ $luas_tanah }} m<sup>2</sup></p> <input type="hidden" name="luas_tanah_sesuai" class="input" value="{{ $luas_tanah }}">
@endforeach <p class="text-2sm text-gray-700">{{ $luas_tanah }} m<sup>2</sup></p>
@endforeach
@endif @endif
<div class="flex-wrap items-stretch"> <div class="flex-wrap items-stretch">
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@@ -29,21 +29,22 @@
<label class="form-label flex items-center gap-3 text-nowrap"> <label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="luas_tanah" value="sesuai" <input type="radio" class="radio" name="luas_tanah" value="sesuai"
onclick="toggleFieldVisibility('luas_tanah', 'luas_tanah_tidak_sesuai', ['tidak sesuai'])" onclick="toggleFieldVisibility('luas_tanah', 'luas_tanah_tidak_sesuai', ['tidak sesuai'])"
{{ old('luas_tanah', $forminspeksi['tanah']['luas_tanah'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ old('luas_tanah', isset($forminspeksi['tanah']['luas_tanah']['sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span> <span class="ml-2">Sesuai</span>
</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 type="radio" class="radio" name="luas_tanah" value="tidak sesuai" <input type="radio" class="radio" name="luas_tanah" value="tidak sesuai"
onclick="toggleFieldVisibility('luas_tanah', 'luas_tanah_tidak_sesuai', ['tidak sesuai'])" onclick="toggleFieldVisibility('luas_tanah', 'luas_tanah_tidak_sesuai', ['tidak sesuai'])"
{{ old('luas_tanah', $forminspeksi['tanah']['luas_tanah'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ old('luas_tanah', isset($forminspeksi['tanah']['luas_tanah']['tidak sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span> <span class="ml-2">Tidak Sesuai</span>
</label> </label>
<div id="luas_tanah_tidak_sesuai" class="flex items-baseline gap-2" <div id="luas_tanah_tidak_sesuai" class="flex items-baseline gap-2"
style="{{ old('luas_tanah', $forminspeksi['tanah']['luas_tanah'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}"> style="{{ old('luas_tanah', isset($forminspeksi['tanah']['luas_tanah']['tidak sesuai'])) ? '' : 'display: none;' }}">
<input id="analisa_tanah_tidak_sesuai" type="text" name="luas_tanah_tidak_sesuai" class="input w-full" <input id="analisa_tanah_tidak_sesuai" type="text" name="luas_tanah_tidak_sesuai"
placeholder="Masukan Luas Tanah" class="input w-full" placeholder="Masukan Luas Tanah"
value="{{ old('luas_tanah_tidak_sesuai', $forminspeksi['tanah']['luas_tanah_tidak_sesuai'] ?? '') }}"> value="{{ old('luas_tanah_tidak_sesuai', $forminspeksi['tanah']['luas_tanah_tidak_sesuai'] ?? '') }}">
<button type="button" class="btn btn-md btn-primary" onclick="updateAnalisa('analisa_tanah')">Save</button> <button type="button" class="btn btn-md btn-primary"
onclick="updateAnalisa('analisa_tanah')">Save</button>
</div> </div>
</div> </div>
<em id="error-luas_tanah" class="alert text-danger text-sm"></em> <em id="error-luas_tanah" class="alert text-danger text-sm"></em>
@@ -55,29 +56,40 @@
<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">Hadap Mata Angin</label> <label class="form-label max-w-56">Hadap Mata Angin</label>
<div class="mt-2">
@if (isset($permohonan->debiture->documents))
@foreach ($permohonan->debiture->documents as $item)
@php
$luas = $item->detail;
$details = json_decode($luas[0]->details, true);
$hadap_mata_angin = isset($details['hadap_mata_angin']) ? $details['hadap_mata_angin'] : 'N/A';
@endphp
<input type="hidden" name="hadap_mata_angin_sesuai" class="input" value="{{ $hadap_mata_angin }}">
<p class="text-2sm text-gray-700">{{ $hadap_mata_angin }} m<sup>2</sup></p>
@endforeach
@endif
<div class="flex-wrap items-stretch"> <div class="flex-wrap items-stretch">
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2"> <div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap"> <label class="form-label flex items-center gap-3 text-nowrap">
<input type="radio" class="radio" name="hadap_mata_angin" value="sesuai" <input type="radio" class="radio" name="hadap_mata_angin" value="sesuai"
onclick="toggleFieldVisibility('hadap_mata_angin', 'hadap_mata_angin_tidak_sesuai' ,['tidak sesuai'])" onclick="toggleFieldVisibility('hadap_mata_angin', 'hadap_mata_angin_tidak_sesuai' ,['tidak sesuai'])"
{{ old('hadap_mata_angin', $forminspeksi['tanah']['hadap_mata_angin'] ?? '') == 'sesuai' ? 'checked' : '' }}> {{ old('hadap_mata_angin', isset($forminspeksi['tanah']['hadap_mata_angin']['sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span> <span class="ml-2">Sesuai</span>
</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 type="radio" class="radio" name="hadap_mata_angin" value="tidak sesuai" <input type="radio" class="radio" name="hadap_mata_angin" value="tidak sesuai"
onclick="toggleFieldVisibility('hadap_mata_angin', 'hadap_mata_angin_tidak_sesuai' ,['tidak sesuai'])" onclick="toggleFieldVisibility('hadap_mata_angin', 'hadap_mata_angin_tidak_sesuai' ,['tidak sesuai'])"
{{ old('hadap_mata_angin', $forminspeksi['tanah']['hadap_mata_angin'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}> {{ old('hadap_mata_angin', isset($forminspeksi['tanah']['hadap_mata_angin']['tidak sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Tidak Sesuai</span> <span class="ml-2">Tidak Sesuai</span>
</label> </label>
<!-- Select dropdown untuk "Tidak Sesuai" --> <!-- Select dropdown untuk "Tidak Sesuai" -->
<div id="hadap_mata_angin_tidak_sesuai" class="flex items-baseline gap-2" <div id="hadap_mata_angin_tidak_sesuai" class="flex items-baseline gap-2"
style="{{ old('hadap_mata_angin', $forminspeksi['tanah']['hadap_mata_angin'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}"> style="{{ old('hadap_mata_angin', isset($forminspeksi['tanah']['hadap_mata_angin']['tidak sesuai'])) ? '' : 'display: none;' }}">
<select <select class="input w-full
class="input w-full
id="hadap_matangin_tidak_sesuai" id="hadap_matangin_tidak_sesuai"
name="analisa_tanah_hadap_mata_angin_tidak_sesuai"> name="analisa_tanah_hadap_mata_angin_tidak_sesuai">
<option value="">Select Hadap Mata Angin</option> <option value="">Select Hadap Mata Angin</option>
@if (isset($arahMataAngin)) @if (isset($arahMataAngin))
@foreach ($arahMataAngin as $item) @foreach ($arahMataAngin as $item)
@@ -94,6 +106,7 @@
<em id="error-hadap_mata_angin" class="alert text-danger text-sm"></em> <em id="error-hadap_mata_angin" class="alert text-danger text-sm"></em>
</div> </div>
</div> </div>
</div>
<!-- Bentuk Tanah --> <!-- Bentuk Tanah -->
@@ -106,33 +119,22 @@
@foreach ($bentukTanah as $item) @foreach ($bentukTanah as $item)
<div class="flex items-center"> <div class="flex items-center">
<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 <input class="checkbox" name="bentuk_tanah[]" type="checkbox"
class="checkbox"
name="bentuk_tanah[]"
type="checkbox"
value="{{ $item->name }}" value="{{ $item->name }}"
{{ {{ in_array($item->name, old('bentuk_tanah', [])) ||
in_array($item->name, old('bentuk_tanah', [])) || (isset($forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) &&
(isset($forminspeksi['tanah']['bentuk_tanah']) && is_array($forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) &&
is_array($forminspeksi['tanah']['bentuk_tanah']) && in_array($item->name, $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']))
in_array($item->name, $forminspeksi['tanah']['bentuk_tanah']))
? 'checked' ? 'checked'
: '' : '' }}
}} onclick="toggleCheckboxVisibility('bentuk_tanah', 'bentuk_tanah_lainnya', ['lainnya'])" />
onclick="toggleCheckboxVisibility('bentuk_tanah', 'bentuk_tanah_lainnya', ['lainnya'])"
/>
{{ $item->name }} {{ $item->name }}
</label> </label>
@if (strcasecmp($item->name, 'lainnya') == 0) @if (strcasecmp($item->name, 'lainnya') == 0)
<input <input id="bentuk_tanah_lainnya" type="text" style="display: none;"
id="bentuk_tanah_lainnya" name="bentuk_tanah_lainnya" class="input w-full mt-2"
type="text"
style="display: none;"
name="bentuk_tanah_lainnya"
class="input w-full mt-2"
placeholder="Masukkan bentuk tanah..." placeholder="Masukkan bentuk tanah..."
value="{{ old('bentuk_tanah_lainnya', $forminspeksi['tanah']['bentuk_tanah_lainnya'] ?? '') }}" value="{{ old('bentuk_tanah_lainnya', $forminspeksi['tanah']['bentuk_tanah']['lainnya'] ?? '') }}" />
/>
@endif @endif
</div> </div>
@endforeach @endforeach
@@ -149,20 +151,9 @@
@if (isset($konturTanah)) @if (isset($konturTanah))
@foreach ($konturTanah as $item) @foreach ($konturTanah as $item)
<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 <input class="checkbox" name="kontur_tanah[]" type="checkbox"
class="checkbox"
name="kontur_tanah[]"
type="checkbox"
value="{{ $item->name }}" value="{{ $item->name }}"
{{ {{ in_array($item->name, old('kontur_tanah', $forminspeksi['tanah']['kontur_tanah'] ?? [])) ? 'checked' : '' }} />
in_array(
$item->name,
old('kontur_tanah', $forminspeksi['tanah']['kontur_tanah'] ?? [])
)
? 'checked'
: ''
}}
/>
{{ $item->name }} {{ $item->name }}
</label> </label>
@endforeach @endforeach
@@ -238,27 +229,18 @@
<div class="flex flex-col items-start gap-4"> <div class="flex flex-col items-start gap-4">
@if (isset($posisiKavling)) @if (isset($posisiKavling))
@foreach ($posisiKavling as $item) @foreach ($posisiKavling as $item)
<div class="flex items-center"> <div class="flex items-center">
<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 <input class="checkbox" name="posisi_kavling[]" type="checkbox"
class="checkbox"
name="posisi_kavling[]"
type="checkbox"
value="{{ $item->name }}" value="{{ $item->name }}"
{{ in_array($item->name, old('posisi_kavling', $forminspeksi['tanah']['posisi_kavling'] ?? [])) ? 'checked' : '' }} {{ in_array($item->name, old('posisi_kavling', $forminspeksi['tanah']['posisi_kavling'] ?? [])) ? 'checked' : '' }}
onclick="toggleCheckboxVisibility('posisi_kavling', 'posisi_kavling_lainnya', ['Lainnya'])" onclick="toggleCheckboxVisibility('posisi_kavling', 'posisi_kavling_lainnya', ['Lainnya'])" />
/>
{{ $item->name }} {{ $item->name }}
</label> </label>
@if (strcasecmp($item->name, 'Lainnya') == 0) @if (strcasecmp($item->name, 'Lainnya') == 0)
<input <input id="posisi_kavling_lainnya" type="text" style="display: none;"
id="posisi_kavling_lainnya" name="posisi_kavling_lainnya" class="input w-full mt-2"
type="text" placeholder="Masukkan Posisi Kavling lainnya..." />
style="display: none;"
name="posisi_kavling_lainnya"
class="input w-full mt-2"
placeholder="Masukkan Posisi Kavling lainnya..."
/>
@endif @endif
</div> </div>
@endforeach @endforeach
@@ -319,7 +301,7 @@
<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 class="checkbox" name="kondisi_fisik_tanah[]" type="checkbox" <input class="checkbox" name="kondisi_fisik_tanah[]" type="checkbox"
value="{{ $item->name }}" value="{{ $item->name }}"
{{ in_array($item->name, old('kondisi_fisik_tanah', [])) || (isset($forminspeksi['tanah']['kondisi_fisik_tanah']) && in_array($item->name, $forminspeksi['tanah']['kondisi_fisik_tanah'])) ? 'checked' : '' }} {{ in_array($item->name, old('kondisi_fisik_tanah', [])) || (isset($forminspeksi['tanah']['kondisi_fisik_tanah']['kondisi_fisik_tanah']) && in_array($item->name, $forminspeksi['tanah']['kondisi_fisik_tanah']['kondisi_fisik_tanah'])) ? 'checked' : '' }}
onclick="toggleInputLainnya(this, 'kondisi_fisik_tanah_lainnya', '{{ $item->name }}')" /> onclick="toggleInputLainnya(this, 'kondisi_fisik_tanah_lainnya', '{{ $item->name }}')" />
{{ $item->name }} {{ $item->name }}
</label> </label>
@@ -330,7 +312,7 @@
<input type="text" name="kondisi_fisik_tanah_lainnya" <input type="text" name="kondisi_fisik_tanah_lainnya"
id="kondisi_fisik_tanah_lainnya" class="input mt-2" id="kondisi_fisik_tanah_lainnya" class="input mt-2"
placeholder="Masukkan Kondisi Fisik Tanah..." style="display: none;" placeholder="Masukkan Kondisi Fisik Tanah..." style="display: none;"
value="{{ old('kondisi_fisik_tanah_lainnya') }}"> value="{{ old('kondisi_fisik_tanah_lainnya', isset($forminspeksi['tanah']['kondisi_fisik_tanah']['lainnya'])) }}">
</div> </div>
@endif @endif
@endforeach @endforeach

View File

@@ -16,7 +16,7 @@
} }
</style> </style>
@endpush @endpush
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto"> <div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@@ -30,15 +30,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
@if (request()->has('form') && request('form') == 'denah')
@include('lpj::surveyor.components.card-tambah') @include('lpj::surveyor.components.card-tambah')
@elseif(request()->has('form') && request('form') == 'data-pembanding')
@include('lpj::surveyor.components.card-tambah')
@elseif(request()->has('form') && request('form') == 'foto')
@include('lpj::surveyor.components.card-tambah')
@else
@include('lpj::surveyor.components.card-tambah')
@endIf
</div> </div>
<div class="card-footer "> <div class="card-footer ">
@@ -94,11 +86,19 @@
}, },
success: function(response) { success: function(response) {
if (response.success) { if (response.success) {
window.location.href = "{{ route('surveyor.index') }}"; // window.location.href = "{{ route('surveyor.index') }}";
toastrSuccessBuild(response.message);
} }
}, },
error: function(xhr, status, error) { error: function(xhr, status, error) {
console.log('Error checking button status:', error, status, xhr); console.log('Error checking button status:', error, status, xhr);
if (xhr.responseJSON.message) {
toastrErrorBuild(xhr.responseJSON.message);
}else{
toastrErrorBuild('Terjadi kesalahan');
}
} }
}); });
} }