From 4ed858b7e7cf36a008dfd890bd853c3012ae9da0 Mon Sep 17 00:00:00 2001 From: majid Date: Thu, 14 Nov 2024 00:08:45 +0700 Subject: [PATCH] update form apartemen dan foto --- app/Http/Controllers/SurveyorController.php | 122 ++++++------ app/Models/Inspeksi.php | 12 +- ...024_11_13_153901_update_inspeksi_table.php | 29 +++ .../components/apartemen-kantor.blade.php | 4 +- .../views/surveyor/components/foto.blade.php | 175 +++++++++++------- .../surveyor/components/inspeksi.blade.php | 17 +- routes/web.php | 2 +- 7 files changed, 221 insertions(+), 140 deletions(-) create mode 100644 database/migrations/2024_11_13_153901_update_inspeksi_table.php diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 3d56f22..3c86379 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -94,7 +94,6 @@ class SurveyorController extends Controller $saranaPelengkap = SaranaPelengkap::all(); $arahMataAngin = ArahMataAngin::all(); - $jenisJaminanIds = $permohonan->debiture->documents; @@ -104,7 +103,15 @@ class SurveyorController extends Controller ->where('permohonan_id', $id) ->get(); - $inpeksi = Inspeksi::where('permohonan_id', $id)->first(); + + + $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); @@ -139,6 +146,7 @@ class SurveyorController extends Controller 'forminspeksi', 'formDenah', 'formFoto', + 'jaminanId' )); } /** @@ -158,15 +166,15 @@ class SurveyorController extends Controller $action = $request->input('type'); $rules = $this->getActionSpecificRules($data, $action, $request); - $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->first(); - - if ($inspeksi) { + $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); + if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) { $inspeksi->update(['data_form' => json_encode($rules)]); } else { Inspeksi::create([ 'permohonan_id' => $request->permohonan_id, 'data_form' => json_encode($rules), 'name' => $request->type, + 'jenis_jaminan_id' => $request->input('jenis_jaminan_id'), ]); } @@ -236,8 +244,8 @@ class SurveyorController extends Controller ]; - $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->first(); - if ($request->input('permohonan_id') == $inspeksi->permohonan_id) { + $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); + if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) { $inspeksi->update([ 'denah_form' => json_encode($formatJsonDenah) ]); @@ -262,7 +270,6 @@ class SurveyorController extends Controller $validatedData = $request->validate([ 'permohonan_id' => 'required', 'jenis_jaminan_id' => 'required', - 'analisa_type' => 'required|in:tanah_bangunan,unit', 'pendamping' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', 'foto_objek.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', 'name_objek.*' => 'required|string|max:255', @@ -366,8 +373,8 @@ class SurveyorController extends Controller 'pendamping' => $pendamping ]; - $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->first(); - if ($request->input('permohonan_id') == $inspeksi->permohonan_id) { + $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); + if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) { $inspeksi->update([ 'foto_form' => json_encode($formatFotojson) ]); @@ -384,7 +391,7 @@ class SurveyorController extends Controller } } - public function submitSurveyor($id) + public function submitSurveyor($id,$jaminanId) { try { $cekButton = $this->checkButtonStatus($id)->getData(); @@ -407,6 +414,7 @@ class SurveyorController extends Controller public function checkButtonStatus($id) { try { + $inpeksi = Inspeksi::where('permohonan_id', $id)->first(); if ($inpeksi) { @@ -428,64 +436,64 @@ class SurveyorController extends Controller return response()->json(['buttonDisable' => true]); } } catch (\Exception $e) { - return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500); + return response()->json(['buttonDisable' => true]); } } public function storeJadwal(Request $request) -{ - try { + { + try { - $validate = $request->validate([ - 'id' => 'required', - 'waktu_penilaian' => 'required', - 'deskripsi_penilaian' => 'required' - ]); + $validate = $request->validate([ + 'id' => 'required', + 'waktu_penilaian' => 'required', + 'deskripsi_penilaian' => 'required' + ]); - // return response()->json([ - // 'daa'=>$validate - // ]); - $id = $request->input('id'); - $penilaian = Penilaian::findOrFail($id); + // return response()->json([ + // 'daa'=>$validate + // ]); + $id = $request->input('id'); + $penilaian = Penilaian::findOrFail($id); - $penilaian->update([ - 'waktu_penilaian' => $validate['waktu_penilaian'], - 'deskripsi_penilaian' => $validate['deskripsi_penilaian'], - - ]); + $penilaian->update([ + 'waktu_penilaian' => $validate['waktu_penilaian'], + 'deskripsi_penilaian' => $validate['deskripsi_penilaian'], - return redirect() - ->route('surveyor.index') - ->with('success', 'Jadwal berhasil dibuat.'); - } catch (\Exception $e) { - return redirect() - ->route('surveyor.index') - ->with('error', 'Gagal membuat jadwal: ' . $e->getMessage()); + ]); + + return redirect() + ->route('surveyor.index') + ->with('success', 'Jadwal berhasil dibuat.'); + } catch (\Exception $e) { + return redirect() + ->route('surveyor.index') + ->with('error', 'Gagal membuat jadwal: ' . $e->getMessage()); + } } -} -public function storeAproved($id) -{ - try { + public function storeAproved($id) + { + try { - $penilaian = Penilaian::findOrFail($id); + $penilaian = Penilaian::findOrFail($id); - $penilaian->update([ - 'authorized_status' => 1, - ]); + $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()); + 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()); + } } -} /** * Form inspeksi. */ @@ -534,7 +542,7 @@ public function storeAproved($id) - $inpeksi = Inspeksi::where('permohonan_id', $id)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); $forminspeksi = null; if ($inpeksi) { $forminspeksi = json_decode($inpeksi->data_form, true); @@ -577,8 +585,7 @@ public function storeAproved($id) $denah = null; - - $inpeksi = Inspeksi::where('permohonan_id', $id)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); $formDenah = null; if ($inpeksi) { $formDenah = json_decode($inpeksi->denah_form, true); @@ -601,7 +608,8 @@ public function storeAproved($id) - $inpeksi = Inspeksi::where('permohonan_id', $id)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $formFoto = null; if ($inpeksi) { $formFoto = json_decode($inpeksi->foto_form, true); @@ -1074,7 +1082,7 @@ public function storeAproved($id) } - private function getTanahData($data,$request): array + private function getTanahData($data, $request): array { return [ 'luas_tanah' => $data['luas_tanah'] ?? null, diff --git a/app/Models/Inspeksi.php b/app/Models/Inspeksi.php index 16c3629..ebbe399 100644 --- a/app/Models/Inspeksi.php +++ b/app/Models/Inspeksi.php @@ -14,7 +14,17 @@ class Inspeksi extends Model /** * The attributes that are mass assignable. */ - protected $fillable = ['data_form', 'foto_form', 'denah_form','permohonan_id', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by']; + protected $fillable = ['data_form', 'foto_form', 'denah_form','permohonan_id', 'name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by','jenis_jaminan_id']; + + public function permohonan() + { + return $this->belongsTo(Permohonan::class, 'permohonan_id'); + } + + public function jenis_jaminan() + { + return $this->belongsTo(JenisJaminan::class, 'jenis_jaminan_id'); + } // protected static function newFactory(): InspeksiFactory // { diff --git a/database/migrations/2024_11_13_153901_update_inspeksi_table.php b/database/migrations/2024_11_13_153901_update_inspeksi_table.php new file mode 100644 index 0000000..552ed5c --- /dev/null +++ b/database/migrations/2024_11_13_153901_update_inspeksi_table.php @@ -0,0 +1,29 @@ +unsignedBigInteger('jenis_jaminan_id')->nullable()->after('permohonan_id'); + $table->foreign('jenis_jaminan_id')->references('id')->on('jenis_jaminan')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('inspeksi', function (Blueprint $table) { + $table->dropColumn('jenis_jaminan_id'); + }); + } +}; diff --git a/resources/views/surveyor/components/apartemen-kantor.blade.php b/resources/views/surveyor/components/apartemen-kantor.blade.php index 40d53a9..00ec1e8 100644 --- a/resources/views/surveyor/components/apartemen-kantor.blade.php +++ b/resources/views/surveyor/components/apartemen-kantor.blade.php @@ -17,12 +17,12 @@
diff --git a/resources/views/surveyor/components/foto.blade.php b/resources/views/surveyor/components/foto.blade.php index 4617dc7..4228f8b 100644 --- a/resources/views/surveyor/components/foto.blade.php +++ b/resources/views/surveyor/components/foto.blade.php @@ -89,24 +89,6 @@ - @foreach ($permohonan->debiture->documents as $dokumen) - @if ($dokumen->jenisJaminan) - @php - $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); - @endphp - - - @if (is_array($formKategori)) - @foreach ($formKategori as $kategori) - @include('lpj::surveyor.components.' . str_replace('-', '_', $kategori), [ - 'dokumen' => $dokumen, - ]) - @endforeach - @endif - @endif - @endforeach
@@ -226,61 +208,110 @@

Objek Jaminan

- @php - $objekViews = []; - if ($analisaType === 'tanah_bangunan') { - $objekViews = [ - ['label' => 'Tampak Samping Kiri', 'index' => 0], - ['label' => 'Tampak Samping Kanan', 'index' => 1], - ['label' => 'Nomor Rumah/Unit', 'index' => 2], - ]; - } elseif ($analisaType === 'unit') { - $objekViews = [ - ['label' => 'Tampak Loby', 'index' => 0], - ['label' => 'Tampak Lift', 'index' => 1], - ['label' => 'Tampak Samping Kiri Unit', 'index' => 2], - ['label' => 'Tampak Samping Kanan Unit', 'index' => 3], - ['label' => 'Tampak Depan Unit', 'index' => 4], - ['label' => 'Nomor Unit', 'index' => 5], - ]; - } - @endphp - @if (count($objekViews) > 0) - @foreach ($objekViews as $view) -
-
- - -
- {{ $view['label'] }} + @foreach ($permohonan->debiture->documents as $dokumen) + @if ($dokumen->jenisJaminan) + @php + $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); + @endphp + @if (isset($formKategori) && $formKategori) + + + @if (is_array($formKategori)) + @foreach ($formKategori as $kategori) + @if ($kategori === 'tanah' || $kategori === 'bangunan') + @php + $objekViews = [ + ['label' => 'Tampak Samping Kiri', 'index' => 0], + ['label' => 'Tampak Samping Kanan', 'index' => 1], + ['label' => 'Nomor Rumah/Unit', 'index' => 2], + ]; + @endphp + @elseif ($kategori === 'apartemen-kantor') + @php + $objekViews = [ + ['label' => 'Tampak Loby', 'index' => 0], + ['label' => 'Tampak Lift', 'index' => 1], + ['label' => 'Tampak Samping Kiri Unit', 'index' => 2], + ['label' => 'Tampak Samping Kanan Unit', 'index' => 3], + ['label' => 'Tampak Depan Unit', 'index' => 4], + ['label' => 'Nomor Unit', 'index' => 5], + ]; + @endphp + @elseif ($kategori === 'kendaraan') + @php + $objekViews = [ + ['label' => 'Tampak Depan Objek', 'index' => 0], + ['label' => 'Tampak Kanan Objek', 'index' => 1], + ['label' => 'Tampak Samping Kiri Objek', 'index' => 2], + ['label' => 'Tampak Belakang Objek', 'index' => 3], + ['label' => 'Tampak Bagian Dalam', 'index' => 4], + ['label' => 'Nomor Panel Instrument', 'index' => 5], + ['label' => 'Tampak Odometer', 'index' => 6], + ['label' => 'Tampak Aksesoris Tambahan', 'index' => 7], + ['label' => 'Tampak Nomor Rangka', 'index' => 8], + ['label' => 'Tampak Nomor Mesin', 'index' => 9], + ['label' => 'Tampak Penilai dan Pendamping di lapangan', 'index' => 10], + ]; + @endphp + @elseif ($kategori === 'kapal') + @php + $objekViews = [ + ['label' => 'Tampak Depan', 'index' => 0], + ['label' => 'Tampak Kanan', 'index' => 1], + ['label' => 'Tampak Samping Kiri', 'index' => 2], + ['label' => 'Tampak Belakang', 'index' => 3], + ['label' => 'Tampak Bagian Dalam', 'index' => 4], + ['label' => 'Nomor Panel Instrument', 'index' => 5], + ['label' => 'Tampak Hours Meters', 'index' => 6], + ['label' => 'Tampak Aksesoris Tambahan', 'index' => 7], + ['label' => 'Tampak Nomor Rangka', 'index' => 8], + ['label' => 'Tampak Nomor Mesin', 'index' => 9], + ['label' => 'Tampak Penilai dan Pendamping di lapangan', 'index' => 10], + ]; + @endphp + @endif -
- - -
- -
-
- -
- @endforeach - @else -
-

Tipe analisa tidak valid atau belum dipilih.

-
+ @if (count($objekViews) > 0) + @foreach ($objekViews as $view) +
+
+ + +
+ {{ $view['label'] }} + +
+ + +
+ + +
+
+ +
+ @endforeach + @endif + @endforeach + @endif + @endif @endif + @endforeach
@@ -656,10 +687,10 @@ 'X-CSRF-TOKEN': '{{ csrf_token() }}' }, success: function(response) { - // if (response.success) { - // window.location.href = - // '{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto'; - // } + if (response.success) { + window.location.href = + '{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto'; + } console.log(response); }, error: function(xhr, status, error) { diff --git a/resources/views/surveyor/components/inspeksi.blade.php b/resources/views/surveyor/components/inspeksi.blade.php index 10e72f2..8182440 100644 --- a/resources/views/surveyor/components/inspeksi.blade.php +++ b/resources/views/surveyor/components/inspeksi.blade.php @@ -30,27 +30,30 @@ @csrf - + @foreach ($permohonan->debiture->documents as $dokumen) - @if ($dokumen->jenisJaminan) - @php - $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); - @endphp + @if ($dokumen->jenisJaminan) + @php + $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); + @endphp + @if (isset($formKategori) && $formKategori) @if (is_array($formKategori)) @foreach ($formKategori as $kategori) - @include('lpj::surveyor.components.' . str_replace('-', '_', $kategori), [ + @include('lpj::surveyor.components.' . str_replace('-', '-', $kategori), [ 'dokumen' => $dokumen, ]) @endforeach @endif @endif - @endforeach + @endif + @endforeach