From a53bbe1ca8a5cae24dc14f8430a0419ea562703c Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 5 Nov 2024 16:04:07 +0700 Subject: [PATCH 01/78] melengkapi feature download pdf di menu SPK dan Registrasi Final --- app/Http/Controllers/RegistrasiFinalController.php | 7 +++++++ app/Http/Controllers/SpkController.php | 8 +++++++- resources/views/registrasifinal/edit.blade.php | 2 +- resources/views/registrasifinal/js/editjs.blade.php | 2 ++ resources/views/spk/documentSPK.blade.php | 9 +-------- resources/views/spk/index.blade.php | 4 ++-- routes/registrasi.php | 3 +++ 7 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index 2561079..f6be10c 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -27,6 +27,7 @@ use Exception; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; + use Illuminate\Support\Facades\Storage; use Modules\Lpj\Models\PenawaranTender; @@ -164,6 +165,12 @@ use Modules\Lpj\Models\PenawaranTender; $penawaranString = convertSlug($penawaran->status); $penawaran->status = $penawaranString; } + + if($datas->dokumen) + { + $pdfSPK_path = Storage::url($datas->dokumen); + $datas->dokumen = $pdfSPK_path; + } $data['status'] = 'success'; $data['regions'] = $regions; diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index ec96a62..8496397 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -4,7 +4,7 @@ namespace Modules\Lpj\Http\Controllers; use Carbon\Carbon; use App\Http\Controllers\Controller; -use Barryvdh\DomPDF\Facade\Pdf; +use Barryvdh\DomPDF\Facade\Pdf; // https://github.com/barryvdh/laravel-dompdf use Exception; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; @@ -235,4 +235,10 @@ use Illuminate\Support\Facades\Auth; return view('lpj::spk.dokumennya', compact('data', 'penawaran')); } + + public function download($id) { + $document = Permohonan::find($id); + + return response()->download(storage_path('app/public/' .$document->dokumen)); + } } diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php index ddaead8..c820c79 100644 --- a/resources/views/registrasifinal/edit.blade.php +++ b/resources/views/registrasifinal/edit.blade.php @@ -69,7 +69,7 @@
- +
diff --git a/resources/views/registrasifinal/js/editjs.blade.php b/resources/views/registrasifinal/js/editjs.blade.php index 9464649..c46596d 100644 --- a/resources/views/registrasifinal/js/editjs.blade.php +++ b/resources/views/registrasifinal/js/editjs.blade.php @@ -43,6 +43,8 @@ $("#textCodePenawaran").text(response.penawaran.code); $("#textStatusPenawaran").text(response.penawaran.status); setRegionList(response.regions,0); + // alert(response.datas.dokumen); + $("#pdfSPK").attr("href", response.datas.dokumen); // success // var message = response.message; diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php index 8bf42c3..a262e02 100644 --- a/resources/views/spk/documentSPK.blade.php +++ b/resources/views/spk/documentSPK.blade.php @@ -1,12 +1,5 @@ - - - - + - -
+
+ +
+ +
diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index 1863f78..80bc38d 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -13,6 +13,7 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_div_catatan").hide(); $("#{{ $route[0] }}_div_region").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); // prepare data setData(); } @@ -94,12 +95,14 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_catatan").val(''); $("#{{ $route[0] }}_div_catatan").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); } else { $("#{{$route[0]}}_jenis_penilaian option[value=0]").prop('selected', true); $("#{{ $route[0] }}_div_jenis_pilihan").hide(); $("#{{ $route[0] }}_div_catatan").show(); + $("#{{ $route[0] }}_div_catatan2").hide(); } }); @@ -115,6 +118,7 @@ let jenis_penilaian = $("#{{$route[0]}}_jenis_penilaian").val(); let region = $("#{{$route[0]}}_region").val(); let catatan = $("#{{$route[0]}}_catatan").val(); + let catatan2 = $("#{{$route[0]}}_catatan2").val(); if(jenis_penilaian==0) jenis_penilaian=''; @@ -129,6 +133,7 @@ input_data.jenis_penilaian= jenis_penilaian; input_data.region= region; input_data.catatan = catatan; + input_data.catatan2 = catatan2; let useURL= '{{ route($route[0].'.update', $id) }}'; $.ajax({ diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index 9ff7791..22cc87f 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -199,7 +199,7 @@
-
+
@@ -208,6 +208,15 @@ +
+

