diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index c51457b..f519025 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -25,6 +25,13 @@ function formatTanggalIndonesia($date) return $carbonDate->format('d') . ' ' . $month . ' ' . $carbonDate->format('Y'); } +function formatTanggalIndonesia2($date) +{ + \Carbon\Carbon::setLocale('id'); + $waktu = \Carbon\Carbon::parse($date); + return $waktu->translatedFormat('d F Y') . ' pukul ' . $waktu->format('H.i') . ' WIB'; +} + function formatRupiah($number) { @@ -96,8 +103,9 @@ function checkKelengkapanDetailKJPP($id) } // convert -function convertSlug($slug) { - +function convertSlug($slug) +{ + $words = explode('-', $slug); foreach ($words as $index => $word) { @@ -107,4 +115,3 @@ function convertSlug($slug) { return implode(' ', $words); } // andy add - diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 6dd992f..f57a513 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -3,13 +3,20 @@ namespace Modules\Lpj\Http\Controllers; use Exception; +use Barryvdh\DomPDF\PDF; use Illuminate\Http\Request; use Modules\Lpj\Models\KJPP; +use Modules\Location\Models\City; use Illuminate\Support\Facades\DB; use Modules\Lpj\Models\Permohonan; use App\Http\Controllers\Controller; +use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; +use Modules\Location\Models\Village; use Modules\Lpj\Models\JenisLaporan; +use Modules\Location\Models\District; +use Modules\Location\Models\Province; +use Illuminate\Support\Facades\Storage; use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\StatusPermohonan; use Modules\Lpj\Models\TujuanPenilaianKJPP; @@ -66,12 +73,14 @@ class TenderController extends Controller $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); // Add created_by/updated_by from the authenticated user - $userId = auth()->user()->id; + $userId = Auth::user()->id; $validated['nomor_registrasi'] = $permohonan->nomor_registrasi; $validated['status'] = $request->input('status') ?? 'tender'; $validated['updated_by'] = $userId; // Updating the record + $validated['end_date'] = $request->input('end_date') . ' 17:00:00'; + // dd($validated['end_date']); $permohonan->update($validated); // Adding created_by for the new PenawaranTender record @@ -117,6 +126,11 @@ class TenderController extends Controller $penawaranExists = PenawaranTender::where('nomor_registrasi', $noreg)->exists(); $penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + + if ($penawaran1->status != 'tender') { + return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!'); + } + // dd($penawaran1->id); if ($penawaran1) { $penawaran = $penawaran1; @@ -143,6 +157,14 @@ class TenderController extends Controller $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + if (!$penawaran) { + return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with('error', 'Penawaran dengan nomor registrasi ini belum dibuat. Silahkan isi terlebih dahulu!'); + } + + if ($penawaran->status != 'tender') { + return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!'); + } + $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); $jenis_laporan = JenisLaporan::all(); @@ -152,6 +174,8 @@ class TenderController extends Controller $kjpp = KJPP::all(); + // dd($penawaran); + return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps', 'permohonan')); } @@ -171,13 +195,15 @@ class TenderController extends Controller $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); // Ambil ID user yang sedang login - $userId = auth()->user()->id; + $userId = Auth::user()->id; // Jangan ubah created_by untuk data yang sudah ada $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; $validated['status'] = $request->input('status') ?? 'tender'; $validated['created_by'] = $userId; $validated['updated_by'] = $userId; // Hanya update 'updated_by' + $validated['end_date'] = $request->input('end_date') . ' 17:00:00'; + // dd($validated['end_date']); // Update data penawaran dan permohonan $penawaran->update($validated); @@ -247,19 +273,46 @@ class TenderController extends Controller public function showSuratTender($noreg) { $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + + if ($penawaran->status != 'tender') { + return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!'); + } + + // Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan + if ($permohonan->debiture->documents->isEmpty()) { + return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id]) + ->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!'); + } + + foreach ($permohonan->debiture->documents as $document) { + $village_permohonan = $document->village_code; + $district_permohonan = $document->district_code; + $city_permohonan = $document->city_code; + $province_permohonan = $document->province_code; + } + + $villages = Village::where('code', $village_permohonan)->get(); + $districts = District::where('code', $district_permohonan)->get(); + $cities = City::where('code', $city_permohonan)->get(); + $provinces = Province::where('code', $province_permohonan)->get(); // 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!'); } + + date_default_timezone_set('Asia/Jakarta'); + + $now = date('Y-m-d H:i:s'); // Jika batas tanggal penawaran sudah lewat - if ($penawaran->end_date < date('Y-m-d')) { + if ($penawaran->end_date < $now) { 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')); + return view('lpj::penawaran.surat_tender', compact('penawaran', 'noreg', 'permohonan', 'villages', 'districts', 'cities', 'provinces')); } public function datatablesPenawaran(Request $request) @@ -414,4 +467,31 @@ class TenderController extends Controller // Kembalikan hasil pengecekan sebagai JSON return response()->json(['exists' => $exists]); } + + public function downloadSuratTender($noreg) + { + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + + if ($penawaran->status != 'tender') { + return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!'); + } + + foreach ($permohonan->debiture->documents as $document) { + $village_permohonan = $document->village_code; + $district_permohonan = $document->district_code; + $city_permohonan = $document->city_code; + $province_permohonan = $document->province_code; + } + + $villages = Village::where('code', $village_permohonan)->get(); + $districts = District::where('code', $district_permohonan)->get(); + $cities = City::where('code', $city_permohonan)->get(); + $provinces = Province::where('code', $province_permohonan)->get(); + + $pdf = app('dompdf.wrapper'); // create an instance of the PDF class + $pdf->loadView('lpj::penawaran.surat_tender_download', compact('penawaran', 'permohonan', 'villages', 'districts', 'cities', 'provinces')); + + return $pdf->download('surat_tender' . time() . '.pdf'); + } } diff --git a/app/Models/PenawaranDetailTender.php b/app/Models/PenawaranDetailTender.php index 8b65a91..619f9e2 100644 --- a/app/Models/PenawaranDetailTender.php +++ b/app/Models/PenawaranDetailTender.php @@ -22,4 +22,9 @@ class PenawaranDetailTender extends Model { return $this->belongsTo(PenawaranTender::class, 'penawaran_id', 'id'); } + + public function kjpp(): BelongsTo + { + return $this->belongsTo(KJPP::class, 'kjpp_rekanan_id', 'id'); + } } diff --git a/app/Models/PenawaranTender.php b/app/Models/PenawaranTender.php index c78d00e..f38d42e 100644 --- a/app/Models/PenawaranTender.php +++ b/app/Models/PenawaranTender.php @@ -34,7 +34,7 @@ class PenawaranTender extends Model // menambahkan relasi tujuan penilaian KJPP public function tujuanPenilaianKjpp() { - return $this->belongsTo(TujuanPenilaianKJPP::class, 'tujuan_penilaian_kjpp_id','id'); + return $this->belongsTo(TujuanPenilaianKJPP::class, 'tujuan_penilaian_kjpp_id', 'id'); } public function permohonan() @@ -46,6 +46,4 @@ class PenawaranTender extends Model { return $this->belongsTo(JenisLaporan::class, 'jenis_laporan_id', 'id'); } - - } diff --git a/database/migrations/2024_11_13_015203_update_penawaran_table.php b/database/migrations/2024_11_13_015203_update_penawaran_table.php new file mode 100644 index 0000000..545d623 --- /dev/null +++ b/database/migrations/2024_11_13_015203_update_penawaran_table.php @@ -0,0 +1,28 @@ +datetime('end_date')->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->date('end_date')->change(); + }); + } +}; diff --git a/database/seeders/LpjDatabaseSeeder.php b/database/seeders/LpjDatabaseSeeder.php index 0377451..53a1b25 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -12,34 +12,34 @@ class LpjDatabaseSeeder extends Seeder public function run(): void { $this->call([ - BranchSeeder::class, - CurrencySeeder::class, - JenisFasilitasKreditSeeder::class, - JenisLegalitasJaminanSeeder::class, - JenisJaminanSeeder::class, - JenisDokumenSeeder::class, - TujuanPenilaianSeeder::class, - NilaiPlatformSeeder::class, - HubunganPemilikJaminanSeeder::class, - HubunganPenghuniJaminanSeeder::class, - ArahMataAnginSeeder::class, - StatusPermohonanSeeder::class, - RegionSeeder::class, - TeamsSeeder::class, - TeamUsersSeeder::class, - JenisPenilaianSeeder::class, - TujuanPenilaianKJPPSeeder::class, - IjinUsahaSeeder::class, - JenisLaporanSeeder::class, - DebitureSeeder::class, - PermohonanSeeder::class, + // BranchSeeder::class, + // CurrencySeeder::class, + // JenisFasilitasKreditSeeder::class, + // JenisLegalitasJaminanSeeder::class, + // JenisJaminanSeeder::class, + // JenisDokumenSeeder::class, + // TujuanPenilaianSeeder::class, + // NilaiPlatformSeeder::class, + // HubunganPemilikJaminanSeeder::class, + // HubunganPenghuniJaminanSeeder::class, + // ArahMataAnginSeeder::class, + // StatusPermohonanSeeder::class, + // RegionSeeder::class, + // TeamsSeeder::class, + // TeamUsersSeeder::class, + // JenisPenilaianSeeder::class, + // TujuanPenilaianKJPPSeeder::class, + // IjinUsahaSeeder::class, + // JenisLaporanSeeder::class, + // DebitureSeeder::class, + // PermohonanSeeder::class, PemilikJaminanSeeder::class, - DokumenJaminanSeeder::class, - DetailDokumenJaminanSeeder::class, - KJPPSeeder::class, - PenawaranSeeder::class, - DetailPenawaranSeeder::class, - PenilaianSeeder::class, + // DokumenJaminanSeeder::class, + // DetailDokumenJaminanSeeder::class, + // KJPPSeeder::class, + // PenawaranSeeder::class, + // DetailPenawaranSeeder::class, + // PenilaianSeeder::class, ]); } } diff --git a/resources/views/penawaran/edit.blade.php b/resources/views/penawaran/edit.blade.php index d49a6bd..a2d1c4e 100644 --- a/resources/views/penawaran/edit.blade.php +++ b/resources/views/penawaran/edit.blade.php @@ -39,8 +39,13 @@ Nama KJPP Sebelumnya
+ @php + $nama_kjpp = $penawaran->nama_kjpp_sebelumnya; + $nama = explode(' - ', $nama_kjpp)[1] ?? ''; + @endphp + + name="nama_kjpp_sebelumnya" readonly value="{{ $nama !== null ? $nama : '' }}">
@@ -49,7 +54,8 @@
+ name="biaya_kjpp_sebelumnya" readonly + value="{{ $penawaran->biaya_kjpp_sebelumnya !== null ? formatRupiah($penawaran->biaya_kjpp_sebelumnya) : '' }}">
@@ -132,8 +138,8 @@
-
- + @error('end_date') {{ $message }} @enderror diff --git a/resources/views/penawaran/surat_tender.blade.php b/resources/views/penawaran/surat_tender.blade.php index ee65e8c..0046877 100644 --- a/resources/views/penawaran/surat_tender.blade.php +++ b/resources/views/penawaran/surat_tender.blade.php @@ -12,39 +12,115 @@ Surat Tender
- @if (isset($penawaran->nomor_registrasi)) - Back - @else - Back - @endif + + pdfDownload + + @if (isset($penawaran->nomor_registrasi)) + Back + @else + Back + @endif

