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.
This commit is contained in:
Daeng Deni Mardaeni
2024-11-06 22:30:34 +07:00
parent f8a3ecb0af
commit a26b099164
2 changed files with 86 additions and 93 deletions

View File

@@ -5,8 +5,17 @@
use App\Http\Controllers\Controller;
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'))) {
@@ -91,24 +90,22 @@ use Modules\Lpj\Models\PenawaranTender;
$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');
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,15 +126,14 @@ 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)
{
if ($permohonan->dokumen) {
$pdfSPK_path = Storage::url($permohonan->dokumen);
$permohonan->dokumen = $pdfSPK_path;
$permohonan->dokumen = '| <a download href="' . $pdfSPK_path . '" class="badge badge-sm badge-outline" target="_blank">Dokumen SPK.pdf &nbsp;&nbsp;<i class="ki-filled ki-cloud-download"></i></a>';
@@ -151,10 +147,10 @@ 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;
@@ -167,14 +163,12 @@ use Modules\Lpj\Models\PenawaranTender;
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $datas->nomor_registrasi)->first();
$penawaranString = "";
if($penawaran->status)
{
if ($penawaran->status) {
$penawaranString = convertSlug($penawaran->status);
$penawaran->status = $penawaranString;
}
if($datas->dokumen)
{
if ($datas->dokumen) {
$pdfSPK_path = Storage::url($datas->dokumen);
$datas->dokumen = $pdfSPK_path;
}
@@ -183,26 +177,26 @@ use Modules\Lpj\Models\PenawaranTender;
$data['regions'] = $regions;
$data['penawaran'] = $penawaran;
$data['datas'] = $datas;
$data['message']['message_success'] = array("data successfully found");
$data['message']['message_success'] = ["data successfully found"];
} else {
$data['status'] = 'error';
$data['datas'] = null;
$data['message']['message_data'] = array("data not found");
$data['message']['message_data'] = ["data not found"];
}
} else {
$data['status'] = 'error';
$data['message']['message_ajax'] = array("no ajax request");
$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);
@@ -210,12 +204,9 @@ use Modules\Lpj\Models\PenawaranTender;
if ($validator['fails']) {
$data['message'] = $validator['errors'];
$data['status'] = 'error';
}
else
{
} 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 = [
@@ -224,14 +215,15 @@ 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);
@@ -239,21 +231,19 @@ use Modules\Lpj\Models\PenawaranTender;
DB::commit();
$data['status'] = 'success';
$data['message']['message_success'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' successfully');
$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['message']['message_try_catch'] = ['Regitrasi Final ' . $permohonan->nomor_registrasi . ' failed.'];
}
}
} else {
$data['status'] = 'error';
$data['message']['message_ajax'] = array("no ajax request");
$data['message']['message_ajax'] = ["no ajax request"];
}
return response()->json($data);
}
public function rulesEditnya($request, $id)
@@ -268,7 +258,7 @@ use Modules\Lpj\Models\PenawaranTender;
$messageIt = [
'region.required' => 'Silahkan pilih Region',
'catatan.required' => 'Silahkan isi Catatan'
'catatan.required' => 'Silahkan isi Catatan',
];
$validator = Validator::make($request->all(), $validateIt, $messageIt);

View File

@@ -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',