+
+ +
+ +
From c8dcf15e88337fcdf5b671bb93e3b79bc42ff2b2 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 10:09:17 +0700 Subject: [PATCH 03/78] Update pengelolaan file banyak dokumen di DokumenJaminanController Memperbarui logika untuk penanganan beberapa file dokumen jaminan dalam satu entri database. Sebelumnya hanya satu file yang ditangani, kini mendukung array file untuk setiap entri. Penambahan ini memastikan semua file dari entri dokumen jaminan terangkut dan memperbaiki masalah saat file tidak ditemukan. --- .../Controllers/DokumenJaminanController.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 5d838d0..60ff7a8 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -378,12 +378,16 @@ if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) { foreach ($documents as $document) { - $filePath = storage_path('app/public/' . $document->dokumen_jaminan); - if (file_exists($filePath)) { - $zip->addFile($filePath, basename($filePath)); - } else { - // Log or display an error message for missing files - return redirect()->back()->with('error', 'File not found: ' . $filePath); + $files = is_array(json_decode($document->dokumen_jaminan)) ? json_decode($document->dokumen_jaminan) : [$document->dokumen_jaminan]; + + foreach ($files as $file) { + $filePath = storage_path('app/public/' . $file); + if (file_exists($filePath)) { + $zip->addFile($filePath, basename($filePath)); + } else { + // Log or display an error message for missing files + return redirect()->back()->with('error', 'File not found: ' . $filePath); + } } } $zip->close(); From 33dcc50e182c1c483656a0f461edacaf1fbd5199 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 6 Nov 2024 10:23:15 +0700 Subject: [PATCH 04/78] Perbaikan Feature Registrasi Final, penambahan dokumen SPK PDF --- app/Http/Controllers/RegistrasiFinalController.php | 7 +++++++ resources/views/registrasifinal/edit.blade.php | 2 +- resources/views/registrasifinal/show.blade.php | 3 +-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index f6be10c..deb2781 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -136,6 +136,13 @@ use Modules\Lpj\Models\PenawaranTender; 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   '; + } + return view('lpj::registrasifinal.show', compact('id','permohonan')); } diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php index c820c79..a2e15e7 100644 --- a/resources/views/registrasifinal/edit.blade.php +++ b/resources/views/registrasifinal/edit.blade.php @@ -69,7 +69,7 @@
diff --git a/resources/views/registrasifinal/show.blade.php b/resources/views/registrasifinal/show.blade.php index 7592d0d..b9471ad 100644 --- a/resources/views/registrasifinal/show.blade.php +++ b/resources/views/registrasifinal/show.blade.php @@ -45,10 +45,9 @@ Tujan Permohonan: - {{ $permohonan->tujuanPenilaian->name }} + {{ $permohonan->tujuanPenilaian->name }} {!! $permohonan->dokumen !!}
-
From bfacdbe164d014c16a15e2c78511622582584851 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 5 Nov 2024 16:04:07 +0700 Subject: [PATCH 05/78] melengkapi feature download pdf di menu SPK dan Registrasi Final --- app/Http/Controllers/RegistrasiFinalController.php | 7 +++++++ app/Http/Controllers/SpkController.php | 8 +++++++- resources/views/registrasifinal/edit.blade.php | 2 +- resources/views/registrasifinal/js/editjs.blade.php | 2 ++ resources/views/spk/documentSPK.blade.php | 9 +-------- resources/views/spk/index.blade.php | 4 ++-- routes/registrasi.php | 3 +++ 7 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index 2561079..f6be10c 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -27,6 +27,7 @@ use Exception; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; + use Illuminate\Support\Facades\Storage; use Modules\Lpj\Models\PenawaranTender; @@ -164,6 +165,12 @@ use Modules\Lpj\Models\PenawaranTender; $penawaranString = convertSlug($penawaran->status); $penawaran->status = $penawaranString; } + + if($datas->dokumen) + { + $pdfSPK_path = Storage::url($datas->dokumen); + $datas->dokumen = $pdfSPK_path; + } $data['status'] = 'success'; $data['regions'] = $regions; diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index ec96a62..8496397 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -4,7 +4,7 @@ namespace Modules\Lpj\Http\Controllers; use Carbon\Carbon; use App\Http\Controllers\Controller; -use Barryvdh\DomPDF\Facade\Pdf; +use Barryvdh\DomPDF\Facade\Pdf; // https://github.com/barryvdh/laravel-dompdf use Exception; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; @@ -235,4 +235,10 @@ use Illuminate\Support\Facades\Auth; return view('lpj::spk.dokumennya', compact('data', 'penawaran')); } + + public function download($id) { + $document = Permohonan::find($id); + + return response()->download(storage_path('app/public/' .$document->dokumen)); + } } diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php index ddaead8..c820c79 100644 --- a/resources/views/registrasifinal/edit.blade.php +++ b/resources/views/registrasifinal/edit.blade.php @@ -69,7 +69,7 @@
diff --git a/resources/views/registrasifinal/js/editjs.blade.php b/resources/views/registrasifinal/js/editjs.blade.php index 9464649..c46596d 100644 --- a/resources/views/registrasifinal/js/editjs.blade.php +++ b/resources/views/registrasifinal/js/editjs.blade.php @@ -43,6 +43,8 @@ $("#textCodePenawaran").text(response.penawaran.code); $("#textStatusPenawaran").text(response.penawaran.status); setRegionList(response.regions,0); + // alert(response.datas.dokumen); + $("#pdfSPK").attr("href", response.datas.dokumen); // success // var message = response.message; diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php index 8bf42c3..a262e02 100644 --- a/resources/views/spk/documentSPK.blade.php +++ b/resources/views/spk/documentSPK.blade.php @@ -1,12 +1,5 @@ - - - - + - -
+
+ +
+ +
diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index 1863f78..80bc38d 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -13,6 +13,7 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_div_catatan").hide(); $("#{{ $route[0] }}_div_region").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); // prepare data setData(); } @@ -94,12 +95,14 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_catatan").val(''); $("#{{ $route[0] }}_div_catatan").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); } else { $("#{{$route[0]}}_jenis_penilaian option[value=0]").prop('selected', true); $("#{{ $route[0] }}_div_jenis_pilihan").hide(); $("#{{ $route[0] }}_div_catatan").show(); + $("#{{ $route[0] }}_div_catatan2").hide(); } }); @@ -115,6 +118,7 @@ let jenis_penilaian = $("#{{$route[0]}}_jenis_penilaian").val(); let region = $("#{{$route[0]}}_region").val(); let catatan = $("#{{$route[0]}}_catatan").val(); + let catatan2 = $("#{{$route[0]}}_catatan2").val(); if(jenis_penilaian==0) jenis_penilaian=''; @@ -129,6 +133,7 @@ input_data.jenis_penilaian= jenis_penilaian; input_data.region= region; input_data.catatan = catatan; + input_data.catatan2 = catatan2; let useURL= '{{ route($route[0].'.update', $id) }}'; $.ajax({ diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index 9ff7791..22cc87f 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -199,7 +199,7 @@
-
+
@@ -208,6 +208,15 @@ +
+

+
+ +
+ +
diff --git a/resources/views/registrasifinal/show.blade.php b/resources/views/registrasifinal/show.blade.php index 7592d0d..b9471ad 100644 --- a/resources/views/registrasifinal/show.blade.php +++ b/resources/views/registrasifinal/show.blade.php @@ -45,10 +45,9 @@ Tujan Permohonan: - {{ $permohonan->tujuanPenilaian->name }} + {{ $permohonan->tujuanPenilaian->name }} {!! $permohonan->dokumen !!}
-
From 315a52a78db08170d268472af2fdcc922adfc21f Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 10:58:03 +0700 Subject: [PATCH 08/78] Perbaiki referensi ID permohonan dan relasi di Registrasi Final Mengubah referensi ID dari `data.id` ke `data.permohonan.id` pada tombol aksi di view registrasifinal.index.blade.php. Juga, menambahkan relasi `permohonan` pada query dan menghapus beberapa spasi kosong yang tidak perlu di RegistrasiFinalController.php untuk meningkatkan keterbacaan kode. --- .../Controllers/RegistrasiFinalController.php | 48 +++++++++---------- .../views/registrasifinal/index.blade.php | 4 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index deb2781..4ccb0e7 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -28,7 +28,7 @@ use Exception; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; - + use Modules\Lpj\Models\PenawaranTender; class RegistrasiFinalController extends Controller @@ -51,15 +51,15 @@ use Modules\Lpj\Models\PenawaranTender; ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') ->where('penawaran.status','=','spk') - ->withCount('penawarandetails'); - + ->withCount('penawarandetails'); + // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); - + $q->orWhere('status', 'LIKE', '%' . $search . '%'); }); } @@ -85,10 +85,10 @@ use Modules\Lpj\Models\PenawaranTender; // Get the filtered count of records $filteredRecords = $query->count(); - + // Get the data for the current page //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - $data = $query->get(); + $data = $query->with(['permohonan'])->get(); // dd($data); $i=0; foreach($data as $obj) @@ -97,18 +97,18 @@ use Modules\Lpj\Models\PenawaranTender; { $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); } - + if($obj->biaya_kjpp_sebelumnya) { $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); - + } // date_range if($obj->start_date && $obj->end_date) { $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y'); - + } $i++; @@ -141,7 +141,7 @@ use Modules\Lpj\Models\PenawaranTender; $pdfSPK_path = Storage::url($permohonan->dokumen); $permohonan->dokumen = $pdfSPK_path; $permohonan->dokumen = '| Dokumen SPK.pdf   '; - } + } return view('lpj::registrasifinal.show', compact('id','permohonan')); } @@ -159,7 +159,7 @@ use Modules\Lpj\Models\PenawaranTender; if (request()->ajax()) { $id = $request->id; $datas = Permohonan::find($id); - + if ($datas) { $penawaran=null; $regions=null; @@ -171,13 +171,13 @@ use Modules\Lpj\Models\PenawaranTender; { $penawaranString = convertSlug($penawaran->status); $penawaran->status = $penawaranString; - } - + } + if($datas->dokumen) { $pdfSPK_path = Storage::url($datas->dokumen); $datas->dokumen = $pdfSPK_path; - } + } $data['status'] = 'success'; $data['regions'] = $regions; @@ -203,14 +203,14 @@ use Modules\Lpj\Models\PenawaranTender; $data = array(); $dataPermohonan = array(); $dataPenawaran = array(); - + if (request()->ajax()) { $validator = RegistrasiFinalController::rulesEditnya($request, $id); - + if ($validator['fails']) { $data['message'] = $validator['errors']; $data['status'] = 'error'; - } + } else { DB::beginTransaction(); @@ -224,18 +224,18 @@ use Modules\Lpj\Models\PenawaranTender; 'keterangan' => $request->catatan, 'authorized_at' => now(), 'authorized_status' =>1, - 'authorized_by' => Auth::id() + 'authorized_by' => Auth::id() ]; $dataPenawaran = ['status' => 'registrasi-final']; - + $permohonan = Permohonan::find($id); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); - + $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); + $permohonan->update($dataPermohonan); $penawaran->update($dataPenawaran); - // + // DB::commit(); $data['status'] = 'success'; @@ -246,7 +246,7 @@ use Modules\Lpj\Models\PenawaranTender; $data['message']['message_try_catch'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' failed.'); } } - + } else { $data['status'] = 'error'; $data['message']['message_ajax'] = array("no ajax request"); @@ -259,7 +259,7 @@ use Modules\Lpj\Models\PenawaranTender; public function rulesEditnya($request, $id) { $validate_catatan=''; - + $validateIt = [ // 'name' diambil dari definisi parameter yang di kirim pada POST Data 'region' => 'required', diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index 4e50882..b25be3f 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -133,10 +133,10 @@ title: 'Status', render: (item, data) => { return ``; From a41d8e0edb720593568c8888dec95145cc49b6ac Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 6 Nov 2024 11:13:58 +0700 Subject: [PATCH 09/78] Perbaikan Feature Registrasi Final, Konsistensi id => penawaran.id --- .../Controllers/RegistrasiFinalController.php | 26 ++++++++++++------- .../views/registrasifinal/edit.blade.php | 3 ++- .../views/registrasifinal/js/editjs.blade.php | 4 ++- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index deb2781..033a044 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -47,6 +47,7 @@ use Modules\Lpj\Models\PenawaranTender; } // Retrieve data from the database + // data.id => penawaran.id $query =PenawaranTender::query() ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') @@ -135,7 +136,10 @@ use Modules\Lpj\Models\PenawaranTender; public function show($id) { - $permohonan = Permohonan::find($id); + // $id => penawaran.id + $penawaran = PenawaranTender::find($id); + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); + if($permohonan->dokumen) { $pdfSPK_path = Storage::url($permohonan->dokumen); @@ -148,6 +152,7 @@ use Modules\Lpj\Models\PenawaranTender; public function edit($id) { + // $id => penawaran.id return view('lpj::registrasifinal.edit', compact('id')); } @@ -155,16 +160,17 @@ use Modules\Lpj\Models\PenawaranTender; { $data = array(); $datas = array(); + $penawaran=null; + $regions=null; if (request()->ajax()) { + // $id => penawaran.id $id = $request->id; - $datas = Permohonan::find($id); - + $penawaran = PenawaranTender::find($id); + $datas = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); if ($datas) { - $penawaran=null; - $regions=null; + $regions=Regions::pluck('name', 'id'); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$datas->nomor_registrasi)->first(); $penawaranString = ""; if($penawaran->status) @@ -229,10 +235,10 @@ use Modules\Lpj\Models\PenawaranTender; $dataPenawaran = ['status' => 'registrasi-final']; - - $permohonan = Permohonan::find($id); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); - + // $id => penawaran.id + $penawaran = PenawaranTender::find($id); + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); + $permohonan->update($dataPermohonan); $penawaran->update($dataPenawaran); // 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 4f8afe4ea720a59210ac8ee780f1c8cc12c648be Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 6 Nov 2024 11:28:21 +0700 Subject: [PATCH 10/78] Perbaikan parameter kembali ke data.id --- resources/views/registrasifinal/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index b25be3f..4e50882 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -133,10 +133,10 @@ title: 'Status', render: (item, data) => { return ``; From f135cf0a1aa37f9114ad8183b3b89abb29c112de Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 11:48:01 +0700 Subject: [PATCH 11/78] Perbaiki format kode dan tambahkan relasi pada pengecekan penawaran Menghilangkan whitespace yang tidak perlu di dalam file SpkController.php untuk meningkatkan kerapian kode. Juga menambahkan eager loading relasi 'permohonan' saat mengambil data penawaran untuk meningkatkan efisiensi query SQL. Menyesuaikan URL download di file view untuk memastikan ID yang benar digunakan. --- app/Http/Controllers/SpkController.php | 64 +++++++++++++------------- resources/views/spk/index.blade.php | 4 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index 8496397..77389f0 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -39,14 +39,14 @@ use Illuminate\Support\Facades\Auth; ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') ->where('permohonan.status','=','spk') ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name', 'permohonan.dokumen as dokumenSPK'); - + // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); - + $q->orWhere('status', 'LIKE', '%' . $search . '%'); }); } @@ -72,12 +72,12 @@ use Illuminate\Support\Facades\Auth; // Get the filtered count of records $filteredRecords = $query->count(); - + // Get the data for the current page //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - - $data = $query->get(); - + + $data = $query->with(['permohonan'])->get(); + $i=0; foreach($data as $obj) { @@ -85,18 +85,18 @@ use Illuminate\Support\Facades\Auth; { $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); } - + if($obj->biaya_kjpp_sebelumnya) { $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); - + } // date_range if($obj->start_date && $obj->end_date) { $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y'); - + } $i++; @@ -137,25 +137,25 @@ use Illuminate\Support\Facades\Auth; public function edit($id) { $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') - ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') - ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') ->where('detail_penawaran.status','=',1) ->where('penawaran.id','=', $id) - ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', 'kjpp.name as kjpp_name', 'kjpp.address as kjpp_address', 'jenis_laporan.name as jenis_laporan_name' )->first(); - + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') - ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', 'dokumen_jaminan.address as dokumen_jaminan_address'); - + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); - + return view('lpj::spk.edit', compact('data', 'penawaran')); } @@ -165,30 +165,30 @@ use Illuminate\Support\Facades\Auth; $data1 = array(); $dataPermohonan = array(); // data - + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') - ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') - ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') ->where('detail_penawaran.status','=',1) ->where('penawaran.id','=', $id) - ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', 'kjpp.name as kjpp_name', 'kjpp.address as kjpp_address', 'jenis_laporan.name as jenis_laporan_name' )->first(); - + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name'); $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); - + $folderPath = 'uploads/spk/'; $extension = '.pdf'; $newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension; $newFileNameWithPath = $folderPath . $newFileName; - + // update table permohonan $dataPermohonan=['dokumen' => $newFileNameWithPath]; $data->update($dataPermohonan); @@ -210,35 +210,35 @@ use Illuminate\Support\Facades\Auth; } public function dokumennya() - { + { // return view('lpj::spk.dokumennya'); $id="3"; $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') - ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') - ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') ->where('detail_penawaran.status','=',1) ->where('penawaran.id','=', $id) - ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', 'kjpp.name as kjpp_name', 'kjpp.address as kjpp_address', 'jenis_laporan.name as jenis_laporan_name' )->first(); - + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') - ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', 'dokumen_jaminan.address as dokumen_jaminan_address'); - + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); - + return view('lpj::spk.dokumennya', compact('data', 'penawaran')); } public function download($id) { $document = Permohonan::find($id); - + return response()->download(storage_path('app/public/' .$document->dokumen)); } } diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index 7739980..0d70282 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -150,7 +150,7 @@ else { spkShow =`
- + `; spkCreate=` @@ -158,7 +158,7 @@ `; } - return `
` + return `
` +spkShow+spkCreate+ `
`; }, From 019e12535e27dbfeba959f4dff430a8d8eff8e0c Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 11:52:23 +0700 Subject: [PATCH 12/78] Enhance table styling in SPK edit view Tambahkan padding pada bagian yang dapat di-scroll dan perbaharui kelas pada tabel untuk meningkatkan tampilan dan keterbacaan. Perubahan ini akan memberikan margin yang lebih baik dan membuat tabel lebih responsif dalam tampilan mobile. --- resources/views/spk/edit.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index 03edfae..80b780a 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -15,7 +15,7 @@

Buat SPK

- +
@@ -25,9 +25,9 @@
-
+
-
\ No newline at end of file +
diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index 80b780a..30563d7 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -104,7 +104,7 @@ Jangka Waktu : - + {{ formatTanggalIndonesia($penawaran->start_date) - formatTanggalIndonesia($penawaran->end_date) }} i diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index eb06f5c..1f6bb0c 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -78,12 +78,6 @@ @push('scripts') +@endpush From a326f4c4e572b53851999899fb0c45eee128cc13 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Thu, 7 Nov 2024 15:21:31 +0700 Subject: [PATCH 47/78] Menyelesaikan fitur Basic Data KJPP untuk menambahkan lebih dari satu email kantor, pic reviewer, pic admin, pic marketing --- app/Http/Controllers/KJPPController.php | 235 +++++++++++++++++- app/Http/Requests/KJPPRequest.php | 120 +-------- app/Models/KJPP.php | 33 +-- .../2024_09_18_084905_create_kjpp_table.php | 7 + .../2024_11_05_031735_update_kjpp_table.php | 40 --- .../seeders/JenisLegalitasJaminanSeeder.php | 10 + database/seeders/LpjDatabaseSeeder.php | 54 ++-- resources/views/kjpp/create.blade.php | 152 ++++++----- resources/views/kjpp/scripts/index.blade.php | 13 + resources/views/kjpp/show.blade.php | 99 ++++++-- 10 files changed, 450 insertions(+), 313 deletions(-) delete mode 100644 database/migrations/2024_11_05_031735_update_kjpp_table.php diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index 4d46f45..e043735 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -5,8 +5,6 @@ namespace Modules\Lpj\Http\Controllers; use Throwable; use Illuminate\Http\Request; use Modules\Lpj\Models\KJPP; -use Illuminate\Http\Response; -use Modules\Lpj\Models\Branch; use Modules\Location\Models\City; use Modules\Lpj\Models\IjinUsaha; use Modules\Lpj\Exports\KJPPExport; @@ -57,9 +55,80 @@ class KJPPController extends Controller { $validated = $request->validated(); - dd($validated); - if ($validated) { + $detailEmailKantor = []; + $detailNamaPicReviewer = []; + $detailNomorHpPicReviewer = []; + $detailNamaPicAdmin = []; + $detailNomorHpPicAdmin = []; + $detailNamaPicMarketing = []; + $detailNomorHpPicMarketing = []; + + $emailKantor = $request->input('detail_email_kantor.email_kantor', []); + $namaPicReviewer = $request->input('detail_nama_pic_reviewer.nama_pic_reviewer', []); + $nomorHpPicReviewer = $request->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []); + $namaPicAdmin = $request->input('detail_nama_pic_admin.nama_pic_admin', []); + $nomorHpPicAdmin = $request->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []); + $namaPicMarketing = $request->input('detail_nama_pic_marketing.nama_pic_marketing', []); + $nomorHpPicMarketing = $request->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []); + + foreach ($emailKantor as $value) { + $detailEmailKantor[] = [ + 'email_kantor' => $value + ]; + } + // Encode to JSON and store + $detailEmailKantorJson = json_encode($detailEmailKantor); + + // Process detail_nama_pic_reviewer + foreach ($namaPicReviewer as $value) { + $detailNamaPicReviewer[] = [ + 'nama_pic_reviewer' => $value + ]; + } + $detailNamaPicReviewerJson = json_encode($detailNamaPicReviewer); + + // Process detail_nomor_hp_pic_reviewer + foreach ($nomorHpPicReviewer as $value) { + $detailNomorHpPicReviewer[] = [ + 'nomor_hp_pic_reviewer' => $value + ]; + } + $detailNomorHpPicReviewerJson = json_encode($detailNomorHpPicReviewer); + + // Process detail_nama_pic_admin + foreach ($namaPicAdmin as $value) { + $detailNamaPicAdmin[] = [ + 'nama_pic_admin' => $value + ]; + } + $detailNamaPicAdminJson = json_encode($detailNamaPicAdmin); + + // Process detail_nomor_hp_pic_admin + foreach ($nomorHpPicAdmin as $value) { + $detailNomorHpPicAdmin[] = [ + 'nomor_hp_pic_admin' => $value + ]; + } + $detailNomorHpPicAdminJson = json_encode($detailNomorHpPicAdmin); + + // Process detail_nama_pic_marketing + foreach ($namaPicMarketing as $value) { + $detailNamaPicMarketing[] = [ + 'nama_pic_marketing' => $value + ]; + } + $detailNamaPicMarketingJson = json_encode($detailNamaPicMarketing); + + // Process detail_nomor_hp_pic_marketing + foreach ($nomorHpPicMarketing as $value) { + $detailNomorHpPicMarketing[] = [ + 'nomor_hp_pic_marketing' => $value + ]; + } + $detailNomorHpPicMarketingJson = json_encode($detailNomorHpPicMarketing); + + $file = $request->file('attachment'); $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf'; @@ -71,9 +140,20 @@ class KJPPController extends Controller Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename); } + $validated['detail_email_kantor'] = $detailEmailKantorJson; + $validated['detail_nama_pic_reviewer'] = $detailNamaPicReviewerJson; + $validated['detail_nomor_hp_pic_reviewer'] = $detailNomorHpPicReviewerJson; + $validated['detail_nama_pic_admin'] = $detailNamaPicAdminJson; + $validated['detail_nomor_hp_pic_admin'] = $detailNomorHpPicAdminJson; + $validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson; + $validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson; + $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); + $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); // Tambahkan nama file ke data yang divalidasi $validated['attachment'] = $filename; + // dd($validated); + // Simpan data ke database KJPP::create($validated); @@ -100,8 +180,36 @@ class KJPPController extends Controller $cities = City::where('code', $kjpp->city_code)->get(); $districts = District::where('code', $kjpp->district_code)->get(); $villages = Village::where('code', $kjpp->village_code)->get(); - // dd($branches); - return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages')); + $detailEmailKantor = json_decode($kjpp->detail_email_kantor); + $detailNamaPicReviewer = json_decode($kjpp->detail_nama_pic_reviewer); + $detailNomorHpPicReviewer = json_decode($kjpp->detail_nomor_hp_pic_reviewer); + $detailNamaPicAdmin = json_decode($kjpp->detail_nama_pic_admin); + $detailNomorHpPicAdmin = json_decode($kjpp->detail_nomor_hp_pic_admin); + $detailNamaPicMarketing = json_decode($kjpp->detail_nama_pic_marketing); + $detailNomorHpPicMarketing = json_decode($kjpp->detail_nomor_hp_pic_marketing); + + $detailJoinPicReviewer = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pic_reviewer' => $nama->nama_pic_reviewer, + 'nomor_hp_pic_reviewer' => $nomor->nomor_hp_pic_reviewer + ]; + }, $detailNamaPicReviewer, $detailNomorHpPicReviewer)); + + $detailJoinPicAdmin = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pic_admin' => $nama->nama_pic_admin, + 'nomor_hp_pic_admin' => $nomor->nomor_hp_pic_admin + ]; + }, $detailNamaPicAdmin, $detailNomorHpPicAdmin)); + + $detailJoinPicMarketing = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pic_marketing' => $nama->nama_pic_marketing, + 'nomor_hp_pic_marketing' => $nomor->nomor_hp_pic_marketing + ]; + }, $detailNamaPicMarketing, $detailNomorHpPicMarketing)); + + return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages', 'detailEmailKantor', 'detailJoinPicReviewer', 'detailJoinPicAdmin', 'detailJoinPicMarketing')); } /** @@ -116,8 +224,36 @@ class KJPPController extends Controller $cities = City::where('province_code', $kjpp->province_code)->get(); $districts = District::where('city_code', $kjpp->city_code)->get(); $villages = Village::where('district_code', $kjpp->district_code)->get(); + $detailEmailKantor = json_decode($kjpp->detail_email_kantor); + $detailNamaPicReviewer = json_decode($kjpp->detail_nama_pic_reviewer); + $detailNomorHpPicReviewer = json_decode($kjpp->detail_nomor_hp_pic_reviewer); + $detailNamaPicAdmin = json_decode($kjpp->detail_nama_pic_admin); + $detailNomorHpPicAdmin = json_decode($kjpp->detail_nomor_hp_pic_admin); + $detailNamaPicMarketing = json_decode($kjpp->detail_nama_pic_marketing); + $detailNomorHpPicMarketing = json_decode($kjpp->detail_nomor_hp_pic_marketing); - return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages')); + $detailJoinPicReviewer = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pic_reviewer' => $nama->nama_pic_reviewer, + 'nomor_hp_pic_reviewer' => $nomor->nomor_hp_pic_reviewer + ]; + }, $detailNamaPicReviewer, $detailNomorHpPicReviewer)); + + $detailJoinPicAdmin = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pic_admin' => $nama->nama_pic_admin, + 'nomor_hp_pic_admin' => $nomor->nomor_hp_pic_admin + ]; + }, $detailNamaPicAdmin, $detailNomorHpPicAdmin)); + + $detailJoinPicMarketing = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pic_marketing' => $nama->nama_pic_marketing, + 'nomor_hp_pic_marketing' => $nomor->nomor_hp_pic_marketing + ]; + }, $detailNamaPicMarketing, $detailNomorHpPicMarketing)); + + return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages', 'detailJoinPicReviewer', 'detailJoinPicAdmin', 'detailJoinPicMarketing', 'detailEmailKantor')); } /** @@ -127,7 +263,82 @@ class KJPPController extends Controller { $validated = $request->validated(); + // dd($validated); + if ($validated) { + $detailEmailKantor = []; + $detailNamaPicReviewer = []; + $detailNomorHpPicReviewer = []; + $detailNamaPicAdmin = []; + $detailNomorHpPicAdmin = []; + $detailNamaPicMarketing = []; + $detailNomorHpPicMarketing = []; + + $emailKantor = $request->input('detail_email_kantor.email_kantor', []); + $namaPicReviewer = $request->input('detail_nama_pic_reviewer.nama_pic_reviewer', []); + $nomorHpPicReviewer = $request->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []); + $namaPicAdmin = $request->input('detail_nama_pic_admin.nama_pic_admin', []); + $nomorHpPicAdmin = $request->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []); + $namaPicMarketing = $request->input('detail_nama_pic_marketing.nama_pic_marketing', []); + $nomorHpPicMarketing = $request->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []); + + foreach ($emailKantor as $value) { + $detailEmailKantor[] = [ + 'email_kantor' => $value + ]; + } + // Encode to JSON and store + $detailEmailKantorJson = json_encode($detailEmailKantor); + + // Process detail_nama_pic_reviewer + foreach ($namaPicReviewer as $value) { + $detailNamaPicReviewer[] = [ + 'nama_pic_reviewer' => $value + ]; + } + $detailNamaPicReviewerJson = json_encode($detailNamaPicReviewer); + + // Process detail_nomor_hp_pic_reviewer + foreach ($nomorHpPicReviewer as $value) { + $detailNomorHpPicReviewer[] = [ + 'nomor_hp_pic_reviewer' => $value + ]; + } + $detailNomorHpPicReviewerJson = json_encode($detailNomorHpPicReviewer); + + // Process detail_nama_pic_admin + foreach ($namaPicAdmin as $value) { + $detailNamaPicAdmin[] = [ + 'nama_pic_admin' => $value + ]; + } + $detailNamaPicAdminJson = json_encode($detailNamaPicAdmin); + + // Process detail_nomor_hp_pic_admin + foreach ($nomorHpPicAdmin as $value) { + $detailNomorHpPicAdmin[] = [ + 'nomor_hp_pic_admin' => $value + ]; + } + $detailNomorHpPicAdminJson = json_encode($detailNomorHpPicAdmin); + + // Process detail_nama_pic_marketing + foreach ($namaPicMarketing as $value) { + $detailNamaPicMarketing[] = [ + 'nama_pic_marketing' => $value + ]; + } + $detailNamaPicMarketingJson = json_encode($detailNamaPicMarketing); + + // Process detail_nomor_hp_pic_marketing + foreach ($nomorHpPicMarketing as $value) { + $detailNomorHpPicMarketing[] = [ + 'nomor_hp_pic_marketing' => $value + ]; + } + $detailNomorHpPicMarketingJson = json_encode($detailNomorHpPicMarketing); + + $file = $request->file('attachment'); $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : null; @@ -147,6 +358,16 @@ class KJPPController extends Controller $validated['attachment'] = $kjpp->attachment ?? 'default.pdf'; } + $validated['detail_email_kantor'] = $detailEmailKantorJson; + $validated['detail_nama_pic_reviewer'] = $detailNamaPicReviewerJson; + $validated['detail_nomor_hp_pic_reviewer'] = $detailNomorHpPicReviewerJson; + $validated['detail_nama_pic_admin'] = $detailNamaPicAdminJson; + $validated['detail_nomor_hp_pic_admin'] = $detailNomorHpPicAdminJson; + $validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson; + $validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson; + $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); + $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); + // Perbarui data di database KJPP::where('id', $id)->update($validated); diff --git a/app/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php index 653366d..6a693a8 100644 --- a/app/Http/Requests/KJPPRequest.php +++ b/app/Http/Requests/KJPPRequest.php @@ -23,24 +23,24 @@ class KJPPRequest extends FormRequest 'postal_code' => 'nullable|numeric', 'nomor_telepon_kantor' => 'nullable|numeric|digits_between:8,15', 'email_kantor' => 'required|email', - 'detail_email_kantor' => 'nullable|email', + 'detail_email_kantor' => 'nullable', 'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255', 'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15', 'nama_pic_reviewer' => 'nullable|string|not_regex:/^\d+$/|max:255', - // 'detail_nama_pic_reviewer' => 'nullable|string|not_regex:/^\d+$/|max:255', + 'detail_nama_pic_reviewer' => 'nullable', 'nomor_hp_pic_reviewer' => 'nullable|numeric|digits_between:10,15', - // 'detail_nomor_hp_pic_reviewer' => 'nullable|numeric|digits_between:10,15', + 'detail_nomor_hp_pic_reviewer' => 'nullable', 'nama_pic_admin' => 'nullable|string|not_regex:/^\d+$/|max:255', - // 'detail_nama_pic_admin' => 'nullable|string|not_regex:/^\d+$/|max:255', + 'detail_nama_pic_admin' => 'nullable', 'nomor_hp_pic_admin' => 'nullable|numeric|digits_between:10,15', - // 'detail_nomor_hp_pic_admin' => 'nullable|numeric|digits_between:10,15', + 'detail_nomor_hp_pic_admin' => 'nullable', 'nama_pic_marketing' => 'nullable|string|not_regex:/^\d+$/|max:255', - // 'detail_nama_pic_marketing' => 'nullable|string|not_regex:/^\d+$/|max:255', + 'detail_nama_pic_marketing' => 'nullable', 'nomor_hp_pic_marketing' => 'nullable|numeric|digits_between:10,15', - // 'detail_nomor_hp_pic_marketing' => 'nullable|numeric|digits_between:10,15', - 'ijin_usaha_id' => 'nullable|array', + 'detail_nomor_hp_pic_marketing' => 'nullable', + 'ijin_usaha_id' => 'required|array', 'ijin_usaha_id.*' => 'exists:ijin_usaha,code', - 'jenis_aset_id' => 'nullable|array', + 'jenis_aset_id' => 'required|array', 'jenis_aset_id.*' => 'exists:jenis_jaminan,code', 'attachment' => 'nullable|mimes:pdf|max:1024' ]; @@ -81,126 +81,24 @@ class KJPPRequest extends FormRequest 'nomor_telepon_kantor.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!', 'email_kantor.required' => 'Email Kantor Wajib diisi!', 'email_kantor.email' => 'Email Kantor tidak valid!', - // 'detail_email_kantor.email' => 'Email Kantor tidak valid!', 'nama_pimpinan.required' => 'Nama Pimpinan Wajib diisi!', 'nama_pimpinan.not_regex' => 'Nama Pimpinan harus berupa huruf!', 'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!', 'nomor_hp_pimpinan.numeric' => 'Nomor HP Pimpinan harus berupa angka!', 'nomor_hp_pimpinan.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!', 'nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!', - // 'detail_nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!', 'nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!', - // 'detail_nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!', 'nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!', - // 'detail_nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!', 'nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!', - // 'detail_nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!', 'nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!', - // 'detail_nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!', 'nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!', - // 'detail_nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!', 'nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!', - // 'detail_nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!', 'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!', - // 'detail_nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!', 'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', - // 'detail_nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', 'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!', - 'ijin_usaha_id.min' => 'Ijin Usaha Wajib diisi minimal satu atau lebih!', 'jenis_aset_id.required' => 'Jenis Aset Wajib diisi!', - 'jenis_aset_id.min' => 'Jenis Aset Wajib diisi minimal satu atau lebih!', 'attachment.mimes' => 'Attachment harus berformat pdf!', 'attachment.max' => 'Attachment berukuran maksimum 1 MB!', ]; } - - public function prepareForValidation() - { - $detailEmailKantor = []; - $detailNamaPicReviewer = []; - $detailNomorHpPicReviewer = []; - $detailNamaPicAdmin = []; - $detailNomorHpPicAdmin = []; - $detailNamaPicMarketing = []; - $detailNomorHpPicMarketing = []; - - // Get input data with safe default values - $emailKantor = $this->input('detail_email_kantor.email_kantor', []); - $namaPicReviewer = $this->input('detail_nama_pic_reviewer.nama_pic_reviewer', []); - $nomorHpPicReviewer = $this->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []); - $namaPicAdmin = $this->input('detail_nama_pic_admin.nama_pic_admin', []); - $nomorHpPicAdmin = $this->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []); - $namaPicMarketing = $this->input('detail_nama_pic_marketing.nama_pic_marketing', []); - $nomorHpPicMarketing = $this->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []); - - foreach ($emailKantor as $value) { - $detailEmailKantor[] = [ - 'email_kantor' => $value - ]; - } - - $this->merge([ - 'detail_email_kantor' => json_encode($detailEmailKantor), - ]); - - foreach ($namaPicReviewer as $value) { - $detailNamaPicReviewer[] = [ - 'nama_pic_reviewer' => $value - ]; - } - - $this->merge([ - 'detail_nama_pic_reviewer' => json_encode($detailNamaPicReviewer), - ]); - - foreach ($nomorHpPicReviewer as $value) { - $detailNomorHpPicReviewer[] = [ - 'nomor_hp_pic_reviewer' => $value - ]; - } - - $this->merge([ - 'detail_nomor_hp_pic_reviewer' => json_encode($detailNomorHpPicReviewer), - ]); - - foreach ($namaPicAdmin as $value) { - $detailNamaPicAdmin[] = [ - 'nama_pic_admin' => $value - ]; - } - - $this->merge([ - 'detail_nama_pic_admin' => json_encode($detailNamaPicAdmin), - ]); - - foreach ($nomorHpPicAdmin as $value) { - $detailNomorHpPicAdmin[] = [ - 'nomor_hp_pic_admin' => $value - ]; - } - - $this->merge([ - 'detail_nomor_hp_pic_admin' => json_encode($detailNomorHpPicAdmin), - ]); - - foreach ($namaPicMarketing as $value) { - $detailNamaPicMarketing[] = [ - 'nama_pic_marketing' => $value - ]; - } - - $this->merge([ - 'detail_nama_pic_marketing' => json_encode($detailNamaPicMarketing), - ]); - - foreach ($nomorHpPicMarketing as $value) { - $detailNomorHpPicMarketing[] = [ - 'nomor_hp_pic_marketing' => $value - ]; - } - - $this->merge([ - 'detail_nomor_hp_pic_marketing' => json_encode($detailNomorHpPicMarketing), - ]); - } } diff --git a/app/Models/KJPP.php b/app/Models/KJPP.php index 9072e12..b9f2e34 100644 --- a/app/Models/KJPP.php +++ b/app/Models/KJPP.php @@ -18,36 +18,5 @@ class KJPP extends Model /** * The attributes that are mass assignable. */ - protected $fillable = [ - 'code', - 'name', - 'jenis_kantor', - 'nomor_ijin_usaha', - 'province_code', - 'city_code', - 'district_code', - 'village_code', - 'address', - 'postal_code', - 'nomor_telepon_kantor', - 'email_kantor', - 'detail_email_kantor', - 'nama_pimpinan', - 'nomor_hp_pimpinan', - 'nama_pic_reviewer', - 'detail_nama_pic_reviewer', - 'nomor_hp_pic_reviewer', - 'detail_nomor_hp_pic_reviewer', - 'nama_pic_admin', - 'detail_nama_pic_admin', - 'nomor_hp_pic_admin', - 'detail_nomor_hp_pic_admin', - 'nama_pic_marketing', - 'detail_nama_pic_marketing', - 'nomor_hp_pic_marketing', - 'detail_nomor_hp_pic_marketing', - 'ijin_usaha_id', - 'jenis_aset_id', - 'attachment', - ]; + protected $guarded = ['id']; } diff --git a/database/migrations/2024_09_18_084905_create_kjpp_table.php b/database/migrations/2024_09_18_084905_create_kjpp_table.php index 8429fcc..0539cf6 100644 --- a/database/migrations/2024_09_18_084905_create_kjpp_table.php +++ b/database/migrations/2024_09_18_084905_create_kjpp_table.php @@ -25,14 +25,21 @@ return new class extends Migration $table->string('postal_code')->nullable(); $table->string('nomor_telepon_kantor')->nullable(); $table->string('email_kantor'); + $table->string('detail_email_kantor')->nullable(); $table->string('nama_pimpinan'); $table->string('nomor_hp_pimpinan'); $table->string('nama_pic_reviewer')->nullable(); + $table->string('detail_nama_pic_reviewer')->nullable(); $table->string('nomor_hp_pic_reviewer')->nullable(); + $table->string('detail_nomor_hp_pic_reviewer')->nullable(); $table->string('nama_pic_admin')->nullable(); + $table->string('detail_nama_pic_admin')->nullable(); $table->string('nomor_hp_pic_admin')->nullable(); + $table->string('detail_nomor_hp_pic_admin')->nullable(); $table->string('nama_pic_marketing')->nullable(); + $table->string('detail_nama_pic_marketing')->nullable(); $table->string('nomor_hp_pic_marketing')->nullable(); + $table->string('detail_nomor_hp_pic_marketing')->nullable(); $table->string('ijin_usaha_id'); $table->string('jenis_aset_id'); $table->string('attachment')->nullable(); diff --git a/database/migrations/2024_11_05_031735_update_kjpp_table.php b/database/migrations/2024_11_05_031735_update_kjpp_table.php deleted file mode 100644 index 12d90ae..0000000 --- a/database/migrations/2024_11_05_031735_update_kjpp_table.php +++ /dev/null @@ -1,40 +0,0 @@ -string('detail_email_kantor')->nullable()->after('email_kantor'); - $table->string('detail_nama_pic_reviewer')->nullable()->after('nama_pic_reviewer'); - $table->string('detail_nomor_hp_pic_reviewer')->nullable()->after('nomor_hp_pic_reviewer'); - $table->string('detail_nama_pic_admin')->nullable()->after('nama_pic_admin'); - $table->string('detail_nomor_hp_pic_admin')->nullable()->after('nomor_hp_pic_admin'); - $table->string('detail_nama_pic_marketing')->nullable()->after('nama_pic_marketing'); - $table->string('detail_nomor_hp_pic_marketing')->nullable()->after('nomor_hp_pic_marketing'); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('kjpp', function (Blueprint $table) { - $table->dropColumn('detail_email_kantor'); - $table->dropColumn('detail_nama_pic_reviewer'); - $table->dropColumn('detail_nomor_hp_pic_reviewer'); - $table->dropColumn('detail_nama_pic_admin'); - $table->dropColumn('detail_nomor_hp_pic_admin'); - $table->dropColumn('detail_nama_pic_marketing'); - $table->dropColumn('detail_nomor_hp_pic_marketing'); - }); - } -}; diff --git a/database/seeders/JenisLegalitasJaminanSeeder.php b/database/seeders/JenisLegalitasJaminanSeeder.php index 43ac917..516614c 100644 --- a/database/seeders/JenisLegalitasJaminanSeeder.php +++ b/database/seeders/JenisLegalitasJaminanSeeder.php @@ -31,6 +31,8 @@ class JenisLegalitasJaminanSeeder extends Seeder 'code' => 'JLJ002', 'name' => 'SHGB', 'slug' => 'shgb', + 'custom_field' => null, + 'custom_field_type' => null, 'status' => 1, 'created_at' => now(), 'updated_at' => now(), @@ -43,6 +45,8 @@ class JenisLegalitasJaminanSeeder extends Seeder 'code' => 'JLJ003', 'name' => 'Copy PBB / NJOP Tahun Terakhir (Jika Ada)', 'slug' => 'copy-pbb-njop-tahun-terakhir-jika-ada', + 'custom_field' => null, + 'custom_field_type' => null, 'status' => 1, 'created_at' => now(), 'updated_at' => now(), @@ -55,6 +59,8 @@ class JenisLegalitasJaminanSeeder extends Seeder 'code' => 'JLJ004', 'name' => 'Copy NPWP Perusahaan/Perorangan', 'slug' => 'copy-npwp-perusahaanperorangan', + 'custom_field' => null, + 'custom_field_type' => null, 'status' => 1, 'created_at' => now(), 'updated_at' => now(), @@ -67,6 +73,8 @@ class JenisLegalitasJaminanSeeder extends Seeder 'code' => 'JLJ005', 'name' => 'Siteplan', 'slug' => 'siteplan', + 'custom_field' => null, + 'custom_field_type' => null, 'status' => 1, 'created_at' => now(), 'updated_at' => now(), @@ -79,6 +87,8 @@ class JenisLegalitasJaminanSeeder extends Seeder 'code' => 'JLJ006', 'name' => 'Surat Pernyataan Kebenaran Data (Surat Representasi)', 'slug' => 'surat-pernyataan-kebenaran-data-surat-representasi', + 'custom_field' => null, + 'custom_field_type' => null, 'status' => 1, 'created_at' => now(), 'updated_at' => now(), diff --git a/database/seeders/LpjDatabaseSeeder.php b/database/seeders/LpjDatabaseSeeder.php index 53a1b25..0377451 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -12,34 +12,34 @@ class LpjDatabaseSeeder extends Seeder public function run(): void { $this->call([ - // BranchSeeder::class, - // CurrencySeeder::class, - // JenisFasilitasKreditSeeder::class, - // JenisLegalitasJaminanSeeder::class, - // JenisJaminanSeeder::class, - // JenisDokumenSeeder::class, - // TujuanPenilaianSeeder::class, - // NilaiPlatformSeeder::class, - // HubunganPemilikJaminanSeeder::class, - // HubunganPenghuniJaminanSeeder::class, - // ArahMataAnginSeeder::class, - // StatusPermohonanSeeder::class, - // RegionSeeder::class, - // TeamsSeeder::class, - // TeamUsersSeeder::class, - // JenisPenilaianSeeder::class, - // TujuanPenilaianKJPPSeeder::class, - // IjinUsahaSeeder::class, - // JenisLaporanSeeder::class, - // DebitureSeeder::class, - // PermohonanSeeder::class, + BranchSeeder::class, + CurrencySeeder::class, + JenisFasilitasKreditSeeder::class, + JenisLegalitasJaminanSeeder::class, + JenisJaminanSeeder::class, + JenisDokumenSeeder::class, + TujuanPenilaianSeeder::class, + NilaiPlatformSeeder::class, + HubunganPemilikJaminanSeeder::class, + HubunganPenghuniJaminanSeeder::class, + ArahMataAnginSeeder::class, + StatusPermohonanSeeder::class, + RegionSeeder::class, + TeamsSeeder::class, + TeamUsersSeeder::class, + JenisPenilaianSeeder::class, + TujuanPenilaianKJPPSeeder::class, + IjinUsahaSeeder::class, + JenisLaporanSeeder::class, + DebitureSeeder::class, + PermohonanSeeder::class, PemilikJaminanSeeder::class, - // DokumenJaminanSeeder::class, - // DetailDokumenJaminanSeeder::class, - // KJPPSeeder::class, - // PenawaranSeeder::class, - // DetailPenawaranSeeder::class, - // PenilaianSeeder::class, + DokumenJaminanSeeder::class, + DetailDokumenJaminanSeeder::class, + KJPPSeeder::class, + PenawaranSeeder::class, + DetailPenawaranSeeder::class, + PenilaianSeeder::class, ]); } } diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index f2b5e45..46fba2a 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -229,20 +229,22 @@ {{ $message }} @enderror
-
- @if (isset($kjpp->detail_email_kantor)) - @foreach (json_decode($kjpp->detail_email_kantor) as $detail) - - @error('detail_email_kantor') - {{ $message }} - @enderror + @if (isset($kjpp->detail_email_kantor)) + @foreach ($detailEmailKantor as $detail_email_kantor) +
+
+ + @error('email_kantor') + {{ $message }} + @enderror +
- @endforeach - @endif -
+ class="btn btn-danger btn-xs delete-button-edit">Hapus +
+ @endforeach + @endif
@@ -297,37 +299,35 @@
- @if (isset($kjpp->detail_nama_pic_reviewer)) - @foreach (json_decode($kjpp->detail_nama_pic_reviewer) as $detail) + @if (isset($kjpp->detail_nama_pic_reviewer) && isset($kjpp->detail_nomor_hp_pic_reviewer)) + @foreach (json_decode($detailJoinPicReviewer) as $detail_pic_reviewer)
- - @error('detail_nama_pic_reviewer') + value="{{ $detail_pic_reviewer->nama_pic_reviewer ?? old('detail_nama_pic_reviewer.nama_pic_reviewer') }}"> + @error('nama_pic_reviewer') {{ $message }} @enderror
- @foreach (json_decode($kjpp->detail_nomor_hp_pic_reviewer) as $detail) - -
- - @error('detail_nomor_hp_pic_reviewer') - {{ $message }} - @enderror -
- @endforeach - + +
+ + @error('nomor_hp_pic_reviewer') + {{ $message }} + @enderror +
+
@endforeach @endif @@ -367,35 +367,34 @@
- @if (isset($kjpp->detail_nama_pic_admin)) - @foreach (json_decode($kjpp->detail_nama_pic_admin) as $detail) + @if (isset($kjpp->detail_nama_pic_admin) && isset($kjpp->detail_nomor_hp_pic_admin)) + @foreach (json_decode($detailJoinPicAdmin) as $detail_pic_admin)
- - @error('detail_nama_pic_admin') + value="{{ $detail_pic_admin->nama_pic_admin ?? old('detail_nama_pic_admin.nama_pic_admin') }}"> + @error('nama_pic_admin') {{ $message }} @enderror
- @foreach (json_decode($kjpp->detail_nomor_hp_pic_admin) as $detail) - -
- - @error('detail_nomor_hp_pic_admin') - {{ $message }} - @enderror -
- @endforeach - + +
+ + @error('nomor_hp_pic_admin') + {{ $message }} + @enderror +
+
@endforeach @endif @@ -432,37 +431,36 @@
- @if (isset($kjpp->detail_nama_pic_marketing)) - @foreach (json_decode($kjpp->detail_nama_pic_marketing) as $detail) + @if (isset($kjpp->detail_nama_pic_marketing) && isset($kjpp->detail_nomor_hp_pic_marketing)) + @foreach (json_decode($detailJoinPicMarketing) as $detail_pic_marketing)
- - @error('detail_nama_pic_marketing') + value="{{ $detail_pic_marketing->nama_pic_marketing ?? old('detail_nama_pic_marketing.nama_pic_marketing') }}"> + @error('nama_pic_marketing') {{ $message }} @enderror
- @foreach (json_decode($kjpp->detail_nomor_hp_pic_marketing) as $detail) - -
- - @error('detail_nomor_hp_pic_marketing') - {{ $message }} - @enderror -
- @endforeach - + +
+ + @error('nomor_hp_pic_marketing') + {{ $message }} + @enderror +
+
@endforeach @endif diff --git a/resources/views/kjpp/scripts/index.blade.php b/resources/views/kjpp/scripts/index.blade.php index c963810..c4f022b 100644 --- a/resources/views/kjpp/scripts/index.blade.php +++ b/resources/views/kjpp/scripts/index.blade.php @@ -14,6 +14,19 @@ }); } + function DeleteEditListeners() { + document.querySelectorAll(".delete-button-edit").forEach(button => { + button.addEventListener("click", function() { + this.closest( + ".flex.flex-col.lg\\:flex-row.gap-2.items-baseline.lg\\:items-center.w-full" + ) + .remove(); + }); + }); + } + + DeleteEditListeners(); + document.getElementById("tambah_email_kantor").addEventListener("click", function() { const newDiv = document.createElement("div"); newDiv.className = "flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full"; diff --git a/resources/views/kjpp/show.blade.php b/resources/views/kjpp/show.blade.php index 0e5def9..ed2f7ab 100644 --- a/resources/views/kjpp/show.blade.php +++ b/resources/views/kjpp/show.blade.php @@ -42,9 +42,7 @@

- @foreach ($ijin_usaha as $iu) - {{ $iu->code }} - @endforeach + {{ $kjpp->nomor_ijin_usaha }}

@@ -53,22 +51,36 @@ Alamat Kantor
-

{{ $kjpp->address }} , Kel. - @foreach ($villages as $village) - {{ $village->name }} - @endforeach , Kec. - @foreach ($districts as $district) - {{ $district->name }} - @endforeach , - @foreach ($cities as $city) - {{ ucwords(strtolower($city->name)) }} - @endforeach , - @foreach ($provinces as $province) - {{ $province->name }} - @endforeach, Kode Pos. - @foreach ($villages as $village) - {{ $village->postal_code }} - @endforeach +

{{ $kjpp->address }} + @if (isset($kjpp->village_code)) + , Kel. + @foreach ($villages as $village) + {{ $village->name }} + @endforeach + @endif + @if (isset($kjpp->district_code)) + , Kec. + @foreach ($districts as $district) + {{ $district->name }} + @endforeach + @endif + @if (isset($kjpp->city_code)) + ,@foreach ($cities as $city) + {{ ucwords(strtolower($city->name)) }} + @endforeach + @endif + @if (isset($kjpp->province_code)) + , + @foreach ($provinces as $province) + {{ $province->name }} + @endforeach + @endif + @if (isset($kjpp->postal_code)) + , Kode Pos. + @foreach ($villages as $village) + {{ $village->postal_code }} + @endforeach + @endif

@@ -84,6 +96,13 @@

{{ $kjpp->email_kantor }}

+ @if (isset($kjpp->detail_email_kantor)) + @foreach (json_decode($kjpp->detail_email_kantor) as $detail_email_kantor) +

+ {{ $detail_email_kantor->email_kantor }} +

+ @endforeach + @endif
@@ -106,12 +125,26 @@

{{ $kjpp->nama_pic_reviewer }}

+ @if (isset($kjpp->detail_nama_pic_reviewer)) + @foreach (json_decode($kjpp->detail_nama_pic_reviewer) as $detail_nama_pic_reviewer) +

+ {{ $detail_nama_pic_reviewer->nama_pic_reviewer }} +

+ @endforeach + @endif

{{ $kjpp->nomor_hp_pic_reviewer }}

+ @if (isset($kjpp->detail_nomor_hp_pic_reviewer)) + @foreach (json_decode($kjpp->detail_nomor_hp_pic_reviewer) as $detail_nomor_hp_pic_reviewer) +

+ {{ $detail_nomor_hp_pic_reviewer->nomor_hp_pic_reviewer }} +

+ @endforeach + @endif
@@ -120,12 +153,26 @@

{{ $kjpp->nama_pic_admin }}

+ @if (isset($kjpp->detail_nama_pic_admin)) + @foreach (json_decode($kjpp->detail_nama_pic_admin) as $detail_nama_pic_admin) +

+ {{ $detail_nama_pic_admin->nama_pic_admin }} +

+ @endforeach + @endif

{{ $kjpp->nomor_hp_pic_admin }}

+ @if (isset($kjpp->detail_nomor_hp_pic_admin)) + @foreach (json_decode($kjpp->detail_nomor_hp_pic_admin) as $detail_nomor_hp_pic_admin) +

+ {{ $detail_nomor_hp_pic_admin->nomor_hp_pic_admin }} +

+ @endforeach + @endif
@@ -134,12 +181,26 @@

{{ $kjpp->nama_pic_marketing }}

+ @if (isset($kjpp->detail_nama_pic_marketing)) + @foreach (json_decode($kjpp->detail_nama_pic_marketing) as $detail_nama_pic_marketing) +

+ {{ $detail_nama_pic_marketing->nama_pic_marketing }} +

+ @endforeach + @endif

{{ $kjpp->nomor_hp_pic_marketing }}

+ @if (isset($kjpp->detail_nomor_hp_pic_marketing)) + @foreach (json_decode($kjpp->detail_nomor_hp_pic_marketing) as $detail_nomor_hp_pic_marketing) +

+ {{ $detail_nomor_hp_pic_marketing->nomor_hp_pic_marketing }} +

+ @endforeach + @endif
From a3e9ba563336578639d4e5b118a63817363d27d8 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Thu, 7 Nov 2024 17:03:03 +0700 Subject: [PATCH 48/78] Memperbaiki tampilan pada show KJPP --- resources/views/kjpp/show.blade.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/resources/views/kjpp/show.blade.php b/resources/views/kjpp/show.blade.php index ed2f7ab..f0d2cea 100644 --- a/resources/views/kjpp/show.blade.php +++ b/resources/views/kjpp/show.blade.php @@ -51,7 +51,7 @@ Alamat Kantor
-

{{ $kjpp->address }} +

{{ $kjpp->address }} @if (isset($kjpp->village_code)) , Kel. @foreach ($villages as $village) @@ -270,3 +270,19 @@

@endsection + +@push('styles') + +@endpush From aa41da8a68869fe0eb9253c8cda90001266da1db Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 21:31:46 +0700 Subject: [PATCH 49/78] Tambahkan fitur download dan penutupan modal PDF dengan tombol Escape Memperbarui tampilan modal untuk menyertakan tombol download PDF dan menutupi modal ketika tombol Escape ditekan. Penyesuaian elemen dalam modal untuk mengatur tata letak yang lebih baik dan menambah event listener untuk menangani penutupan modal saat klik di luar isi modal. --- resources/views/component/pdfviewer.blade.php | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/resources/views/component/pdfviewer.blade.php b/resources/views/component/pdfviewer.blade.php index 177ecf5..c862dfa 100644 --- a/resources/views/component/pdfviewer.blade.php +++ b/resources/views/component/pdfviewer.blade.php @@ -1,11 +1,17 @@ - @endsection + +@push('scripts') + +@endpush From 70344ff310f31aff18f9b4f625387c56d7b2819f Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 8 Nov 2024 15:00:49 +0700 Subject: [PATCH 53/78] Tambahkan fitur unggah file revisi Menambahkan elemen input untuk unggah file revisi pada halaman otorisasi permohonan serta validasi pada berkas unggahan. Apabila tidak ada berkas yang diunggah, akan muncul pesan kesalahan yang meminta pengguna untuk mengunggah berkas revisi. Juga ditambahkan event listener untuk menghilangkan pesan kesalahan setelah berkas diunggah. --- .../permohonan/authorization/show.blade.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/resources/views/permohonan/authorization/show.blade.php b/resources/views/permohonan/authorization/show.blade.php index 02ad94d..2036ba1 100644 --- a/resources/views/permohonan/authorization/show.blade.php +++ b/resources/views/permohonan/authorization/show.blade.php @@ -170,6 +170,15 @@
+
+ +
+ + +
+
+
+
+ @if (isset($kjpp->detail_nama_pimpinan) && isset($kjpp->detail_nomor_hp_pimpinan)) + @foreach (json_decode($detailJoinPimpinan) as $detail_pimpinan) +
+ +
+ + @error('nama_pimpinan') + {{ $message }} + @enderror +
+ +
+ + @error('nomor_hp_pimpinan') + {{ $message }} + @enderror +
+ +
+ @endforeach + @endif +
+
+
+ +
+ +
+
diff --git a/resources/views/kjpp/scripts/index.blade.php b/resources/views/kjpp/scripts/index.blade.php index c4f022b..118969c 100644 --- a/resources/views/kjpp/scripts/index.blade.php +++ b/resources/views/kjpp/scripts/index.blade.php @@ -41,6 +41,31 @@ addDeleteListeners(); }); + const namaPimpinanDiv = document.getElementById('detail_nama_pimpinan'); + + document.getElementById("tambah_nama_pimpinan").addEventListener("click", function() { + const newDiv = document.createElement("div"); + newDiv.className = "flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full"; + newDiv.innerHTML = ` + +
+ +
+ +
+ +
+ + `; + namaPimpinanDiv.appendChild(newDiv); + + addDeleteListeners(); + }); + const namaPicReviewerDiv = document.getElementById('detail_nama_pic_reviewer'); document.getElementById("tambah_nama_pic_reviewer").addEventListener("click", function() { diff --git a/resources/views/kjpp/show.blade.php b/resources/views/kjpp/show.blade.php index f0d2cea..2ca826d 100644 --- a/resources/views/kjpp/show.blade.php +++ b/resources/views/kjpp/show.blade.php @@ -111,12 +111,26 @@

{{ $kjpp->nama_pimpinan }}

+ @if (isset($kjpp->detail_nama_pimpinan)) + @foreach (json_decode($detailJoinPimpinan) as $detail_nama_pimpinan) +

+ {{ $detail_nama_pimpinan->nama_pimpinan }} +

+ @endforeach + @endif

{{ $kjpp->nomor_hp_pimpinan }}

+ @if (isset($kjpp->detail_nomor_hp_pimpinan)) + @foreach (json_decode($detailJoinPimpinan) as $detail_nomor_hp_pimpinan) +

+ {{ $detail_nomor_hp_pimpinan->nomor_hp_pimpinan }} +

+ @endforeach + @endif
@@ -124,9 +138,9 @@ Nama PIC Reviewer
-

{{ $kjpp->nama_pic_reviewer }}

+

{{ $kjpp->nama_pic_reviewer ?? '-' }}

@if (isset($kjpp->detail_nama_pic_reviewer)) - @foreach (json_decode($kjpp->detail_nama_pic_reviewer) as $detail_nama_pic_reviewer) + @foreach (json_decode($detailJoinPicReviewer) as $detail_nama_pic_reviewer)

{{ $detail_nama_pic_reviewer->nama_pic_reviewer }}

@@ -137,9 +151,10 @@ Nomor HP PIC Reviewer
-

{{ $kjpp->nomor_hp_pic_reviewer }}

+

{{ $kjpp->nomor_hp_pic_reviewer ?? '-' }} +

@if (isset($kjpp->detail_nomor_hp_pic_reviewer)) - @foreach (json_decode($kjpp->detail_nomor_hp_pic_reviewer) as $detail_nomor_hp_pic_reviewer) + @foreach (json_decode($detailJoinPicReviewer) as $detail_nomor_hp_pic_reviewer)

{{ $detail_nomor_hp_pic_reviewer->nomor_hp_pic_reviewer }}

@@ -152,9 +167,9 @@ Nama PIC Admin
-

{{ $kjpp->nama_pic_admin }}

+

{{ $kjpp->nama_pic_admin ?? '-' }}

@if (isset($kjpp->detail_nama_pic_admin)) - @foreach (json_decode($kjpp->detail_nama_pic_admin) as $detail_nama_pic_admin) + @foreach (json_decode($detailJoinPicAdmin) as $detail_nama_pic_admin)

{{ $detail_nama_pic_admin->nama_pic_admin }}

@@ -165,9 +180,9 @@ Nomor HP PIC Admin
-

{{ $kjpp->nomor_hp_pic_admin }}

+

{{ $kjpp->nomor_hp_pic_admin ?? '-' }}

@if (isset($kjpp->detail_nomor_hp_pic_admin)) - @foreach (json_decode($kjpp->detail_nomor_hp_pic_admin) as $detail_nomor_hp_pic_admin) + @foreach (json_decode($detailJoinPicAdmin) as $detail_nomor_hp_pic_admin)

{{ $detail_nomor_hp_pic_admin->nomor_hp_pic_admin }}

@@ -180,9 +195,9 @@ Nama PIC Marketing
-

{{ $kjpp->nama_pic_marketing }}

+

{{ $kjpp->nama_pic_marketing ?? '-' }}

@if (isset($kjpp->detail_nama_pic_marketing)) - @foreach (json_decode($kjpp->detail_nama_pic_marketing) as $detail_nama_pic_marketing) + @foreach (json_decode($detailJoinPicMarketing) as $detail_nama_pic_marketing)

{{ $detail_nama_pic_marketing->nama_pic_marketing }}

@@ -193,9 +208,10 @@ Nomor HP PIC Marketing
-

{{ $kjpp->nomor_hp_pic_marketing }}

+

{{ $kjpp->nomor_hp_pic_marketing ?? '-' }} +

@if (isset($kjpp->detail_nomor_hp_pic_marketing)) - @foreach (json_decode($kjpp->detail_nomor_hp_pic_marketing) as $detail_nomor_hp_pic_marketing) + @foreach (json_decode($detailJoinPicMarketing) as $detail_nomor_hp_pic_marketing)

{{ $detail_nomor_hp_pic_marketing->nomor_hp_pic_marketing }}

From e2061a3f5dbe8562ac505552e6c6d3de546c0b25 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 12 Nov 2024 10:27:44 +0700 Subject: [PATCH 58/78] Mengubah urutan berdasarkan Nomor KJPP secara ascending --- app/Http/Controllers/KJPPController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index 875b256..d41e077 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -477,8 +477,8 @@ class KJPPController extends Controller //abort(403, 'Sorry! You are not allowed to view users.'); } - // Retrieve data from the database - $query = KJPP::query(); + // Retrieve data from the database order by code ascending + $query = KJPP::query()->orderBy('code', 'asc'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { From 9b0371dc7a144f02d020cc1cd93f8c265c2cf171 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 13 Nov 2024 15:06:14 +0700 Subject: [PATCH 59/78] Tambahkan field 'details' ke dalam DokumenJaminanController Field 'details' ditambahkan dalam array data pada DokumenJaminanController. Field ini akan diisi dengan nilai dari 'custom_field' jika ada, atau string kosong jika tidak. Perubahan diterapkan pada dua lokasi berbeda di dalam file controller. --- app/Http/Controllers/DokumenJaminanController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 1d62ef3..6c2411f 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -79,6 +79,7 @@ 'jenis_legalitas_jaminan_id' => $value, 'name' => $request->name[$key], 'keterangan' => $request->keterangan[$key], + 'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '' ]; $dokumenJaminan = []; @@ -234,6 +235,7 @@ 'jenis_legalitas_jaminan_id' => $value, 'name' => $request->name[$key], 'keterangan' => $request->keterangan[$key], + 'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '' ]; $dokumenJaminan = []; From 5e6a144b67770c28f4b6f0ac6e49167802d71cfb Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 15:18:14 +0700 Subject: [PATCH 60/78] 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 1b9d1bf0b3bbe31fa0b6d7070c4782eb7e4f77e0 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 15:49:33 +0700 Subject: [PATCH 61/78] 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 20842fa3e003f85a9d9e0a1b97d54c215bf2e5f8 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 16:26:17 +0700 Subject: [PATCH 62/78] 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 265e87895572bca1f293e457a47255686242e71b Mon Sep 17 00:00:00 2001 From: majid Date: Thu, 7 Nov 2024 16:32:27 +0700 Subject: [PATCH 63/78] 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">