refactor(spk): optimalkan pengambilan data penawaran

- Mengubah query untuk mengambil data penawaran dengan menggunakan eager loading.
- Menambahkan relasi baru pada model PenawaranTender untuk penilaian dan persetujuan.
- Memperbaiki tampilan pada dokumen SPK dan halaman edit dengan mengurangi duplikasi kode.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-05 11:18:02 +07:00
parent e52fd8243f
commit 74872076e4
4 changed files with 42 additions and 47 deletions

View File

@@ -148,26 +148,17 @@ use Illuminate\Support\Facades\Auth;
public function edit($id)
{
// dd(Carbon::now()->addDays(1)->format('d F Y'));
// dd(Carbon::now()->subDays(1)->format('d F Y')); jenis_laporan_name
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id')
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id')
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
->leftJoin('penilaian', 'penilaian.nomor_registrasi','=','penawaran.nomor_registrasi')
->where('detail_penawaran.status','=',1)
->where('penawaran.id','=', $id)
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
'detail_penawaran.no_proposal as detail_penawaran_no_proposal',
'detail_penawaran.tgl_proposal as detail_penawaran_tgl_proposal',
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
'kjpp.name as kjpp_name',
'kjpp.address as kjpp_address',
'jenis_laporan.name as jenis_laporan_name',
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name',
'jenis_laporan.code as jenis_laporan_code',
'penilaian.waktu_penilaian as penilaian_waktu_penilain'
)->first();
$penawaran = PenawaranTender::with(['jenisLaporan','tujuanPenilaianKjpp','detail.kjpp','penilaian','persetujuan_penawaran'])->where('id',$id)->first();
$penawaran->attachmentku = $penawaran->detail->attachment;
$penawaran->detail_penawaran_no_proposal = $penawaran->detail->no_proposal;
$penawaran->detail_penawaran_tgl_proposal = $penawaran->detail->tgl_proposal;
$penawaran->detail_penawaran_biaya_penawaran = $penawaran->detail->biaya_penawaran;
$penawaran->kjpp_name = $penawaran->detail->kjpp->name;
$penawaran->kjpp_address = $penawaran->detail->kjpp->address;
$penawaran->jenis_laporan_name = $penawaran->jenisLaporan->name;
$penawaran->jenis_laporan_code = $penawaran->jenisLaporan->code;
$penawaran->tujuan_penilaian_kjpp_name = $penawaran->tujuanPenilaianKjpp->name;
$penawaran->penilaian_waktu_penilain = $penawaran->penilaian->waktu_penilaian;
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')
@@ -236,28 +227,24 @@ use Illuminate\Support\Facades\Auth;
public function update(Request $request, $id): JsonResponse
{
// init
$data1 = [];
// $dataPermohonan = array();
$dataPenawaran = [];
// data
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id')
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id')
->leftJoin('penilaian', 'penilaian.nomor_registrasi','=','penawaran.nomor_registrasi')
->where('detail_penawaran.status','=',1)
->where('penawaran.id','=', $id)
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
'detail_penawaran.no_proposal as detail_penawaran_no_proposal',
'detail_penawaran.tgl_proposal as detail_penawaran_tgl_proposal',
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
'kjpp.name as kjpp_name',
'kjpp.address as kjpp_address',
'jenis_laporan.name as jenis_laporan_name',
'jenis_laporan.code as jenis_laporan_code',
'penilaian.waktu_penilaian as penilaian_waktu_penilain'
)->first();
$penawaran = PenawaranTender::with(['jenisLaporan','tujuanPenilaianKjpp','detail.kjpp','penilaian','persetujuan_penawaran'])->where('id',$id)->first();
$penawaran->attachmentku = $penawaran->detail->attachment;
$penawaran->detail_penawaran_no_proposal = $penawaran->detail->no_proposal;
$penawaran->detail_penawaran_tgl_proposal = $penawaran->detail->tgl_proposal;
$penawaran->detail_penawaran_biaya_penawaran = $penawaran->detail->biaya_penawaran;
$penawaran->kjpp_name = $penawaran->detail->kjpp->name;
$penawaran->kjpp_address = $penawaran->detail->kjpp->address;
$penawaran->jenis_laporan_name = $penawaran->jenisLaporan->name;
$penawaran->jenis_laporan_code = $penawaran->jenisLaporan->code;
$penawaran->tujuan_penilaian_kjpp_name = $penawaran->tujuanPenilaianKjpp->name;
$penawaran->penilaian_waktu_penilain = $penawaran->penilaian->waktu_penilaian;
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')

View File

@@ -59,4 +59,12 @@ class PenawaranTender extends Model
public function persetujuan(){
return $this->belongsTo(PersetujuanPenawaran::class, 'id', 'penawaran_id');
}
public function penilaian(){
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
}
public function persetujuan_penawaran(){
return $this->belongsTo(PersetujuanPenawaran::class, 'id', 'penawaran_id');
}
}

View File

@@ -50,7 +50,7 @@
</table>
<br/>
<center>
<h2 style="text-decoration: underline;">SURAT PERINTAH KERJA</h2>
<h2 style="text-decoration: underline;">SURAT PERINTAH KERJAaaa</h2>
<p>
No. {{ $penawaran->spk_no }}
<data id="date"></data>
@@ -58,12 +58,11 @@
<p>Tanggal: <?php
echo date('d F Y'); ?></p>
</center>
<br>
<h3>Kepada</h3>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_name }}</p>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_address }}</p>
<br/>
<p style="color: red;">{{ $penawaran->kjpp_name }}</p>
<p style="color: red;">{{ $penawaran->kjpp_address }}</p>
<br/>
<h3>Perihal: <b>Penunjukan sebagai Penyedia Jasa Penilaian Agunan</b></h3>
<br/>
<p style="text-align: justify;">
Berdasarkan surat penawaran Saudara
@@ -238,8 +237,8 @@
</tr>
<tr>
<td>
<span style="color: red;">{{ $data->user->name }}</span><br>
<span style="color: red;">{{ $data->user->getRoleNames()[0] }}</span>
<span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->name }}</span><br>
<span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->getRoleNames()[0] }}</span>
</td>
<td align="center">(……………………………………..)</td>
</tr>

View File

@@ -74,10 +74,11 @@
Tanggal: <?php
echo date('d F Y'); ?></p>
</center>
<br>
<h3>Kepada</h3>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_name }}</p>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_address }}</p>
<br/>
<p style="color: red;">{{ $penawaran->kjpp_name }}</p>
<p style="color: red;">{{ $penawaran->kjpp_address }}</p>
<br/>
<h3>Perihal: <b>Penunjukan sebagai Penyedia Jasa Penilaian Agunan</b></h3>
<br/>
@@ -257,8 +258,8 @@
</tr>
<tr>
<td>
<span style="color: red;">{{ $data->user->name }}</span><br>
<span style="color: red;">{{ $data->user->getRoleNames()[0] }}</span>
<span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->name }}</span><br>
<span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->getRoleNames()[0] }}</span>
</td>
<td align="center">(……………………………………..)</td>
</tr>