Menambahkan fitur Surat Tender di Menu Tender di Bagian Penawaran Ulang

This commit is contained in:
2024-11-04 14:37:49 +07:00
parent 8b1c9516aa
commit 472a5673f9
9 changed files with 737 additions and 633 deletions

View File

@@ -241,15 +241,25 @@ class TenderController extends Controller
}
/**
* Remove the specified resource from storage.
* Tampilkan Surat Tender
*/
public function destroy($id)
public function showSuratTender($noreg)
{
//
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
// Kalau tidak ketemu nomor registrasi dengan tabel penawaran
if (!$penawaran) {
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
}
// Jika batas tanggal penawaran sudah lewat
if ($penawaran->end_date < date('Y-m-d')) {
return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])
->with('error', 'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!');
}
return view('lpj::penawaran.surat_tender', compact('penawaran', 'noreg'));
}
public function datatablesPenawaran(Request $request)

View File

@@ -19,4 +19,9 @@ class JenisLaporan extends Model
protected $fillable = ['code', 'name'];
public function penawaran()
{
return $this->hasMany(PenawaranTender::class, 'jenis_laporan_id', 'id');
}
}

View File

@@ -36,4 +36,14 @@ class PenawaranTender extends Model
{
return $this->hasMany(TujuanPenilaianKJPP::class, 'id', 'tujuan_penilaian_kjpp_id');
}
public function permohonan()
{
return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi');
}
public function jenisLaporan()
{
return $this->belongsTo(JenisLaporan::class, 'jenis_laporan_id', 'id');
}
}

View File

@@ -79,4 +79,9 @@
{
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
}
public function penawaranTender()
{
return $this->hasMany(PenawaranTender::class, 'nomor_registrasi');
}
}

View File

@@ -189,7 +189,12 @@
@enderror
</div>
</div>
<div class="flex justify-end">
<div class="flex justify-end gap-1.5">
@if (isset($penawaran->nomor_registrasi))
<a href="{{ route('tender.penawaran.showSuratTender', $noreg) }}" class="btn btn-primary">
Surat Tender
</a>
@endif
<button type="submit" class="btn btn-primary">
Save
</button>

View File

@@ -195,7 +195,12 @@
</div>
</div>
<div class="flex justify-end">
<div class="flex justify-end gap-1.5">
@if (isset($penawaran->nomor_registrasi))
<a href="{{ route('tender.penawaran.showSuratTender', $noreg) }}" class="btn btn-primary">
Surat Tender
</a>
@endif
<button type="submit" class="btn btn-primary">
Penawaran Ulang
</button>

View File

@@ -0,0 +1,56 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName(), request()->route('noreg')) }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Surat Tender
</h3>
<div class="flex items-center gap-2">
@if (isset($penawaran->nomor_registrasi))
<a href="{{ route('tender.penawaran.editPenawaran', $noreg) }}" class="btn btn-xs btn-info"><i
class="ki-filled ki-exit-left"></i> Back</a>
@else
<a href="{{ route('tender.penawaran.createPenawaran', $noreg) }}" class="btn btn-xs btn-info"><i
class="ki-filled ki-exit-left"></i> Back</a>
@endif
</div>
</div>
<div class="card-body grid gap-5">
<p>Dear
<span class="font-bold">{{ ucwords(auth()->user()->name) ?? 'Tidak Ada' }}</span>
</p>
<p>Mohon untuk dibuatkan proposal jasa appraisal atas nama <span
class="font-bold">{{ ucwords($penawaran->permohonan->user->name) }}</span>, tujuan penilaian
untuk <span class="font-bold">
@foreach ($penawaran->tujuanPenilaianKJPP as $tujuanPenilaianKJPP)
{{ $tujuanPenilaianKJPP->name }}
@endforeach
</span>, laporan dalam bentuk <span class="font-bold">{{ $penawaran->jenisLaporan->name }}</span>,
dengan data-data sebagai berikut :</p>
<ul>
<li>Aset Jaminan: <span class="font-bold">[otomasi dari tabel permohonan]</span></li>
<li>Lokasi Jaminan: <span class="font-bold">[otomasi dari tabel permohonan]</span></li>
<li>LT / LB: <span class="font-bold">[otomasi dari tabel permohonan]</span></li>
</ul>
<p>Harap proposal dibuat dengan harga yang minimal sehingga tidak perlu tawar menawar lagi.</p>
<p>Mohon proposal dapat saya terima segera, sebelum
<span class="font-bold">{{ formatTanggalIndonesia($penawaran->end_date) }} pukul 17.00 WIB</span>
</p>
<p>Best Regards,
<span class="font-bold">[otomasi dari nama dan tanda tangan user penginput]</span>
Sub Direktorat Appraisal
</p>
<p>PT. Bank Artha Graha Internasional, Tbk.<br>
Gedung Bank Artha Graha, Lantai 3<br>
Jl. Kwiitang Raya No 24-26, Jakarta Pusat - 10420.<br>
Telp. 021 - 3903040 (H)</p>
</div>
</div>
</div>
@endsection

View File

@@ -394,6 +394,11 @@
$trail->push('Penawaran Ulang', route('tender.penawaran.editPenawaran', $noreg));
});
Breadcrumbs::for('tender.penawaran.showSuratTender', function (BreadcrumbTrail $trail, $noreg) {
$trail->parent('tender.penawaran');
$trail->push('Surat Tender', route('tender.penawaran.showSuratTender', $noreg));
});
Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) {
$trail->parent('tender');

View File

@@ -396,6 +396,9 @@ Route::middleware(['auth'])->group(function () {
Route::get('penawaran/datatables', [TenderController::class, 'datatablesPenawaran'])->name(
'penawaran.datatables',
);
Route::get('penawaran/{noreg}/suratTender', [TenderController::class, 'showSuratTender'])->name(
'penawaran.showSuratTender'
);
// Penawaran Ulang
Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name(