From de9c215456a2a8f4315ee31a50a1f899a5f05aa5 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 15:18:14 +0700 Subject: [PATCH 01/20] Tambah kolom "dokumen_nomor" ke DokumenJaminan Menambahkan kolom dokumen_nomor pada DokumenJaminan untuk mendukung penyimpanan nomor dokumen yang terkait dengan setiap dokumen jaminan. Pembaruan ini mencakup perubahan pada controller untuk memproses kolom baru dan penyesuaian pada tampilan untuk menampilkan serta mengunduh dokumen berdasarkan nomor ini. --- .../Controllers/DokumenJaminanController.php | 4 ++ .../debitur/components/dokumen.blade.php | 71 +++++++++---------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index b3cfe8a..207413c 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -468,6 +468,9 @@ 'dokumen_jaminan' => json_decode( $detail->dokumen_jaminan, ) ?? $detail->dokumen_jaminan, + 'dokumen_nomor' => json_decode( + $detail->dokumen_nomor, + ) ?? $detail->dokumen_nomor, 'custom_field' => $detail->jenisLegalitasJaminan->custom_field, 'custom_field_type' => $detail->jenisLegalitasJaminan->custom_field_type, 'details' => $detail->details, @@ -486,6 +489,7 @@ 'jenis_legalitas_jaminan_id' => $legalitas->id, 'name' => $legalitas->name, 'dokumen_jaminan' => null, + 'dokumen_nomor' => null, 'custom_field' => $legalitas->custom_field, 'custom_field_type' => $legalitas->custom_field_type, 'details' => null, diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 35fc4d0..e1a358b 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -168,16 +168,26 @@ @if(isset($detail->dokumen_jaminan)) - @php - $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; - @endphp - @foreach($dokumen_jaminan as $index => $dokumen) - - {{ basename($dokumen) }} - - - @endforeach + @if(isset($detail->dokumen_jaminan)) + @php + $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; + $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) ? json_decode($detail->dokumen_nomor) : ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []); + @endphp +
+ @foreach($dokumen_jaminan as $index => $dokumen) +
+ @if(!empty($dokumen_nomor)) + Nomor Dokumen : {{ $dokumen_nomor[$index] }} + @endif + + {{ basename($dokumen) }} + + +
+ @endforeach +
+ @endif @endif @@ -510,7 +520,9 @@ Dokumen Jaminan
- ${item.dokumen_jaminan ? renderExistingFiles(item.dokumen_jaminan, debiturId, item.id) : ''} +
+ ${item.dokumen_jaminan ? renderExistingFiles(item.dokumen_jaminan, debiturId, item.id, item.dokumen_nomor) : ''} +
@@ -544,25 +556,6 @@ .catch(error => console.error('Error:', error)); } - function renderExistingFiles(dokumenJaminan, debiturId, itemId) { - if (typeof dokumenJaminan === 'string') { - return ` - - ${dokumenJaminan.split('/').pop()} - - - `; - } else if (Array.isArray(dokumenJaminan)) { - return dokumenJaminan.map(file => ` - - ${file.split('/').pop()} - - - `).join(''); - } - return ''; - } - function addFileInput(index) { const container = document.getElementById(`file-container-${index}`); const newInput = document.createElement('div'); @@ -579,20 +572,24 @@ button.closest('.flex.items-center.gap-2.mb-2').remove(); } - function renderExistingFiles(dokumenJaminan, debiturId, itemId) { - if (typeof dokumenJaminan === 'string') { + function renderExistingFiles(dokumenJaminan, debiturId, itemId, dokumenNomor) { + if (typeof dokumenJaminan === 'string' && typeof dokumenNomor === 'string') { return ` - + `; - } else if (Array.isArray(dokumenJaminan)) { - return dokumenJaminan.map(file => ` - + } else if (Array.isArray(dokumenJaminan) && Array.isArray(dokumenNomor)) { + return dokumenJaminan.map((file, index) => ` `).join(''); } return ''; From 7d65643f0eae3467ed7677ab3f9ce96679a67844 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 15:36:53 +0700 Subject: [PATCH 02/20] Refactor id field usage and handle document paths Mengganti penggunaan id field dengan id dinamis yang tergantung pada $route[0] di berbagai file blade untuk konsistensi. Menambahkan penanganan jalur dokumen dalam SpkController jika dokumen tersedia, memungkinkan pengambilan jalur penyimpanan yang tepat. --- app/Http/Controllers/SpkController.php | 8 ++++++++ resources/views/registrasifinal/edit.blade.php | 3 ++- resources/views/registrasifinal/js/editjs.blade.php | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index 60568f9..ee191db 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -96,6 +96,14 @@ use Illuminate\Support\Facades\Auth; } + // data dokumen_spk + if($obj->dokumen) + { + $spkpenawaran_path = Storage::url($obj->dokumen); + // dd($spkpenawaran_path); + $data[$i]->dokumen = $spkpenawaran_path; + } + $i++; } diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php index a2e15e7..c0b365e 100644 --- a/resources/views/registrasifinal/edit.blade.php +++ b/resources/views/registrasifinal/edit.blade.php @@ -13,7 +13,8 @@
- + + @method('PUT') @csrf
diff --git a/resources/views/registrasifinal/js/editjs.blade.php b/resources/views/registrasifinal/js/editjs.blade.php index c46596d..89f2a5e 100644 --- a/resources/views/registrasifinal/js/editjs.blade.php +++ b/resources/views/registrasifinal/js/editjs.blade.php @@ -17,7 +17,8 @@ function setData() { - let id = $("#id").val(); + // id => penawaran.id + let id = $("#{{$route[0]}}_id").val(); let token = "{{ csrf_token() }}"; // alert('token = ' + token); var useURL = "{{ route('registrasifinal.setData') }}"; @@ -81,6 +82,7 @@ let token = "{{ csrf_token() }}"; let _method = $('input[name=_method]').val(); + // id => penawaran.id let id = $('#{{$route[0]}}_id').val(); let region = $("#{{$route[0]}}_region").val(); let catatan = $("#{{$route[0]}}_catatan").val(); From 7baf5e45200863b11c184a00e13b996c2ff89180 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 15:49:33 +0700 Subject: [PATCH 03/20] Tambah kondisi baru dalam logika dokumenJaminan Menambahkan beberapa kondisi baru pada fungsi render untuk menangani kasus di mana dokumenJaminan bertipe string dan dokumenNomor null, serta variasi lain yang melibatkan tipe array dan string untuk kombinasi dokumenJaminan dan dokumenNomor. Kondisi ini memastikan penanganan berbagai bentuk data dengan benar sebelum menampilkan elemen DOM yang sesuai. --- .../debitur/components/dokumen.blade.php | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index e1a358b..33cf838 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -583,6 +583,16 @@
`; + }else if (typeof dokumenJaminan === 'string' && dokumenNomor === null) { + return ` + + `; } else if (Array.isArray(dokumenJaminan) && Array.isArray(dokumenNomor)) { return dokumenJaminan.map((file, index) => `
Nomor Dokumen : ${dokumenNomor[index] || 'N/A'} @@ -591,8 +601,24 @@
`).join(''); + } else if (Array.isArray(dokumenJaminan) && typeof dokumenNomor === 'string') { + return dokumenJaminan.map((file, index) => `
+ Nomor Dokumen : ${dokumenNomor} || 'N/A'} + + ${file.split('/').pop()} + +
+ `).join(''); + } else if (Array.isArray(dokumenJaminan) && dokumenNomor === 'null') { + return dokumenJaminan.map((file, index) => `
+ Nomor Dokumen : ${dokumenNomor} || 'N/A'} + + ${file.split('/').pop()} + +
+ `).join(''); } - return ''; + return dokumenNomor; } function getCustomFieldInput(type, fieldName, value) { From 3f21b90c6d498c009ba67cc14a01fc6abf656ddf Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 16:26:17 +0700 Subject: [PATCH 04/20] Update jaminan document display logic Menambahkan logika baru untuk penanganan dokumen jaminan. Sekarang, jika dokumen jaminan ada lebih dari satu, setiap dokumen akan ditampilkan secara terpisah dengan opsi download dan preview untuk masing-masing dokumen. Sebelumnya, hanya ada satu tautan download dan preview per kategori jaminan. --- .../debitur/components/jaminan.blade.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/resources/views/debitur/components/jaminan.blade.php b/resources/views/debitur/components/jaminan.blade.php index a45cf24..6f3cc68 100644 --- a/resources/views/debitur/components/jaminan.blade.php +++ b/resources/views/debitur/components/jaminan.blade.php @@ -71,10 +71,23 @@ {{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
- @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) - Download + @if(isset($detail->dokumen_jaminan)) + @php + $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; + $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) ? json_decode($detail->dokumen_nomor) : ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []); + @endphp + @foreach($dokumen_jaminan as $index => $dokumen) + @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) + + {{ basename($dokumen) }} + + + @endif + Preview +
+ @endforeach @endif - Preview
From 7e425d10e684890b96d31a2f5514c20b57b19f00 Mon Sep 17 00:00:00 2001 From: majid Date: Thu, 7 Nov 2024 16:32:27 +0700 Subject: [PATCH 05/20] update tampilan team activity --- app/Http/Controllers/PenilaianController.php | 11 +---- app/Http/Controllers/SurveyorController.php | 47 +++++++++++-------- app/Models/PerkerasanJalan.php | 1 + .../activity/progres_activity/index.blade.php | 17 +++++-- resources/views/penilaian/form.blade.php | 32 +++++-------- 5 files changed, 53 insertions(+), 55 deletions(-) diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index ea1c261..2b5a894 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -222,7 +222,7 @@ class PenilaianController extends Controller }); })->unique('id'); - $existingTeamIds = $teamPenilai->pluck('id')->toArray(); + $existingTeamIds = $userTeam->pluck('id')->toArray(); $updateTeamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user']) ->whereNotIn('id', $existingTeamIds) @@ -232,23 +232,14 @@ class PenilaianController extends Controller foreach ($userTeam as $item) { $regionName = $item->regions; } - // $regionName = $userTeam->first()?->regions->name; - - $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); - $penilaianTeam = collect(); if ($penilaian && $penilaian->id) { $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); } - // return response()->json([ - // 'penilaianTeam' => $penilaianTeam - // ]); - - return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName', 'updateTeamPenilai', 'penilaianTeam')); } /** diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index f19d4c9..0c936a0 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -25,6 +25,7 @@ use Modules\Lpj\Models\SpekKategoritBangunan; use Modules\Lpj\Models\SaranaPelengkap; use Modules\Lpj\Models\ArahMataAngin; use Modules\Lpj\Models\Analisa; +use Modules\Lpj\Models\PerkerasanJalan; use Modules\Lpj\Models\AnalisaFakta; use Modules\Lpj\Models\AnalisaLingkungan; use Modules\Lpj\Models\AnalisaTanahBagunan; @@ -591,6 +592,7 @@ class SurveyorController extends Controller $golMasySekitar = GolonganMasySekitar::all(); $tingkatKeramaian = TingkatKeramaian::all(); $laluLintasLokasi = LaluLintasLokasi::all(); + $perkerasanJalan = PerkerasanJalan::all(); $analisa = Analisa::with('analisaTanahBangunan', 'analisaLingkungan', 'analisaFakta', 'jenisJaminan') @@ -598,6 +600,7 @@ class SurveyorController extends Controller ->where('jenis_jaminan_id', $jaminanId) ->first(); + // return response()->json($permohonan); return view('lpj::surveyor.components.inspeksi', compact( @@ -622,7 +625,8 @@ class SurveyorController extends Controller 'viewUnit', 'golMasySekitar', 'tingkatKeramaian', - 'laluLintasLokasi' + 'laluLintasLokasi', + 'perkerasanJalan' )); } @@ -714,27 +718,27 @@ class SurveyorController extends Controller try { $type = $request->route('type'); - $modelClass = $this->getModelClass($type); + $modelClass = $this->getModelClass($type); + + if (!$modelClass) { + return redirect() + ->route('basicdata.'. $type .'.index') + ->with('error', 'Invalid type specified.'); + } + + if ($type == 'spek-bangunan') { + $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; + + } + + + $data = array_merge($validate, ['status' => true]); + $modelClass::create($data); - if (!$modelClass) { return redirect() - ->route('basicdata.'. $type .'.index') - ->with('error', 'Invalid type specified.'); - } + ->route('basicdata.' . $type .'.index') + ->with('success', 'created successfully'); - if ($type == 'spek-bangunan') { - $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; - - } - - - $data = array_merge($validate, ['status' => true]); - $modelClass::create($data); - - return redirect() - ->route('basicdata.' . $type .'.index') - ->with('success', 'created successfully'); - } catch (Exeception $e) { return response()->json(array('error' => $e->getMessage()), 400); @@ -842,6 +846,7 @@ class SurveyorController extends Controller 'Golongan Masyarakat Sekitar' => GolonganMasySekitar::class, 'Lantai Unit' => Lantai::class, 'View Unit' => ViewUnit::class, + 'Perkerasan jalan' => PerkerasanJalan::class ]; @@ -961,7 +966,8 @@ class SurveyorController extends Controller } - public function validateSubmit(){ + public function validateSubmit() + { } @@ -1039,6 +1045,7 @@ class SurveyorController extends Controller 'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan'], 'lantai-unit' => ['Lantai Unit', 'lantai-unit'], 'view-unit' => ['View Unit', 'view-unit'], + 'perkerasan-jalan' => ['Perkerasan jalan', 'perkerasan-jalan'] ]; } diff --git a/app/Models/PerkerasanJalan.php b/app/Models/PerkerasanJalan.php index 2f59e92..2c7b0b1 100644 --- a/app/Models/PerkerasanJalan.php +++ b/app/Models/PerkerasanJalan.php @@ -10,6 +10,7 @@ class PerkerasanJalan extends Model { use HasFactory; + protected $table = 'perkerasan_jalan'; /** * The attributes that are mass assignable. */ diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index 6bf9a2b..b778da4 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -33,6 +33,11 @@ .dropdowns-content a:hover { background-color: #f1f1f1; } + + .break-words { + word-break: break-word; + white-space: normal; + } @endpush @@ -46,7 +51,6 @@ @php $sortedTeamsActivity = $teamsActivity->sortBy(function ($item) { - return $item->team->penilaianTeam ->filter(function ($penilaianTeam) use ($item) { return $penilaianTeam->user_id == $item->user->id; @@ -64,8 +68,9 @@ style="margin-start: 10px"> - +
- {{ $item->user->name }} + + {{ $item->user->name }} Lorem, ipsum dolor sit amet consectetur @@ -86,13 +91,14 @@ class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">