From 0631eb71e0fbd8ae20b5ccfc6a5b1d54a1d5cff6 Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 29 Nov 2024 22:16:04 +0700 Subject: [PATCH 1/2] update export basic data dan tampilan awal form surveyor --- app/Exports/BasicDataSurveyorExport.php | 58 ++ app/Http/Controllers/SurveyorController.php | 320 +++--- app/Http/Requests/SurveyorRequest.php | 1 + .../surveyor/components/bangunan.blade.php | 26 +- .../surveyor/components/card-tambah.blade.php | 168 +-- .../components/data-pembanding.blade.php | 35 +- .../views/surveyor/components/denah.blade.php | 6 +- .../views/surveyor/components/foto.blade.php | 6 +- .../surveyor/components/header.blade.php | 16 + .../surveyor/components/inspeksi.blade.php | 25 +- .../surveyor/components/lingkungan.blade.php | 78 +- resources/views/surveyor/data/index.blade.php | 4 +- resources/views/surveyor/detail.blade.php | 15 +- routes/breadcrumbs.php | 4 + routes/web.php | 954 +++++++++--------- 15 files changed, 943 insertions(+), 773 deletions(-) create mode 100644 app/Exports/BasicDataSurveyorExport.php diff --git a/app/Exports/BasicDataSurveyorExport.php b/app/Exports/BasicDataSurveyorExport.php new file mode 100644 index 0000000..3137429 --- /dev/null +++ b/app/Exports/BasicDataSurveyorExport.php @@ -0,0 +1,58 @@ +model = $model; + } + + public function collection() + { + return $this->model::all(); + } + + public function map($row) + : array + { + return [ + $row->id, + $row->code, + $row->name, + $row->created_at + ]; + } + + public function headings() + : array + { + return [ + 'ID', + 'Code', + 'Name', + 'Created At' + ]; + } + + public function columnFormats() + : array + { + return [ + 'A' => NumberFormat::FORMAT_NUMBER, + 'D' => NumberFormat::FORMAT_DATE_DATETIME + ]; + } + } diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 6b48f91..b2f411e 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -5,6 +5,8 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Maatwebsite\Excel\Facades\Excel; +use Modules\Lpj\Exports\BasicDataSurveyorExport; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Response; @@ -99,22 +101,6 @@ class SurveyorController extends Controller $branches = Branch::all(); $provinces = Province::all(); $bentukTanah = BentukTanah::all(); - $konturTanah = KonturTanah::all(); - $posisiKavling = PosisiKavling::all(); - $ketinggianTanah = KetinggianTanah::all(); - $kondisiFisikTanah = KondisiFisikTanah::all(); - $jenisBangunan = JenisBangunan::all(); - $kondisiBangunan = KondisiBangunan::all(); - $sifatBangunan = SifatBangunan::all(); - $spekKategoriBagunan = SpekKategoritBangunan::all(); - $spekBangunan = SpekBangunan::all(); - $saranaPelengkap = SaranaPelengkap::all(); - $arahMataAngin = ArahMataAngin::all(); - $jenisKendaraan = JenisKendaraan::all(); - $jenisKapal = JenisKapal::all(); - $jenisPesawat = JenisPesawat::all(); - $modelAlatBerat = ModelAlatBerat::all(); - $denah = Denah::where('permohonan_id', $id)->get(); $fotojaminan = FotoJaminan::where('permohonan_id', $id)->get(); @@ -122,8 +108,6 @@ class SurveyorController extends Controller ->where('permohonan_id', $id) ->get(); - - $jenisJaminanIds = $permohonan->debiture->documents->pluck('jenisJaminan.id')->toArray(); // Convert to array $jaminanId = $jenisJaminanIds[0]; @@ -135,14 +119,14 @@ class SurveyorController extends Controller $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( 'denah', 'analisa', @@ -151,25 +135,12 @@ class SurveyorController extends Controller 'branches', 'provinces', 'bentukTanah', - 'konturTanah', - 'posisiKavling', - 'kondisiFisikTanah', - 'ketinggianTanah', - 'kondisiBangunan', - 'jenisBangunan', - 'sifatBangunan', - 'spekKategoriBagunan', - 'spekBangunan', - 'saranaPelengkap', - 'arahMataAngin', 'forminspeksi', 'formDenah', 'formFoto', 'jaminanId', - 'jenisKendaraan', - 'jenisKapal', - 'jenisPesawat', - 'modelAlatBerat' + + 'formPembanding' )); } /** @@ -179,7 +150,7 @@ class SurveyorController extends Controller { $data = $request->validated(); - + if (!$data) { return response()->json(['success' => false, 'message' => 'Invalid data'], 400); @@ -191,18 +162,22 @@ class SurveyorController extends Controller $action = $request->input('type'); $rules = $this->getActionSpecificRules($data, $action, $request); - $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); + $data = $rules; - if (!$inspeksi) { - Inspeksi::create([ - '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)]); - } + + + // $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); + + // if (!$inspeksi) { + // Inspeksi::create([ + // '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(); @@ -570,7 +545,7 @@ class SurveyorController extends Controller return response()->json(['success' => false, 'message' => 'Failed to save data: ' . $e->getMessage()], 500); } } - + /** * Form inspeksi. */ @@ -914,23 +889,23 @@ class SurveyorController extends Controller 'penilaian', 'documents', ])->findOrFail($id); - + $jenisAssetUpdated = false; if ($request->input('types') == 'jenis_asset') { $this->updateJenisAsset($permohonan, $request); $jenisAssetUpdated = true; } - + if (in_array($request->input('types'), ['analisa_tanah', 'analisa_bangunan', 'analisa_unit'])) { $key = match ($request->input('types')) { 'analisa_tanah' => 'luas_tanah', 'analisa_bangunan' => 'luas_bangunan', 'analisa_unit' => 'luas_unit', }; - + $this->updateDetails($permohonan, $key, $request->input($key)); } - + return response()->json([ 'success' => true, 'message' => 'Data berhasil disimpan', @@ -940,8 +915,8 @@ class SurveyorController extends Controller return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500); } } - - + + private function updateJenisAsset($permohonan, $request) { $jenis_jaminan_id = $permohonan->debiture->documents->first()->jenis_jaminan_id; @@ -951,35 +926,35 @@ class SurveyorController extends Controller 'jenis_jaminan_id' => $request->input('jenis_asset'), ]); } - + private function updateDetails($permohonan, $key, $newValue) { $document = $permohonan->debiture->documents->first(); - + if (!$document) { throw new \Exception("Document not found"); } - + $detailsUpdate = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->first(); - + if (!$detailsUpdate) { throw new \Exception("DetailDokumenJaminan not found"); } - + $datas = json_decode($detailsUpdate->details, true) ?? []; - + if (is_numeric($newValue)) { $newValue = [$key => $newValue]; } - + if (!is_array($newValue)) { throw new \InvalidArgumentException("'{$key}' must be an array or valid JSON string"); } - + foreach ($newValue as $subKey => $value) { $datas[$subKey] = $value; // Update atau tambahkan key baru } - + $detailsUpdate->update([ 'details' => json_encode($datas), ]); @@ -1230,6 +1205,7 @@ class SurveyorController extends Controller 'fasilitas-objek' => FasilitasObjek::class, 'merupakan-daerah' => MerupakanDaerah::class, 'jenis-unit' => JenisUnit::class, + 'perkerasan-jalan' => PerkerasanJalan::class, ]; @@ -1303,74 +1279,103 @@ class SurveyorController extends Controller 'fasilitas-objek' => ['Fasilitas Umum Dekat Objek', 'fasilitas-objek'], ]; - private function getAssetData($data) + private function getAssetData(array $data): array { - return [ - 'asset' =>[ - 'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [], - 'jenis_asset' => $data['jenis_asset'] ?? null, - 'jenis_asset_tidak_sesuai' => $data['jenis_asset_tidak_sesuai'] ?? null, - 'alamat_sesuai' => $data['alamat_sesuai'] ?? null, - 'alamat_tidak_sesuai' => $data['alamat_tidak_sesuai'] ?? null, + $alamatData = [ 'nama_jalan' => $data['nama_jalan'] ?? null, 'desa_kelurahan' => $data['desa_kelurahan'] ?? null, 'kecamatan' => $data['kecamatan'] ?? null, 'kota_kabupaten' => $data['kota_kabupaten'] ?? null, 'provinsi' => $data['provinsi'] ?? null, - 'kordinat_lng' => $data['kordinat_lng'] ?? null, - 'kordinat_lat' => $data['kordinat_lat'] ?? null, - ]]; + ]; + + return [ + 'asset' => [ + 'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [], + 'jenis_asset' => [ + $data['jenis_asset'] => ($data['jenis_asset'] === 'sesuai') + ? $data['jenis_asset'] + : ($data['jenis_asset_tidak_sesuai'] ?? null) + ], + 'alamat' => [ + $data['alamat_sesuai'] => $alamatData + ], + 'kordinat_lng' => $data['kordinat_lng'] ?? null, + 'kordinat_lat' => $data['kordinat_lat'] ?? null, + ] + ]; } - private function getTanahData($data, $request): array + private function getTanahData(array $data): array { return [ 'tanah' => [ - - 'luas_tanah' => $data['luas_tanah'] ?? null, - 'luas_tanah_tidak_sesuai' => $data['luas_tanah_tidak_sesuai'] ?? null, - 'hadap_mata_angin' => $data['hadap_mata_angin'] ?? null, - 'hadap_mata_angin_tidak_sesuai' => $data['hadap_mata_angin_tidak_sesuai'] ?? null, - 'bentuk_tanah' => $data['bentuk_tanah'] ?? null, - 'bentuk_tanah_lainnya' => $data['bentuk_tanah_lainnya'] ?? null, - 'kontur_tanah' => $data['kontur_tanah'] ?? [], - 'ketinggian_tanah' => $data['ketinggian_tanah'] ?? [], - 'ketinggian_tanah_tidak_sesuai' => $data['ketinggian_tanah_tidak_sesuai'] ?? [], - 'kontur_jalan' => $data['kontur_jalan'] ?? null, - 'ketinggian_jalan' => $data['ketinggian_jalan'] ?? [], - 'posisi_kavling' => $data['posisi_kavling'] ?? [], - 'posisi_kavling_lainnya' => $data['posisi_kavling_lainnya'] ?? null, - 'tusuk_sate' => $data['tusuk_sate'] ?? null, - 'lockland' => $data['lockland'] ?? null, - 'kondisi_fisik_tanah' => $data['kondisi_fisik_tanah'] ?? [], - 'kondisi_fisik_tanah_lainnya' => $data['kondisi_fisik_tanah_lainnya'] ?? null, - ], + 'luas_tanah' => $this->getFieldData( + $data, + 'luas_tanah', + true + ), + 'hadap_mata_angin' => $this->getFieldData( + $data, + 'hadap_mata_angin', + true + ), + 'bentuk_tanah' => $this->getFieldData( + $data, + 'bentuk_tanah', + false, + 'lainnya' + ), + 'kontur_tanah' => $data['kontur_tanah'] ?? [], + 'ketinggian_tanah' => [ + 'ketinggian' => $data['kontur_tanah'] ?? null, + 'lebih_tinggi' => $data['ketinggian_lebih_tinggi'] ?? null, + 'lebih_rendah' => $data['ketinggian_lebih_rendah'] ?? null + ], + 'kontur_jalan' => $data['kontur_jalan'] ?? null, + 'ketinggian_jalan' => $data['ketinggian_jalan'] ?? [], + 'posisi_kavling' => $this->getFieldData( + $data, + 'posisi_kavling', + false, + 'lainnya' + ), + 'tusuk_sate' => $data['tusuk_sate'] ?? null, + 'lockland' => $data['lockland'] ?? null, + 'kondisi_fisik_tanah' => $this->getFieldData( + $data, + 'kondisi_fisik_tanah', + false, + 'lainnya' + ) + ] ]; } + private function getBangunanData($data, $request): array { $data = $request->all(); $result = []; - // foreach ($data['nama_bagunan'] as $index => $bangunan) { - // $bangunanData = [ - // 'bangunan' => $bangunan, - // 'kategori' => [] - // ]; + foreach ($data['nama_bagunan'] as $index => $bangunan) { + $bangunanData = [ + 'bangunan' => $bangunan, + 'kategori' => [] + ]; - // foreach ($data['spek_kategori_bangunan'] as $kategoriIndex => $kategori) { - // if (isset($data['spek_bangunan'][$kategori])) { - // $bangunanData['kategori'][] = [ - // 'kategori' => $kategori, - // 'spesifikasi' => $data['spek_bangunan'][$kategori] - // ]; - // } - // } + foreach ($data['spek_kategori_bangunan'] as $kategoriIndex => $kategori) { + if (isset($data['spek_bangunan'][$kategori])) { + $bangunanData['kategori'][] = [ + 'kategori' => $kategori, + 'spesifikasi' => $data['spek_bangunan'][$kategori] + ]; + } + } - // $result[] = $bangunanData; - // } + $result[] = $bangunanData; + } return [ 'bangunan' => [ @@ -1380,10 +1385,11 @@ class SurveyorController extends Controller 'sifat_bangunan' => $data['sifat_bangunan'] ?? null, 'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null, 'spesifikasi_bangunan' => $result ?? null, - // 'spek_bangunan' => $data['spek_bangunan'] ?? [], - 'sarana_pelengkap' => $data['sarana_pelengkap'] ?? [], - 'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null, - ], + 'sarana_pelengkap' => $this->mapArrayWithInputs( + $data['sarana_pelengkap'] ?? [], + $data['sarana_pelengkap_input'] ?? [] + ), + ], ]; } @@ -1423,8 +1429,9 @@ class SurveyorController extends Controller 'fakta_positif' => $data['fakta_positif'] ?? null, 'fakta_negatif' => $data['fakta_negatif'] ?? null, 'rute_menuju' => $data['rute_menuju'] ?? null, - 'batas_batas' => $data['batas_batas'] ?? null, - 'batas_batas_input' => $data['batas_batas_input'] ?? null, + 'batas_batas' => $this->mapArrayWithInputs( + $data['batas_batas'] ?? null, $data['batas_batas_input'] ?? null + ), 'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null, 'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null, 'informasi_dokument' => $data['informasi_dokument'] ?? null, @@ -1462,7 +1469,7 @@ class SurveyorController extends Controller $factData[$fotoType] = $dataForm[$fotoType] ?? null; } } - }else{ + } else { foreach ($fotoTypes as $fotoType) { $factData[$fotoType] = $this->updateOrDeleteFile($data, $request, $fotoType); } @@ -1865,9 +1872,15 @@ class SurveyorController extends Controller + /** + * Helper untuk upload file + * + * @param $file + * @param $type + * @return path name + */ - // function upload file to storage private function uploadFile($file, $type) { if (!$file->isValid()) { @@ -1884,5 +1897,76 @@ class SurveyorController extends Controller return str_replace('public/', '', $path); } -} + /** + * Helper untuk memetakan array dengan inputannya + * + * @param array $keys Array kunci + * @param array $values Array nilai/input + * @return array + */ + private function mapArrayWithInputs(array $keys, array $values): array + { + $result = []; + + foreach ($keys as $index => $key) { + $result[$key] = $values[$index] ?? null; + } + + return $result; + } + + + + /** + * Helper method generic untuk mengambil data field + * + * @param array $data Array sumber data + * @param string $fieldName Nama field + * @param bool $checkKesesuaian Apakah perlu cek kesesuaian + * @param string|null $extraField Field tambahan (misal 'lainnya') + * @return array + */ + private function getFieldData( + array $data, + string $fieldName, + bool $checkKesesuaian = false, + ?string $extraField = null + ): array { + if ($checkKesesuaian) { + return [ + $data[$fieldName] ?? '' => ($data[$fieldName] ?? '') === 'sesuai' + ? ($data[$fieldName] ?? '') + : ($data["{$fieldName}_tidak_sesuai"] ?? '') + ]; + } + + $result = [ + $fieldName => $data[$fieldName] ?? null + ]; + + if ($extraField) { + $result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null; + } + + return $result; + } + + + public function export(string $type) + { + $modelClass = $this->getModelClass($type); + + if (!$modelClass) { + + return response()->json([ + 'message' => 'Invalid type provided.', + 'available_types' => array_keys($this->modelClasses), + ], 400); + } + + // Return Excel download + return Excel::download(new BasicDataSurveyorExport($modelClass), $type . '.xlsx'); + } + +} diff --git a/app/Http/Requests/SurveyorRequest.php b/app/Http/Requests/SurveyorRequest.php index 379d24b..ec41731 100644 --- a/app/Http/Requests/SurveyorRequest.php +++ b/app/Http/Requests/SurveyorRequest.php @@ -37,6 +37,7 @@ class SurveyorRequest extends FormRequest 'posisi-unit' => 'posisi_unit', 'bentuk-unit' => 'bentuk_unit', 'fasilitas-objek' => 'fasilitas_objek', + 'perkerasan-jalan' => 'perkerasan_jalan', ]; /** diff --git a/resources/views/surveyor/components/bangunan.blade.php b/resources/views/surveyor/components/bangunan.blade.php index b78b11b..1b0cf9f 100644 --- a/resources/views/surveyor/components/bangunan.blade.php +++ b/resources/views/surveyor/components/bangunan.blade.php @@ -7,7 +7,7 @@
- + @if (isset($permohonan->debiture->documents)) @foreach ($permohonan->debiture->documents as $item) @php @@ -17,7 +17,7 @@ @endphp

