Tambah relasi dan optimalkan query pada Permohonan
Tambahkan metode relasi baru untuk `penawaran` dan `tujuan_penilaian_kjpp` di model Permohonan untuk memudahkan akses data terkait. Sesuaikan kembali query di SpkController supaya lebih efisien dengan menggunakan eager loading. Update tampilan di `spk/index.blade.php` untuk menyesuaikan data relasi yang baru ditambahkan di query.
This commit is contained in:
@@ -34,18 +34,15 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query =Permohonan::query()
|
$query =Permohonan::query()->with(['penawaran','tujuan_penilaian_kjpp'])
|
||||||
->leftJoin('penawaran', 'penawaran.nomor_registrasi','=','permohonan.nomor_registrasi')
|
->where('permohonan.status','=','spk');
|
||||||
->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
|
// Apply search filter if provided
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
$search = $request->get('search');
|
$search = $request->get('search');
|
||||||
$query->where(function ($q) use ($search) {
|
$query->where(function ($q) use ($search) {
|
||||||
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
|
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
|
||||||
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
|
$q->orWhere('penawaran.tanggal_permohonan', 'LIKE', '%' . $search . '%');
|
||||||
|
|
||||||
$q->orWhere('status', 'LIKE', '%' . $search . '%');
|
$q->orWhere('status', 'LIKE', '%' . $search . '%');
|
||||||
});
|
});
|
||||||
@@ -76,7 +73,7 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
// Get the data for the current page
|
// Get the data for the current page
|
||||||
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||||
|
|
||||||
$data = $query->with(['permohonan'])->get();
|
$data = $query->get();
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
foreach($data as $obj)
|
foreach($data as $obj)
|
||||||
|
|||||||
@@ -89,4 +89,12 @@ class Permohonan extends Base
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(Regions::class, 'region_id');
|
return $this->belongsTo(Regions::class, 'region_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function penawaran(){
|
||||||
|
return $this->hasMany(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tujuan_penilaian_kjpp(){
|
||||||
|
return $this->belongsTo(TujuanPenilaianKJPP::class, 'tujuan_penilaian_kjpp_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,25 +115,39 @@
|
|||||||
},
|
},
|
||||||
code: {
|
code: {
|
||||||
title: 'Kode Penawaran',
|
title: 'Kode Penawaran',
|
||||||
|
render: (item, data) => {
|
||||||
|
console.log(data);
|
||||||
|
return `${data.penawaran.code}`;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
date_range: {
|
date_range: {
|
||||||
title: 'Tanggal Penawaran',
|
title: 'Tanggal Penawaran',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.penawaran.start_date} - ${data.penawaran.end_date}`;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
tujuan_penilaian_kjpp_name: {
|
tujuan_penilaian_kjpp_name: {
|
||||||
title: 'Tujuan Penilaian',
|
title: 'Tujuan Penilaian',
|
||||||
|
render: (item, data) => {
|
||||||
|
if(data.tujuan_penilaian_kjpp) {
|
||||||
|
return `${data.tujuan_penilaian_kjpp.name}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '-';
|
||||||
|
},
|
||||||
},
|
},
|
||||||
nama_kjpp_sebelumnya: {
|
nama_kjpp_sebelumnya: {
|
||||||
title: 'Nama KJPP Terpilih',
|
title: 'Nama KJPP Terpilih',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
return `${data.nama_kjpp_sebelumnya}`+'<br />'
|
return `${data.penawaran.nama_kjpp_sebelumnya}`+'<br />'
|
||||||
+`${data.biaya_kjpp_sebelumnya}`+'<br /> '
|
+`${data.penawaran.biaya_kjpp_sebelumnya}`+'<br /> '
|
||||||
+`${data.tanggal_penilaian_sebelumnya}`;
|
+`${data.penawaran.tanggal_penilaian_sebelumnya}`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
status: {
|
status: {
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
return `${data.status}`.toUpperCase();
|
return `${data.penawaran.status}`.toUpperCase();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@@ -143,17 +157,17 @@
|
|||||||
var spkCreate='';
|
var spkCreate='';
|
||||||
if(!data.dokumenSPK)
|
if(!data.dokumenSPK)
|
||||||
{
|
{
|
||||||
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" onclick="spkCreate(${data.id})" >
|
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" onclick="spkCreate(${data.penawaran.id})" >
|
||||||
<i class="ki-outline ki-notepad-edit"></i>
|
<i class="ki-outline ki-notepad-edit"></i>
|
||||||
</a>`;
|
</a>`;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
spkShow =`<div class="flex flex-nowrap justify-center">
|
spkShow =`<div class="flex flex-nowrap justify-center">
|
||||||
<a href="/spk/${data.permohonan.id}/download" class="btn btn-sm btn-icon btn-clear btn-primary" title="Download SPK">
|
<a href="/spk/${data.id}/download" class="btn btn-sm btn-icon btn-clear btn-primary" title="Download SPK">
|
||||||
<i class="ki-filled ki-cloud-download"></i>
|
<i class="ki-filled ki-cloud-download"></i>
|
||||||
</a> `;
|
</a> `;
|
||||||
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id})" >
|
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.penawaran.id})" >
|
||||||
<i class="ki-outline ki-notepad-edit"></i>
|
<i class="ki-outline ki-notepad-edit"></i>
|
||||||
</a>`;
|
</a>`;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user