Dear - {{ ucwords(auth()->user()->name) ?? 'Tidak Ada' }} + + @php + $allPeople = []; + + foreach ($penawaran->penawaranKjpp as $kjpp) { + if ($kjpp->kjpp->nama_pic_admin) { + $allPeople[] = ucwords($kjpp->kjpp->nama_pic_admin); + } + + if ($kjpp->kjpp->detail_nama_pic_admin) { + try { + $decoded = json_decode($kjpp->kjpp->detail_nama_pic_admin); + if ($decoded) { + foreach ($decoded as $admin) { + if (isset($admin->nama_pic_admin)) { + $allPeople[] = ucwords($admin->nama_pic_admin); + } + } + } + } catch (\Exception $e) { + // Handle invalid JSON silently + } + } + } + + $allPeople = array_filter($allPeople); + $totalPeople = count($allPeople); + @endphp + @if ($totalPeople > 0) + @foreach ($allPeople as $index => $person) + {{ $person }}{{ $index === $totalPeople - 2 ? ' dan ' : ($index < $totalPeople - 2 ? ' , ' : '') }} + @endforeach + @else + Tidak Ada + @endif +

Mohon untuk dibuatkan proposal jasa appraisal atas nama {{ ucwords($penawaran->permohonan->user->name) }}, tujuan penilaian + class="font-bold">{{ ucwords($permohonan->user->name) }}, tujuan penilaian untuk - @foreach ($penawaran->tujuanPenilaianKJPP as $tujuanPenilaianKJPP) - {{ $tujuanPenilaianKJPP->name }} - @endforeach + {{ $penawaran->tujuanPenilaianKJPP->name }} , laporan dalam bentuk {{ $penawaran->jenisLaporan->name }}, dengan data-data sebagai berikut :

Harap proposal dibuat dengan harga yang minimal sehingga tidak perlu tawar menawar lagi.

Mohon proposal dapat saya terima segera, sebelum - {{ formatTanggalIndonesia($penawaran->end_date) }} pukul 17.00 WIB + {{ formatTanggalIndonesia2($penawaran->end_date) }}

Best Regards, - [otomasi dari nama dan tanda tangan user penginput] - Sub Direktorat Appraisal +

+ {{ $permohonan->user->name }} +

+ {{ $permohonan->user->name }} +

+
+ Sub Direktorat Appraisal

PT. Bank Artha Graha Internasional, Tbk.
Gedung Bank Artha Graha, Lantai 3
diff --git a/resources/views/penawaran/surat_tender_download.blade.php b/resources/views/penawaran/surat_tender_download.blade.php new file mode 100644 index 0000000..af28ad7 --- /dev/null +++ b/resources/views/penawaran/surat_tender_download.blade.php @@ -0,0 +1,148 @@ + + + + + + + + Surat Tender | {{ formatTanggalIndonesia(now()) }} + + + + +

+ Dear + @php + $allPeople = []; + + foreach ($penawaran->penawaranKjpp as $kjpp) { + if ($kjpp->kjpp->nama_pic_admin) { + $allPeople[] = ucwords($kjpp->kjpp->nama_pic_admin); + } + + if ($kjpp->kjpp->detail_nama_pic_admin) { + try { + $decoded = json_decode($kjpp->kjpp->detail_nama_pic_admin); + if ($decoded) { + foreach ($decoded as $admin) { + if (isset($admin->nama_pic_admin)) { + $allPeople[] = ucwords($admin->nama_pic_admin); + } + } + } + } catch (\Exception $e) { + // Handle invalid JSON silently + } + } + } + + $allPeople = array_filter($allPeople); + $totalPeople = count($allPeople); + @endphp + @if ($totalPeople > 0) + @foreach ($allPeople as $index => $person) + {{ $person }}{{ $index === $totalPeople - 2 ? ' dan ' : ($index < $totalPeople - 2 ? ' , ' : '') }} + @endforeach + @else + Tidak Ada + @endif + + +
+ Mohon untuk dibuatkan proposal jasa appraisal atas nama {{ ucwords($permohonan->user->name) }}, tujuan penilaian untuk {{ $penawaran->tujuanPenilaianKJPP->name }}, laporan dalam bentuk {{ $penawaran->jenisLaporan->name }}, dengan data-data sebagai berikut: +
+ +
+ Aset Jaminan: @foreach ($permohonan->debiture->documents as $document) + {{ $document->jenisJaminan->name }} + @endforeach + Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document) + {{ $document->address }}, Kel. @foreach ($villages as $village) + {{ $village->name }} + @endforeach, Kec. @foreach ($districts as $district) + {{ $district->name }} + @endforeach,@foreach ($cities as $city) + {{ ucwords(strtolower($city->name)) }} + @endforeach,@foreach ($provinces as $province) + {{ $province->name }} + @endforeach + @endforeach + + + LT / LB: ... / ... +
+ +
+ Harap proposal dibuat dengan harga yang minimal sehingga tidak perlu tawar menawar lagi. Mohon proposal + dapat saya terima segera, sebelum {{ formatTanggalIndonesia2($penawaran->end_date) }} +
+ +
+ Best Regards,
+ {{ $permohonan->user->name }} +

+ {{ $permohonan->user->name }} +

+
+ + +
+ + + diff --git a/routes/registrasi.php b/routes/registrasi.php index 5c36e38..4ec3178 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -1,21 +1,22 @@ group(function () { - + // andy add // Route::name('registrasi.')->prefix('registrasi')->group(function () { - Route::controller(RegistrasiController::class)->group(function(){ + Route::controller(RegistrasiController::class)->group(function () { // Route::get('/', [RegistrasiController::class, 'index'])->name('registrasi.index'); Route::get('/registrasi', 'index')->name('registrasi.index'); Route::get('/registrasi/datatables', 'dataForDatatables')->name('registrasi.datatables'); - + // show data Route::get('/registrasi/{registrasi}', 'show')->name('registrasi.show'); Route::post('registrasi/showData', 'setData')->name('registrasi.showData'); @@ -23,37 +24,35 @@ Route::middleware(['auth'])->group(function () { Route::post('registrasi/setData', 'setData')->name('registrasi.setData'); Route::get('/registrasi/{registrasi}/edit', 'edit')->name('registrasi.edit'); Route::put('/registrasi/{registrasi}', 'update')->name('registrasi.update'); - }); // andy add Route::name('tender.')->prefix('tender')->group(function () { - // Proses Penawaran - Route::controller(ProsesPenawaranController::class)->group(function(){ - + // Proses Penawaran + Route::controller(ProsesPenawaranController::class)->group(function () { + Route::get('prosespenawaran', 'index')->name('prosespenawaran.index'); Route::get('prosespenawaran/datatables', 'dataForDatatables')->name('prosespenawaran.datatables'); Route::get('prosespenawaran/datatableskjppList_1', 'dataForDatatablesKJPPList_1')->name('prosespenawaran.datatableskjppList_1'); - - // show data - Route::get('/prosespenawaran/{prosespenawaran}', 'show')->name('prosespenawaran.show'); - Route::post('prosespenawaran/setData', 'setData')->name('prosespenawaran.setData'); - - Route::get('prosespenawaran/{prosespenawaran}/edit', 'edit')->name('prosespenawaran.edit'); - // update one - Route::put('/prosespenawaran/{prosespenawaran}', 'update')->name('prosespenawaran.update'); - // update all - Route::put('/prosespenawaranAll/{prosespenawaranAll}', 'updateAll')->name('prosespenawaran.updateAll'); - // delete KJPP, status set = 0 - Route::put('/prosespenawaranKJPPStatus/{prosespenawaranKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaran.updateKJPPStatus'); - + // show data + Route::get('/prosespenawaran/{prosespenawaran}', 'show')->name('prosespenawaran.show'); + Route::post('prosespenawaran/setData', 'setData')->name('prosespenawaran.setData'); + + Route::get('prosespenawaran/{prosespenawaran}/edit', 'edit')->name('prosespenawaran.edit'); + + // update one + Route::put('/prosespenawaran/{prosespenawaran}', 'update')->name('prosespenawaran.update'); + // update all + Route::put('/prosespenawaranAll/{prosespenawaranAll}', 'updateAll')->name('prosespenawaran.updateAll'); + // delete KJPP, status set = 0 + Route::put('/prosespenawaranKJPPStatus/{prosespenawaranKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaran.updateKJPPStatus'); }); // Proses Penawaran Ulang - Route::controller(ProsesPenawaranUlangController::class)->group(function(){ + Route::controller(ProsesPenawaranUlangController::class)->group(function () { Route::get('prosespenawaranulang', 'index')->name('prosespenawaranulang.index'); Route::get('prosespenawaranulang/datatables', 'dataForDatatables')->name('prosespenawaranulang.datatables'); Route::get('prosespenawaranulang/{prosespenawaranulang}/edit', 'edit')->name('prosespenawaranulang.edit'); @@ -64,14 +63,13 @@ Route::middleware(['auth'])->group(function () { // update KJPP data, detail penawaran Route::put('/prosespenawaranulang/{prosespenawaranulang}', 'update')->name('prosespenawaranulang.update'); - // delete KJPP, status set = 0 + // delete KJPP, status set = 0 Route::put('/prosespenawaranulangKJPPStatus/{prosespenawaranulangKJPPStatus}', 'updateKJPPStatus')->name('prosespenawaranulang.updateKJPPStatus'); - }); - }); - + }); + Route::name('otorisasitender.')->prefix('otorisasitender')->group(function () { - Route::controller(OtorisasiPenawaranController::class)->group(function(){ + Route::controller(OtorisasiPenawaranController::class)->group(function () { Route::get('penawaran', 'index')->name('penawaran.index'); Route::get('penawaran/datatables', 'dataForDatatables')->name('penawaran.datatables'); Route::get('penawaran/{penawaran}/edit', 'edit')->name('penawaran.edit'); @@ -82,23 +80,22 @@ Route::middleware(['auth'])->group(function () { // update KJPP data, detail penawaran Route::put('/otorisasiPenawaranKJPP/{penawaran}', 'otorisasiPenawaranKJPP')->name('penawaran.otorisasiPenawaranKJPP'); - }); }); - Route::controller(SpkController::class)->group(function(){ + Route::controller(SpkController::class)->group(function () { Route::get('/spk/dokumennya', 'dokumennya')->name('spk.dokumennya'); - + Route::get('/spk', 'index')->name('spk.index'); Route::get('/spk/datatables', 'dataForDatatables')->name('spk.datatables'); Route::get('/spk/{spk}', 'show')->name('spk.show'); Route::get('/spk/{spk}/edit', 'edit')->name('spk.edit'); - Route::put('/spk/{spk}', 'update')->name('spk.update'); - + Route::put('/spk/{spk}', 'update')->name('spk.update'); + Route::get('spk/{spk}/download', 'download')->name('spk.download'); }); - Route::controller(RegistrasiFinalController::class)->group(function(){ + Route::controller(RegistrasiFinalController::class)->group(function () { Route::get('/registrasifinal', 'index')->name('registrasifinal.index'); Route::get('/registrasifinal/datatables', 'dataForDatatables')->name('registrasifinal.datatables'); Route::get('/registrasifinal/{registrasifinal}', 'show')->name('registrasifinal.show'); @@ -109,4 +106,3 @@ Route::middleware(['auth'])->group(function () { Route::put('/registrasifinal/{registrasifinal}', 'update')->name('registrasifinal.update'); }); }); - diff --git a/routes/web.php b/routes/web.php index 97e53a4..1d55fc7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -392,6 +392,7 @@ Route::middleware(['auth'])->group(function () { Route::get('penawaran/{noreg}/suratTender', [TenderController::class, 'showSuratTender'])->name( 'penawaran.showSuratTender' ); + Route::get('penawaran/{noreg}/suratTender/downloadpdf', [TenderController::class, 'downloadSuratTender'])->name('penawaran.downloadSuratTender'); // Penawaran Ulang Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name(