{{ $luas_bangunan }} m2

@endforeach - + @endif
@@ -60,20 +60,16 @@ - @if (strcasecmp($item->name, 'lainnya') == 0) -
- - -
- @endif + @if (strcasecmp($item->name, 'Lainnya') == 0) + + @endif @endforeach @endif
@@ -153,7 +149,7 @@ @if (@isset($spekKategoriBagunan)) @foreach ($spekKategoriBagunan as $item)
- diff --git a/resources/views/surveyor/components/card-tambah.blade.php b/resources/views/surveyor/components/card-tambah.blade.php index 23370f9..0f9efe4 100644 --- a/resources/views/surveyor/components/card-tambah.blade.php +++ b/resources/views/surveyor/components/card-tambah.blade.php @@ -1,78 +1,122 @@
@foreach ($permohonan->debiture->documents as $dokumen) - @if (request()->has('form') && request('form') === 'denah') - - @elseif(request()->has('form') && request('form') === 'foto') - - @elseif(request()->has('form') && request('form') === 'inspeksi') - +
- @elseif(request()->has('form') && request('form') === 'data-pembanding') - - @endif - -
-
-
-
- +
+
+ + 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=""> + + 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=""> + -
- +
+ +
+
-
- - @php - $formType = request()->input('form'); - $formData = null; - $formAction = 'Tambah'; - @endphp +
- @if ($formType === 'inspeksi') - @php - $formData = $forminspeksi ?? null; - @endphp - @elseif ($formType === 'foto') - @php - $formData = $formFoto ?? null; - @endphp - @elseif ($formType === 'denah') - @php - $formData = $formDenah ?? null; - @endphp - @endif - - @if ($formData) - @php - $formAction = 'Update'; - @endphp - @endif - - {{ $formAction }} - - - {{ request('form') }} - - - {{ $dokumen->jenisJaminan->name ?? '' }} - + + {{ $dokumen->jenisJaminan->name ?? '' }} +
-
+ + @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) + @if ($item['show']) +
+
+
+

