Refactor data rendering and query structures in SPK

- Mengubah struktur query untuk mengambil data dari relasi yang lebih sesuai.
- Memperbaiki atribut render di view agar lebih konsisten dengan struktur data baru.
- Membersihkan logika yang tidak digunakan, termasuk format data untuk tanggal, biaya, dan path dokumen.
- Mengoptimalkan fungsi download dengan menggunakan ID langsung dari PenawaranTender.
This commit is contained in:
Daeng Deni Mardaeni
2024-12-20 15:09:47 +07:00
parent c71dcdbdf5
commit 5fde58d00c
2 changed files with 40 additions and 33 deletions

View File

@@ -36,15 +36,17 @@ use Illuminate\Support\Facades\Auth;
// Retrieve data from the database // Retrieve data from the database
// $query =Permohonan::query()->with(['penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk'); // $query =Permohonan::query()->with(['penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk');
// $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian'])->get(); // $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian'])->get();
$query =Permohonan::query()->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian','penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk'); //$query =Permohonan::query()->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian','penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk');
$query = PenawaranTender::query()->with(['permohonan.user', 'permohonan.debiture', 'permohonan.branch', 'permohonan.tujuanPenilaian','permohonan.penilaian','tujuanPenilaianKjpp']);
// 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->whereRelation('permohonan','nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('penawaran.tanggal_permohonan', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%'); $q->orWhere('status', 'LIKE', '%' . $search . '%');
}); });
@@ -81,34 +83,34 @@ use Illuminate\Support\Facades\Auth;
foreach($data as $obj) foreach($data as $obj)
{ {
// tanggal_permohonan // tanggal_permohonan
if ($obj->tanggal_permohonan) { if ($obj->permohonan->tanggal_permohonan) {
$data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y'); $data[$i]->permohonan->tanggal_permohonan = Carbon::parse($obj->permohonan->tanggal_permohonan)->format('d M Y');
} }
if($obj->penawaran->tanggal_penilaian_sebelumnya) if($obj->tanggal_penilaian_sebelumnya)
{ {
$data[$i]->penawaran->tanggal_penilaian_sebelumnya = Carbon::parse($obj->penawaran->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->penawaran->biaya_kjpp_sebelumnya) if($obj->biaya_kjpp_sebelumnya)
{ {
$data[$i]->penawaran->biaya_kjpp_sebelumnya = formatRupiah($obj->penawaran->biaya_kjpp_sebelumnya); $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
} }
// date_range // date_range
if($obj->penawaran->start_date && $obj->penawaran->end_date) if($obj->start_date && $obj->end_date)
{ {
$data[$i]->date_range = Carbon::parse($obj->penawaran->start_date)->format('d M Y').' - '. $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.
Carbon::parse($obj->penawaran->end_date)->format('d M Y'); Carbon::parse($obj->end_date)->format('d M Y');
} }
// data spk_dokumen_path // data spk_dokumen_path
if($obj->penawaran->spk_dokumen_path) if($obj->spk_dokumen_path)
{ {
$spk_dokumen_path = Storage::url($obj->penawaran->spk_dokumen_path); $spk_dokumen_path = Storage::url($obj->spk_dokumen_path);
$data[$i]->penawaran->spk_dokumen_path = $spk_dokumen_path; $data[$i]->spk_dokumen_path = $spk_dokumen_path;
} }
$i++; $i++;
@@ -393,8 +395,7 @@ use Illuminate\Support\Facades\Auth;
public function download($id) { public function download($id) {
// dokumen pdf diambil dari penawaran.spk_dokumen_path // dokumen pdf diambil dari penawaran.spk_dokumen_path
$permohonan = Permohonan::find($id); $document = PenawaranTender::find($id);
$document = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first();
return response()->download(storage_path('app/public/' .$document->spk_dokumen_path)); return response()->download(storage_path('app/public/' .$document->spk_dokumen_path));
} }

View File

@@ -126,12 +126,15 @@
}, },
'nomor_registrasi': { 'nomor_registrasi': {
title: 'Nomor Registrasi', title: 'Nomor Registrasi',
render: (item, data) => {
return `${data.permohonan.nomor_registrasi}`;
},
}, },
code: { code: {
title: 'Nomor Penawaran', title: 'Nomor Penawaran',
render: (item, data) => { render: (item, data) => {
if(data.penawaran) { if(data.code) {
return `${data.penawaran.code}`; return `${data.code}`;
} }
return '-'; return '-';
@@ -139,24 +142,27 @@
}, },
tanggal_permohonan: { tanggal_permohonan: {
title: 'Tanggal Permohonan', title: 'Tanggal Permohonan',
render: (item, data) => {
return `${data.permohonan.tanggal_permohonan}`;
},
}, },
user_id: { user_id: {
title: 'User Pemohon', title: 'User Pemohon',
render: (item, data) => { render: (item, data) => {
return `${data.user.name}`; return `${data.permohonan.user.name}`;
}, },
}, },
branch_id: { branch_id: {
title: 'Cabang Pemohon', title: 'Cabang Pemohon',
render: (item, data) => { render: (item, data) => {
return `${data.branch.name}`; return `${data.permohonan.branch.name}`;
}, },
}, },
debitur_id: { debitur_id: {
title: 'Debitur', title: 'Debitur',
render: (item, data) => { render: (item, data) => {
if (data.debiture) { if (data.permohonan.debiture) {
return `${data.debiture.name}`; return `${data.permohonan.debiture.name}`;
} }
return "-"; return "-";
}, },
@@ -167,14 +173,14 @@
tujuan_penilaian_id: { tujuan_penilaian_id: {
title: 'Tujuan Penilaian', title: 'Tujuan Penilaian',
render: (item, data) => { render: (item, data) => {
return `${data.tujuan_penilaian.name}`; return `${data.permohonan.tujuan_penilaian.name}`;
}, },
}, },
tujuan_penilaian_kjpp_id: { tujuan_penilaian_kjpp_id: {
title: 'Tujuan Penilaian KJPP', title: 'Tujuan Penilaian KJPP',
render: (item, data) => { render: (item, data) => {
if(data.penawaran.tujuan_penilaian_kjpp) { if(data.tujuan_penilaian_kjpp) {
return `${data.penawaran.tujuan_penilaian_kjpp.name}`; return `${data.tujuan_penilaian_kjpp.name}`;
} }
return '-'; return '-';
@@ -183,15 +189,15 @@
kjpp_data: { kjpp_data: {
title: 'Nama KJPP Terpilih', title: 'Nama KJPP Terpilih',
render: (item, data) => { render: (item, data) => {
return `${data.penawaran.nama_kjpp_sebelumnya}`+'<br />' return `${data.nama_kjpp_sebelumnya}`+'<br />'
+`${data.penawaran.biaya_kjpp_sebelumnya}`+'<br /> ' +`${data.biaya_kjpp_sebelumnya}`+'<br /> '
+`${data.penawaran.tanggal_penilaian_sebelumnya}`; +`${data.tanggal_penilaian_sebelumnya}`;
}, },
}, },
status: { status: {
title: 'Status', title: 'Status',
render: (item, data) => { render: (item, data) => {
return `${data.penawaran.status}`.toUpperCase(); return `${data.status}`.toUpperCase();
}, },
}, },
actions: { actions: {
@@ -199,9 +205,9 @@
render: (item, data) => { render: (item, data) => {
var spkShow =''; var spkShow ='';
var spkCreate=''; var spkCreate='';
if(!data.penawaran.spk_dokumen_path) if(!data.spk_dokumen_path)
{ {
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.penawaran.id})" > spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id})" >
<i class="ki-outline ki-notepad-edit"></i> <i class="ki-outline ki-notepad-edit"></i>
</a>`; </a>`;
} }
@@ -211,7 +217,7 @@
<a href="/spk/${data.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.penawaran.id})" > spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id})" >
<i class="ki-outline ki-notepad-edit"></i> <i class="ki-outline ki-notepad-edit"></i>
</a>`; </a>`;
} }