From f8a3ecb0aff2fb00bce4f89f59b87df7e3235490 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 22:17:23 +0700 Subject: [PATCH 01/12] Betulkan akses data tujuan_penilaian_kjpp Ganti atribut `tujuan_penilaian_k_j_p_p` dengan `tujuan_penilaian_kjpp` dalam file `index.blade.php` untuk memastikan data yang benar ditampilkan di antarmuka pengguna. Perubahan ini berfokus pada pembetulan akses data yang sebelumnya salah. --- resources/views/prosespenawaran/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/prosespenawaran/index.blade.php b/resources/views/prosespenawaran/index.blade.php index 88ca76f..c4aa34e 100644 --- a/resources/views/prosespenawaran/index.blade.php +++ b/resources/views/prosespenawaran/index.blade.php @@ -149,10 +149,10 @@ return `${formatDate(new Date(data.start_date))} - ${formatDate(new Date(data.end_date))}` } }, - tujuan_penilaian_k_j_p_p: { + tujuan_penilaian_kjpp: { title: 'Tujuan Penilaian KJPP', render: (item, data) => { - return data.tujuan_penilaian_k_j_p_p[0].name + return data.tujuan_penilaian_kjpp.name } }, penawarandetails_count: { From a26b099164a98421593045b3a4c1ed333e44ac66 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 22:30:34 +0700 Subject: [PATCH 02/12] Perbaiki kode dan optimalkan query Memperbaiki controller RegistrasiFinalController dengan merapikan dan menyusun ulang kode untuk meningkatkan keterbacaan. Menambahkan dependency yang diperlukan dan optimalkan query untuk mengambil data dengan lebih efisien. Menambahkan render function pada tujuan_penilaian_kjpp_name di view registrasifinal. --- .../Controllers/RegistrasiFinalController.php | 176 +++++++++--------- .../views/registrasifinal/index.blade.php | 3 + 2 files changed, 86 insertions(+), 93 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index 4ccb0e7..94323f1 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -3,10 +3,19 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; -use Carbon\Carbon; -use Exception; + use Carbon\Carbon; + use Exception; + use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; + use Illuminate\Support\Facades\Auth; + use Illuminate\Support\Facades\DB; + use Illuminate\Support\Facades\Storage; + use Illuminate\Support\Facades\Validator; use Maatwebsite\Excel\Facades\Excel; + use Modules\Lpj\Models\PenawaranTender; + use Modules\Lpj\Models\Permohonan; + use Modules\Lpj\Models\Regions; + // use Modules\Location\Models\City; // use Modules\Location\Models\District; // use Modules\Location\Models\Province; @@ -20,16 +29,6 @@ use Exception; // use Modules\Lpj\Models\JenisJaminan; // use Modules\Lpj\Models\JenisLegalitasJaminan; // use Modules\Lpj\Models\PemilikJaminan; - use Modules\Lpj\Models\Permohonan; - use Modules\Lpj\Models\JenisPenilaian; - use Modules\Lpj\Models\Regions; - use Illuminate\Http\JsonResponse; - 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; class RegistrasiFinalController extends Controller { @@ -47,11 +46,11 @@ use Modules\Lpj\Models\PenawaranTender; } // Retrieve data from the database - $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') - ->where('penawaran.status','=','spk') - ->withCount('penawarandetails'); + $query = PenawaranTender::query()->with(['permohonan', 'tujuanPenilaianKjpp'])->where( + 'permohonan.status', + '=', + 'spk', + )->withCount('penawarandetails'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { @@ -90,25 +89,23 @@ use Modules\Lpj\Models\PenawaranTender; //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); $data = $query->with(['permohonan'])->get(); // dd($data); - $i=0; - foreach($data as $obj) - { - if($obj->tanggal_penilaian_sebelumnya) - { - $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); + $i = 0; + foreach ($data as $obj) { + if ($obj->tanggal_penilaian_sebelumnya) { + $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format( + 'd F Y H:i:s', + ); } - if($obj->biaya_kjpp_sebelumnya) - { + 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'); - + 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++; @@ -129,21 +126,20 @@ use Modules\Lpj\Models\PenawaranTender; 'pageCount' => $pageCount, 'page' => $currentPage, 'totalCount' => $totalRecords, - 'data' => $data + 'data' => $data, ]); } public function show($id) { - $permohonan = Permohonan::find($id); - if($permohonan->dokumen) - { - $pdfSPK_path = Storage::url($permohonan->dokumen); + $permohonan = Permohonan::find($id); + if ($permohonan->dokumen) { + $pdfSPK_path = Storage::url($permohonan->dokumen); $permohonan->dokumen = $pdfSPK_path; - $permohonan->dokumen = '| Dokumen SPK.pdf   '; + $permohonan->dokumen = '| Dokumen SPK.pdf   '; } - return view('lpj::registrasifinal.show', compact('id','permohonan')); + return view('lpj::registrasifinal.show', compact('id', 'permohonan')); } public function edit($id) @@ -151,129 +147,123 @@ use Modules\Lpj\Models\PenawaranTender; return view('lpj::registrasifinal.edit', compact('id')); } - public function setData(Request $request): JsonResponse - { - $data = array(); - $datas = array(); + public function setData(Request $request) + : JsonResponse { + $data = []; + $datas = []; if (request()->ajax()) { - $id = $request->id; + $id = $request->id; $datas = Permohonan::find($id); if ($datas) { - $penawaran=null; - $regions=null; - $regions=Regions::pluck('name', 'id'); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$datas->nomor_registrasi)->first(); + $penawaran = null; + $regions = null; + $regions = Regions::pluck('name', 'id'); + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $datas->nomor_registrasi)->first(); $penawaranString = ""; - if($penawaran->status) - { - $penawaranString = convertSlug($penawaran->status); + if ($penawaran->status) { + $penawaranString = convertSlug($penawaran->status); $penawaran->status = $penawaranString; } - if($datas->dokumen) - { - $pdfSPK_path = Storage::url($datas->dokumen); + if ($datas->dokumen) { + $pdfSPK_path = Storage::url($datas->dokumen); $datas->dokumen = $pdfSPK_path; } - $data['status'] = 'success'; - $data['regions'] = $regions; - $data['penawaran'] = $penawaran; - $data['datas'] = $datas; - $data['message']['message_success'] = array("data successfully found"); + $data['status'] = 'success'; + $data['regions'] = $regions; + $data['penawaran'] = $penawaran; + $data['datas'] = $datas; + $data['message']['message_success'] = ["data successfully found"]; } else { - $data['status'] = 'error'; - $data['datas'] = null; - $data['message']['message_data'] = array("data not found"); + $data['status'] = 'error'; + $data['datas'] = null; + $data['message']['message_data'] = ["data not found"]; } } else { - $data['status'] = 'error'; - $data['message']['message_ajax'] = array("no ajax request"); + $data['status'] = 'error'; + $data['message']['message_ajax'] = ["no ajax request"]; } return response()->json($data); } - public function update(Request $request, $id): JsonResponse - { + public function update(Request $request, $id) + : JsonResponse { // init - $data = array(); - $dataPermohonan = array(); - $dataPenawaran = array(); + $data = []; + $dataPermohonan = []; + $dataPenawaran = []; if (request()->ajax()) { $validator = RegistrasiFinalController::rulesEditnya($request, $id); if ($validator['fails']) { $data['message'] = $validator['errors']; - $data['status'] = 'error'; - } - else - { + $data['status'] = 'error'; + } else { DB::beginTransaction(); try { - // update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by // update table penawaran => status (registrasi-final) $dataPermohonan = [ - 'status' => 'registrasi-final', - 'region_id' => $request->region, - 'keterangan' => $request->catatan, - 'authorized_at' => now(), - 'authorized_status' =>1, - 'authorized_by' => Auth::id() - ]; + 'status' => 'registrasi-final', + 'region_id' => $request->region, + 'keterangan' => $request->catatan, + 'authorized_at' => now(), + 'authorized_status' => 1, + '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'; - $data['message']['message_success'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' successfully'); + $data['status'] = 'success'; + $data['message']['message_success'] = ['Regitrasi Final ' . $permohonan->nomor_registrasi . ' successfully']; } catch (Exception $e) { DB::rollBack(); - $data['status'] = 'error'; - $data['message']['message_try_catch'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' failed.'); + $data['status'] = 'error'; + $data['message']['message_try_catch'] = ['Regitrasi Final ' . $permohonan->nomor_registrasi . ' failed.']; } } - } else { - $data['status'] = 'error'; - $data['message']['message_ajax'] = array("no ajax request"); + $data['status'] = 'error'; + $data['message']['message_ajax'] = ["no ajax request"]; } return response()->json($data); - } public function rulesEditnya($request, $id) { - $validate_catatan=''; + $validate_catatan = ''; $validateIt = [ // 'name' diambil dari definisi parameter yang di kirim pada POST Data - 'region' => 'required', + 'region' => 'required', 'catatan' => 'required', ]; $messageIt = [ - 'region.required' => 'Silahkan pilih Region', - 'catatan.required' => 'Silahkan isi Catatan' + 'region.required' => 'Silahkan pilih Region', + 'catatan.required' => 'Silahkan isi Catatan', ]; $validator = Validator::make($request->all(), $validateIt, $messageIt); - $data['fails'] = $validator->fails(); + $data['fails'] = $validator->fails(); $data['errors'] = $validator->errors(); return $data; diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index b25be3f..808da23 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -114,6 +114,9 @@ }, tujuan_penilaian_kjpp_name: { title: 'Tujuan Penilaian', + render: (item, data) => { + return `${data.tujuan_penilaian_kjpp.name || ''}`; + }, }, nama_kjpp_sebelumnya: { title: 'Nama KJPP Terpilih', From f41ed73af79765dcbff8b912899a2852c5499141 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 22:33:27 +0700 Subject: [PATCH 03/12] Refactor query dalam RegistrasiFinalController Mengubah cara pemanggilan query dari metode `where` menjadi `whereHas` pada model PenawaranTender untuk memperjelas pencarian berdasarkan status `spk`. Ini termasuk penyesuaian dengan loop anonim function untuk filter. Transformasi ini bertujuan meningkatkan kejelasan dan maintainability dari kode. --- app/Http/Controllers/RegistrasiFinalController.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index 94323f1..c82c2e6 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -46,10 +46,11 @@ } // Retrieve data from the database - $query = PenawaranTender::query()->with(['permohonan', 'tujuanPenilaianKjpp'])->where( - 'permohonan.status', - '=', - 'spk', + $query = PenawaranTender::with(['permohonan', 'tujuanPenilaianKjpp'])->whereHas( + 'permohonan', + function ($q) { + $q->where('status', '=', 'spk'); + }, )->withCount('penawarandetails'); // Apply search filter if provided From 2cf40eb978161c4b9b6aae1397abd43283a00a47 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 22:38:08 +0700 Subject: [PATCH 04/12] Perbaiki penamaan properti di ProsesPenawaranController Ganti properti 'tujuanPenilaianKJPP' menjadi 'tujuanPenilaianKjpp' untuk konsistensi penamaan. Menghapus baris kosong yang tidak diperlukan di bagian iterasi 'penawrandetails'. --- app/Http/Controllers/ProsesPenawaranController.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/ProsesPenawaranController.php b/app/Http/Controllers/ProsesPenawaranController.php index d8a5e9b..bbd3fab 100644 --- a/app/Http/Controllers/ProsesPenawaranController.php +++ b/app/Http/Controllers/ProsesPenawaranController.php @@ -75,7 +75,7 @@ class ProsesPenawaranController extends Controller // Get the data for the current page //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - $data = $query->with(['tujuanPenilaianKJPP','permohonan','permohonan.debiture'])->get(); + $data = $query->with(['tujuanPenilaianKjpp','permohonan','permohonan.debiture'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); @@ -116,7 +116,6 @@ class ProsesPenawaranController extends Controller ->get(); if ($penawaran) { - $i=0; foreach($penawrandetails as $obj) { From b14bc6787d4ae7d8af8f618615245238b7e1df20 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 7 Nov 2024 06:57:40 +0700 Subject: [PATCH 05/12] Perbarui tampilan jangka waktu dan hapus fungsi spkShow Perbarui kolom jangka waktu dengan format tanggal yang benar di file edit.blade.php dan documentSPK.blade.php. Selain itu, hapus fungsi spkShow yang tidak digunakan di file index.blade.php untuk kebersihan kode. --- resources/views/spk/documentSPK.blade.php | 4 ++-- resources/views/spk/edit.blade.php | 2 +- resources/views/spk/index.blade.php | 6 ------ 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php index a262e02..49aefcd 100644 --- a/resources/views/spk/documentSPK.blade.php +++ b/resources/views/spk/documentSPK.blade.php @@ -79,7 +79,7 @@ Jangka Waktu : - + {{ formatTanggalIndonesia($penawaran->start_date) - formatTanggalIndonesia($penawaran->end_date) }} i @@ -179,4 +179,4 @@ - \ 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')