diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index 0380fa6..ed82be9 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -131,10 +131,10 @@ $noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); } // jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001 - } - + } + } - + return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString; } @@ -143,7 +143,7 @@ return ctype_digit($str); } - // generate last penawaran.no_spk + // generate last penawaran.no_spk function onLastnumberCodePenawaranSPK($jenis_laporan_code): string { diff --git a/app/Http/Controllers/OtorisasiPenawaranController.php b/app/Http/Controllers/OtorisasiPenawaranController.php index ca25549..4adee4e 100644 --- a/app/Http/Controllers/OtorisasiPenawaranController.php +++ b/app/Http/Controllers/OtorisasiPenawaranController.php @@ -249,8 +249,8 @@ try { // update status KJPP yg tidak terpilih menjadi 2 -> kalah - // update status Penawaran menjadi SPK - // update status Permohonan menjadi SPK + // update status Penawaran menjadi persetujuan-penawaran (20241205) + // update status Permohonan menjadi persetujuan-penawaran (20241205) // insert detail_permohonan_log PenawaranDetailTender::where('status', 1) @@ -260,9 +260,9 @@ 'updated_by' => Auth::id(), 'updated_at' => now() ]); - + // 20241205 arahkan ke persetujuan-penawaran PenawaranTender::where('id', $request->penawaran_id) - ->update(['status'=>'spk', + ->update(['status'=>'persetujuan-penawaran', 'nama_kjpp_sebelumnya'=>$request->kjppName, 'biaya_kjpp_sebelumnya'=>$request->biaya_penawaran, 'tanggal_penilaian_sebelumnya'=>now(), diff --git a/app/Http/Controllers/PersetujuanPenawaranController.php b/app/Http/Controllers/PersetujuanPenawaranController.php index 1af71bf..be5896f 100644 --- a/app/Http/Controllers/PersetujuanPenawaranController.php +++ b/app/Http/Controllers/PersetujuanPenawaranController.php @@ -6,7 +6,10 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Modules\Lpj\Http\Requests\PersetujuanPenawaranRequest; - use Modules\Lpj\Models\Permohonan; +use Modules\Lpj\Models\PenawaranDetailTender; +use Modules\Lpj\Models\PenawaranDetailTenderLog; +use Modules\Lpj\Models\PenawaranTender; +use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\PersetujuanPenawaran; class PersetujuanPenawaranController extends Controller @@ -69,6 +72,16 @@ $permohonan->status_bayar = request()->get('status_bayar'); $permohonan->status = 'spk'; $permohonan->save(); + + // andy add, update status penawaran.status='spk' + // $penawaran = PenawaranTender::where('nomor_registrasi',$permohonan->nomor_registrasi)->first(); + PenawaranTender::where('nomor_registrasi',$permohonan->nomor_registrasi) + ->update(['status'=>'spk', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]); + // andy add, update status penawaran.status='spk' + } return redirect() @@ -90,6 +103,64 @@ { $permohonan = Permohonan::find($id); $permohonan->status='tender'; + $dataDetailPenawaranLog = []; + + // andy add update status penawaran + // update detail_penawaran => detail_penawaran.status = 1 (untuk all KJPP) + // update penawaran => penawaran.status ="tender", penawaran.updated_at, penawaran.updated_by + // update permohonan => permohonan.status ="tender", permohonan.updated_at, permohonan.updated_by + // insert detail_permohonan_log + $penawaran = PenawaranTender::where('nomor_registrasi',$permohonan->nomor_registrasi)->first(); + // dd($penawaran->id); + PenawaranDetailTender::where('penawaran_id', $penawaran->id) + ->update(['status' => 1, + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]); + + PenawaranTender::where('id', $penawaran->id) + ->update(['status'=>'tender', + 'updated_by' => Auth::id(), + 'updated_at' => now() + ]); + + $detailPenawaran = PenawaranDetailTender::where('penawaran_id', $penawaran->id) + ->distinct() + ->get(); + + // log + if(sizeof($detailPenawaran)>0) + { + + foreach ($detailPenawaran as $model) { + array_push($dataDetailPenawaranLog, [ + 'detail_penawaran_id' =>$model->id, + 'kjpp_rekanan_id' =>$model->kjpp_rekanan_id, + 'penawaran_id' =>$model->penawaran_id, + 'no_proposal' =>$model->no_proposal, + 'tgl_proposal' =>$model->tgl_proposal, + 'biaya_penawaran' =>$model->biaya_penawaran, + 'attachment' =>$model->attachment, + 'dokumen_persetujuan' =>$model->dokumen_persetujuan, + 'status' =>$model->status, + 'authorized_status' =>$model->authorized_status, + 'authorized_at' =>$model->authorized_at, + 'authorized_at' =>$model->authorized_at, + 'created_at' =>$model->created_at, + 'updated_at' =>$model->updated_at, + 'deleted_at' =>$model->deleted_at, + 'created_by' =>$model->created_by, + 'updated_by' =>$model->updated_by, + 'deleted_by' =>$model->deleted_by + ]); + + } + + PenawaranDetailTenderLog::insert($dataDetailPenawaranLog); + } + // log + // andy add update status penawaran + return $permohonan->save(); } diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index c82c2e6..305310f 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -134,10 +134,10 @@ public function show($id) { $permohonan = Permohonan::find($id); - if ($permohonan->dokumen) { - $pdfSPK_path = Storage::url($permohonan->dokumen); - $permohonan->dokumen = $pdfSPK_path; - $permohonan->dokumen = '| Dokumen SPK.pdf   '; + $document = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); + if ($document) { + $pdfSPK_path = Storage::url($document->spk_dokumen_path); + $permohonan->pdfSPK_path = '| Dokumen SPK.pdf   '; } return view('lpj::registrasifinal.show', compact('id', 'permohonan')); @@ -145,7 +145,15 @@ public function edit($id) { - return view('lpj::registrasifinal.edit', compact('id')); + $doc_pdf=''; + $permohonan = Permohonan::find($id); + $document = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); + if ($document) { + $pdfSPK_path = Storage::url($document->spk_dokumen_path); + $doc_pdf = 'Dokumen SPK.pdf   '; + } + + return view('lpj::registrasifinal.edit', compact('id','doc_pdf')); } public function setData(Request $request) diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index e87d454..3931aa2 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -5,6 +5,7 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Validator; use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Exports\BasicDataSurveyorExport; @@ -217,7 +218,7 @@ class SurveyorController extends Controller try { $maxSize = getMaxFileSize('Foto'); $validatedData = $request->validate([ - 'foto_denah' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_denah' => 'required|file|mimes:jpeg,jpg,png,pdf,svg|max:'. $maxSize, 'luas' => 'required|numeric', 'permohonan_id' => 'required', 'jenis_jaminan_id' => 'required' @@ -312,8 +313,6 @@ class SurveyorController extends Controller $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); @@ -373,9 +372,6 @@ class SurveyorController extends Controller } } - - - /** * Custom validation request for foto */ @@ -495,8 +491,6 @@ class SurveyorController extends Controller } - - public function storeJadwal(Request $request) { try { @@ -534,25 +528,29 @@ class SurveyorController extends Controller - public function storeAproved($id) + public function storeAproved(Request $request, $id): JsonResponse { - try { + $data = []; + if (request()->ajax()) { + try { + $penilaian = Penilaian::findOrFail($id); + $penilaian->update([ + 'authorized_status' => 1, + ]); + + $data['status'] = 'success'; + $data['message']= 'Jadwal '.$request->noReg.' berhasil di aprove'; + } catch (\Exception $e) { + $data['status'] = 'error'; + $data['message'] = 'Gagal membuat jadwal: ' . $e->getMessage(); + } - - $penilaian = Penilaian::findOrFail($id); - - $penilaian->update([ - 'authorized_status' => 1, - ]); - - return redirect() - ->route('permohonan.index') - ->with('success', 'Jadwal berhasil di aprove.'); - } catch (\Exception $e) { - return redirect() - ->route('permohonan.index') - ->with('error', 'Gagal membuat jadwal: ' . $e->getMessage()); + } else { + $data['status'] = 'error'; + $data['message'] = "no ajax request"; } + + return response()->json($data); } @@ -567,10 +565,10 @@ class SurveyorController extends Controller $dataPembanding = []; $pembandingCount = count($request->input('address_pembanding', [])); $fotoPembanding = $request->file('foto_objek_pembanding') ?? []; - + for ($i = 0; $i < $pembandingCount; $i++) { $pembanding = $this->formatSinglePembanding($request, $i); - + // Penanganan foto pembanding if (isset($fotoPembanding[$i]) && $fotoPembanding[$i]->isValid()) { $pembanding['foto_objek'] = $this->handleupdateOrDeleteFile( @@ -579,34 +577,32 @@ class SurveyorController extends Controller "pembanding_{$i}" ); } - + $dataPembanding[] = $pembanding; } - + return $dataPembanding; } private function handleupdateOrDeleteFile($file, $type, $prefix) -{ - try { - if ($file) { - // Generate nama file unik - $fileName = $prefix . '_' . uniqid() . '_' . time() . '.' . $file->getClientOriginalExtension(); - $path = "{$type}/" . date('Y/m'); - Storage::makeDirectory("public/{$path}"); - $filePath = $file->storeAs("public/{$path}", $fileName); - return str_replace('public/', '', $filePath); - } - - return null; - - } catch (\Exception $e) { - \Log::error('File upload error: ' . $e->getMessage()); - throw new \Exception("Gagal mengupload file: " . $e->getMessage()); - } -} + { + try { + if ($file) { + // Generate nama file unik + $fileName = $prefix . '_' . uniqid() . '_' . time() . '.' . $file->getClientOriginalExtension(); + $path = "{$type}/" . date('Y/m'); + Storage::makeDirectory("public/{$path}"); + $filePath = $file->storeAs("public/{$path}", $fileName); + return str_replace('public/', '', $filePath); + } - + return null; + + } catch (\Exception $e) { + \Log::error('File upload error: ' . $e->getMessage()); + throw new \Exception("Gagal mengupload file: " . $e->getMessage()); + } + } private function formatSinglePembanding($request, $index) @@ -618,16 +614,16 @@ class SurveyorController extends Controller 'peruntukan', 'penawaran_transaksi', 'nomor_tlp', 'kordinat_lat', 'kordinat_lng', 'jenis_aset', ]; - + $pembanding = []; foreach ($fields as $field) { $inputName = "{$field}_pembanding"; $pembanding[$field] = $request->input($inputName)[$index] ?? null; } - + // Inisialisasi foto_objek sebagai null $pembanding['foto_objek'] = null; - + return $pembanding; } @@ -730,10 +726,8 @@ class SurveyorController extends Controller $branches = Branch::all(); $provinces = Province::all(); - $debitur = Debiture::find($permohonan->debiture_id); - $cities = City::where('province_code', $debitur->province_code)->get(); - $districts = District::where('city_code', $debitur->city_code)->get(); - $villages = Village::where('district_code', $debitur->district_code)->get(); + + $surveyor = $id; $basicData = $this->getCommonData(); @@ -743,6 +737,28 @@ class SurveyorController extends Controller if ($inpeksi) { $forminspeksi = json_decode($inpeksi->data_form, true); } + + // Default: gunakan data dari debitur + $debitur = Debiture::find($permohonan->debiture_id); + + $provinceCode = $debitur->province_code; + $cityCode = $debitur->city_code; + $districtCode = $debitur->district_code; + + // Jika alamat tidak sesuai, override dengan kode dari alamat + + $cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null; + + if ($cekAlamat) { + $provinceCode = $cekAlamat['province_code'] ?? $provinceCode; + $cityCode = $cekAlamat['city_code'] ?? $cityCode; + $districtCode = $cekAlamat['district_code'] ?? $districtCode; + } + + // Ambil data menggunakan kode yang telah ditentukan + $cities = City::where('province_code', $provinceCode)->get(); + $districts = District::where('city_code', $cityCode)->get(); + $villages = Village::where('district_code', $districtCode)->get(); return view('lpj::surveyor.components.inspeksi', compact( 'permohonan', 'surveyor', @@ -754,7 +770,8 @@ class SurveyorController extends Controller 'villages', 'link_url_region', 'forminspeksi', - 'basicData' + 'basicData', + 'cekAlamat' )); } @@ -789,8 +806,6 @@ class SurveyorController extends Controller $branches = Branch::all(); $provinces = Province::all(); - - $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); $formFoto = null; @@ -798,12 +813,6 @@ class SurveyorController extends Controller $formFoto = json_decode($inpeksi->foto_form, true); } $fotoJaminan = null; - - // return response()->json([ - // 'inspeksi' => $formFoto, - - // ]); - return view('lpj::surveyor.components.foto', compact('permohonan', 'surveyor', 'branches', 'provinces', 'fotoJaminan', 'formFoto')); } @@ -842,7 +851,7 @@ class SurveyorController extends Controller $inspectionData = json_decode($inspeksi->data_form, true); if (json_last_error() !== JSON_ERROR_NONE) { - throw new \Exception('Error decoding inspection data: ' . json_last_error_msg()); + throw new \Exception('Harap mengisi form inspeksi terlebih dahulu.'); } if ($inspeksi->data_pembanding) { @@ -851,7 +860,6 @@ class SurveyorController extends Controller throw new \Exception('Error decoding comparison data: ' . json_last_error_msg()); } - } $fotoForm = json_decode($inspeksi->foto_form, true); @@ -860,11 +868,11 @@ class SurveyorController extends Controller // Ambil data pendukung $data = $this->getCommonData(); $provinces = Province::all(); - + $cities = City::where('province_code', $this->getCodeAlamat('province_code', $inspectionData))->get(); $districts = District::where('city_code', $this->getCodeAlamat('city_code', $inspectionData))->get(); - $villages = Village::where('district_code',$this->getCodeAlamat('district_code', $inspectionData))->get(); - + $villages = Village::where('district_code', $this->getCodeAlamat('district_code', $inspectionData))->get(); + return view('lpj::surveyor.components.data-pembanding', compact( @@ -889,7 +897,8 @@ class SurveyorController extends Controller } - public function getCodeAlamat($code, $inspectionData){ + public function getCodeAlamat($code, $inspectionData) + { $cekAlamat = isset( $inspectionData['asset']['alamat']['sesuai'], ) @@ -919,7 +928,6 @@ class SurveyorController extends Controller public function createData($type) { - $spekKategoriBagunan = SpekKategoritBangunan::all(); $header = $this->getHeader($type); return view('lpj::surveyor.data.form', compact('header', 'spekKategoriBagunan')); @@ -928,7 +936,6 @@ class SurveyorController extends Controller public function storeData(SurveyorRequest $request, $type) { - $validate = $request->validated(); if ($validate) { @@ -1029,8 +1036,6 @@ class SurveyorController extends Controller ->with('error', 'Invalid type specified.'); } - - $model = $modelClass::findOrFail($id); $model->update($validate); @@ -1299,10 +1304,7 @@ class SurveyorController extends Controller if (!$modelClass) { return response()->json(['success' => false, 'message' => 'Invalid type specified.'], 400); } - - $model = $modelClass::findOrFail($id); - $model->delete(); return response()->json(['success' => true, 'message' => 'deleted successfully']); } catch (ModelNotFoundException $e) { @@ -1382,7 +1384,6 @@ class SurveyorController extends Controller { return [ 'branches' => Branch::all(), - 'bentukTanah' => BentukTanah::all(), 'konturTanah' => KonturTanah::all(), 'posisiKavling' => PosisiKavling::all(), @@ -1413,6 +1414,8 @@ class SurveyorController extends Controller 'jenisJaminan' => JenisJaminan::all(), 'hubCadeb' => HubunganPemilikJaminan::all(), 'hubPenghuni' => HubunganPenghuniJaminan::all(), + 'perkerasanJalan' => PerkerasanJalan::all(), + 'terletakDiArea' => TerletakArea::all(), ]; } @@ -1470,18 +1473,10 @@ class SurveyorController extends Controller $data['alamat_sesuai'] => $alamatData ], 'hub_cadeb' => [ - $data['hub_cadeb'] => $this->getFieldData( - $data, - 'hub_cadeb', - true - ) + $data['hub_cadeb'] => ($data['hub_cadeb'] == 'sesuai') ? $data['hub_cadeb_sesuai'] : $data['hub_cadeb_tidak_sesuai'] ], 'hub_cadeb_penghuni' => [ - $data['hub_cadeb_penghuni'] => $this->getFieldData( - $data, - 'hub_cadeb_penghuni', - true - ) + $data['hub_cadeb_penghuni'] => ($data['hub_cadeb_penghuni'] == 'sesuai') ? $data['hub_cadeb_penghuni_sesuai'] : $data['hub_penghuni_tidak_sesuai'] ], 'kordinat_lng' => $data['kordinat_lng'] ?? null, @@ -1500,11 +1495,9 @@ class SurveyorController extends Controller 'luas_tanah', true ), - 'hadap_mata_angin' => $this->getFieldData( - $data, - 'hadap_mata_angin', - true - ), + 'hadap_mata_angin' => [ + $data['hadap_mata_angin'] => ($data['hadap_mata_angin'] == 'sesuai') ? $data['hadap_mata_angin_sesuai'] : $data['hadap_mata_angin_tidak_sesuai'] + ], 'bentuk_tanah' => $this->getFieldData( $data, 'bentuk_tanah', @@ -1513,7 +1506,7 @@ class SurveyorController extends Controller ), 'kontur_tanah' => $data['kontur_tanah'] ?? [], 'ketinggian_tanah' => [ - 'ketinggian' => $data['kontur_tanah'] ?? null, + 'ketinggian' => $data['ketinggian_jalan'] ?? null, 'lebih_tinggi' => $data['ketinggian_lebih_tinggi'] ?? null, 'lebih_rendah' => $data['ketinggian_lebih_rendah'] ?? null ], @@ -1543,23 +1536,39 @@ class SurveyorController extends Controller $data = $request->all(); $result = []; - // foreach ($data['nama_bangunan'] 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 ($request->input('nama_bangunan') as $index => $buildingName) { + if (empty($buildingName)) { + continue; + } // Skip if building name is empty + + $buildingData = []; + $buildingData['bagunan'] = $buildingName; + + $specCategories = $request->input('spek_kategori_bangunan'); + $buildingData['spek_kategori_bangunan'] = []; + + if (!empty($specCategories)) { + foreach ($specCategories as $category) { + if (empty($category)) { + continue; + } // Skip empty categories + + $specs = $request->input("spek_bangunan.{$index}.{$category}", []); + + // Only add category if it has specifications + if (!empty($specs)) { + $buildingData['spek_kategori_bangunan'][$category] = $specs; + } + } + } + + // Only add building data if it has specifications + if (!empty($buildingData['spek_kategori_bangunan'])) { + $result[] = $buildingData; + } + } - // $result[] = $bangunanData; - // } return [ 'bangunan' => [ @@ -1590,17 +1599,27 @@ class SurveyorController extends Controller '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, + 'perkerasan_jalan' => $this->getFieldData( + $data, + 'perkerasan_jalan', + false, + 'lainnya' + ), 'lalu_lintas' => $data['lalu_lintas'] ?? null, 'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null, 'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null, - 'terletak_diarea' => $data['terletak_diarea'] ?? null, + 'terletak_diarea' => $this->getFieldData( + $data, + 'terletak_diarea', + false, + 'lainnya' + ), 'disekitar_lokasi' => $data['disekitar_lokasi'] === 'yes' ? [ 'kondisi' => $data['kondisi_bagunan_disekitar_lokasi'] ?? null, 'sifat' => $data['sifat_bagunan_disekitar_lokasi'] ?? null, ] : $data['disekitar_lokasi'], - 'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null, - 'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null, + 'kondisi_bagunan_disekitar_lokasi' => $data['kondisi_bagunan_disekitar_lokasi'] ?? null, + 'sifat_bagunan_disekitar_lokasi' => $data['sifat_bagunan_disekitar_lokasi'] ?? null, 'dekat_makam' => $data['dekat_makam'] ?? null, 'jarak_makam' => $data['jarak_makam'] ?? null, 'nama_makam' => $data['nama_makam'] ?? null, @@ -1608,7 +1627,12 @@ class SurveyorController extends Controller '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, + 'fasilitas_dekat_object' => $this->getFieldData( + $data, + 'fasilitas_dekat_object', + false, + 'lainnya' + ), ] ]; } @@ -1621,8 +1645,8 @@ class SurveyorController extends Controller '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 + $data['batas_batas'] ?? [], + $data['batas_batas_input'] ?? [] ), 'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null, 'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null, diff --git a/app/Http/Requests/FormSurveyorRequest.php b/app/Http/Requests/FormSurveyorRequest.php index 9bf82e3..f56063f 100644 --- a/app/Http/Requests/FormSurveyorRequest.php +++ b/app/Http/Requests/FormSurveyorRequest.php @@ -86,6 +86,8 @@ class FormSurveyorRequest extends FormRequest 'tusuk_sate' => 'required', 'lockland' => 'required', 'kondisi_fisik_tanah' => 'required|array', + 'ketinggian_lebih_tinggi' => 'nullable', + 'ketinggian_lebih_rendah' => 'nullable', ]; } @@ -104,9 +106,13 @@ class FormSurveyorRequest extends FormRequest 'kondisi_bangunan' => 'nullable', 'sifat_bangunan' => 'required|array', 'sifat_bangunan_input' => 'nullable|array', - 'nama_bagunan' => 'required|nullable', - 'spek_kategori_bangunan.*' => 'required', - 'spek_bangunan.*' => 'required', + + + 'nama_bangunan.*' => 'required|string|max:255', + 'spek_kategori_bangunan.*' => 'nullable|string', + 'spek_bangunan.*.*' => 'array', + 'spek_bangunan.*.*.*' => 'string', + 'sarana_pelengkap' => 'required', 'sarana_pelengkap_input' => 'nullable|array', ]; @@ -143,12 +149,14 @@ class FormSurveyorRequest extends FormRequest 'jarak_cbd_point' => 'nullable', 'nama_cbd_point' => 'nullable', 'lebar_perkerasan_jalan' => 'nullable', - 'perkerasan_jalan.*' => 'nullable', + 'perkerasan_jalan' => 'nullable|array', + 'perkerasan_jalan_lainnya' => 'nullable', 'lalu_lintas' => 'nullable', 'gol_mas_sekitar' => 'nullable', 'tingkat_keramaian' => 'nullable', 'terletak_diarea' => 'nullable', - 'disekitar_lokasi' => 'nullable', + 'terletak_diarea_lainnya' => 'nullable', + 'disekitar_lokasi' => 'required', 'kondisi_bagunan_disekitar_lokasi' => 'nullable', 'sifat_bagunan_disekitar_lokasi' => 'nullable', 'dekat_makam' => 'nullable', @@ -158,7 +166,8 @@ class FormSurveyorRequest extends FormRequest 'jarak_tps' => 'nullable', 'nama_tpu' => 'nullable', 'merupakan_daerah' => 'nullable', - 'fasilitas_dekat_object' => 'nullable', + 'fasilitas_dekat_object' => 'nullable|array', + 'fasilitas_dekat_object_lainnya' => 'nullable', ]; } @@ -526,7 +535,7 @@ class FormSurveyorRequest extends FormRequest 'hub_cadeb_tidak_sesuai' => 'nullable', 'hub_cadeb_penghuni' => 'required', 'hub_cadeb_penghuni_sesuai' => 'nullable', - 'hub_cadeb_penghuni_tidak_sesuai' => 'nullable', + 'hub_penghuni_tidak_sesuai' => 'nullable', 'address' => 'nullable', 'village_code' => 'nullable', @@ -549,11 +558,11 @@ class FormSurveyorRequest extends FormRequest 'fakta_positif' => 'nullable|array', 'fakta_negatif' => 'nullable|array', 'rute_menuju' => 'nullable', - 'batas_batas' => 'nullable|array', + 'batas_batas' => 'required|array', 'batas_batas_input' => 'nullable|array', 'kondisi_lingkungan' => 'nullable|array', 'kondisi_lain_bangunan' => 'nullable|array', - 'informasi_dokument' => 'nullable', + 'informasi_dokument' => 'nullable|array', 'peruntukan' => 'nullable', 'kdb' => 'nullable', 'kdh' => 'nullable', diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 88e0105..e4f9550 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -3,11 +3,8 @@ @section('breadcrumbs') {{ Breadcrumbs::render(request()->route()->getName()) }} @endsection - - - - @section('content') +@include('lpj::assetsku.includenya')
@include('lpj::component.detail-jaminan', ['backLink' => 'penilaian.index']) @@ -462,6 +459,7 @@ if (response.success) { window.location.href = '{{ route('penilaian.index') }}'; + toastrSuccessBuild(response.message); } else { showErrorMessages(response.errors); @@ -470,6 +468,7 @@ }, error: function(xhr) { // Handle errors from the server + toastrErrorBuild(xhr.responseJSON.message); showErrorMessages(xhr.responseJSON?.errors); console.error('Error occurred:', xhr.statusText); console.log('Response:', xhr.responseText); diff --git a/resources/views/permohonan/index.blade.php b/resources/views/permohonan/index.blade.php index 6c7cb6f..247f0e1 100644 --- a/resources/views/permohonan/index.blade.php +++ b/resources/views/permohonan/index.blade.php @@ -186,9 +186,9 @@ let actionHtml = `
`; if (data && data.penilaian && data.penilaian.waktu_penilaian !== null && data.status !== - 'done') { + 'done' && data.penilaian.authorized_status==null) { actionHtml += ` - + `; @@ -225,5 +225,58 @@ }); + @endpush diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php index c0b365e..fa6172a 100644 --- a/resources/views/registrasifinal/edit.blade.php +++ b/resources/views/registrasifinal/edit.blade.php @@ -70,7 +70,7 @@
- +
{!! $doc_pdf !!}
diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index 808da23..54e5c37 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -139,7 +139,7 @@ - +
`; diff --git a/resources/views/registrasifinal/show.blade.php b/resources/views/registrasifinal/show.blade.php index 36ed406..5a31cd4 100644 --- a/resources/views/registrasifinal/show.blade.php +++ b/resources/views/registrasifinal/show.blade.php @@ -45,7 +45,7 @@ Tujan Permohonan: - {{ $permohonan->tujuanPenilaian->name }} {!! $permohonan->dokumen !!} + {{ $permohonan->tujuanPenilaian->name }} {!! $permohonan->pdfSPK_path !!}
diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index 88f4df1..53218d9 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -199,9 +199,9 @@ render: (item, data) => { var spkShow =''; var spkCreate=''; - if(!data.dokumen) + if(!data.penawaran.spk_dokumen_path) { - spkCreate=` + spkCreate=` `; } diff --git a/resources/views/surveyor/components/apartemen-kantor.blade.php b/resources/views/surveyor/components/apartemen-kantor.blade.php index 948fad8..5e5e3f4 100644 --- a/resources/views/surveyor/components/apartemen-kantor.blade.php +++ b/resources/views/surveyor/components/apartemen-kantor.blade.php @@ -130,8 +130,8 @@
- @if (isset($basicDdata['viewUnit'])) - @foreach ($basicDdata['viewUnit'] as $item) + @if (isset($basicData['viewUnit'])) + @foreach ($basicData['viewUnit'] as $item) + @php + $statusKey = isset($forminspeksi['bangunan']['luas_tanah_bagunan']['sesuai']) + ? 'sesuai' + : 'tidak sesuai'; + $selectedData = $forminspeksi['bangunan']['luas_tanah_bagunan'][$statusKey] ?? null; + @endphp
+ style="{{ old('luas_tanah_bagunan_tidak_sesuai', $selectedData) ? '' : 'display: none'}}"> + value="{{ old('luas_tanah_bagunan_tidak_sesuai', $forminspeksi['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
-
-
- - -
- @if (@isset($basicData['spekKategoriBangunan'])) - @foreach ($basicData['spekKategoriBangunan'] as $item) -
- - -
-
- @foreach ($basicData['spekBangunan'] as $spek) - @if ($spek->spek_kategori_bangunan_id == $item->id) - - @endif - @endforeach + @if (isset($forminspeksi['bangunan']) && is_array($forminspeksi['bangunan'])) + @foreach ($forminspeksi['bangunan']['spesifikasi_bangunan'] as $index => $bangunan) +
+ + +
+ @if (@isset($basicData['spekKategoriBangunan'])) + @foreach ($basicData['spekKategoriBangunan'] as $item) +
+ + +
+
+ @foreach ($basicData['spekBangunan'] as $spek) + @if ($spek->spek_kategori_bangunan_id == $item->id) + + @endif + @endforeach +
+ +
+
+ @endforeach + @endif +
+ +
+ @endforeach + @else +
+ + +
+ @if (@isset($basicData['spekKategoriBangunan'])) + @foreach ($basicData['spekKategoriBangunan'] as $item) +
+ + +
+
+ @foreach ($basicData['spekBangunan'] as $spek) + @if ($spek->spek_kategori_bangunan_id == $item->id) + + @endif + @endforeach +
+
-
-
- @endforeach - @endif + @endforeach + @endif +
+
- -
+ @endif
- @@ -245,11 +302,8 @@ function updateDeleteButtonsVisibility() { const allDeleteButtons = spekBangunanContainer.querySelectorAll('.delete-button'); allDeleteButtons.forEach(button => { - if (spekBangunanContainer.querySelectorAll('.spek-bangunan').length > 1) { - button.style.display = 'inline-block'; - } else { - button.style.display = 'none'; - } + button.style.display = spekBangunanContainer.querySelectorAll('.spek-bangunan').length > 1 ? + 'inline-block' : 'none'; }); } @@ -257,64 +311,80 @@ const allSpekBangunan = spekBangunanContainer.querySelectorAll('.spek-bangunan'); allSpekBangunan.forEach((div, index) => { const label = div.querySelector('.building-label'); + const nameInput = div.querySelector('input[name^="nama_bangunan"]'); if (label) { - label.textContent = `Bangunan ${index + 1}`; + const buildingName = `Bangunan ${index + 1}`; + label.textContent = buildingName; + if (nameInput) { + nameInput.value = buildingName; + } + } + }); + } + + function updateInputNames(container, index) { + container.querySelectorAll('input').forEach(input => { + if (input.name) { + if (input.name.includes('[')) { + if (input.name.startsWith('spek_bangunan')) { + // Handle spek_bangunan inputs + const matches = input.name.match(/spek_bangunan\[\d+\]\[(.*?)\]/); + if (matches) { + input.name = `spek_bangunan[${index}][${matches[1]}][]`; + } + } else { + // Handle other array inputs + input.name = input.name.replace(/\[\d*\]/, `[${index}]`); + } + } } }); } document.getElementById('addBagunan').addEventListener('click', function() { const newDiv = spekBangunanContainer.querySelector('.spek-bangunan').cloneNode(true); + const newIndex = spekBangunanContainer.querySelectorAll('.spek-bangunan').length; - // Update input fields - newDiv.querySelectorAll('select, input').forEach((input, index) => { - if (input.type === 'checkbox' || input.type === 'radio') { + // Reset and update inputs + newDiv.querySelectorAll('input').forEach(input => { + if (input.type === 'checkbox') { input.checked = false; } else { input.value = ''; } - - // Update name attribute - if (input.name) { - const baseName = input.name.split('[')[0]; // Get the base name - const count = spekBangunanContainer.querySelectorAll('.spek-bangunan').length + 1; - input.name = `${baseName}[${count}]`; - } }); - // Append the cloned div - spekBangunanContainer.appendChild(newDiv); + // Update input names + updateInputNames(newDiv, newIndex); - // Add event listener to the delete button in the cloned div - newDiv.querySelector('.delete-button').addEventListener('click', function() { - spekBangunanContainer.removeChild(newDiv); + // Add delete button handler + const deleteButton = newDiv.querySelector('.delete-button'); + deleteButton.addEventListener('click', function() { + newDiv.remove(); updateDeleteButtonsVisibility(); updateBuildingLabels(); }); - // Update UI + // Append and update UI + spekBangunanContainer.appendChild(newDiv); updateDeleteButtonsVisibility(); updateBuildingLabels(); }); - - // Initial setup: Ensure "Bangunan 1" is labeled + // Initialize on page load document.addEventListener('DOMContentLoaded', () => { updateDeleteButtonsVisibility(); - updateBuildingLabels(); // Ensure the first label is set - }); + updateBuildingLabels(); - // Add delete functionality to the initial form - spekBangunanContainer.querySelectorAll('.delete-button').forEach(button => { - button.addEventListener('click', function() { - const spekBangunan = this.closest('.spek-bangunan'); - - // Make sure not to delete the last remaining form - if (spekBangunanContainer.querySelectorAll('.spek-bangunan').length > 1) { - spekBangunan.remove(); - updateDeleteButtonsVisibility(); - updateBuildingLabels(); // Update the labels after removing - } + // Add delete handlers to existing buttons + spekBangunanContainer.querySelectorAll('.delete-button').forEach(button => { + button.addEventListener('click', function() { + if (spekBangunanContainer.querySelectorAll('.spek-bangunan').length > 1) { + this.closest('.spek-bangunan').remove(); + updateDeleteButtonsVisibility(); + updateBuildingLabels(); + } + }); }); }); diff --git a/resources/views/surveyor/components/data-pembanding.blade.php b/resources/views/surveyor/components/data-pembanding.blade.php index 88e8566..1df31d4 100644 --- a/resources/views/surveyor/components/data-pembanding.blade.php +++ b/resources/views/surveyor/components/data-pembanding.blade.php @@ -74,11 +74,8 @@
- +
@@ -243,15 +240,12 @@ - + @foreach ($provinces as $province) - - - + @endforeach @@ -283,17 +277,9 @@ - - @if (isset($cities)) - @foreach ($cities as $city) - - @endforeach - @endif @@ -325,17 +311,9 @@ - - @if (isset($districts)) - @foreach ($districts as $district) - - @endforeach - @endif @@ -365,17 +343,9 @@ - @@ -561,7 +531,6 @@ const newCell = document.createElement('td'); newCell.className = 'px-4 py-2'; - // Clone the last input cell const lastInputCell = row.querySelector('td:last-child'); if (lastInputCell) { const clonedContent = lastInputCell.innerHTML; @@ -569,7 +538,7 @@ // Update IDs and names for the new cell const inputs = newCell.querySelectorAll('input, select, textarea'); - inputs.forEach(input => { + inputs.forEach((input) => { if (input.type === 'file') { const newImageId = `uploadedImage${columnCount + 1}`; const preview = newCell.querySelector('img'); @@ -582,6 +551,25 @@ }; } } + + // Menangani select alamat + if (input.tagName === 'SELECT') { + const oldId = input.id; + const newId = `${oldId}_${columnCount}`; + input.id = newId; + + // Menambahkan event listener untuk select alamat + if (oldId.includes('city')) { + input.onchange = function() { + handleCityChange(this); + }; + } else if (oldId.includes('district')) { + input.onchange = function() { + handleDistrictChange(this); + }; + } + } + // Clear values if (input.type !== 'file') { input.value = ''; @@ -595,6 +583,11 @@ reinitializeEventListeners(); } + + function updateDynamicId(currentId, columnCount) { + return `${currentId.split('_')[0]}_${'code_pembanding'}_${columnCount}`; + } + function removeColumn() { if (columnCount > 1) { const table = document.getElementById('dataTable'); @@ -740,6 +733,188 @@ } }); } + + function loadIdSelectAddres(inputs) { + const data = [ + 'province_code_pembanding', + 'city_code_pembanding', + 'district_code_pembanding', + 'village_code_pembanding' + ] + } + + document.addEventListener('DOMContentLoaded', function() { + // Inisialisasi event listener untuk data pembanding pertama + initializeFirstPembandingListeners(); + + try { + const inspectionData = {!! isset($inspectionData) ? json_encode($inspectionData) : 'null' !!}; + const comparisons = {!! isset($comparisons) ? json_encode($comparisons) : 'null' !!}; + + if (comparisons) { + comparisons.data_pembanding.forEach((comparison, index) => { + if (index > 0) { + addColumn(); + } + fillPembandingData(comparison, index); + }); + } + + updateRemoveButtonVisibility(); + initializeEventListeners(); + } catch (error) { + console.error('Error initializing form:', error); + } + }); + + function initializeFirstPembandingListeners() { + // Event listener untuk province pembanding pertama + const firstProvinceSelect = document.getElementById('province_code_pembanding'); + if (firstProvinceSelect) { + firstProvinceSelect.addEventListener('change', function() { + const provinceId = this.value; + if (provinceId) { + getCity(provinceId, 1); + } + }); + } + + // Event listener untuk city pembanding pertama + const firstCitySelect = document.getElementById('city_code_pembanding'); + if (firstCitySelect) { + firstCitySelect.addEventListener('change', function() { + const cityId = this.value; + if (cityId) { + getDistrict(cityId, 1); + } + }); + } + + // Event listener untuk district pembanding pertama + const firstDistrictSelect = document.getElementById('district_code_pembanding'); + if (firstDistrictSelect) { + firstDistrictSelect.addEventListener('change', function() { + const districtId = this.value; + if (districtId) { + getVillage(districtId, 1); + } + }); + } + } + + function handleProvinceChange(provinceSelect) { + const provinceId = provinceSelect.value; + let columnIndex; + + // Cek apakah ini pembanding pertama atau tambahan + if (provinceSelect.id === 'province_code_pembanding') { + columnIndex = 1; + } else { + columnIndex = provinceSelect.id.split('_').pop(); + } + + if (provinceId) { + getCity(provinceId, columnIndex); + } + } + + function handleCityChange(citySelect) { + const cityId = citySelect.value; + let columnIndex; + + if (citySelect.id === 'city_code_pembanding') { + columnIndex = 1; + } else { + columnIndex = citySelect.id.split('_').pop(); + } + + if (cityId) { + getDistrict(cityId, columnIndex); + } + } + + function handleDistrictChange(districtSelect) { + const districtId = districtSelect.value; + let columnIndex; + + if (districtSelect.id === 'district_code_pembanding') { + columnIndex = 1; + } else { + columnIndex = districtSelect.id.split('_').pop(); + } + + if (districtId) { + getVillage(districtId, columnIndex); + } + } + + async function getCity(provinceId, columnIndex) { + try { + const response = await fetch(`/locations/cities/province/${provinceId}`); + const data = await response.json(); + + // Pilih dropdown berdasarkan index + const cityDropdown = columnIndex === 1 ? + document.getElementById('city_code_pembanding') : + document.getElementById(`city_code_pembanding_${columnIndex}`); + + if (cityDropdown) { + cityDropdown.innerHTML = ''; + data.forEach(city => { + cityDropdown.innerHTML += ``; + }); + } + } catch (error) { + console.error('Error fetching cities:', error); + } + } + + async function getDistrict(cityId, columnIndex) { + try { + const response = await fetch(`/locations/districts/city/${cityId}`); + const data = await response.json(); + + const districtDropdown = columnIndex === 1 ? + document.getElementById('district_code_pembanding') : + document.getElementById(`district_code_pembanding_${columnIndex}`); + + if (districtDropdown) { + districtDropdown.innerHTML = ''; + data.forEach(district => { + districtDropdown.innerHTML += + ``; + }); + } + } catch (error) { + console.error('Error fetching districts:', error); + } + } + + async function getVillage(districtId, columnIndex) { + try { + const response = await fetch(`/locations/villages/district/${districtId}`); + const data = await response.json(); + + const villageDropdown = columnIndex === 1 ? + document.getElementById('village_code_pembanding') : + document.getElementById(`village_code_pembanding_${columnIndex}`); + + if (villageDropdown) { + villageDropdown.innerHTML = ''; + data.forEach(village => { + villageDropdown.innerHTML += ``; + }); + } + } catch (error) { + console.error('Error fetching villages:', error); + } + } + + + function resetDropdown(elementId, placeholder) { + const dropdown = document.getElementById(elementId); + dropdown.innerHTML = ``; + } + @include('lpj::assetsku.includenya')
@@ -130,34 +139,40 @@
-
- -
-
+
-
+
- Gambar foto_denah - + +
+ + Gambar foto_denah + + @if (isset($formDenah['foto_denah']) && strpos($formDenah['foto_denah'], '.pdf') !== false) +
+ +
+ @endif +
+ name="foto_denah" class="file-input file-input-bordered w-full" + accept=".jpg,.jpeg,.png,.pdf" onchange="previewFile(this)">
-
@@ -202,18 +217,56 @@ @push('scripts') diff --git a/resources/views/surveyor/js/fotojs.blade.php b/resources/views/surveyor/js/fotojs.blade.php new file mode 100644 index 0000000..e916aa0 --- /dev/null +++ b/resources/views/surveyor/js/fotojs.blade.php @@ -0,0 +1,204 @@ + diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index c0ea961..b96e4a4 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -1,590 +1,587 @@ push('Basic Data'); - }); -} + if (!Breadcrumbs::exists('basicdata')) { + Breadcrumbs::for('basicdata', function (BreadcrumbTrail $trail) { + $trail->push('Basic Data'); + }); + } -Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index')); -}); - -Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-fasilitas-kredit'); - $trail->push('Tambah Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.create')); -}); - -Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-fasilitas-kredit'); - $trail->push('Edit Jenis Fasilitas Kredit'); -}); - -Breadcrumbs::for('basicdata.jenis-legalitas-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.index')); -}); - -Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-legalitas-jaminan'); - $trail->push('Tambah Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.create')); -}); - -Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-legalitas-jaminan'); - $trail->push('Edit Jenis Legalitas Jaminan'); -}); - -Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Aset', route('basicdata.jenis-jaminan.index')); -}); - -Breadcrumbs::for('basicdata.jenis-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-jaminan'); - $trail->push('Tambah Jenis Aset', route('basicdata.jenis-jaminan.create')); -}); - -Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-jaminan'); - $trail->push('Edit Jenis Aset'); -}); - -Breadcrumbs::for('basicdata.jenis_laporan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Laporan', route('basicdata.jenis_laporan.index')); -}); - -Breadcrumbs::for('basicdata.jenis_laporan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis_laporan'); - $trail->push('Tambah Jenis Laporan', route('basicdata.jenis_laporan.create')); -}); - -Breadcrumbs::for('basicdata.jenis_laporan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis_laporan'); - $trail->push('Edit Jenis Laporan'); -}); - -Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Tujuan Penilaian', route('basicdata.tujuan-penilaian.index')); -}); - -Breadcrumbs::for('basicdata.tujuan-penilaian.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan-penilaian'); - $trail->push('Tambah Tujuan Penilaian', route('basicdata.tujuan-penilaian.create')); -}); - -Breadcrumbs::for('basicdata.tujuan-penilaian.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan-penilaian'); - $trail->push('Edit Tujuan Penilaian'); -}); - -Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.index')); -}); - -Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan_penilaian_kjpp'); - $trail->push('Tambah Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.create')); -}); - -Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan_penilaian_kjpp'); - $trail->push('Edit Tujuan Penilaian KJPP'); -}); - -Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index')); -}); - -Breadcrumbs::for('basicdata.jenis-dokumen.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-dokumen'); - $trail->push('Tambah Jenis Dokumen', route('basicdata.jenis-dokumen.create')); -}); - -Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-dokumen'); - $trail->push('Edit Jenis Dokumen'); -}); - - -Breadcrumbs::for('basicdata.nilai-plafond', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Nilai Plafond', route('basicdata.nilai-plafond.index')); -}); - -Breadcrumbs::for('basicdata.nilai-plafond.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.nilai-plafond'); - $trail->push('Tambah Nilai Plafond', route('basicdata.nilai-plafond.create')); -}); - -Breadcrumbs::for('basicdata.nilai-plafond.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.nilai-plafond'); - $trail->push('Edit Nilai Plafond'); -}); - -Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.index')); -}); - -Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-pemilik-jaminan'); - $trail->push('Tambah Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.create')); -}); - -Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-pemilik-jaminan'); - $trail->push('Edit Hubungan Pemilik Jaminan'); -}); - -Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.index')); -}); - -Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Tambah Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.create')); -}); - -Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Edit Hubungan Penghuni Jaminan'); -}); - -Breadcrumbs::for('basicdata.arah-mata-angin', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Arah Mata Angin', route('basicdata.arah-mata-angin.index')); -}); - -Breadcrumbs::for('basicdata.arah-mata-angin.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.arah-mata-angin'); - $trail->push('Tambah Arah Mata Angin', route('basicdata.arah-mata-angin.create')); -}); - -Breadcrumbs::for('basicdata.arah-mata-angin.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Edit Arah Mata Angin'); -}); - -Breadcrumbs::for('basicdata.status-permohonan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Status Permohonan', route('basicdata.status-permohonan.index')); -}); - -Breadcrumbs::for('basicdata.status-permohonan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.status-permohonan'); - $trail->push('Tambah Status Permohonan', route('basicdata.status-permohonan.create')); -}); - -Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.status-permohonan'); - $trail->push('Edit Status Permohonan'); -}); - -// KJPP -Breadcrumbs::for('basicdata.kjpp', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('KJPP', route('basicdata.kjpp.index')); -}); - -Breadcrumbs::for('basicdata.kjpp.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.kjpp'); - $trail->push('Tambah KJPP', route('basicdata.kjpp.create')); -}); - -Breadcrumbs::for('basicdata.kjpp.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.kjpp'); - $trail->push('Edit KJPP'); -}); - -Breadcrumbs::for('basicdata.kjpp.show', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.kjpp'); - $trail->push('Show KJPP'); -}); -// End KJPP - -// Ijin Usaha -Breadcrumbs::for('basicdata.ijin_usaha', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Ijin Usaha', route('basicdata.ijin_usaha.index')); -}); - -Breadcrumbs::for('basicdata.ijin_usaha.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.ijin_usaha'); - $trail->push('Tambah Ijin Usaha', route('basicdata.ijin_usaha.create')); -}); - -Breadcrumbs::for('basicdata.ijin_usaha.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.ijin_usaha'); - $trail->push('Edit Ijin Usaha'); -}); - -Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { - $trail->push('Debitur', route('debitur.index')); -}); - -Breadcrumbs::for('debitur.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Tambah Debitur', route('debitur.create')); -}); - -Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Debitur'); -}); - -Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Jaminan Debitur'); -}); - -Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan.index'); - $trail->push('Tambah Data Jaminan Debitur'); -}); - -Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan.index'); - $trail->push('Edit Data Jaminan Debitur'); -}); - - -Breadcrumbs::for('debitur.pemilik.index', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Pemilik Jaminan Debitur'); -}); - -Breadcrumbs::for('debitur.pemilik.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.pemilik.index'); - $trail->push('Tambah Data Pemilik Jaminan Debitur'); -}); - -Breadcrumbs::for('debitur.pemilik.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.pemilik.index'); - $trail->push('Edit Data Pemilik Jaminan Debitur'); -}); - -Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) { - $trail->push('Permohonan', route('permohonan.index')); -}); - -Breadcrumbs::for('permohonan.show', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Show Permohonan'); -}); - - -Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Tambah Permohonan', route('permohonan.create')); -}); - -Breadcrumbs::for('permohonan.create.debitur', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Tambah Permohonan', route('permohonan.create')); -}); - -Breadcrumbs::for('permohonan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Data Permohonan'); -}); - -Breadcrumbs::for('basicdata.region', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Region', route('basicdata.region.index')); -}); -Breadcrumbs::for('basicdata.region.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.region'); - $trail->push('Tambah Region', route('basicdata.region.create')); -}); -Breadcrumbs::for('basicdata.region.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.region'); - $trail->push('Edit Region'); -}); - -Breadcrumbs::for('basicdata.teams', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Team', route('basicdata.teams.index')); -}); -Breadcrumbs::for('basicdata.teams.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.teams'); - $trail->push('Tambah Team', route('basicdata.teams.create')); -}); - -Breadcrumbs::for('basicdata.teams.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.teams'); - $trail->push('Edit Team'); -}); - - -Breadcrumbs::for('basicdata.jenis-penilaian', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Penilaian', route('basicdata.jenis-penilaian.index')); -}); -Breadcrumbs::for('basicdata.jenis-penilaian.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-penilaian'); - $trail->push('Tambah Jenis Penilaian', route('basicdata.jenis-penilaian.create')); -}); - -Breadcrumbs::for('basicdata.jenis-penilaian.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-penilaian'); - $trail->push('Edit Jenis Penilaian'); -}); - -Breadcrumbs::for('penilaian', function (BreadcrumbTrail $trail) { - $trail->push('Penilaian', route('penilaian.index')); -}); -Breadcrumbs::for('penilaian.assignment', function (BreadcrumbTrail $trail) { - $trail->parent('penilaian'); - $trail->push('Assignment'); -}); - -Breadcrumbs::for('authorization.index', function (BreadcrumbTrail $trail) { - $trail->push('Permohonan', route('authorization.index')); -}); - -Breadcrumbs::for('authorization.show', function (BreadcrumbTrail $trail) { - $trail->parent('authorization.index'); - $trail->push('Detail Permohonan'); -}); - -Breadcrumbs::for('activity', function (BreadcrumbTrail $trail) { - $trail->push('Activity', route('activity.index')); -}); - -Breadcrumbs::for('activity.show', function (BreadcrumbTrail $trail) { - $trail->parent('activity'); - $trail->push('Activity activity'); -}); - -Breadcrumbs::for('activity.progres', function (BreadcrumbTrail $trail) { - $trail->push('Team activity'); -}); - -Breadcrumbs::for('tender', function (BreadcrumbTrail $trail) { - $trail->push('Tender'); -}); - -Breadcrumbs::for('tender.penawaran', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Penawaran', route('tender.penawaran.index')); -}); - -Breadcrumbs::for('tender.penawaran.show', function (BreadcrumbTrail $trail, $noreg) { - $trail->parent('tender'); - $trail->push('Detail Penawaran', route('tender.penawaran.show', $noreg)); -}); - -Breadcrumbs::for('tender.penawaran.createPenawaran', function (BreadcrumbTrail $trail, $noreg) { - $trail->parent('tender.penawaran'); - $trail->push('Tambah Data Penawaran', route('tender.penawaran.createPenawaran', $noreg)); -}); - -Breadcrumbs::for('tender.penawaran.editPenawaran', function (BreadcrumbTrail $trail, $noreg) { - $trail->parent('tender.penawaran'); - $trail->push('Penawaran Ulang', route('tender.penawaran.editPenawaran', $noreg)); -}); - -Breadcrumbs::for('tender.penawaran.showSuratTender', function (BreadcrumbTrail $trail, $noreg) { - $trail->parent('tender.penawaran'); - $trail->push('Surat Tender', route('tender.penawaran.showSuratTender', $noreg)); -}); - -Breadcrumbs::for('tender.penawaran.suratTenderKJPP', function (BreadcrumbTrail $trail, $noreg, $id) { - $trail->parent('tender.penawaran'); - $trail->push('Surat Tender KJPP', route('tender.penawaran.suratTenderKJPP', ['noreg' => $noreg, 'id' => $id])); -}); - -Breadcrumbs::for('tender.penawaran.showKirimEmail', function (BreadcrumbTrail $trail, $noreg) { - $trail->parent('tender.penawaran'); - $trail->push('Show Kirim Email Penawaran', route('tender.penawaran.showKirimEmail', $noreg)); -}); - - -Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Penawaran Ulang', route('tender.penawaran.ulang.index')); -}); - -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'); - $trail->push('Detail'); -}); - -Breadcrumbs::for('surveyor.form-inspeksi', function (BreadcrumbTrail $trail) { - $trail->parent('surveyor'); - $trail->push('Form Inspeksi'); -}); - -Breadcrumbs::for('surveyor.denah', function (BreadcrumbTrail $trail) { - $trail->parent('surveyor'); - $trail->push('Denah'); -}); - -Breadcrumbs::for('surveyor.foto', function (BreadcrumbTrail $trail) { - $trail->parent('surveyor'); - $trail->push('Form Foto'); -}); - -Breadcrumbs::for('surveyor.data-pembanding', function (BreadcrumbTrail $trail) { - $trail->parent('surveyor'); - $trail->push('Form Pembanding'); -}); - -Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) { - $trail->parent('otorisator'); - $trail->push('Otorisator', route('otorisator.pelaporan.index')); -}); - - -// basic data surveyor -$basicDataRoutes = [ - '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 ($basicDataRoutes as $route => $title) { - Breadcrumbs::for("basicdata.{$route}", function (BreadcrumbTrail $trail) use ($route, $title) { + Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { $trail->parent('basicdata'); - $trail->push($title, route("basicdata.{$route}.index")); + $trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index')); }); -} -Breadcrumbs::for('basicdata.createData', function (BreadcrumbTrail $trail, $type = null) { - $trail->parent('basicdata'); - - if ($type) { - $title = $basicDataRoutes[$type] ?? ucwords(str_replace('-', ' ', $type)); - $trail->push("Tambah $title"); - } else { - $trail->push("Tambah Data"); - } -}); - - -Breadcrumbs::for('basicdata.editData', function (BreadcrumbTrail $trail, $type = null) { - $trail->parent('basicdata'); - - if ($type) { - $title = $basicDataRoutes[$type] ?? ucwords(str_replace('-', ' ', $type)); - $trail->push("Edit $title"); - } else { - $trail->push("Edit Data"); - } -}); - - -// otorisator surveyor -$otorisatorSurveyor = [ - 'pelaporan' => 'Pelaporan', - 'pembayaran' => 'Pembayaran', - 'pembatalan' => 'Pembatalan', - 'sla' => 'SLA', -]; - -foreach ($otorisatorSurveyor as $route => $title) { - Breadcrumbs::for("otorisator.{$route}", function (BreadcrumbTrail $trail) use ($route, $title) { - $trail->push($title, route("otorisator.{$route}.index")); + Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-fasilitas-kredit'); + $trail->push('Tambah Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.create')); + }); + + Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-fasilitas-kredit'); + $trail->push('Edit Jenis Fasilitas Kredit'); + }); + + Breadcrumbs::for('basicdata.jenis-legalitas-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.index')); + }); + + Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-legalitas-jaminan'); + $trail->push('Tambah Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.create')); + }); + + Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-legalitas-jaminan'); + $trail->push('Edit Jenis Legalitas Jaminan'); + }); + + Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Aset', route('basicdata.jenis-jaminan.index')); + }); + + Breadcrumbs::for('basicdata.jenis-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-jaminan'); + $trail->push('Tambah Jenis Aset', route('basicdata.jenis-jaminan.create')); + }); + + Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-jaminan'); + $trail->push('Edit Jenis Aset'); + }); + + Breadcrumbs::for('basicdata.jenis_laporan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Laporan', route('basicdata.jenis_laporan.index')); + }); + + Breadcrumbs::for('basicdata.jenis_laporan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis_laporan'); + $trail->push('Tambah Jenis Laporan', route('basicdata.jenis_laporan.create')); + }); + + Breadcrumbs::for('basicdata.jenis_laporan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis_laporan'); + $trail->push('Edit Jenis Laporan'); + }); + + Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Tujuan Penilaian', route('basicdata.tujuan-penilaian.index')); + }); + + Breadcrumbs::for('basicdata.tujuan-penilaian.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan-penilaian'); + $trail->push('Tambah Tujuan Penilaian', route('basicdata.tujuan-penilaian.create')); + }); + + Breadcrumbs::for('basicdata.tujuan-penilaian.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan-penilaian'); + $trail->push('Edit Tujuan Penilaian'); + }); + + Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.index')); + }); + + Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan_penilaian_kjpp'); + $trail->push('Tambah Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.create')); + }); + + Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan_penilaian_kjpp'); + $trail->push('Edit Tujuan Penilaian KJPP'); + }); + + Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index')); + }); + + Breadcrumbs::for('basicdata.jenis-dokumen.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-dokumen'); + $trail->push('Tambah Jenis Dokumen', route('basicdata.jenis-dokumen.create')); + }); + + Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-dokumen'); + $trail->push('Edit Jenis Dokumen'); }); -} -Breadcrumbs::for('laporan', function (BreadcrumbTrail $trail) { - $trail->push('Laporan', route('laporan.sederhana.index')); -}); + Breadcrumbs::for('basicdata.nilai-plafond', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Nilai Plafond', route('basicdata.nilai-plafond.index')); + }); -Breadcrumbs::for('laporan.sederhana.index', function (BreadcrumbTrail $trail) { - $trail->parent('laporan'); - $trail->push('Sederhana', route('laporan.sederhana.index')); -}); + Breadcrumbs::for('basicdata.nilai-plafond.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.nilai-plafond'); + $trail->push('Tambah Nilai Plafond', route('basicdata.nilai-plafond.create')); + }); -Breadcrumbs::for('laporan.standard.index', function (BreadcrumbTrail $trail) { - $trail->parent('laporan'); - $trail->push('Standard', route('laporan.standard.index')); -}); + Breadcrumbs::for('basicdata.nilai-plafond.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.nilai-plafond'); + $trail->push('Edit Nilai Plafond'); + }); -Breadcrumbs::for('resume', function (BreadcrumbTrail $trail) { - $trail->push('Resume', route('resume.index')); -}); + Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.index')); + }); -Breadcrumbs::for('resume.show', function (BreadcrumbTrail $trail) { - $trail->parent('resume'); - $trail->push('Detail'); -}); + Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-pemilik-jaminan'); + $trail->push('Tambah Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.create')); + }); -Breadcrumbs::for('penilai', function (BreadcrumbTrail $trail) { - $trail->push('Penilai', route('penilai.index')); -}); + Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-pemilik-jaminan'); + $trail->push('Edit Hubungan Pemilik Jaminan'); + }); -Breadcrumbs::for('penilai.show', function (BreadcrumbTrail $trail) { - $trail->parent('penilai'); - $trail->push('Detail Penilai'); -}); + Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.index')); + }); -Breadcrumbs::for('penilai.lampiran', function (BreadcrumbTrail $trail) { - $trail->parent('penilai'); - $trail->push('Lampiran Foto dan Dokument'); -}); + Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Tambah Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.create')); + }); + + Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Edit Hubungan Penghuni Jaminan'); + }); + + Breadcrumbs::for('basicdata.arah-mata-angin', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Arah Mata Angin', route('basicdata.arah-mata-angin.index')); + }); + + Breadcrumbs::for('basicdata.arah-mata-angin.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.arah-mata-angin'); + $trail->push('Tambah Arah Mata Angin', route('basicdata.arah-mata-angin.create')); + }); + + Breadcrumbs::for('basicdata.arah-mata-angin.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Edit Arah Mata Angin'); + }); + + Breadcrumbs::for('basicdata.status-permohonan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Status Permohonan', route('basicdata.status-permohonan.index')); + }); + + Breadcrumbs::for('basicdata.status-permohonan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.status-permohonan'); + $trail->push('Tambah Status Permohonan', route('basicdata.status-permohonan.create')); + }); + + Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.status-permohonan'); + $trail->push('Edit Status Permohonan'); + }); + + // KJPP + Breadcrumbs::for('basicdata.kjpp', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('KJPP', route('basicdata.kjpp.index')); + }); + + Breadcrumbs::for('basicdata.kjpp.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Tambah KJPP', route('basicdata.kjpp.create')); + }); + + Breadcrumbs::for('basicdata.kjpp.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Edit KJPP'); + }); + + Breadcrumbs::for('basicdata.kjpp.show', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Show KJPP'); + }); + // End KJPP + + // Ijin Usaha + Breadcrumbs::for('basicdata.ijin_usaha', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Ijin Usaha', route('basicdata.ijin_usaha.index')); + }); + + Breadcrumbs::for('basicdata.ijin_usaha.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.ijin_usaha'); + $trail->push('Tambah Ijin Usaha', route('basicdata.ijin_usaha.create')); + }); + + Breadcrumbs::for('basicdata.ijin_usaha.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.ijin_usaha'); + $trail->push('Edit Ijin Usaha'); + }); + + Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { + $trail->push('Debitur', route('debitur.index')); + }); + + Breadcrumbs::for('debitur.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Tambah Debitur', route('debitur.create')); + }); + + Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Debitur'); + }); + + Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Jaminan Debitur'); + }); + + Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.jaminan.index'); + $trail->push('Tambah Data Jaminan Debitur'); + }); + + Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.jaminan.index'); + $trail->push('Edit Data Jaminan Debitur'); + }); -Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('SLA', route('basicdata.sla.index')); -}); + Breadcrumbs::for('debitur.pemilik.index', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Pemilik Jaminan Debitur'); + }); + + Breadcrumbs::for('debitur.pemilik.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.pemilik.index'); + $trail->push('Tambah Data Pemilik Jaminan Debitur'); + }); + + Breadcrumbs::for('debitur.pemilik.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.pemilik.index'); + $trail->push('Edit Data Pemilik Jaminan Debitur'); + }); + + Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) { + $trail->push('Permohonan', route('permohonan.index')); + }); + + Breadcrumbs::for('permohonan.show', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Show Permohonan'); + }); -Breadcrumbs::for('persetujuan-penawaran', function (BreadcrumbTrail $trail) { - $trail->push('Persetujuan Penawaran', route('persetujuan-penawaran.index')); -}); + Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Tambah Permohonan', route('permohonan.create')); + }); -Breadcrumbs::for('persetujuan-penawaran.edit', function (BreadcrumbTrail $trail) { - $trail->parent('persetujuan-penawaran'); - $trail->push('Proses Persetujuan Penawaran'); -}); + Breadcrumbs::for('permohonan.create.debitur', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Tambah Permohonan', route('permohonan.create')); + }); -// add andy -require __DIR__ . '/breadcrumbs_registrasi.php'; + Breadcrumbs::for('permohonan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Data Permohonan'); + }); + + Breadcrumbs::for('basicdata.region', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Region', route('basicdata.region.index')); + }); + Breadcrumbs::for('basicdata.region.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.region'); + $trail->push('Tambah Region', route('basicdata.region.create')); + }); + Breadcrumbs::for('basicdata.region.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.region'); + $trail->push('Edit Region'); + }); + + Breadcrumbs::for('basicdata.teams', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Team', route('basicdata.teams.index')); + }); + Breadcrumbs::for('basicdata.teams.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.teams'); + $trail->push('Tambah Team', route('basicdata.teams.create')); + }); + + Breadcrumbs::for('basicdata.teams.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.teams'); + $trail->push('Edit Team'); + }); + + + Breadcrumbs::for('basicdata.jenis-penilaian', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Penilaian', route('basicdata.jenis-penilaian.index')); + }); + Breadcrumbs::for('basicdata.jenis-penilaian.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-penilaian'); + $trail->push('Tambah Jenis Penilaian', route('basicdata.jenis-penilaian.create')); + }); + + Breadcrumbs::for('basicdata.jenis-penilaian.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-penilaian'); + $trail->push('Edit Jenis Penilaian'); + }); + + Breadcrumbs::for('penilaian', function (BreadcrumbTrail $trail) { + $trail->push('Penilaian', route('penilaian.index')); + }); + Breadcrumbs::for('penilaian.assignment', function (BreadcrumbTrail $trail) { + $trail->parent('penilaian'); + $trail->push('Assignment'); + }); + + Breadcrumbs::for('authorization.index', function (BreadcrumbTrail $trail) { + $trail->push('Permohonan', route('authorization.index')); + }); + + Breadcrumbs::for('authorization.show', function (BreadcrumbTrail $trail) { + $trail->parent('authorization.index'); + $trail->push('Detail Permohonan'); + }); + + Breadcrumbs::for('activity', function (BreadcrumbTrail $trail) { + $trail->push('Activity', route('activity.index')); + }); + + Breadcrumbs::for('activity.show', function (BreadcrumbTrail $trail) { + $trail->parent('activity'); + $trail->push('Activity activity'); + }); + + Breadcrumbs::for('activity.progres', function (BreadcrumbTrail $trail) { + $trail->push('Team activity'); + }); + + Breadcrumbs::for('tender', function (BreadcrumbTrail $trail) { + $trail->push('Tender'); + }); + + Breadcrumbs::for('tender.penawaran', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran', route('tender.penawaran.index')); + }); + + Breadcrumbs::for('tender.penawaran.show', function (BreadcrumbTrail $trail, $noreg) { + $trail->parent('tender'); + $trail->push('Detail Penawaran', route('tender.penawaran.show', $noreg)); + }); + + Breadcrumbs::for('tender.penawaran.createPenawaran', function (BreadcrumbTrail $trail, $noreg) { + $trail->parent('tender.penawaran'); + $trail->push('Tambah Data Penawaran', route('tender.penawaran.createPenawaran', $noreg)); + }); + + Breadcrumbs::for('tender.penawaran.editPenawaran', function (BreadcrumbTrail $trail, $noreg) { + $trail->parent('tender.penawaran'); + $trail->push('Penawaran Ulang', route('tender.penawaran.editPenawaran', $noreg)); + }); + + Breadcrumbs::for('tender.penawaran.showSuratTender', function (BreadcrumbTrail $trail, $noreg) { + $trail->parent('tender.penawaran'); + $trail->push('Surat Tender', route('tender.penawaran.showSuratTender', $noreg)); + }); + + Breadcrumbs::for('tender.penawaran.suratTenderKJPP', function (BreadcrumbTrail $trail, $noreg, $id) { + $trail->parent('tender.penawaran'); + $trail->push('Surat Tender KJPP', route('tender.penawaran.suratTenderKJPP', ['noreg' => $noreg, 'id' => $id])); + }); + + Breadcrumbs::for('tender.penawaran.showKirimEmail', function (BreadcrumbTrail $trail, $noreg) { + $trail->parent('tender.penawaran'); + $trail->push('Show Kirim Email Penawaran', route('tender.penawaran.showKirimEmail', $noreg)); + }); + + + Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran Ulang', route('tender.penawaran.ulang.index')); + }); + + 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'); + $trail->push('Detail'); + }); + + + + Breadcrumbs::for('surveyor.denah', function (BreadcrumbTrail $trail) { + $trail->parent('surveyor'); + $trail->push('Denah'); + }); + + Breadcrumbs::for('surveyor.foto', function (BreadcrumbTrail $trail) { + $trail->parent('surveyor'); + $trail->push('Form Foto'); + }); + + Breadcrumbs::for('surveyor.data-pembanding', function (BreadcrumbTrail $trail) { + $trail->parent('surveyor'); + $trail->push('Form Pembanding'); + }); + + Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) { + $trail->parent('otorisator'); + $trail->push('Otorisator', route('otorisator.pelaporan.index')); + }); + + + // basic data surveyor + $basicDataRoutes = [ + '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 ($basicDataRoutes as $route => $title) { + Breadcrumbs::for("basicdata.{$route}", function (BreadcrumbTrail $trail) use ($route, $title) { + $trail->parent('basicdata'); + $trail->push($title, route("basicdata.{$route}.index")); + }); + } + + Breadcrumbs::for('basicdata.createData', function (BreadcrumbTrail $trail, $type = null) { + $trail->parent('basicdata'); + + if ($type) { + $title = $basicDataRoutes[$type] ?? ucwords(str_replace('-', ' ', $type)); + $trail->push("Tambah $title"); + } else { + $trail->push("Tambah Data"); + } + }); + + + Breadcrumbs::for('basicdata.editData', function (BreadcrumbTrail $trail, $type = null) { + $trail->parent('basicdata'); + + if ($type) { + $title = $basicDataRoutes[$type] ?? ucwords(str_replace('-', ' ', $type)); + $trail->push("Edit $title"); + } else { + $trail->push("Edit Data"); + } + }); + + + // otorisator surveyor + $otorisatorSurveyor = [ + 'pelaporan' => 'Pelaporan', + 'pembayaran' => 'Pembayaran', + 'pembatalan' => 'Pembatalan', + 'sla' => 'SLA', + ]; + + foreach ($otorisatorSurveyor as $route => $title) { + Breadcrumbs::for("otorisator.{$route}", function (BreadcrumbTrail $trail) use ($route, $title) { + $trail->push($title, route("otorisator.{$route}.index")); + }); + } + + + Breadcrumbs::for('laporan', function (BreadcrumbTrail $trail) { + $trail->push('Laporan', route('laporan.sederhana.index')); + }); + + Breadcrumbs::for('laporan.sederhana.index', function (BreadcrumbTrail $trail) { + $trail->parent('laporan'); + $trail->push('Sederhana', route('laporan.sederhana.index')); + }); + + Breadcrumbs::for('laporan.standard.index', function (BreadcrumbTrail $trail) { + $trail->parent('laporan'); + $trail->push('Standard', route('laporan.standard.index')); + }); + + Breadcrumbs::for('resume', function (BreadcrumbTrail $trail) { + $trail->push('Resume', route('resume.index')); + }); + + Breadcrumbs::for('resume.show', function (BreadcrumbTrail $trail) { + $trail->parent('resume'); + $trail->push('Detail'); + }); + + Breadcrumbs::for('penilai', function (BreadcrumbTrail $trail) { + $trail->push('Penilai', route('penilai.index')); + }); + + Breadcrumbs::for('penilai.show', function (BreadcrumbTrail $trail) { + $trail->parent('penilai'); + $trail->push('Detail Penilai'); + }); + + Breadcrumbs::for('penilai.lampiran', function (BreadcrumbTrail $trail) { + $trail->parent('penilai'); + $trail->push('Lampiran Foto dan Dokument'); + }); + + + Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('SLA', route('basicdata.sla.index')); + }); + + + Breadcrumbs::for('persetujuan-penawaran', function (BreadcrumbTrail $trail) { + $trail->push('Persetujuan Penawaran', route('persetujuan-penawaran.index')); + }); + + Breadcrumbs::for('persetujuan-penawaran.edit', function (BreadcrumbTrail $trail) { + $trail->parent('persetujuan-penawaran'); + $trail->push('Proses Persetujuan Penawaran'); + }); + + // add andy + require __DIR__ . '/breadcrumbs_registrasi.php'; diff --git a/routes/web.php b/routes/web.php index 011dbc1..529f05c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -514,7 +514,7 @@ Route::middleware(['auth'])->group(function () { Route::post('store', [SurveyorController::class, 'store'])->name('store'); Route::post('storeDenah', [SurveyorController::class, 'storeDenah'])->name('storeDenah'); Route::put('storeJadwal', [SurveyorController::class, 'storeJadwal'])->name('storeJadwal'); - Route::get('storeAproved/{id}', [SurveyorController::class, 'storeAproved'])->name('storeAproved'); + Route::put('storeAproved/{storeAproved}', [SurveyorController::class, 'storeAproved'])->name('storeAproved'); Route::put('storeFreeze', [SurveyorController::class, 'storeFreeze'])->name('storeFreeze'); Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto'); Route::post('storeDataPembanding', [SurveyorController::class, 'storeDataPembanding'])->name('storeDataPembanding');