+ {{ $item['label'] }} +

+
+
+
+
+
+ + +
+
+
+
+ @endif + @endforeach
- @endforeach
diff --git a/resources/views/surveyor/components/data-pembanding.blade.php b/resources/views/surveyor/components/data-pembanding.blade.php index 28b7f41..b90fed1 100644 --- a/resources/views/surveyor/components/data-pembanding.blade.php +++ b/resources/views/surveyor/components/data-pembanding.blade.php @@ -1,40 +1,33 @@ @extends('layouts.main') -{{-- @section('breadcrumbs') +@section('breadcrumbs') {{ Breadcrumbs::render(request()->route()->getName()) }} -@endsection --}} +@endsection @section('content') @include('lpj::assetsku.includenya')
-
-
-
-

- Data Pembanding -

- -
-
-
-
+
@csrf -
+
+

+ Data Pembanding +

+ +
- {{--
-
--}}
@endsection @push('scripts') diff --git a/resources/views/surveyor/components/lingkungan.blade.php b/resources/views/surveyor/components/lingkungan.blade.php index cc59d4b..d6d2e40 100644 --- a/resources/views/surveyor/components/lingkungan.blade.php +++ b/resources/views/surveyor/components/lingkungan.blade.php @@ -50,9 +50,15 @@ + @if (strcasecmp($item->name, 'Lainnya') == 0) + + @endif @endforeach @endif
@@ -133,10 +139,16 @@ + @if (strcasecmp($item->name, 'Lainnya') == 0) + + @endif @endforeach @endif
@@ -246,53 +258,34 @@
-
+
- + placeholder="Km" />
- + placeholder="Nama TPS" />
@@ -332,9 +325,15 @@ @php $selectedFasilitas = is_array( - old('fasilitas_dekat_object', $forminspeksi['lingkungan']['fasilitas_dekat_object'] ?? []), + old( + 'fasilitas_dekat_object', + $forminspeksi['lingkungan']['fasilitas_dekat_object'] ?? [], + ), ) - ? old('fasilitas_dekat_object', $forminspeksi['lingkungan']['fasilitas_dekat_object'] ?? []) + ? old( + 'fasilitas_dekat_object', + $forminspeksi['lingkungan']['fasilitas_dekat_object'] ?? [], + ) : explode( ',', old( @@ -353,10 +352,18 @@ : explode(',', old('fasilitas_dekat_object', $forminspeksi['lingkungan']['fasilitas_dekat_object'] ?? '')), ) ? 'checked' - : '' }} /> + : '' }} + onclick="toggleCheckboxVisibility('fasilitas_dekat_object', 'fasilitas_dekat_object_lainnya', ['Lainnya'])" + /> {{ $item->name }} + + @if (strcasecmp($item->name, 'Lainnya') == 0) + + @endif @endforeach @endif
@@ -367,4 +374,3 @@
- diff --git a/resources/views/surveyor/data/index.blade.php b/resources/views/surveyor/data/index.blade.php index fc436c7..ecae761 100644 --- a/resources/views/surveyor/data/index.blade.php +++ b/resources/views/surveyor/data/index.blade.php @@ -19,7 +19,7 @@
- Export to Excel + Export to Excel @php $href = route('basicdata.createData', ['type' => $header[1]]); @@ -42,7 +42,7 @@ - Jenis Aset + {{ isset($header[0]) ? $header[0] : '' }} Action diff --git a/resources/views/surveyor/detail.blade.php b/resources/views/surveyor/detail.blade.php index 6a28dac..fc7b11f 100644 --- a/resources/views/surveyor/detail.blade.php +++ b/resources/views/surveyor/detail.blade.php @@ -25,20 +25,7 @@
diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 65d1bdd..4e0c549 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -418,6 +418,10 @@ Breadcrumbs::for('surveyor', function (BreadcrumbTrail $trail) { $trail->push('Surveyor', route('surveyor.index')); }); + Breadcrumbs::for('surveyor.inspeksi', function (BreadcrumbTrail $trail) { + $trail->parent('surveyor'); + $trail->push('Form Inspeksi'); + }); Breadcrumbs::for('surveyor.show', function (BreadcrumbTrail $trail) { $trail->parent('surveyor'); diff --git a/routes/web.php b/routes/web.php index 7ace9a7..29a0477 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,468 +1,470 @@ group(function () { - Route::get('api/check-penawaran/{nomor_registrasi}', [TenderController::class, 'checkPenawaranExistence']); +Route::middleware(['auth'])->group(function () { + Route::get('api/check-penawaran/{nomor_registrasi}', [TenderController::class, 'checkPenawaranExistence']); - Route::name('basicdata.')->prefix('basic-data')->group(function () { - Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { - Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); - }); - Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); - - Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { - Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); - - Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () { - Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan']) - ->name('legalitas'); - Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-jaminan', JenisJaminanController::class); - - Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { - Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); - }); - Route::resource('tujuan-penilaian', TujuanPenilaianController::class); - - Route::name('tujuan_penilaian_kjpp.')->prefix('tujuan_penilaian_kjpp')->group(function () { - Route::get('datatables', [TujuanPenilaianKJPPController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [TujuanPenilaianKJPPController::class, 'export'])->name('export'); - }); - Route::resource('tujuan_penilaian_kjpp', TujuanPenilaianKJPPController::class); - - Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { - Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); - }); - Route::resource('jenis-dokumen', JenisDokumenController::class); - - - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); - - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - - - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); - - Route::name('region.')->prefix('region')->group(function () { - Route::get('restore/{id}', [RegionController::class, 'restore'])->name('restore'); - Route::get('datatables', [RegionController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [RegionController::class, 'export'])->name('export'); - }); - - - Route::resource('region', RegionController::class, [ - 'names' => [ - 'index' => 'region.index', - 'show' => 'region.show', - 'create' => 'region.create', - 'store' => 'region.store', - 'edit' => 'region.edit', - 'update' => 'region.update', - 'destroy' => 'region.destroy', - ], - ]); - - Route::resource('region', RegionController::class); - - - Route::name('teams.')->prefix('teams')->group(function () { - Route::get('restore/{id}', [TeamsController::class, 'restore'])->name('restore'); - Route::get('datatables', [TeamsController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [TeamsController::class, 'export'])->name('export'); - }); - - Route::resource('teams', TeamsController::class, [ - 'names' => [ - 'index' => 'teams.index', - 'show' => 'teams.show', - 'create' => 'teams.create', - 'store' => 'teams.store', - 'edit' => 'teams.edit', - 'update' => 'teams.update', - 'destroy' => 'teams.destroy', - ], - ]); - - Route::name('jenis-penilaian.')->prefix('jenis-penilaian')->group(function () { - Route::get('restore/{id}', [JenisPenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisPenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); - }); - - Route::resource('jenis-penilaian', JenisPenilaianController::class, [ - 'names' => [ - 'index' => 'jenis-penilaian.index', - 'show' => 'jenis-penilaian.show', - 'create' => 'jenis-penilaian.create', - 'store' => 'jenis-penilaian.store', - 'edit' => 'jenis-penilaian.edit', - 'update' => 'jenis-penilaian.update', - 'destroy' => 'jenis-penilaian.destroy', - ], - ]); - - - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); - - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); - - // Start Activity KJPP route - Route::name('kjpp.')->prefix('kjpp')->group(function () { - Route::get('datatables', [KJPPController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [KJPPController::class, 'export'])->name('export'); - }); - - Route::resource('kjpp', KJPPController::class); - // End Activity KJPP route - - // Start Activity Ijin Usaha route - Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { - Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); - }); - - Route::resource('ijin_usaha', IjinUsahaController::class); - // End Activity Ijin Usaha route - - // Start Activity Jenis Laporan route - Route::name('jenis_laporan.')->prefix('jenis_laporan')->group(function () { - Route::get('datatables', [JenisLaporanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [JenisLaporanController::class, 'export'])->name('export'); - }); - - Route::resource('jenis_laporan', JenisLaporanController::class); - // End Activity Jenis Laporan route - - // basic data surveyor - Route::get('datatablesSurveyory/{type}', [SurveyorController::class, 'dataForDatatablesData'])->name( - 'datatablesSurveyory', + Route::name('basicdata.')->prefix('basic-data')->group(function () { + Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { + Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables'])->name( + 'datatables', ); - Route::get('createData/{type}', [SurveyorController::class, 'createData'])->name('createData'); - Route::get('/{type}/{id}', [SurveyorController::class, 'editData'])->name('editData'); - Route::post('storeData/{type}', [SurveyorController::class, 'storeData'])->name('storeData'); - Route::put('updateData/{type}/{id}', [SurveyorController::class, 'updateData'])->name('updateData'); - Route::delete('deleteData/{id}/{type}', [SurveyorController::class, 'destroy'])->name('deleteData'); + Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); + }); + Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); - // Start Activity SLA route - Route::name('sla.')->prefix('sla')->group(function () { - Route::get('/', [SLAController::class, 'index'])->name('index'); - }); - // End Activity SLA route + Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { + Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); - $headers = [ - 'bentuk-tanah' => 'Bentuk Tanah', - 'kontur-tanah' => 'Kontur Tanah', - 'posisi-kavling' => 'Posisi Kavling', - 'ketinggian-tanah' => 'Ketinggian Tanah', - 'kondisi-fisik-tanah' => 'Kondisi Fisik Tanah', - 'jenis-bangunan' => 'Jenis Bangunan', - 'kondisi-bangunan' => 'Kondisi Bangunan', - 'sifat-bangunan' => 'Sifat Bangunan', - 'spek-bangunan' => 'Speksifikasi Bangunan', - 'spek-kategori-bangunan' => 'Speksifikasi Kategori Bangunan', - 'sarana-pelengkap' => 'Sarana Pelengkap', - 'lalu-lintas-lokasi' => 'Lalu Lintas', - 'tingkat-keramaian' => 'Tingkat Keramaian', - 'gol-mas-sekitar' => 'Golongan Masyarakat Sekitar', - 'lantai-unit' => 'Lantai Unit', - 'view-unit' => 'View Unit', - 'bentuk-unit' => 'Bentuk unit', - 'perkerasan-jalan' => 'Perkerasan jalan', - 'jenis-pesawat' => 'Jenis pesawat', - 'model-alat-berat' => 'Model Alat Berat', - 'jenis-kapal' => 'Jenis kapal', - 'jenis-kendaraan' => 'Jenis kendaraan', - 'jenis-unit' => 'Jenis unit', - 'terletak-area' => 'Terletak di Area', - 'merupakan-daerah' => 'Merupakan Daerah', - 'posisi-unit' => 'Posisi unit', - 'bentuk-unit' => 'Bentuk unit', - 'fasilitas-objek' => 'Fasilitas Umum Dekat Objek', + Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () { + Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan']) + ->name('legalitas'); + Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-jaminan', JenisJaminanController::class); + + Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { + Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); + }); + Route::resource('tujuan-penilaian', TujuanPenilaianController::class); + + Route::name('tujuan_penilaian_kjpp.')->prefix('tujuan_penilaian_kjpp')->group(function () { + Route::get('datatables', [TujuanPenilaianKJPPController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [TujuanPenilaianKJPPController::class, 'export'])->name('export'); + }); + Route::resource('tujuan_penilaian_kjpp', TujuanPenilaianKJPPController::class); + + Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { + Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); + }); + Route::resource('jenis-dokumen', JenisDokumenController::class); + + + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); + + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + + + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); + + Route::name('region.')->prefix('region')->group(function () { + Route::get('restore/{id}', [RegionController::class, 'restore'])->name('restore'); + Route::get('datatables', [RegionController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [RegionController::class, 'export'])->name('export'); + }); + + + Route::resource('region', RegionController::class, [ + 'names' => [ + 'index' => 'region.index', + 'show' => 'region.show', + 'create' => 'region.create', + 'store' => 'region.store', + 'edit' => 'region.edit', + 'update' => 'region.update', + 'destroy' => 'region.destroy', + ], + ]); + + Route::resource('region', RegionController::class); + + + Route::name('teams.')->prefix('teams')->group(function () { + Route::get('restore/{id}', [TeamsController::class, 'restore'])->name('restore'); + Route::get('datatables', [TeamsController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [TeamsController::class, 'export'])->name('export'); + }); + + Route::resource('teams', TeamsController::class, [ + 'names' => [ + 'index' => 'teams.index', + 'show' => 'teams.show', + 'create' => 'teams.create', + 'store' => 'teams.store', + 'edit' => 'teams.edit', + 'update' => 'teams.update', + 'destroy' => 'teams.destroy', + ], + ]); + + Route::name('jenis-penilaian.')->prefix('jenis-penilaian')->group(function () { + Route::get('restore/{id}', [JenisPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisPenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); + }); + + Route::resource('jenis-penilaian', JenisPenilaianController::class, [ + 'names' => [ + 'index' => 'jenis-penilaian.index', + 'show' => 'jenis-penilaian.show', + 'create' => 'jenis-penilaian.create', + 'store' => 'jenis-penilaian.store', + 'edit' => 'jenis-penilaian.edit', + 'update' => 'jenis-penilaian.update', + 'destroy' => 'jenis-penilaian.destroy', + ], + ]); + + + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); + + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); + + // Start Activity KJPP route + Route::name('kjpp.')->prefix('kjpp')->group(function () { + Route::get('datatables', [KJPPController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [KJPPController::class, 'export'])->name('export'); + }); + + Route::resource('kjpp', KJPPController::class); + // End Activity KJPP route + + // Start Activity Ijin Usaha route + Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { + Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); + }); + + Route::resource('ijin_usaha', IjinUsahaController::class); + // End Activity Ijin Usaha route + + // Start Activity Jenis Laporan route + Route::name('jenis_laporan.')->prefix('jenis_laporan')->group(function () { + Route::get('datatables', [JenisLaporanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisLaporanController::class, 'export'])->name('export'); + }); + + Route::resource('jenis_laporan', JenisLaporanController::class); + // End Activity Jenis Laporan route + + // basic data surveyor + Route::get('datatablesSurveyory/{type}', [SurveyorController::class, 'dataForDatatablesData'])->name( + 'datatablesSurveyory', + ); + Route::get('createData/{type}', [SurveyorController::class, 'createData'])->name('createData'); + Route::get('/{type}/{id}', [SurveyorController::class, 'editData'])->name('editData'); + Route::post('storeData/{type}', [SurveyorController::class, 'storeData'])->name('storeData'); + Route::put('updateData/{type}/{id}', [SurveyorController::class, 'updateData'])->name('updateData'); + Route::delete('deleteData/{id}/{type}', [SurveyorController::class, 'destroy'])->name('deleteData'); + + // Start Activity SLA route + Route::name('sla.')->prefix('sla')->group(function () { + Route::get('/', [SLAController::class, 'index'])->name('index'); + }); + // End Activity SLA route + + $headers = [ + 'bentuk-tanah' => 'Bentuk Tanah', + 'kontur-tanah' => 'Kontur Tanah', + 'posisi-kavling' => 'Posisi Kavling', + 'ketinggian-tanah' => 'Ketinggian Tanah', + 'kondisi-fisik-tanah' => 'Kondisi Fisik Tanah', + 'jenis-bangunan' => 'Jenis Bangunan', + 'kondisi-bangunan' => 'Kondisi Bangunan', + 'sifat-bangunan' => 'Sifat Bangunan', + 'spek-bangunan' => 'Speksifikasi Bangunan', + 'spek-kategori-bangunan' => 'Speksifikasi Kategori Bangunan', + 'sarana-pelengkap' => 'Sarana Pelengkap', + 'lalu-lintas-lokasi' => 'Lalu Lintas', + 'tingkat-keramaian' => 'Tingkat Keramaian', + 'gol-mas-sekitar' => 'Golongan Masyarakat Sekitar', + 'lantai-unit' => 'Lantai Unit', + 'view-unit' => 'View Unit', + 'bentuk-unit' => 'Bentuk unit', + 'perkerasan-jalan' => 'Perkerasan jalan', + 'jenis-pesawat' => 'Jenis pesawat', + 'model-alat-berat' => 'Model Alat Berat', + 'jenis-kapal' => 'Jenis kapal', + 'jenis-kendaraan' => 'Jenis kendaraan', + 'jenis-unit' => 'Jenis unit', + 'terletak-area' => 'Terletak di Area', + 'merupakan-daerah' => 'Merupakan Daerah', + 'posisi-unit' => 'Posisi unit', + 'bentuk-unit' => 'Bentuk unit', + 'fasilitas-objek' => 'Fasilitas Umum Dekat Objek', ]; - foreach ($headers as $type => $header) { - Route::get($type, [SurveyorController::class, 'data'])->name($type . '.index')->defaults('type', $type); - } + foreach ($headers as $type => $header) { + Route::get($type, [SurveyorController::class, 'data'])->name($type . '.index')->defaults('type', $type); + } + + Route::get('export/{type}', [SurveyorController::class, 'export'])->name('export'); + }); + + Route::name('debitur.')->prefix('debitur')->group(function () { + Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); + Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [DebitureController::class, 'export'])->name('export'); + + Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { + Route::get('download', [DokumenJaminanController::class, 'download'])->name('download'); + Route::get('bulk-download', [DokumenJaminanController::class, 'bulkDownload'])->name('bulk.download'); + Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); + Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); + Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); + Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); + Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); + Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); }); - Route::name('debitur.')->prefix('debitur')->group(function () { - Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); - Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); - - Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { - Route::get('download', [DokumenJaminanController::class, 'download'])->name('download'); - Route::get('bulk-download', [DokumenJaminanController::class, 'bulkDownload'])->name('bulk.download'); - Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); - Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); - Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); - Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); - Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); - Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); - }); - - Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { - Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); - Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); - Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); - Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); - Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); - Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); - }); + Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { + Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); + Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); + Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); + Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); + Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); + Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); }); + }); - Route::resource('debitur', DebitureController::class); + Route::resource('debitur', DebitureController::class); - Route::name('laporan.')->prefix('laporan')->group(function () { - Route::get('sederhana', [LaporanController::class, 'sederhana_index'])->name('sederhana.index'); - Route::get('standard', [LaporanController::class, 'standard_index'])->name('standard.index'); - }); + Route::name('laporan.')->prefix('laporan')->group(function () { + Route::get('sederhana', [LaporanController::class, 'sederhana_index'])->name('sederhana.index'); + Route::get('standard', [LaporanController::class, 'standard_index'])->name('standard.index'); + }); - Route::name('resume.')->prefix('resume')->group(function () { - Route::get('/', [ResumeController::class, 'index'])->name('index'); - Route::get('{id}/show', [ResumeController::class, 'show'])->name('show'); - Route::post('store', [ResumeController::class, 'store'])->name('store'); - Route::get('datatables', [ResumeController::class, 'dataForDatatables'])->name('datatables'); - }); + Route::name('resume.')->prefix('resume')->group(function () { + Route::get('/', [ResumeController::class, 'index'])->name('index'); + Route::get('{id}/show', [ResumeController::class, 'show'])->name('show'); + Route::post('store', [ResumeController::class, 'store'])->name('store'); + Route::get('datatables', [ResumeController::class, 'dataForDatatables'])->name('datatables'); + }); - Route::name('permohonan.')->prefix('permohonan')->group(function () { - Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); - Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [PermohonanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [PermohonanController::class, 'export'])->name('export'); - Route::get('print/{id}', [PermohonanController::class, 'print'])->name('print'); - }); + Route::name('permohonan.')->prefix('permohonan')->group(function () { + Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); + Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [PermohonanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [PermohonanController::class, 'export'])->name('export'); + Route::get('print/{id}', [PermohonanController::class, 'print'])->name('print'); + }); - Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); + Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); - Route::resource('permohonan', PermohonanController::class); + Route::resource('permohonan', PermohonanController::class); - Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); - Route::get('authorization/datatables', [PermohonanController::class, 'dataForAuthorization'])->name( - 'authorization.datatables', + Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); + Route::get('authorization/datatables', [PermohonanController::class, 'dataForAuthorization'])->name( + 'authorization.datatables', + ); + Route::get('authorization/{id}/edit', [PermohonanController::class, 'showAuthorization'])->name( + 'authorization.show', + ); + Route::put('authorization/{id}', [PermohonanController::class, 'updateAuthorization'])->name( + 'authorization.update', + ); + + Route::name('tender.')->prefix('tender')->group(function () { + // Penawaran + Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); + Route::get('penawaran/{noreg}/show', [TenderController::class, 'penawaran_show'])->name('penawaran.show'); + Route::get('penawaran/{noreg}/create', [TenderController::class, 'penawaran_create'])->name( + 'penawaran.createPenawaran', ); - Route::get('authorization/{id}/edit', [PermohonanController::class, 'showAuthorization'])->name( - 'authorization.show', + Route::post('penawaran/{noreg}/store', [TenderController::class, 'penawaran_store'])->name( + 'penawaran.storePenawaran', ); - Route::put('authorization/{id}', [PermohonanController::class, 'updateAuthorization'])->name( - 'authorization.update', + Route::get('penawaran/{noreg}/edit', [TenderController::class, 'penawaran_edit'])->name( + 'penawaran.editPenawaran', ); + Route::put('penawaran/{noreg}/update', [TenderController::class, 'penawaran_update'])->name( + 'penawaran.updatePenawaran', + ); + Route::get('penawaran/exportPenawaran', [TenderController::class, 'exportPenawaran'])->name( + 'penawaran.exportPenawaran', + ); + Route::get('penawaran/datatables', [TenderController::class, 'datatablesPenawaran'])->name( + 'penawaran.datatables', + ); + Route::get('penawaran/{noreg}/suratTender', [TenderController::class, 'showSuratTender'])->name( + 'penawaran.showSuratTender', + ); + Route::get('penawaran/{noreg}/suratTender/downloadpdf', [TenderController::class, 'downloadSuratTender']) + ->name('penawaran.downloadSuratTender'); + // Kirim Email Penawaran + Route::get('penawaran/{noreg}/showKirimEmail', [TenderController::class, 'showKirimEmail'])->name( + 'penawaran.showKirimEmail', + ); + Route::get('penawaran/{noreg}/kirimEmailAll', [TenderController::class, 'kirimEmailAll'])->name( + 'penawaran.kirimEmailAll', + ); + Route::get('penawaran/{noreg}/suratTenderKJPP/{id}', [TenderController::class, 'suratTenderKJPP'])->name( + 'penawaran.suratTenderKJPP', + ); + Route::get( + 'penawaran/{noreg}/suratTenderKJPP/{id}/kirimEmailKJPP', + [TenderController::class, 'kirimEmailKJPP'], + )->name('penawaran.kirimEmailKJPP'); + Route::get( + 'penawaran/suratTenderShow/{noreg}/datatables', + [TenderController::class, 'dataTablesShowKirimSurat'], + )->name('penawaran.showKirimSurat.datatables'); + // Download Surat Tender KJPP + Route::get( + 'penawaran/{noreg}/suratTenderKJPP/{id}/downloadSuratTenderKJPP', + [TenderController::class, 'downloadSuratTenderKJPP'], + )->name('penawaran.downloadSuratTenderKJPP'); - Route::name('tender.')->prefix('tender')->group(function () { - // Penawaran - Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); - Route::get('penawaran/{noreg}/show', [TenderController::class, 'penawaran_show'])->name('penawaran.show'); - Route::get('penawaran/{noreg}/create', [TenderController::class, 'penawaran_create'])->name( - 'penawaran.createPenawaran', - ); - Route::post('penawaran/{noreg}/store', [TenderController::class, 'penawaran_store'])->name( - 'penawaran.storePenawaran', - ); - Route::get('penawaran/{noreg}/edit', [TenderController::class, 'penawaran_edit'])->name( - 'penawaran.editPenawaran', - ); - Route::put('penawaran/{noreg}/update', [TenderController::class, 'penawaran_update'])->name( - 'penawaran.updatePenawaran', - ); - Route::get('penawaran/exportPenawaran', [TenderController::class, 'exportPenawaran'])->name( - 'penawaran.exportPenawaran', - ); - Route::get('penawaran/datatables', [TenderController::class, 'datatablesPenawaran'])->name( - 'penawaran.datatables', - ); - Route::get('penawaran/{noreg}/suratTender', [TenderController::class, 'showSuratTender'])->name( - 'penawaran.showSuratTender', - ); - Route::get('penawaran/{noreg}/suratTender/downloadpdf', [TenderController::class, 'downloadSuratTender']) - ->name('penawaran.downloadSuratTender'); - // Kirim Email Penawaran - Route::get('penawaran/{noreg}/showKirimEmail', [TenderController::class, 'showKirimEmail'])->name( - 'penawaran.showKirimEmail', - ); - Route::get('penawaran/{noreg}/kirimEmailAll', [TenderController::class, 'kirimEmailAll'])->name( - 'penawaran.kirimEmailAll', - ); - Route::get('penawaran/{noreg}/suratTenderKJPP/{id}', [TenderController::class, 'suratTenderKJPP'])->name( - 'penawaran.suratTenderKJPP', - ); - Route::get( - 'penawaran/{noreg}/suratTenderKJPP/{id}/kirimEmailKJPP', - [TenderController::class, 'kirimEmailKJPP'], - )->name('penawaran.kirimEmailKJPP'); - Route::get( - 'penawaran/suratTenderShow/{noreg}/datatables', - [TenderController::class, 'dataTablesShowKirimSurat'], - )->name('penawaran.showKirimSurat.datatables'); - // Download Surat Tender KJPP - Route::get( - 'penawaran/{noreg}/suratTenderKJPP/{id}/downloadSuratTenderKJPP', - [TenderController::class, 'downloadSuratTenderKJPP'], - )->name('penawaran.downloadSuratTenderKJPP'); + // Penawaran Ulang + Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name( + 'penawaran.ulang.index', + ); + Route::get('penawaran/ulang/datatables', [TenderController::class, 'datatablesPenawaranUlang'])->name( + 'penawaran.ulang.datatables', + ); + }); - // Penawaran Ulang - Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name( - 'penawaran.ulang.index', - ); - Route::get('penawaran/ulang/datatables', [TenderController::class, 'datatablesPenawaranUlang'])->name( - 'penawaran.ulang.datatables', - ); - }); + Route::name('penilaian.')->prefix('penilaian')->group(function () { + Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [PenilaianController::class, 'export'])->name('export'); + Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); - Route::name('penilaian.')->prefix('penilaian')->group(function () { - Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [PenilaianController::class, 'export'])->name('export'); - Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + Route::get('/', [PenilaianController::class, 'index'])->name('index'); + Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); + Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); + Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); + Route::post('create', [PenilaianController::class, 'create'])->name('create'); + Route::post('store', [PenilaianController::class, 'store'])->name('store'); + }); - Route::get('/', [PenilaianController::class, 'index'])->name('index'); - Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); - Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); - Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); - Route::post('create', [PenilaianController::class, 'create'])->name('create'); - Route::post('store', [PenilaianController::class, 'store'])->name('store'); - }); + /** + * Route start activity + */ - /** - * Route start activity - */ - - Route::name('activity.')->prefix('activity')->group(function () { - Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); - Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ActivityController::class, 'export'])->name('export'); + Route::name('activity.')->prefix('activity')->group(function () { + Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); + Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ActivityController::class, 'export'])->name('export'); Route::get('/', [ActivityController::class, 'index'])->name('index'); Route::put('update-team', [ActivityController::class, 'updateTeamAssingment'])->name('update-team'); @@ -470,41 +472,41 @@ Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); Route::get('senior', [ActivityController::class, 'senior'])->name('senior'); - Route::name('progres.')->prefix('progres')->group(function () { - Route::get('/', [ActivityController::class, 'progres_activity'])->name('index'); - Route::get('/datatables/{id}', [ActivityController::class, 'dataTablesForActivity'])->name( - 'datatables', - ); - }); - - Route::get('/teams/{regionId}', [ActivityController::class, 'dataTablesForActivity']); - }); - - /** - * Route end activity - */ - - - Route::name('otorisator.')->prefix('otorisator')->group(function () { - Route::get('pelaporan', [PenilaianController::class, 'otorisator'])->name('pelaporan.index')->defaults( - 'type', - 'pelaporan', - ); - Route::get('pembayaran', [PenilaianController::class, 'otorisator'])->name('pembayaran.index')->defaults( - 'type', - 'pembayaran', - ); - Route::get('pembatalan', [PenilaianController::class, 'otorisator'])->name('pembatalan.index')->defaults( - 'type', - 'pembatalan', - ); - Route::get('sla', [PenilaianController::class, 'otorisator'])->name('sla.index')->defaults('type', 'sla'); - Route::get('/datatables/{otorisator}', [PenilaianController::class, 'dataForAuthorization'])->name( + Route::name('progres.')->prefix('progres')->group(function () { + Route::get('/', [ActivityController::class, 'progres_activity'])->name('index'); + Route::get('/datatables/{id}', [ActivityController::class, 'dataTablesForActivity'])->name( 'datatables', ); - Route::get('show/{id}', [PenilaianController::class, 'show'])->name('show'); }); + Route::get('/teams/{regionId}', [ActivityController::class, 'dataTablesForActivity']); + }); + + /** + * Route end activity + */ + + + Route::name('otorisator.')->prefix('otorisator')->group(function () { + Route::get('pelaporan', [PenilaianController::class, 'otorisator'])->name('pelaporan.index')->defaults( + 'type', + 'pelaporan', + ); + Route::get('pembayaran', [PenilaianController::class, 'otorisator'])->name('pembayaran.index')->defaults( + 'type', + 'pembayaran', + ); + Route::get('pembatalan', [PenilaianController::class, 'otorisator'])->name('pembatalan.index')->defaults( + 'type', + 'pembatalan', + ); + Route::get('sla', [PenilaianController::class, 'otorisator'])->name('sla.index')->defaults('type', 'sla'); + Route::get('/datatables/{otorisator}', [PenilaianController::class, 'dataForAuthorization'])->name( + 'datatables', + ); + Route::get('show/{id}', [PenilaianController::class, 'show'])->name('show'); + }); + Route::name('surveyor.')->prefix('surveyor')->group(function () { Route::get('/', [SurveyorController::class, 'index'])->name('index'); @@ -527,21 +529,21 @@ }); - Route::name('penilai.')->prefix('penilai')->group(function () { - Route::get('/', [PenilaiController::class, 'index'])->name('index'); - Route::get('/{id}/show', [PenilaiController::class, 'show'])->name('show'); - Route::get('datatables', [PenilaiController::class, 'dataForDatatables'])->name('dataForTables'); - + Route::name('penilai.')->prefix('penilai')->group(function () { + Route::get('/', [PenilaiController::class, 'index'])->name('index'); + Route::get('/{id}/show', [PenilaiController::class, 'show'])->name('show'); + Route::get('datatables', [PenilaiController::class, 'dataForDatatables'])->name('dataForTables'); + Route::get('lampiran/{id}', [PenilaiController::class, 'lampiran'])->name('lampiran'); }); - Route::get('persetujuan-penawaran/datatables', [PersetujuanPenawaranController::class, 'dataForDatatables']) - ->name('persetujuan-penawaran.datatables'); + Route::get('persetujuan-penawaran/datatables', [PersetujuanPenawaranController::class, 'dataForDatatables']) + ->name('persetujuan-penawaran.datatables'); - Route::resource('persetujuan-penawaran', PersetujuanPenawaranController::class); - }); + Route::resource('persetujuan-penawaran', PersetujuanPenawaranController::class); +}); - require __DIR__ . '/registrasi.php'; +require __DIR__ . '/registrasi.php'; From 701c36f6035a9a2e09a847c23349983e269d2bd9 Mon Sep 17 00:00:00 2001 From: majid76 Date: Mon, 2 Dec 2024 07:11:08 +0700 Subject: [PATCH 2/2] update insert data json ke table ispeksi --- app/Http/Controllers/SurveyorController.php | 623 ++++++++++-------- app/Http/Requests/FormSurveyorRequest.php | 14 + .../components/apartemen-kantor.blade.php | 38 +- .../surveyor/components/bangunan.blade.php | 1 + .../surveyor/components/card-tambah.blade.php | 141 ++-- .../views/surveyor/components/foto.blade.php | 6 +- .../surveyor/components/header.blade.php | 54 +- .../surveyor/components/inspeksi.blade.php | 34 +- .../views/surveyor/components/tanah.blade.php | 128 ++-- resources/views/surveyor/detail.blade.php | 20 +- 10 files changed, 553 insertions(+), 506 deletions(-) diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index b2f411e..5e94681 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -9,6 +9,7 @@ use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Exports\BasicDataSurveyorExport; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Storage; use Illuminate\Http\Response; use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Branch; @@ -94,97 +95,77 @@ class SurveyorController extends Controller 'branch', 'tujuanPenilaian', 'penilaian', - 'documents', + 'documents.jenisJaminan', ])->findOrFail($id); - + $surveyor = $id; $branches = Branch::all(); $provinces = Province::all(); $bentukTanah = BentukTanah::all(); - - $denah = Denah::where('permohonan_id', $id)->get(); - $fotojaminan = FotoJaminan::where('permohonan_id', $id)->get(); - $analisa = Analisa::with('analisaUnit', 'analisaTanahBangunan', 'analisaLingkungan', 'analisaFakta', 'jenisJaminan') - ->where('permohonan_id', $id) - ->get(); - - $jenisJaminanIds = $permohonan->debiture->documents->pluck('jenisJaminan.id')->toArray(); // Convert to array - - $jaminanId = $jenisJaminanIds[0]; - $inpeksi = Inspeksi::where('permohonan_id', $id) - ->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; - } - + + // Get all inspeksi data for this permohonan + $inspeksiData = Inspeksi::where('permohonan_id', $id) + ->get() + ->keyBy('jenis_jaminan_id') + ->map(function ($item) { + return [ + 'data_form' => json_decode($item->data_form, true), + 'foto_form' => json_decode($item->foto_form, true), + 'denah_form' => json_decode($item->denah_form, true), + 'data_pembanding' => json_decode($item->data_pembanding, true), + ]; + }); + return view('lpj::surveyor.detail', compact( - 'denah', - 'analisa', 'permohonan', 'surveyor', 'branches', 'provinces', 'bentukTanah', - 'forminspeksi', - 'formDenah', - 'formFoto', - 'jaminanId', - - 'formPembanding' + 'inspeksiData' )); } + /** * Store form inspeksi. */ public function store(FormSurveyorRequest $request) { - $data = $request->validated(); - - - - if (!$data) { - return response()->json(['success' => false, 'message' => 'Invalid data'], 400); - } - 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'); - $rules = $this->getActionSpecificRules($data, $action, $request); + // Find or create inspeksi record + $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); - - - // $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); - - // if (!$inspeksi) { - // Inspeksi::create([ - // '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); + } catch (\Exception $e) { + return response()->json([ + 'success' => false, + 'message' => 'Gagal menyimpan data', + 'error' => $e->getMessage() + ], 500); } } @@ -259,8 +240,11 @@ class SurveyorController extends Controller ]); } - return response()->json(['success' => true, 'message' => 'Data berhasil disimpan', - 'data' => $formatJsonDenah], 200); + return response()->json([ + 'success' => true, + 'message' => 'Data berhasil disimpan', + 'data' => $formatJsonDenah + ], 200); } catch (Exception $e) { 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) { - $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', 'jenis_jaminan_id' => 'required', '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', '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) - { - try { - // $cekButton = $this->checkButtonStatus($id); - // if (!$cekButton->buttonDisable) { - $permohonan = Permohonan::find($id); - $permohonan->update([ - 'status' => 'done', - ]); - return response()->json(['success' => true, 'message' => 'Form surveyor submitted successfully'], 200); - // } else { - // return response()->json(['error' => 'Something went wrong'], 400); - // } - } catch (Exception $e) { - return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500); +{ + try { + // Get button status check result + $buttonStatusCheck = $this->checkButtonStatus($id); + $buttonStatus = json_decode($buttonStatusCheck->getContent(), true); + + // Check if button should be disabled + if ($buttonStatus['buttonDisable']) { + return response()->json([ + 'success' => false, + 'message' => 'Form belum lengkap. Pastikan semua data telah diisi dengan benar.', + ], 422); } + + // 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) { try { - - $inpeksi = Inspeksi::where('permohonan_id', $id)->first(); - - if ($inpeksi) { - $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 { + // Get all inspeksi records for this permohonan + $inspeksiRecords = Inspeksi::where('permohonan_id', $id)->get(); + + if ($inspeksiRecords->isEmpty()) { 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) { - // return response()->json(['buttonDisable' => true]); return response()->json([ 'error' => 'Something went wrong', - 'message' => $e->getMessage() + 'message' => $e->getMessage(), + 'buttonDisable' => true ], 500); } } + @@ -558,9 +595,9 @@ class SurveyorController extends Controller $link_url_region = Teams::with('regions', 'teamsUsers') - ->whereHas('teamsUsers', function ($query) { - $query->where('user_id', Auth::user()->id); - })->first(); + ->whereHas('teamsUsers', function ($query) { + $query->where('user_id', Auth::user()->id); + })->first(); $branches = Branch::all(); $provinces = Province::all(); @@ -768,13 +805,12 @@ class SurveyorController extends Controller if (!$modelClass) { return redirect() - ->route('basicdata.'. $type .'.index') + ->route('basicdata.' . $type . '.index') ->with('error', 'Invalid type specified.'); } if ($type == 'spek-bangunan') { $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; - } @@ -782,12 +818,11 @@ class SurveyorController extends Controller $modelClass::create($data); return redirect() - ->route('basicdata.' . $type .'.index') + ->route('basicdata.' . $type . '.index') ->with('success', 'created successfully'); - } catch (Exeception $e) { return redirect() - ->route('basicdata.' . $type .'.index') + ->route('basicdata.' . $type . '.index') ->with('error', $th->getMessage()); } } @@ -836,7 +871,6 @@ class SurveyorController extends Controller $spekKategoriBagunan = null; if ($type == 'spek-bangunan') { $spekKategoriBagunan = SpekKategoritBangunan::all(); - } @@ -852,7 +886,6 @@ class SurveyorController extends Controller if ($type == 'spek-bangunan') { $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; - } // Check if the provided type exists in the modelClasses @@ -1011,7 +1044,7 @@ class SurveyorController extends Controller } $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); @@ -1162,10 +1195,10 @@ class SurveyorController extends Controller $query->where('jenis_jaminan_id', $jaminanId); } ]) - ->whereHas('debiture.documents', function ($query) use ($jaminanId) { - $query->where('jenis_jaminan_id', $jaminanId); - }) - ->findOrFail($id); + ->whereHas('debiture.documents', function ($query) use ($jaminanId) { + $query->where('jenis_jaminan_id', $jaminanId); + }) + ->findOrFail($id); } @@ -1277,7 +1310,7 @@ class SurveyorController extends Controller 'posisi-unit' => ['Posisi unit', 'posisi-unit'], 'bentuk-unit' => ['Bentuk unit', 'bentuk-unit'], 'fasilitas-objek' => ['Fasilitas Umum Dekat Objek', 'fasilitas-objek'], - ]; + ]; private function getAssetData(array $data): array { @@ -1294,12 +1327,27 @@ class SurveyorController extends Controller 'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [], 'jenis_asset' => [ $data['jenis_asset'] => ($data['jenis_asset'] === 'sesuai') - ? $data['jenis_asset'] + ? $data['jenis_asset_name'] : ($data['jenis_asset_tidak_sesuai'] ?? null) ], 'alamat' => [ $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_lat' => $data['kordinat_lat'] ?? null, ] @@ -1379,17 +1427,21 @@ class SurveyorController extends Controller return [ 'bangunan' => [ - 'luas_tanah_bagunan' => $data['luas_tanah_bagunan'] ?? null, - 'jenis_bangunan' => $data['jenis_bangunan'] ?? null, - 'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null, - 'sifat_bangunan' => $data['sifat_bangunan'] ?? null, - 'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null, - 'spesifikasi_bangunan' => $result ?? null, - 'sarana_pelengkap' => $this->mapArrayWithInputs( - $data['sarana_pelengkap'] ?? [], - $data['sarana_pelengkap_input'] ?? [] - ), - ], + 'luas_tanah_bagunan' => $this->getFieldData( + $data, + 'luas_tanah_bagunan', + true + ), + 'jenis_bangunan' => $data['jenis_bangunan'] ?? null, + 'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null, + 'sifat_bangunan' => $data['sifat_bangunan'] ?? null, + 'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null, + 'spesifikasi_bangunan' => $result ?? null, + 'sarana_pelengkap' => $this->mapArrayWithInputs( + $data['sarana_pelengkap'] ?? [], + $data['sarana_pelengkap_input'] ?? [] + ), + ], ]; } @@ -1397,27 +1449,27 @@ class SurveyorController extends Controller { return [ 'lingkungan' => [ - 'jarak_jalan_utama' => $data['jarak_jalan_utama'] ?? null, - 'jalan_linkungan' => $data['jalan_linkungan'] ?? null, - 'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null, - 'nama_cbd_point' => $data['nama_cbd_point'] ?? null, - 'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null, - 'perkerasan_jalan' => $data['perkerasan_jalan'] ?? null, - 'lalu_lintas' => $data['lalu_lintas'] ?? null, - 'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null, - 'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null, - 'terletak_diarea' => $data['terletak_diarea'] ?? null, - 'disekitar_lokasi' => $data['disekitar_lokasi'] ?? null, - 'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null, - 'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null, - 'dekat_makam' => $data['dekat_makam'] ?? null, - 'jarak_makam' => $data['jarak_makam'] ?? null, - 'nama_makam' => $data['nama_makam'] ?? null, - 'dekat_tps' => $data['dekat_tps'] ?? null, - 'jarak_tps' => $data['jarak_tps'] ?? null, - 'nama_tps' => $data['nama_tps'] ?? null, - 'merupakan_daerah' => $data['merupakan_daerah'] ?? null, - 'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null, + 'jarak_jalan_utama' => $data['jarak_jalan_utama'] ?? null, + 'jalan_linkungan' => $data['jalan_linkungan'] ?? null, + 'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null, + 'nama_cbd_point' => $data['nama_cbd_point'] ?? null, + 'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null, + 'perkerasan_jalan' => $data['perkerasan_jalan'] ?? null, + 'lalu_lintas' => $data['lalu_lintas'] ?? null, + 'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null, + 'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null, + 'terletak_diarea' => $data['terletak_diarea'] ?? null, + 'disekitar_lokasi' => $data['disekitar_lokasi'] ?? null, + 'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null, + 'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null, + 'dekat_makam' => $data['dekat_makam'] ?? null, + 'jarak_makam' => $data['jarak_makam'] ?? null, + 'nama_makam' => $data['nama_makam'] ?? null, + 'dekat_tps' => $data['dekat_tps'] ?? null, + 'jarak_tps' => $data['jarak_tps'] ?? null, + 'nama_tps' => $data['nama_tps'] ?? null, + 'merupakan_daerah' => $data['merupakan_daerah'] ?? null, + 'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null, ] ]; } @@ -1426,25 +1478,26 @@ class SurveyorController extends Controller { $factData = [ 'fakta' => [ - 'fakta_positif' => $data['fakta_positif'] ?? null, - 'fakta_negatif' => $data['fakta_negatif'] ?? null, - 'rute_menuju' => $data['rute_menuju'] ?? null, - 'batas_batas' => $this->mapArrayWithInputs( - $data['batas_batas'] ?? null, $data['batas_batas_input'] ?? null - ), - 'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null, - 'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null, - 'informasi_dokument' => $data['informasi_dokument'] ?? null, - 'peruntukan' => $data['peruntukan'] ?? null, - 'kdb' => $data['kdb'] ?? null, - 'kdh' => $data['kdh'] ?? null, - 'gsb' => $data['gsb'] ?? null, - 'max_lantai' => $data['max_lantai'] ?? null, - 'klb' => $data['klb'] ?? null, - 'gss' => $data['gss'] ?? null, - 'pelebaran_jalan' => $data['pelebaran_jalan'] ?? null, - 'nama_petugas' => $data['nama_petugas'] ?? null, - 'keterangan' => $data['keterangan'] ?? null, + 'fakta_positif' => $data['fakta_positif'] ?? null, + 'fakta_negatif' => $data['fakta_negatif'] ?? null, + 'rute_menuju' => $data['rute_menuju'] ?? null, + 'batas_batas' => $this->mapArrayWithInputs( + $data['batas_batas'] ?? null, + $data['batas_batas_input'] ?? null + ), + 'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null, + 'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null, + 'informasi_dokument' => $data['informasi_dokument'] ?? null, + 'peruntukan' => $data['peruntukan'] ?? null, + 'kdb' => $data['kdb'] ?? null, + 'kdh' => $data['kdh'] ?? null, + 'gsb' => $data['gsb'] ?? null, + 'max_lantai' => $data['max_lantai'] ?? null, + 'klb' => $data['klb'] ?? null, + 'gss' => $data['gss'] ?? null, + 'pelebaran_jalan' => $data['pelebaran_jalan'] ?? null, + 'nama_petugas' => $data['nama_petugas'] ?? null, + 'keterangan' => $data['keterangan'] ?? null, ] ]; @@ -1859,8 +1912,11 @@ class SurveyorController extends Controller { return [ 'action' => $data['action'] ?? null, - 'luas_unit' => $data['luas_unit'] ?? null, - 'luas_unit_tidak_sesuai' => $data['luas_unit_tidak_sesuai'] ?? null, + 'luas_unit' => $this->getFieldData( + $data, + 'luas_unit', + true + ), 'jenis_unit' => $data['jenis_unit'] ?? null, 'kondisi_unit' => $data['kondisi_unit'] ?? null, 'posisi_unit' => $data['posisi_unit'] ?? null, @@ -1872,7 +1928,7 @@ class SurveyorController extends Controller - /** + /** * Helper untuk upload file * * @param $file @@ -1936,7 +1992,7 @@ class SurveyorController extends Controller if ($checkKesesuaian) { return [ $data[$fieldName] ?? '' => ($data[$fieldName] ?? '') === 'sesuai' - ? ($data[$fieldName] ?? '') + ? ($data["{$fieldName}_sesuai"] ?? '') : ($data["{$fieldName}_tidak_sesuai"] ?? '') ]; } @@ -1968,5 +2024,4 @@ class SurveyorController extends Controller // Return Excel download return Excel::download(new BasicDataSurveyorExport($modelClass), $type . '.xlsx'); } - } diff --git a/app/Http/Requests/FormSurveyorRequest.php b/app/Http/Requests/FormSurveyorRequest.php index 0a3245b..3eeafe5 100644 --- a/app/Http/Requests/FormSurveyorRequest.php +++ b/app/Http/Requests/FormSurveyorRequest.php @@ -71,8 +71,10 @@ class FormSurveyorRequest extends FormRequest { return [ 'luas_tanah' => 'required', + 'luas_tanah_sesuai' => 'nullable', 'luas_tanah_tidak_sesuai' => 'nullable', 'hadap_mata_angin' => 'required', + 'hadap_mata_angin_sesuai' => 'nullable', 'hadap_mata_angin_tidak_sesuai' => 'nullable', 'bentuk_tanah' => 'nullable|array', 'bentuk_tanah_lainnya' => 'nullable', @@ -95,7 +97,9 @@ class FormSurveyorRequest extends FormRequest { return [ 'action' => 'required', + 'luas_tanah_bangunan_sesuai' => 'nullable', 'luas_tanah_bagunan' => 'required', + 'luas_tanah_bangunan_tidak_sesuai' => 'nullable', 'jenis_bangunan' => 'required', 'kondisi_bangunan' => 'nullable', 'sifat_bangunan' => 'required|array', @@ -116,6 +120,7 @@ class FormSurveyorRequest extends FormRequest return [ 'action' => 'required', 'luas_unit' => 'required', + 'luas_unit_sesuai' => 'nullable', 'luas_unit_tidak_sesuai' => 'nullable', 'jenis_unit' => 'required|array', 'kondisi_unit' => 'required|array', @@ -511,10 +516,19 @@ class FormSurveyorRequest extends FormRequest 'permohonan_id' => 'required', 'type' => 'required', 'debitur_perwakilan' => 'required|array', + 'jenis_asset_name' => 'nullable', 'jenis_asset' => 'required', 'jenis_asset_tidak_sesuai' => 'nullable', 'alamat_sesuai' => 'required', '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', 'desa_kelurahan' => 'nullable', 'kecamatan' => 'nullable', diff --git a/resources/views/surveyor/components/apartemen-kantor.blade.php b/resources/views/surveyor/components/apartemen-kantor.blade.php index 654f2d0..c965938 100644 --- a/resources/views/surveyor/components/apartemen-kantor.blade.php +++ b/resources/views/surveyor/components/apartemen-kantor.blade.php @@ -12,26 +12,44 @@
+ @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 + +

{{ $luas_unit }} m2

+ @endforeach + + @endif +
- - -
+ style="{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}"> + + +
@@ -94,8 +112,8 @@ {{ in_array($item->name, old('lantai', $forminspeksi['lantai'] ?? [])) ? 'checked' : '' }} /> {{ $item->name }} -
@endforeach diff --git a/resources/views/surveyor/components/bangunan.blade.php b/resources/views/surveyor/components/bangunan.blade.php index 1b0cf9f..284794c 100644 --- a/resources/views/surveyor/components/bangunan.blade.php +++ b/resources/views/surveyor/components/bangunan.blade.php @@ -15,6 +15,7 @@ $details = json_decode($luas[0]->details, true); $luas_bangunan = isset($details['luas_bangunan']) ? $details['luas_bangunan'] : 'N/A'; @endphp +

{{ $luas_bangunan }} m2

@endforeach diff --git a/resources/views/surveyor/components/card-tambah.blade.php b/resources/views/surveyor/components/card-tambah.blade.php index 0f9efe4..a720d4a 100644 --- a/resources/views/surveyor/components/card-tambah.blade.php +++ b/resources/views/surveyor/components/card-tambah.blade.php @@ -1,100 +1,72 @@
@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 +
-
- - - - - - -
- - -
+
-
- - {{ $dokumen->jenisJaminan->name ?? '' }} - + {{ $dokumen->jenisJaminan->name ?? '' }} +
- @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) @if ($item['show'])
-
- +
diff --git a/resources/views/surveyor/components/foto.blade.php b/resources/views/surveyor/components/foto.blade.php index fd83d06..82ef211 100644 --- a/resources/views/surveyor/components/foto.blade.php +++ b/resources/views/surveyor/components/foto.blade.php @@ -621,10 +621,12 @@ }, success: function(response) { if (response.success) { - window.location.href = - '{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto'; + // window.location.href = + // '{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto'; toastrSuccessBuild(response.message); } + console.log(response); + }, error: function(xhr, status, error) { diff --git a/resources/views/surveyor/components/header.blade.php b/resources/views/surveyor/components/header.blade.php index e545f91..4674a06 100644 --- a/resources/views/surveyor/components/header.blade.php +++ b/resources/views/surveyor/components/header.blade.php @@ -1,17 +1,16 @@
- +
+

+ Form Inspeksi +

+ +
@@ -109,6 +108,7 @@ @if (isset($permohonan->debiture->documents)) @foreach ($permohonan->debiture->documents as $item)

{{ $item->jenisJaminan->name }}

+ @endforeach @endif
@@ -117,19 +117,18 @@ -
+ style="{{ isset($forminspeksi['asset']['jenis_asset']['tidak sesuai']) ? '' : 'display: none;' }}"> + {{ old('jenis_asset', isset($forminspeksi['asset']['alamat']['sesuai'])) ? 'checked' : '' }}> Ya
@@ -185,7 +184,7 @@
{{-- Alamat Sesuai --}} -