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:
@@ -3,10 +3,19 @@
|
|||||||
namespace Modules\Lpj\Http\Controllers;
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
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 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\City;
|
||||||
// use Modules\Location\Models\District;
|
// use Modules\Location\Models\District;
|
||||||
// use Modules\Location\Models\Province;
|
// use Modules\Location\Models\Province;
|
||||||
@@ -20,16 +29,6 @@ use Exception;
|
|||||||
// use Modules\Lpj\Models\JenisJaminan;
|
// use Modules\Lpj\Models\JenisJaminan;
|
||||||
// use Modules\Lpj\Models\JenisLegalitasJaminan;
|
// use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||||
// use Modules\Lpj\Models\PemilikJaminan;
|
// 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
|
class RegistrasiFinalController extends Controller
|
||||||
{
|
{
|
||||||
@@ -47,11 +46,11 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query =PenawaranTender::query()
|
$query = PenawaranTender::query()->with(['permohonan', 'tujuanPenilaianKjpp'])->where(
|
||||||
->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
'permohonan.status',
|
||||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
'=',
|
||||||
->where('penawaran.status','=','spk')
|
'spk',
|
||||||
->withCount('penawarandetails');
|
)->withCount('penawarandetails');
|
||||||
|
|
||||||
// Apply search filter if provided
|
// Apply search filter if provided
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
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(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||||
$data = $query->with(['permohonan'])->get();
|
$data = $query->with(['permohonan'])->get();
|
||||||
// dd($data);
|
// dd($data);
|
||||||
$i=0;
|
$i = 0;
|
||||||
foreach($data as $obj)
|
foreach ($data as $obj) {
|
||||||
{
|
if ($obj->tanggal_penilaian_sebelumnya) {
|
||||||
if($obj->tanggal_penilaian_sebelumnya)
|
$data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format(
|
||||||
{
|
'd F Y H:i:s',
|
||||||
$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);
|
$data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// date_range
|
// date_range
|
||||||
if($obj->start_date && $obj->end_date)
|
if ($obj->start_date && $obj->end_date) {
|
||||||
{
|
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' . Carbon::parse(
|
||||||
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y');
|
$obj->end_date,
|
||||||
|
)->format('d M Y');
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@@ -129,21 +126,20 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
'pageCount' => $pageCount,
|
'pageCount' => $pageCount,
|
||||||
'page' => $currentPage,
|
'page' => $currentPage,
|
||||||
'totalCount' => $totalRecords,
|
'totalCount' => $totalRecords,
|
||||||
'data' => $data
|
'data' => $data,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
if($permohonan->dokumen)
|
if ($permohonan->dokumen) {
|
||||||
{
|
$pdfSPK_path = Storage::url($permohonan->dokumen);
|
||||||
$pdfSPK_path = Storage::url($permohonan->dokumen);
|
|
||||||
$permohonan->dokumen = $pdfSPK_path;
|
$permohonan->dokumen = $pdfSPK_path;
|
||||||
$permohonan->dokumen = '| <a download href="'. $pdfSPK_path.'" class="badge badge-sm badge-outline" target="_blank">Dokumen SPK.pdf <i class="ki-filled ki-cloud-download"></i></a>';
|
$permohonan->dokumen = '| <a download href="' . $pdfSPK_path . '" class="badge badge-sm badge-outline" target="_blank">Dokumen SPK.pdf <i class="ki-filled ki-cloud-download"></i></a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('lpj::registrasifinal.show', compact('id','permohonan'));
|
return view('lpj::registrasifinal.show', compact('id', 'permohonan'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function edit($id)
|
public function edit($id)
|
||||||
@@ -151,129 +147,123 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
return view('lpj::registrasifinal.edit', compact('id'));
|
return view('lpj::registrasifinal.edit', compact('id'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setData(Request $request): JsonResponse
|
public function setData(Request $request)
|
||||||
{
|
: JsonResponse {
|
||||||
$data = array();
|
$data = [];
|
||||||
$datas = array();
|
$datas = [];
|
||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
$datas = Permohonan::find($id);
|
$datas = Permohonan::find($id);
|
||||||
|
|
||||||
if ($datas) {
|
if ($datas) {
|
||||||
$penawaran=null;
|
$penawaran = null;
|
||||||
$regions=null;
|
$regions = null;
|
||||||
$regions=Regions::pluck('name', 'id');
|
$regions = Regions::pluck('name', 'id');
|
||||||
$penawaran = PenawaranTender::where('nomor_registrasi','=',$datas->nomor_registrasi)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $datas->nomor_registrasi)->first();
|
||||||
|
|
||||||
$penawaranString = "";
|
$penawaranString = "";
|
||||||
if($penawaran->status)
|
if ($penawaran->status) {
|
||||||
{
|
$penawaranString = convertSlug($penawaran->status);
|
||||||
$penawaranString = convertSlug($penawaran->status);
|
|
||||||
$penawaran->status = $penawaranString;
|
$penawaran->status = $penawaranString;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($datas->dokumen)
|
if ($datas->dokumen) {
|
||||||
{
|
$pdfSPK_path = Storage::url($datas->dokumen);
|
||||||
$pdfSPK_path = Storage::url($datas->dokumen);
|
|
||||||
$datas->dokumen = $pdfSPK_path;
|
$datas->dokumen = $pdfSPK_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
$data['status'] = 'success';
|
$data['status'] = 'success';
|
||||||
$data['regions'] = $regions;
|
$data['regions'] = $regions;
|
||||||
$data['penawaran'] = $penawaran;
|
$data['penawaran'] = $penawaran;
|
||||||
$data['datas'] = $datas;
|
$data['datas'] = $datas;
|
||||||
$data['message']['message_success'] = array("data successfully found");
|
$data['message']['message_success'] = ["data successfully found"];
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['datas'] = null;
|
$data['datas'] = null;
|
||||||
$data['message']['message_data'] = array("data not found");
|
$data['message']['message_data'] = ["data not found"];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_ajax'] = array("no ajax request");
|
$data['message']['message_ajax'] = ["no ajax request"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(Request $request, $id): JsonResponse
|
public function update(Request $request, $id)
|
||||||
{
|
: JsonResponse {
|
||||||
// init
|
// init
|
||||||
$data = array();
|
$data = [];
|
||||||
$dataPermohonan = array();
|
$dataPermohonan = [];
|
||||||
$dataPenawaran = array();
|
$dataPenawaran = [];
|
||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$validator = RegistrasiFinalController::rulesEditnya($request, $id);
|
$validator = RegistrasiFinalController::rulesEditnya($request, $id);
|
||||||
|
|
||||||
if ($validator['fails']) {
|
if ($validator['fails']) {
|
||||||
$data['message'] = $validator['errors'];
|
$data['message'] = $validator['errors'];
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by
|
// update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by
|
||||||
// update table penawaran => status (registrasi-final)
|
// update table penawaran => status (registrasi-final)
|
||||||
$dataPermohonan = [
|
$dataPermohonan = [
|
||||||
'status' => 'registrasi-final',
|
'status' => 'registrasi-final',
|
||||||
'region_id' => $request->region,
|
'region_id' => $request->region,
|
||||||
'keterangan' => $request->catatan,
|
'keterangan' => $request->catatan,
|
||||||
'authorized_at' => now(),
|
'authorized_at' => now(),
|
||||||
'authorized_status' =>1,
|
'authorized_status' => 1,
|
||||||
'authorized_by' => Auth::id()
|
'authorized_by' => Auth::id(),
|
||||||
];
|
];
|
||||||
|
|
||||||
$dataPenawaran = ['status' => 'registrasi-final'];
|
$dataPenawaran = ['status' => 'registrasi-final'];
|
||||||
|
|
||||||
|
|
||||||
$permohonan = Permohonan::find($id);
|
$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);
|
$permohonan->update($dataPermohonan);
|
||||||
$penawaran->update($dataPenawaran);
|
$penawaran->update($dataPenawaran);
|
||||||
//
|
//
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
$data['status'] = 'success';
|
$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) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$data['status'] = 'error';
|
$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 {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_ajax'] = array("no ajax request");
|
$data['message']['message_ajax'] = ["no ajax request"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rulesEditnya($request, $id)
|
public function rulesEditnya($request, $id)
|
||||||
{
|
{
|
||||||
$validate_catatan='';
|
$validate_catatan = '';
|
||||||
|
|
||||||
$validateIt = [
|
$validateIt = [
|
||||||
// 'name' diambil dari definisi parameter yang di kirim pada POST Data
|
// 'name' diambil dari definisi parameter yang di kirim pada POST Data
|
||||||
'region' => 'required',
|
'region' => 'required',
|
||||||
'catatan' => 'required',
|
'catatan' => 'required',
|
||||||
];
|
];
|
||||||
|
|
||||||
$messageIt = [
|
$messageIt = [
|
||||||
'region.required' => 'Silahkan pilih Region',
|
'region.required' => 'Silahkan pilih Region',
|
||||||
'catatan.required' => 'Silahkan isi Catatan'
|
'catatan.required' => 'Silahkan isi Catatan',
|
||||||
];
|
];
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), $validateIt, $messageIt);
|
$validator = Validator::make($request->all(), $validateIt, $messageIt);
|
||||||
|
|
||||||
$data['fails'] = $validator->fails();
|
$data['fails'] = $validator->fails();
|
||||||
$data['errors'] = $validator->errors();
|
$data['errors'] = $validator->errors();
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
|
|||||||
@@ -114,6 +114,9 @@
|
|||||||
},
|
},
|
||||||
tujuan_penilaian_kjpp_name: {
|
tujuan_penilaian_kjpp_name: {
|
||||||
title: 'Tujuan Penilaian',
|
title: 'Tujuan Penilaian',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.tujuan_penilaian_kjpp.name || ''}`;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
nama_kjpp_sebelumnya: {
|
nama_kjpp_sebelumnya: {
|
||||||
title: 'Nama KJPP Terpilih',
|
title: 'Nama KJPP Terpilih',
|
||||||
|
|||||||
Reference in New Issue
Block a user